dylr.dev Docs

Docs. Connect your dialer to your AI.

Make a safe key, paste it once, add one URL to your assistant. Everything below is plain language, and every command has a copy button.

Getting started

Five steps. Most people finish in about five minutes.

  1. Create an account

    An email, a username and a password, then a 6-digit code we email you. Free, no card.

  2. Make a safe key

    In your platform, create a dedicated user or API key with the permissions in the setup guide. Not the admin? The app copies the ask for you to send them.

  3. Paste it once

    We run a real read call to prove it works, then encrypt it with its own key. We never show it again.

  4. Add the URL to your AI

    Every connection gets its own MCP URL. Pick your assistant under Connect your AI.

    Connection URL
    https://dylr.dev/mcp/YOUR_CONNECTION_ID
    Terminal
    claude mcp add --transport http dylrdev https://dylr.dev/mcp/YOUR_CONNECTION_ID
    .cursor/mcp.json
    {
      "mcpServers": {
        "dylrdev": {
          "url": "https://dylr.dev/mcp/YOUR_CONNECTION_ID"
        }
      }
    }
    ~/.gemini/settings.json
    {
      "mcpServers": {
        "dylrdev": {
          "httpUrl": "https://dylr.dev/mcp/YOUR_CONNECTION_ID"
        }
      }
    }
    .vscode/mcp.json
    {
      "servers": {
        "dylrdev": {
          "type": "http",
          "url": "https://dylr.dev/mcp/YOUR_CONNECTION_ID"
        }
      }
    }

    Claude and ChatGPT take the plain URL. The full steps for each client are under Connect your AI.

  5. Ask

    Reads work straight away. Writes ask you in your AI. Dangerous actions wait for you to approve them or arm the connection.

Create an account How it works

Connect your AI

Any client that speaks MCP over Streamable HTTP works. Replace YOUR_CONNECTION_ID with the URL shown on your connection's page in the app, where these same steps come with your real URL filled in.

Claude

Claude on the web and in the desktop apps. You sign in to DylrDev once and approve a consent screen.

  1. Open Customize, then Connectors

    In Claude, go to Customize, then Connectors. On a Team or Enterprise plan an owner adds it once under Organization settings, Connectors (Add, Custom, Web), and each member then clicks Connect.

  2. Add a custom connector

    Click + Add, then Add custom connector. Name it DylrDev, paste your connection URL and click Continue.

    Connection URL
    https://dylr.dev/mcp/YOUR_CONNECTION_ID
  3. Keep sign-in on

    Claude detects that DylrDev uses OAuth. Leave the authentication settings as detected, leave request headers empty and click Add.

  4. Sign in and approve

    A DylrDev window opens. Sign in, read the consent screen (it names the client, the connection and the three tiers) and approve it.

  5. Switch it on in a chat

    In a chat, click +, then Connectors, and turn DylrDev on. Then ask: "List my campaigns".

Paid plans

Custom connectors are available on Claude Pro, Max, Team and Enterprise plans.

Checked against the official Claude documentation (opens in a new tab) on October 12, 2026.

ChatGPT

ChatGPT adds remote MCP servers as apps once developer mode is on. On Business, Enterprise and Edu workspaces an admin has to allow developer mode first.

  1. Turn on developer mode

    Open Settings, then Apps, then Advanced settings, and switch on Developer mode.

  2. Create an app

    In Apps, click Create. Name it DylrDev and paste your connection URL as the endpoint.

    Connection URL
    https://dylr.dev/mcp/YOUR_CONNECTION_ID
  3. Choose OAuth and scan

    Pick OAuth for authentication and leave the client fields empty: ChatGPT registers itself with DylrDev. Click Scan Tools.

  4. Sign in and approve

    Sign in to DylrDev when ChatGPT sends you there and approve the consent screen. When the tool scan finishes, click Create.

  5. Use it in a chat

    DylrDev now shows under Settings, Apps, Enabled apps with a Dev label. Pick it from the + menu in a new chat.

Menus move

OpenAI renames these menus from time to time, and developer mode is not on every plan. If you do not see the switch, your plan or workspace admin may not allow custom apps yet.

Checked against the official ChatGPT documentation (opens in a new tab) on October 12, 2026.

Claude Code

