MCP Server

Call Me

com.callmemcp/call-me
Communication Productivity Public & reachable MCP 2025-11-25

What this MCP does

Calls or texts a person, receives spoken or written replies, and manages phone conversation threads.

call
Call the human
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 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 App Store link. Pass a previous session_token to stay in the same thread on their phone.
Destructive Open world
Input schema
{'type': 'object', 'title': 'callArguments', 'required': ['question'], 'properties': {'to': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'To', 'default': None}, 'question': {'type': 'string', 'title': 'Question'}, 'from_label': {'type': 'string', 'title': 'From Label', 'default': "Someone's AI"}, 'session_token': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Session Token', 'default': None}}}
poll_result
Get call 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 ("missed").
Read only
Input schema
{'type': 'object', 'title': 'poll_resultArguments', 'required': ['call_id', 'session_token'], 'properties': {'call_id': {'type': 'integer', 'title': 'Call Id'}, 'session_token': {'type': 'string', 'title': 'Session Token'}}}
set_thread_title
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.
Destructive
Input schema
{'type': 'object', 'title': 'set_thread_titleArguments', 'required': ['session_token', 'title'], 'properties': {'title': {'type': 'string', 'title': 'Title'}, 'session_token': {'type': 'string', 'title': 'Session Token'}}}
setup
Set up Call Me
Return first-setup instructions and a clickable App Store download link when no number is available.
Read only
Input schema
{'type': 'object', 'title': 'setupArguments', 'properties': {}}
text
Text the human
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 App Store link. Pass a previous session_token to stay in the same thread.
Destructive Open world
Input schema
{'type': 'object', 'title': 'textArguments', 'required': ['body'], 'properties': {'to': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'To', 'default': None}, 'body': {'type': 'string', 'title': 'Body'}, 'from_label': {'type': 'string', 'title': 'From Label', 'default': "Someone's AI"}, 'session_token': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Session Token', 'default': None}}}
wait_for_reply
Wait for a text 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 next time to only see new events. An empty events list just means nothing yet — poll again if you are still waiting.
Read only
Input schema
{'type': 'object', 'title': 'wait_for_replyArguments', 'required': ['session_token'], 'properties': {'cursor': {'type': 'integer', 'title': 'Cursor', 'default': 0}, 'wait_s': {'type': 'integer', 'title': 'Wait S', 'default': 25}, 'session_token': {'type': 'string', 'title': 'Session Token'}}}
Added
set_thread_title
Oct. 5, 2026, 2:40 a.m.
Added
wait_for_reply
Oct. 5, 2026, 2:40 a.m.
Added
text
Oct. 5, 2026, 2:40 a.m.
Added
poll_result
Oct. 5, 2026, 2:40 a.m.
Added
call
Oct. 5, 2026, 2:40 a.m.
Added
setup
Oct. 5, 2026, 2:40 a.m.