Getting started

Set up Milo with Claude Code, Cursor or Codex

Connect your AI coding agent to Dial Milo over MCP or the API, choose what it may do, and set a daily spend limit. Then ask it to build, upload and launch campaigns for you.

Updated Oct 23, 2026 4 min read
Key takeaway

If you already work in Claude Code, Cursor or Codex, you can let it set Milo up for you. Connect it once, approve what it may do, and then ask in plain words: "upload players.csv to a new win-back campaign, write the script, wire it to our Customer.io journey and switch it on." Your agent never gets more access than you approve, and it can't touch payments, numbers or your team.

What your agent can do

Once connected, your agent can:

  • Create and edit campaigns, scripts and A/B tests
  • Upload player lists and import deposits
  • Switch campaigns on and off, if you allow it
  • Create a campaign's trigger URL for your CRM journeys, and connect Customer.io
  • Set up receptionists and their knowledge, and run a test call
  • Read calls, leads, contacts, campaign results and reports

It works for you: everything it does shows up in Settings → Activity as "API token: name".

Connecting

Owners and admins can connect an agent. The easiest way is the one-line sign-in: your agent opens a browser, you sign in to Dial Milo and approve.

  1. 1

    Add Dial Milo to your agent

    Claude Code: run claude mcp add --transport http dialmilo https://dialmilo.com/api/mcp, then type /mcp, pick dialmilo and choose Authenticate.

    Cursor: add {"mcpServers": {"dialmilo": {"url": "https://dialmilo.com/api/mcp"}}} to ~/.cursor/mcp.json, then open Cursor Settings → MCP and click Login next to dialmilo.

    Codex: add [mcp_servers.dialmilo] with url = "https://dialmilo.com/api/mcp" to ~/.codex/config.toml, then run codex mcp login dialmilo.

  2. 2

    Approve in the browser

    Sign in if you need to. The approval page shows which app is asking and where it will send you back. Tick what it may do, set a daily limit and an expiry, then click Approve.

  3. 3

    Ask it something

    Try "Use dialmilo: who am I connected as, and list my campaigns." Then something real, like "Create a switched-off test campaign called MCP test."

You'll find the same snippets, ready to copy, in Settings → AI agents & API and on the AI agents page.

Prefer a token? In Settings → AI agents & API, under Create a token, pick what it may do and click create. Copy it straight away: it's shown only once. Tokens also work with the REST API (see https://dialmilo.com/openapi.json) and in scripts or CI.

Choosing what it may do

PermissionWhat it allows
Read everythingReceptionists, calls, leads, contacts, appointments, campaigns and their results, knowledge, numbers, balance
Set up receptionists & knowledgeCreate and edit receptionists, scripts, tools and knowledge, analyze a website, run a test call
Edit leads, contacts & appointmentsUpdate leads, import and edit contacts, add or change appointments
Build campaigns & upload player listsCreate and edit campaigns and scripts, upload CSV lists, import deposits. Can't switch a campaign on.
Launch & pause campaignsSwitch campaigns on and off, and create the trigger URL. This spends money, within your daily limits.
Connect CRMs, Notion, Sheets & webhooksConnect or disconnect Customer.io, Notion, Google Sheets and Calendar, and manage webhooks

Everything except Launch & pause campaigns is ticked by default, so out of the box your agent builds and you switch campaigns on yourself. Three presets help: Full campaign autopilot, Build, I launch and Read only.

Never allowed for any agent: topping up or payment methods, buying or forwarding numbers, inviting or removing team members, changing passwords or the account email, and creating other tokens. These always need you in the dashboard.

Spend limits

Calls that an agent switched on are covered by two daily limits:

  • Daily limit for agent-launched calls, for the whole account. It's $100 a day to start. Only the owner can change it, in Settings → AI agents & API. Set it to 0 to stop agent-launched calls altogether.
  • An optional daily limit for each token. The lower of the two applies.

When a limit is reached, Milo stops starting new calls on those campaigns, shows Paused: agent daily limit reached, and emails you. Calls already in progress finish normally. Calling picks up again the next day (UTC), or straight away if you raise the limit. Your campaign's own budgets still apply as well.

If you switch a campaign on yourself, it counts as yours, not the agent's, and the agent limits no longer apply to it.

Staying in control

  • You get an email whenever an agent switches a campaign on or connects or changes an integration.
  • Tokens expire after 7, 30 or 90 days, or a year (90 days by default). When one expires, your agent simply asks you to sign in again.
  • Settings → AI agents & API lists every connected agent and token with what it can do, today's spend and when it was last used. Click Revoke to cut one off. Campaigns it switched on are paused straight away.
  • Safer-gambling handling, calling hours, opt-outs and do-not-call rules apply to campaigns your agent launches exactly as they do to yours.

Your AI agent runs on your own Claude, Cursor or OpenAI subscription. Dial Milo charges only for calls and numbers, as usual.