Add DylrDev from your terminal. Sign in with OAuth from inside Claude Code, or use a CLI token for one connection.

  1. Add the server

    Run this once. Add --scope user to make it available in every project.

    Terminal
    claude mcp add --transport http dylrdev https://dylr.dev/mcp/YOUR_CONNECTION_ID
  2. Sign in

    Start Claude Code and run /mcp. Pick dylrdev, choose Authenticate, sign in to DylrDev in the browser and approve the consent screen.

  3. Or use a CLI token

    Create a CLI token on the connection page in the app (it is shown once) and pass it as a header instead. With a header set, Claude Code does not use OAuth.

    Terminal
    claude mcp add --transport http dylrdev https://dylr.dev/mcp/YOUR_CONNECTION_ID \
      --header "Authorization: Bearer YOUR_CLI_TOKEN"
  4. Check it

    Run claude mcp list, or /mcp inside Claude Code. DylrDev should show as connected.

Checked against the official Claude Code documentation (opens in a new tab) on October 12, 2026.

Cursor

Cursor reads MCP servers from mcp.json: .cursor/mcp.json in a project, or ~/.cursor/mcp.json for every project. It supports OAuth and headers.

  1. Add the server with OAuth

    Paste this into mcp.json (merge it into mcpServers if the file already has one) and save. Cursor asks you to sign in to DylrDev the first time it connects.

    .cursor/mcp.json
    {
      "mcpServers": {
        "dylrdev": {
          "url": "https://dylr.dev/mcp/YOUR_CONNECTION_ID"
        }
      }
    }
  2. Or use a CLI token

    Keep the token out of the file: put it in an environment variable and let Cursor read it.

    .cursor/mcp.json
    {
      "mcpServers": {
        "dylrdev": {
          "url": "https://dylr.dev/mcp/YOUR_CONNECTION_ID",
          "headers": {
            "Authorization": "Bearer ${env:DYLR_TOKEN}"
          }
        }
      }
    }
  3. Check it

    Open Cursor settings, then MCP. DylrDev should show its tools with a green status. Use them from the agent in chat.

Checked against the official Cursor documentation (opens in a new tab) on October 12, 2026.

Gemini CLI

Gemini CLI reads MCP servers from ~/.gemini/settings.json (every project) or .gemini/settings.json (one project). Use httpUrl for Streamable HTTP; url means SSE.

  1. Add the server

    Add this under mcpServers and save.

    ~/.gemini/settings.json
    {
      "mcpServers": {
        "dylrdev": {
          "httpUrl": "https://dylr.dev/mcp/YOUR_CONNECTION_ID"
        }
      }
    }
  2. Sign in

    Start gemini and run /mcp auth dylrdev. A browser opens: sign in to DylrDev and approve. Gemini CLI finds the sign-in on its own, so there is no client ID to paste. Run it again if the sign-in expires.

  3. No browser? Use a CLI token

    Over SSH or in a container the browser sign-in cannot finish. Add the server with a CLI token instead.

    Terminal
    gemini mcp add --scope user --transport http \
      --header "Authorization: Bearer YOUR_CLI_TOKEN" \
      dylrdev https://dylr.dev/mcp/YOUR_CONNECTION_ID
  4. Check it

    Run /mcp. DylrDev should be listed as connected, with its tools.

Checked against the official Gemini CLI documentation (opens in a new tab) on October 12, 2026.

GitHub Copilot in VS Code

Copilot uses MCP tools from the Chat view in agent mode. Add DylrDev to .vscode/mcp.json in a project, or run MCP: Open User Configuration for every workspace.

  1. Add the server

    Paste this and save. Merge it into servers if the file already has one.

    .vscode/mcp.json
    {
      "servers": {
        "dylrdev": {
          "type": "http",
          "url": "https://dylr.dev/mcp/YOUR_CONNECTION_ID"
        }
      }
    }
  2. Start it and sign in

    Run MCP: List Servers, pick dylrdev and choose Start. VS Code asks to sign in: allow it, sign in to DylrDev and approve the consent screen.

  3. Or use a CLI token

    VS Code prompts for the token once and stores it for you, so it never sits in the file.

    .vscode/mcp.json
    {
      "inputs": [
        { "type": "promptString", "id": "dylr-token", "description": "DylrDev CLI token", "password": true }
      ],
      "servers": {
        "dylrdev": {
          "type": "http",
          "url": "https://dylr.dev/mcp/YOUR_CONNECTION_ID",
          "headers": { "Authorization": "Bearer ${input:dylr-token}" }
        }
      }
    }
  4. Use the tools

    Open the Chat view, switch to Agent, and turn DylrDev on under Configure Tools. VS Code may ask you to confirm each tool call.

Checked against the official GitHub Copilot in VS Code documentation (opens in a new tab) on October 12, 2026.

Platform setup guides

Every platform is one ask: make us a user or key with these permissions. When you connect, the app shows the exact checklist with a button that copies it for your admin.

