Tomi — AI Phone Calls

Tomi gives Claude a real phone line: ask it to book a table abroad, chase a lost bag, or confirm a reservation, and an AI voice agent places the call in the…

Community: Submitted by a user or imported; check the owner before granting accessOnlineNo sign-inGlobalFreeCan modify data

What it can do

  • Estimate Cost: Estimate the price of an outbound call to a given country before placing it. Rates vary by destination; expensive destinations (e.g. JP) cost several times more than US/EU.
  • Find Target: Look up a business on the web and return dialable candidates: phone number in E.164, address, opening hours, whether it is open right now, and when it next opens. Use this before place_ca
  • Get Balance: Get the current credit balance and the remaining free-call allowance (free calls left and shared free minutes left).

What data it sees

Do you need an account

No: the server works without sign-in

Tomi gives Claude a real phone line: ask it to book a table abroad, chase a lost bag, or confirm a reservation, and an AI voice agent places the call in the local language and reports back with a transcript.

Built for international and cross-language calls — the agent speaks many languages (English, Spanish, French, German, Italian, Turkish, Japanese, Arabic, Indonesian, and counting), so you can get things done in countries where you don't speak the language or can't call without roaming.

How it works: start from a name or a link — find_target looks the place up on the web and returns a dialable number, address and opening hours, including whether it is open right now. place_call then starts a real outbound call, and Claude follows it in near-real-time via get_call_status (long-poll): within seconds you know whether a human answered, the call hit an answering machine, or the agent is navigating a phone menu / waiting on hold — live events and a transcript tail, then the final report and full transcript. The agent navigates IVR menus on its own; send_dtmf lets you press keys manually. Pay-per-call credits, your first two calls (20 minutes combined) are free; every call opens with a spoken AI disclosure that cannot be disabled.

How to connect

How to connect Tomi — AI Phone Calls to Claude

The server address to paste into Claude settings:

https://tomi--kayrat.run.tools

  1. Open Claude (claude.ai or the desktop app).
  2. Go to Settings → Connectors.
  3. Click Add custom connector.
  4. Paste the server address copied below into Remote MCP server URL and click Add.
  5. In a chat, click + → Connectors and switch the new connector on.

Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.

Authorization

After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.

How to connect Tomi — AI Phone Calls to ChatGPT

The server address to paste into ChatGPT settings:

https://tomi--kayrat.run.tools

  1. Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
  2. Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
  3. Open Settings → Connectors and click Create.
  4. Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
  5. Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
  6. In a new chat open + → Apps/Connectors and enable the connector.

OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.

Authorization

On first use ChatGPT opens the service's sign-in window. Sign in and approve access.

How to connect Tomi — AI Phone Calls to Cursor

The server address to paste into Cursor settings:

https://tomi--kayrat.run.tools

Fastest: click Open in Cursor below and confirm the prompt.

Manually:

  1. In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
  2. Paste the JSON copied below into ~/.cursor/mcp.json (per project: .cursor/mcp.json in the repo root).
  3. Save the file. The server appears in the MCP list; authorize it there if asked.

Authorization

If the service needs sign-in, an authorize button appears next to the server in the MCP list.

Server tool list (12)

Raw names from tools/list. Only developers need these.

estimate_costEstimate the price of an outbound call to a given country before placing it. Rates vary by destination; expensive destinations (e.g. JP) cost several times more than US/EU.
find_targetLook up a business on the web and return dialable candidates: phone number in E.164, address, opening hours, whether it is open right now, and when it next opens. Use this before place_call whenever the user gives a name or a link instead of a number, or when you want to check the place is open before dialing. Free and read-only — it places no calls and spends no credits.
get_balanceGet the current credit balance and the remaining free-call allowance (free calls left and shared free minutes left).
get_referral_linkGet the user's personal referral link. When an invited friend redeems the code (redeem_referral) and completes their first paid call, both the referrer and the friend get bonus call credit.
redeem_referralAttribute this account to the friend who invited you, using the code from their tomi.tel/r/CODE link. Once you complete your first paid call, both you and your friend get bonus call credit. Redeeming is one-time and can't be changed later.
place_callPlace a real outbound phone call on behalf of the user. An AI voice agent will dial the number, follow the task instructions in the requested language, and report back. The call is asynchronous: this tool returns a call_id immediately — then call get_call_status with wait_for_change_sec=25 right away, and keep calling it that way until the call ends, to learn within seconds whether a human answered, it is still ringing, or it hit an answering machine, and keep the user posted while the call runs. The agent always discloses it is an AI assistant at the start of the call. Pass conversation_language so the report comes back in the user's language, and collect when the user asked for something concrete you will want to read back verbatim (a price, a confirmation number, an opening time).
get_call_statusCheck the status of a call placed with place_call. Call it with wait_for_change_sec=25 right after placing the call, and keep calling it that way until the call ends: each request returns as soon as something happens (ringing, answered by a human or an answering machine, IVR being navigated, put on hold, call ended), so you can keep the user informed in near-real-time instead of waiting blind. Each response carries last_events (the call timeline so far), answered_by, a partial_transcript tail, and last_event_seq — pass the latter back as after_event_seq on the next call so no event is missed. Once finished, returns the full report: outcome.answer (the direct answer to the task), outcome.summary, outcome.extracted (the facts the call obtained), outcome.nextStep and outcome.blocker, plus who answered, talk time, the transcript inline, final cost, remaining balance, and resource links to the transcript, recording and call record. Report outcome.answer and outcome.nextStep to the user — that is what they asked for. If the call did not reach anyone (no answer, busy, voicemail with nothing resolved, etc.), the response also includes a ready-to-send whatsapp_url for the same number as a fallback — surface it to the user rather than only reporting the failure.
cancel_callCancel a scheduled or active call. Unspent reserved credits are refunded automatically. Cancelling a call that already finished is safe: it just returns the current status.
list_callsList the user recent calls, newest first, with their status and cost. Use get_call_status for the full report of a specific call.
buy_creditsCreate a checkout link to purchase a credit package (starter $9 or travel $19). The user completes payment in their browser; credits are added to the balance automatically once payment succeeds.
get_whatsapp_linkBuilds a WhatsApp link (wa.me) that opens a chat with the given phone number, optionally pre-filled with a draft message. Nothing is sent automatically — surface this link to the user so they can tap send themselves. Good for contacts more reachable by message than by phone, e.g. an Airbnb/Turo host coordinating a handover. Note: get_call_status already suggests this automatically when a call fails to reach someone, so you usually don't need to call this directly for that case — reach for it when the user asks to message someone instead of calling in the first place.
send_dtmfSend DTMF keypad tones into a call in progress, to navigate an automated voice menu (IVR): e.g. "1" to pick option 1, or "1w204#" to press 1, pause, then dial extension 204#. Allowed characters: digits 0-9, * and #, plus "w" for a ~0.5-second pause. Only works while the call is connected (status in_progress). The agent already navigates menus on its own — use this to intervene manually.