Call Me
by serdaroztetik.com · remote · no sign-in to list tools · v1.0.0 · published by com.serdaroztetik
Your AI rings your iPhone, speaks its question, and gets your spoken answer back as text.
8 tools: 5 can delete or cancel things, 1 change things and 2 only read.
Scanned Oct 21, 2026
- Deletes or cancels5Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things1Claude Code: ask: see these tools
- Only reads2Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http call-me https://serdaroztetik.com/aiphone/mcpTools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
8 tools
Deletes or cancels 5Claude Code: deny
callRing the human's iPhone, read `question` aloud word for word, and return what they say back.No findings
Why it is in this group
- The name "call" says "call": a word for a change.
- The input addresses people (input.to): what it sends cannot be taken back.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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. 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.
Annotations the server declares
- destructiveHint: true
- openWorldHint: true
- readOnlyHint: false
- title: Call the human
hang_upEnd a call you placed.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: true
- openWorldHint: true
- readOnlyHint: false
- title: Hang up
sayIn a call placed with keep_open=true, speak `text` to the human and return what they answer, in the same shape as `call`.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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".
Annotations the server declares
- destructiveHint: true
- openWorldHint: true
- readOnlyHint: false
- title: Say the next line
set_thread_titleName this session's conversation thread on the human's phone (e.g.No findings
Why it is in this group
- The name "set_thread_title" says "set": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: true
- openWorldHint: false
- readOnlyHint: false
- title: Set thread title
textSend a one-way text to the human's phone (push notification, no ring).No findings
Why it is in this group
- The description's first verb is "send": a word for sending, and what is sent cannot be taken back.
- The input addresses people (input.to): what it sends cannot be taken back.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: true
- openWorldHint: true
- readOnlyHint: false
- title: Text the human
Changes things 1Claude Code: ask
poll_resultCheck on a call that was still ringing or in progress.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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").
Annotations the server declares
- destructiveHint: false
- openWorldHint: false
- readOnlyHint: true
- title: Get call result
Only reads 2Claude Code: allow
setupReturn first-setup instructions and a clickable App Store download link when no number is available.No findings
Why it is in this group
- The description's first verb is "return": a word for reading.
Description, as the server wrote it Return first-setup instructions and a clickable App Store download link when no number is available.
Annotations the server declares
- destructiveHint: false
- openWorldHint: false
- readOnlyHint: true
- title: Set up Call Me
wait_for_replyWait for the human to send something back to this session — texts and voicemail transcripts arrive here.No findings
Why it is in this group
- The name "wait_for_reply" says "wait": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- openWorldHint: false
- readOnlyHint: true
- title: Wait for a text reply
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http call-me https://serdaroztetik.com/aiphone/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__call-me__setup",
"mcp__call-me__wait_for_reply"
],
"ask": [
"mcp__call-me__poll_result"
],
"deny": [
"mcp__call-me__call",
"mcp__call-me__say",
"mcp__call-me__hang_up",
"mcp__call-me__text",
"mcp__call-me__set_thread_title"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as call-me. Review it before you use it.