Five9

A Five9 admin user just for DylrDev.

  • Administrator role with User can use Administrator Services, plus the campaign, list, user, disposition, IVR and prompt permissions in the checklist.
  • Reporting role for your report folders. Supervisor role only if you want live stats.
  • A password login, excluded from SSO. Never a person's login.

Genesys Cloud

A Client Credentials OAuth client with a custom role.

  • View and add permissions for queues, skills, schedules, outbound, Architect, AVA and knowledge.
  • Assign the role in all divisions, or split it: a Read role everywhere, a Write role only where the AI may change things.
  • Never Master Admin, and no outbound:campaign:edit.

NiCE CXone

A CXone API user with a custom role and its own access key.

  • View on every area the tools read, Create or Edit where a write tool builds something.
  • Skill assignment, points of contact and call list uploads only if you will arm for them.
  • No user, role, security, recording or billing permissions.

RingCentral RingCX

A RingCX admin user, a private RingCentral app and a JWT.

  • A dedicated RingEX user with a seat, made a RingCX admin with only Allow login checked.
  • One role on one sub-account: view and edit on dial groups, campaigns, leads, DNC and queues, no delete.
  • A private REST API app (JWT auth, Read Accounts only) and a JWT limited to that app.

Twilio

A Restricted API key with only the products the tools use.

  • Studio Flows and TaskRouter read and write, Phone Numbers and Account read.
  • A Standard key works if a product is missing from Restricted keys.
  • Never your Auth Token or a Main key. A subaccount isolates it further.

Telnyx

A Telnyx API key just for DylrDev, with an expiry date.

  • Telnyx keys cannot be scoped, so DylrDev limits what it does with the key.
  • Cap spend on each Outbound Voice Profile: a daily limit, US and CA only, a concurrent call limit.
  • For real isolation, use a managed or separate Telnyx account.

Amazon Connect

An IAM user just for DylrDev, with the DylrDev policy and an access key.

  • The policy reads and builds in one instance and one region only.
  • It denies deletes, number changes, dialing, campaign starts and user or IAM changes.
  • No console access. Rotate the key every 90 days.

Names and logos belong to their owners and are used only to identify compatibility. Your platform is not listed? Request a dialer.

Tiers, arming and approvals

Every tool has a tier and the server enforces it. A confirmation inside a chat is not a security boundary, so the dangerous tier stays locked until you unlock it where a model cannot reach.

TierCoversWhat happens
readList, get, search, report, render, check.Always allowed.
writeReversible creates and edits, such as a campaign or a disposition.Allowed. Your AI client asks you to confirm.
needs armingDeletes, starting or stopping dialing, bulk lead changes, users and roles, publishing live flows, spending money, raw API calls that are not reads.Refused unless the connection is armed or you approved the exact call.

Arming

Open a connection and click Arm for 15, 30 or 60 minutes (owners and admins can also pick 4 hours). Dangerous tools work until the timer ends, expiry is checked on every call, and Disarm is one click.

Approvals

When the connection is not armed, a dangerous call is stored as a pending approval and your AI gives you a link. Approve just that call, or approve and arm. Approvals are single use, bound to the exact arguments, and expire after 15 minutes.

More detail

Presets, the never-trust list and the second approver rule are on the safety page.

Roles and permissions

People in an organization are owners, admins, members or viewers. This table is generated from the live permission rules, so it is always accurate.

Limits

DylrDev is free. These caps keep it fair and protect your platform from a runaway loop.

LimitDefault
Calls per connection120 per minute, 5,000 per day (lower for some platforms, shown in the app)
Calls per person in an organization60 per minute
Items per bulk call25
Request body256 KB
Upstream timeout15 seconds
Response size1 MB, then truncated with a flag
Members and pending invites per organization25 each

Troubleshooting

My AI says the action was blocked

That is the dangerous tier doing its job. Open the link your AI gave you, approve just that action, or approve and arm for a while. Then tell your AI to try again.

The connection check failed

Make sure the user or key has the roles from the setup guide, the secret was copied whole, and the instance region matches. We only talk to the host you picked.

My AI client cannot sign in

Check that the URL is the full connection URL from the app. Command line clients need a local browser for the OAuth sign-in; over SSH or in a container, use a CLI token instead.

I am being asked for my password again

Sensitive actions ask for your password if you have not confirmed it in the last 15 minutes. It then stays valid for 15 minutes.

The email code did not arrive

Check spam, wait for the resend countdown, and ask for a new one. Codes work for 10 minutes and once.

Still stuck? Write to ryan@dylr.dev.