Skip to content

Pre-launch: Olorin.ai is in a private pilot. What you see here is built and in daily use by the pilot; public sign-up opens when the launch checklist completes.

Connect CallMe to Claude (MCP)

In connected mode there is no separate brain: your Claude session is the agent on the call. It composes the opening question, listens to each reply and improvises the next turn — with the full context of the conversation it is already having with you.

Add the connector

  1. Your account page shows your personal connector link — the MCP endpoint for your account, https://api.callme.olorin.ai/mcp on your own deployment host.
  2. In Claude on the web: Customize → Connectors → “+ Add” → “Add custom connector”. Name it CallMe, paste the link, and continue.
  3. Under Authentication pick “Sign in now”, keep “Use Claude’s published identity (Recommended)”, and add it.
  4. Sign in with Google — the same account you use for CallMe. Sign-in is OAuth 2.1 with PKCE, and the connector carries a single scope: phone.
  5. The desktop and phone apps use the connectors on your Claude account — turn CallMe on from the “+” menu in any chat.

Then just ask: “Call me to test CallMe.” Your Claude dials your verified number from your CallMe number, inside your call window and your plan's caps, and an audit record is written before the dial — the same record the REST API would write.

The call tools

The call tools
ToolWhat it does
start_callPlace a call to your verified number with an opening question (at most 300 characters).
listenWait for the next thing said on the call and return it as text.
continue_callSay the next turn.
end_callEnd the call — and, when asked, hang up and verify the hang-up with the carrier. When the person on the line says goodbye, the service ends the call itself.

Management tools

With management tools enabled on a multi-tenant deployment, the connector also carries the account's whole surface: numbers (buy_number, list_numbers, release_number), calls and usage (list_calls, get_call, get_usage), webhooks (set_webhook), agents (create_agent, list_agents, get_agent, update_agent, delete_agent), messaging (send_message, list_messages, get_message, list_threads, list_thread_messages, get_verification_codes), 10DLC registration (get_registration, submit_brand, submit_campaign, resubmit_campaign), the wallet (get_wallet, get_wallet_ledger, create_wallet_topup, set_wallet_settings), your call window (get_call_window, set_call_window) and reseller children (list_children, create_child, get_child, update_child, activate_child, suspend_child, resume_child, close_child, reissue_child_invite). A tool appears only where its feature is switched on for the deployment.

A thread is one text conversation: one of your numbers and one remote party. list_threads lists them, most recently active first, and list_thread_messages reads one conversation's messages, newest first; both take a page size of 1 to 100 (50 by default) and a cursor, and a result that carries a next cursor has more. Another account's thread id is refused as an unknown thread.

Your own purchased numbers are shown in full (list_numbers), and your own number is whole wherever a result carries it: a message's sender or recipient, the line that rang on an inbound call (a call you placed carries no numbers). The other party on a call or text is masked to the last four digits in call results (list_calls, get_call), message results (list_messages, get_message, send_message, list_thread_messages) and thread results (list_threads).

An agent's transfer numbers are dial destinations, so create_agent, get_agent, list_agents and update_agent show each as an entry with an id and the number masked to its last four digits. update_agent takes transfer_numbers as the whole roster: {"id": …} keeps an entry as the agent showed it, a full E.164 number (or {"number": …}) adds one, an entry left out is removed and [] clears the roster; an unknown id, or an id sent with a different number, is refused and changes nothing. The connector acts as your account's owner, so there is no separate admin scope to hold, as there is for a REST key.

Two more tools, get_dial_window and set_dial_window, are listed on every connector but are operator-only: they refuse a customer connector, because the fleet-wide dial window is a platform control. Your own window is get_call_window and set_call_window.

Opening a child account

create_child opens a child account under yours (reseller sub-accounts): an independent CallMe account — its own sign-in, number, agents and usage — that you administer and whose usage rolls up into your bill view. The child is an invite: name it, give the owner's email, and assign a plan or pricing model. The answer carries the invite link, shown once: send it to the owner, who claims the child by opening it and signing in with that Google account (which must not already have an account here), then verifies their own phone; you activate it once they have. Nothing is charged and no line exists until activation. The optional request_key makes a retry return the same child instead of opening a second one, and the invite link is shown only in the first answer. The REST door is POST /v1/children, and its invite_url opens the same browser route.

Coding agents

If your agent is a coding agent rather than a chat, hand it skills.md — the same setup written as an agent prompt, using API keys instead of the connector.