General Tools
serdaroztetik.com
Enables AI to interact with a human's phone through calls, texts, and session management.
ENDPOINT 1
https://serdaroztetik.com/aiphone/mcp
MCP server metadata
- Name
- call-me
/call-me rings a real human's iPhone and returns what they said. - The human installs the /call-me iOS app (https://serdaroztetik.com/aiphone/go/mcp). When this MCP client is running on the human's computer, read the paired recipient from `~/.aiphone/config.json` and use its `user_number` value as `to`. This hosted server cannot read the client's local files; the agent or client must read that file and pass the value. Do not ask the human to repeat a number that is already in the file, do not use the display-formatted value, and never invent or hardcode a number. The value is a 10-digit /call-me app number, not a real phone number. - If the local file is absent or has no `user_number`, ask the human to open the app and read the number once, then remember it in the client session. Do not silently fall back to the demo line; use the demo only when explicitly testing the demo loop. - `call` rings the phone and waits ~30 seconds. status "completed" carries the spoken answer as text. status "ringing" means nobody picked up yet: pass the returned call_id to `poll_result` (each poll waits up to ~25s; an unanswered ring resolves as "missed" within about a minute, so one or two polls settle it). - Every result carries a session_token. Reuse it in later `call`/`text` calls so they land in the same conversation thread on the phone, and pass it to `wait_for_reply` to receive what the human sends back (texts, voicemail transcripts) after a missed call or a text. - `text` sends a one-way message — use it for notifications that need no answer, or as the fallback when a call comes back "missed" or "declined". - A /call-me number needs an active subscription (started in the iOS app; one month free). If a call or text comes back "this /call-me number is not active", relay that to the person you work for — an agent cannot fix it. - To try the loop without a human, `call` or `text` the demo line 5550001234 — it answers and replies automatically and says so. - Do not retry an unanswered call in a loop; one call plus one text is the polite ceiling.
Known tools 5
wait_for_replyWait for the human to send something back to this session — texts and voicemail transcripts arrive here.
Potential side effectsCONNECT WITH APPROVAL
Client installation
Review this server and its permissions before adding it. Secret placeholders must be set locally.
Codex
~/.codex/config.toml
[mcp_servers.call-me]
url = "https://serdaroztetik.com/aiphone/mcp"
enabled = true
Claude Code
.mcp.json
{
"mcpServers": {
"call-me": {
"type": "http",
"url": "https://serdaroztetik.com/aiphone/mcp"
}
}
}
Claude Desktop
Settings → Connectors → Add custom connector
Name: call-me
Remote MCP URL: https://serdaroztetik.com/aiphone/mcp
Add this remote URL as a custom connector in Claude Desktop. Availability depends on the user plan and workspace policy.
Cursor
.cursor/mcp.json
{
"mcpServers": {
"call-me": {
"url": "https://serdaroztetik.com/aiphone/mcp"
}
}
}
Visual Studio Code
.vscode/mcp.json
Add to Visual Studio Code{
"servers": {
"call-me": {
"type": "http",
"url": "https://serdaroztetik.com/aiphone/mcp"
}
}
}
Generic MCP
Client-specific MCP configuration
{
"name": "call-me",
"transport": "streamable-http",
"url": "https://serdaroztetik.com/aiphone/mcp"
}
MCP Inspector
Run the official MCP Inspector locally and enter the indexed Streamable HTTP endpoint.
TRUST AND VERIFICATION EVIDENCE
Loading Trust v2 evidence…
Checking the associated registrable domain. The BuiltWith key remains server-side.
Evidence is source-attributed and does not guarantee that a third-party server is safe. Risk labels are conservative metadata heuristics.