Awesome MCP Servers by AI Anytime

Directory / Work & productivity

/call-me

Rings your iPhone so an agent can ask a question out loud and get your spoken answer back as text, or text you; no auth on the endpoint, needs the /call-me iPhone app (paid subscription). Endpoint: https://callmemcp.com/mcp

Live  Answered an MCP handshake without credentials and listed 8 tools.

Category
Work & productivity
Transport
http
Source
https://github.com/radres/call-me
Endpoint
https://callmemcp.com/mcp
MCP Registry
com.callmemcp/call-me
Reports itself as
call-me
Protocol
2025-06-18
Tools
8
Context cost
about 1,345 tokens for the tool definitions (estimated at four characters per token)
Tool definitions last changed
2026-11-03
Handshake time
274 ms
Repository
31 stars · last push 2026-11-01 · MIT
Last checked
2026-11-03 10:54:33 UTC
Listed since
2026-10-20

Health and compatibility

Endpoint reachableVerifiedResponded in 274 ms
MCP handshake (initialize)VerifiedCompleted without credentials
Tool discovery (tools/list)Verified8 tools listed
AuthenticationVerifiedNone needed to connect
Protocol versionVerified2025-06-18
TransportVerifiedStreamable HTTP
Capabilities declaredVerifiedexperimental, prompts, resources, tools

Last checked . Verified means the check saw it happen; it says nothing about whether the server is safe.

Recent history

100% of the last 10 daily checks reachable; median response 221 ms. Green answered, violet asked for auth, red did not answer.

Set up in your client

Claude Code

Run this in a terminal:

claude mcp add --transport http call-me https://callmemcp.com/mcp

Claude Desktop

Open Settings → Connectors → Add custom connector and paste this URL:

https://callmemcp.com/mcp

Or bridge it through mcp-remote in claude_desktop_config.json (needs Node.js):

{
  "mcpServers": {
    "call-me": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://callmemcp.com/mcp"
      ]
    }
  }
}

Cursor

Add to Cursor

Or add it to ~/.cursor/mcp.json (or .cursor/mcp.json in a project):

{
  "mcpServers": {
    "call-me": {
      "url": "https://callmemcp.com/mcp"
    }
  }
}

VS Code

Add to VS Code

Or add it to .vscode/mcp.json:

{
  "servers": {
    "call-me": {
      "type": "http",
      "url": "https://callmemcp.com/mcp"
    }
  }
}

Or from a terminal:

code --add-mcp '{"name": "call-me", "type": "http", "url": "https://callmemcp.com/mcp"}'

Windsurf

Add it to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "call-me": {
      "serverUrl": "https://callmemcp.com/mcp"
    }
  }
}

Other clients

Most clients accept this shape. The endpoint is:

https://callmemcp.com/mcp
{
  "mcpServers": {
    "call-me": {
      "type": "http",
      "url": "https://callmemcp.com/mcp"
    }
  }
}

If it does not connect

Tools 8

Names, descriptions and input schemas exactly as the server returned them on 2026-11-03. This is the server author's own text. Nothing is run from this page. Labels such as read-only are declared by the server and are not verified. Raw JSON

callcan modifydestructiveexternal accessRing the human's phone, read `question` aloud word for word, and return what they say back. It does not have …

Ring the human's phone, 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 characters (about two minutes of speech). Waits up to ~30s; if the result comes back status "ringing" or "in_call", follow up with poll_result. On a local client, read `to` from `~/.aiphone/config.json` → `user_number`; this hosted server cannot read that file itself. It is a Call Me app number, not a regular phone number. If missing, returns setup_required with the download links. Pass a previous session_token to stay in the same thread on their phone. By default the call is a conversation: after their answer the line stays up for `say` until you `hang_up`; keep_open=false hangs up after one answer. `language` ("tr", "de", ...) is the language you are speaking; the call's own short lines follow it. Default English.

ParameterTypeDescription
questionstringrequired
tostring | nulloptional
from_labelstringoptional
session_tokenstring | nulloptional
keep_openboolean | nulloptional
languagestringoptional

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "call",
    "arguments": {
      "question": "..."
    }
  }
}
hang_upcan modifydestructiveexternal accessEnd a call you placed. In a keep_open conversation `goodbye` is spoken first (e.g. "Thanks, I'll get on …

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.

ParameterTypeDescription
call_idintegerrequired
session_tokenstringrequired
goodbyestringoptional

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "hang_up",
    "arguments": {
      "call_id": 0,
      "session_token": "..."
    }
  }
}
poll_resultread-onlyCheck on a call that was still ringing or in progress. Waits up to ~25s for it to settle; returns the final …

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 ("missed").

ParameterTypeDescription
call_idintegerrequired
session_tokenstringrequired

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "poll_result",
    "arguments": {
      "call_id": 0,
      "session_token": "..."
    }
  }
}
saycan modifydestructiveexternal accessIn a call placed with keep_open=true, speak `text` to the human and return what they answer, in the same …

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", follow up with poll_result. "open": false means the call has ended. Pass `language` only to switch the language of the call's own lines; empty keeps it. Anything they said while you were thinking comes back as "said_while_waiting".

ParameterTypeDescription
call_idintegerrequired
session_tokenstringrequired
textstringrequired
languagestringoptional

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "say",
    "arguments": {
      "call_id": 0,
      "session_token": "...",
      "text": "..."
    }
  }
}
set_thread_titlecan modifydestructiveName this session's conversation thread on the human's phone (e.g. the project or task you are working on). …

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.

ParameterTypeDescription
session_tokenstringrequired
titlestringrequired

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "set_thread_title",
    "arguments": {
      "session_token": "...",
      "title": "..."
    }
  }
}
setupread-onlyReturn first-setup instructions and clickable App Store and Google Play download links when no number is …

Return first-setup instructions and clickable App Store and Google Play download links when no number is available.

Takes no parameters.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "setup",
    "arguments": {}
  }
}
textcan modifydestructiveexternal accessSend a one-way text to the human's phone (push notification, no ring). On a local client, read `to` from …

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 itself. If missing, returns setup_required with the download links. Pass a previous session_token to stay in the same thread.

ParameterTypeDescription
bodystringrequired
tostring | nulloptional
from_labelstringoptional
session_tokenstring | nulloptional

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "text",
    "arguments": {
      "body": "..."
    }
  }
}
wait_for_replyread-onlyWait for the human to send something back to this session — texts and voicemail transcripts arrive here. …

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 next time to only see new events. An empty events list just means nothing yet — poll again if you are still waiting.

ParameterTypeDescription
session_tokenstringrequired
cursorintegeroptional
wait_sintegeroptional

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "wait_for_reply",
    "arguments": {
      "session_token": "..."
    }
  }
}

Badge

Maintain this server? Put its live status in your README:

MCP status badge

[![MCP status](https://mcp.aianytime.net/badge/call-me.svg)](https://mcp.aianytime.net/s/call-me/)

Edit this entry · Report a problem

More in Work & productivity

Checks record what a server answered, not whether it is safe. A listing is not a security audit; read a server's source and permissions before you connect it. Add a server · JSON · llms.txt · llms-full.txt

Browse: Agents, IDEs & developer tools · Search & discovery · Knowledge, memory & context · Media & generation · Security · Finance & markets · Marketing, content & social · Cloud, ops & data · Commerce, travel & logistics · Work & productivity · No account needed · Local servers