Your AI agent rings your iPhone, asks its question aloud and gets your spoken answer back as text.
/call-me lets an AI agent ring your actual iPhone, read a question, an update or your day ahead aloud, and return your spoken answer as text. It can also text you and wait for your reply. It is a hosted remote MCP server (streamable HTTP at https://callmemcp.com/mcp), so there is nothing to install: add the URL to Claude Code, Cursor, Codex, ChatGPT or any MCP client. You need the /call-me iPhone app, which gives you the 10-digit number your agents call. Built for long-running agent work: approve a deploy, answer a blocking question or hear a summary while you are away from the keyboard.
·
Your AI agents ring your actual iPhone, read you a question, an update or your day ahead, and get your spoken reply back as text — or just text you. Works from any AI that speaks MCP; nothing to install.
Call Me is not a voice assistant: your agent does all the thinking. Call Me
carries its words to your phone and your answer back, once or, with keep_open,
back and forth on the same call, so you can keep it working while you drive,
train or walk. Calls speak and understand 90+ languages.
callme on the App Store. No registration, no email. Open it, tap Agree & Continue, and it shows your personal callme number: 10 digits, and all an agent needs to reach you.
Pairing is stored locally in ~/.aiphone/config.json. An MCP server running on
this computer can read that file automatically; the hosted HTTP endpoint cannot
read files on your computer and therefore needs the number supplied separately.
One server, every MCP client — no API key, no OAuth:
https://callmemcp.com/mcpClaude Code
claude mcp add --transport http call-me https://callmemcp.com/mcpopencode — add to opencode.json (or ~/.config/opencode/opencode.json):
{
"mcp": {
"call-me": {
"type": "remote",
"url": "https://callmemcp.com/mcp",
"enabled": true
}
}
}Codex CLI — use the local paired MCP server
cd /absolute/path/to/call-me
codex mcp remove call-me # only if the hosted entry is already configured
codex mcp add callme -- node "$PWD/codex/mcp.mjs"
codex mcp listThe local callme MCP server reads ~/.aiphone/config.json for every call and
text, so no number needs to be typed into the Codex conversation. Use its
identity tool to verify the paired phone.
Gemini CLI
gemini extensions install https://github.com/radres/call-meor, for the MCP server alone:
gemini mcp add --transport http call-me https://callmemcp.com/mcpGrok
In the Grok app: grok.com/connectors → New
Connector → Custom → https://callmemcp.com/mcp. In Grok Build:
grok plugin install radres/call-me#grokCline — add to Cline's MCP settings (MCP Servers → Configure; CLI:
~/.cline/data/settings/cline_mcp_settings.json). Full agent-readable steps are
in llms-install.md.
{
"mcpServers": {
"call-me": {
"type": "streamableHttp",
"url": "https://callmemcp.com/mcp",
"timeout": 120
}
}
}Cursor — add to ~/.cursor/mcp.json (or .cursor/mcp.json in a project):
{
"mcpServers": {
"call-me": { "url": "https://callmemcp.com/mcp" }
}
}Or install the plugin in plugin/, which adds a skill telling the
agent when to call and when to text. It is a standard
Agent Plugin with a Cursor manifest, so any client
that loads Agent Plugins can use it too.
ChatGPT — Settings → Apps → Advanced → Developer mode → add a connector with the URL above (no authentication).
claude.ai — Settings → Connectors → Add custom connector → the URL above.
Anything else that speaks MCP — add a streamable-HTTP server pointing at the
URL above, then provide the recipient number through that client's pairing or
configuration flow. A hosted MCP connection cannot see this computer's
~/.aiphone/config.json.
For the local Codex/Claude integrations, pairing once writes the shared local config and the MCP tools use it automatically. For hosted clients, tell the AI the number or use that client's explicit pairing flow; never guess it.
| Tool | What it does |
|---|---|
call | Rings your iPhone, reads your text aloud (a question, an update, a summary of the day ahead), returns your spoken reply as text. Holds ~30s, then hands the AI a call_id to poll. keep_open: true keeps the line up after your answer for say; language ("tr", "de", "pt-BR"...) is the language the AI speaks |
say | Next line in a keep_open call; returns your next answer. While the AI thinks you hear a soft keyboard sound, and anything you say meanwhile comes back as said_while_waiting |
hang_up | Ends a keep_open call, with an optional goodbye |
poll_result | Finishes a call that was still ringing |
text | Push-notification message, no ring |
wait_for_reply | Delivers your replies and voicemails back to the AI |
set_thread_title | Names the conversation thread on your phone |
Repeat calls from the same AI land in one titled thread on your phone; each agent/session gets its own number and thread. Blocking a thread in the app silences that sender for good.
No MCP client, no plugin, no token. Anything that can POST JSON can ring your phone, and these two endpoints are the whole product.
Ring and wait for the spoken answer (blocks until you answer or it gives up):
curl -sS https://callmemcp.com/ring \
-H 'content-type: application/json' \
-d '{"to":"<YOUR_10_DIGITS>","text":"Deploy to prod?","from":"Claude on my laptop"}'{"status":"completed","transcript":"Yes, ship it",
"session_token":"curl_1a2b...","from":"<CALLER_NUMBER>"}status is one of completed, missed, declined, timeout, failed.
transcript is what you said, already turned into text.
Keep the line open for a back-and-forth: add "keep_open":true to /ring.
The answer comes back with "open":true and a call_id. Speak again on the same
call and wait for the next answer, until you hang up (or the phone does):
curl -sS https://callmemcp.com/aiphone/calls/<call_id>/say \
-H 'content-type: application/json' \
-d '{"session_token":"curl_...","text":"Reverted it. Anything else?"}'
curl -sS https://callmemcp.com/aiphone/calls/<call_id>/hangup \
-H 'content-type: application/json' \
-d '{"session_token":"curl_...","text":"Thanks, talk later."}'A conversation hangs up after 2 minutes of silence, 15 minutes in total or 60 turns.
Text only, no ring:
curl -sS https://callmemcp.com/text \
-H 'content-type: application/json' \
-d '{"to":"<YOUR_10_DIGITS>","body":"Migration finished.","from":"Claude on my laptop"}'Returns {"ok":true,"message_id":42,"delivered":true}. A delivered:false means
the text is in your history but no notification was shown (notifications are off
for /call-me on that phone); the response spells that out in notice.
| Field | |
|---|---|
to | your 10-digit /call-me number. Required |
text / body | what to say / send. Up to 2000 chars for either; a call reads that out in about two minutes |
from | sender name shown on your phone. Defaults to "Someone's AI" |
timeout_s | /ring only: seconds to wait, 30 to 300. Default 300 |
keep_open | /ring only: keep the line up after the answer for say. Default false |
language | /ring and say: the language you write text in, e.g. "tr". Default English |
Both responses hand back a session_token, and that is a real session: the same
caller can use the rest of the API with it, all landing in one thread on your
phone.
# name the thread
curl -sS https://callmemcp.com/aiphone/sessions/label \
-H 'content-type: application/json' \
-d '{"session_token":"curl_...","label":"nightly deploy"}'
# long-poll for replies, voicemails and missed calls
curl -sS "https://callmemcp.com/aiphone/sessions/events?session_token=curl_...&cursor=0&wait=25"The token is derived from to + from + your IP, so repeat curls from the same
machine reuse one thread instead of showing up as a new stranger every time.
Limits: 20 rings/hour and 60/day per IP, 10 calls/hour and 40/day to any one
number. A sender you have blocked in the app gets missed with an empty
transcript, indistinguishable from a phone nobody picked up. On purpose.
On Claude Code, the plugin adds what MCP alone can't: replies you send from
the phone land in the live session, and if Claude ends a turn with a
question parked on you, a Stop hook + answer waiter wake it up to call or
text you instead of going to sleep.
claude plugin marketplace add radres/call-me
claude plugin install call-me@call-me
claude plugin enable call-me@call-me # REQUIRED — install leaves it disabled
claude plugin list # expect: call-me@call-me ✔ enabledThen restart Claude Code and say "set up /call-me for me" — it does the rest.
On DSH, dsh-plugin-call-me adds what MCP alone can't there either: a turn ending or a tool waiting for approval can ring your phone on its own, and because DSH lets a plugin wake an idle run, the answer you speak picks the run back up.
dsh plugin --profile web add github:radres/dsh-plugin-call-meherdr is a terminal workspace manager that watches every
pane and marks an agent blocked the moment it puts a real approval or question
on screen. herdr-plugin-call-me
turns that moment into a call — and then puts your spoken answer back into the
pane as the keypress the agent was waiting for. It works for whichever of herdr's
~20 supported agents happens to be in that pane, so it needs nothing from the
agent itself.
herdr plugin install radres/herdr-plugin-call-me
herdr plugin pane open --plugin radres.call-me --entrypoint pairThe Omarchy setup panel lives in its own repository so the marketplace installs only the panel: radres/omarchy-plugin-call-me.
omarchy plugin add https://github.com/radres/omarchy-plugin-call-me.git --enable
bash ~/.config/omarchy/plugins/radres.call-me/install-launcher.shRemove with omarchy plugin remove radres.call-me. Details, requirements and
what the panel sends over the network are in that repository's README.
call creates a VoIP call (LiveKit WebRTC — no real telephony); your
iPhone rings through CallKit like a real call, TTS reads your text,
your spoken reply is transcribed and returned to the agent.Pick your client and paste the snippet. Each one is the same server, written the way that client expects it.
claude mcp add call-me --transport http https://callmemcp.com/mcp{
"mcpServers": {
"call-me": {
"url": "https://callmemcp.com/mcp",
"type": "streamableHttp"
}
}
}code --add-mcp '{"name":"call-me","url":"https://callmemcp.com/mcp","type":"streamableHttp"}'Runs as a hosted service. Your client connects over the network and nothing is installed locally.
Paste this prompt into your agent. It reads this page and does the setup for you.
Read https://aiagentslisting.com/mcp/name-the-thread to learn what the "CallMeMCP" MCP server does and how to install it. Add it to my coding agent's MCP configuration as documented on that page, then confirm the server connects and list the tools it exposes.Agents can also browse this directory over MCP at https://aiagentslisting.com/api/mcp
claude mcp add --transport http call-me https://callmemcp.com/mcp| Name | What it does |
|---|---|
setup | Return first-setup instructions and a clickable App Store download link when no number is available. |
call | Ring the human's iPhone, read `question` aloud word for word, and return what they say back. It does not have to be a question: an update or a summary of the day ahead works too, up to 2000 ch |
poll_result | Check on a call that was still ringing or in progress. Waits up to ~25s for it to settle; returns the final status and transcript once the call ends, the human declines, or the ring times out |
say | In a call placed with keep_open=true, speak `text` to the human and return what they answer, in the same shape as `call`. Only after their previous answer is in. Waits up to ~30s; on "in_call" |
hang_up | End a call you placed. In a keep_open conversation `goodbye` is spoken first (e.g. "Thanks, I'll get on it."); leave it empty to just hang up. |
text | Send a one-way text to the human's phone (push notification, no ring). On a local client, read `to` from `~/.aiphone/config.json` → `user_number`; this hosted server cannot read that file itse |
wait_for_reply | Wait for the human to send something back to this session — texts and voicemail transcripts arrive here. Long-polls up to wait_s (max 30s); returns {events, cursor}. Pass the returned cursor n |
set_thread_title | Name this session's conversation thread on the human's phone (e.g. the project or task you are working on). Shown as the thread title in the app. |
Read live from the server on October 19, 2026.
Paste this line near the top of your repository's README. The badge always renders the current score.
[](https://aiagentslisting.com/mcp/name-the-thread)MCP Toolbox for Databases is an open source MCP server for databases.
A MCP for Claude Desktop / Claude Code / Windsurf / Cursor to build n8n workflows for you
It is a thin connector. It discovers running Next.js 16+ dev servers and proxies their built-in MCP
plugin-v1.0.1/call-me plugin 1.0.1Release notesConnect to the AI Agents Listing MCP server at https://aiagentslisting.com/api/mcp using the HTTP transport and complete the sign-in when it asks. Then call the submit_review tool for the listing "name-the-thread" with a rating from 1 to 5 and a short note on what worked and what did not.No reviews yet
Be the first to share your experience with this tool.
MCP Toolbox for Databases is an open source MCP server for databases.
Databases
A MCP for Claude Desktop / Claude Code / Windsurf / Cursor to build n8n workflows for you
Developer Tools
It is a thin connector. It discovers running Next.js 16+ dev servers and proxies their built-in MCP
Developer Tools
One email a week. New agents, MCP servers and skills, and what is actually getting traction.