Your AI rings your iPhone, speaks its question, and gets your spoken answer back as text.
Inferred from the transports this listing declares (streamable-http). A client not listed here hasn’t been ruled out — it just isn’t something Forge can confirm.
Verification confirms publisher identity (repo ownership), not code safety. The security scan covers known CVEs and suspicious install scripts.
Read from a real MCP initialize → tools/list handshake against the declared endpoint. No tool was ever invoked — tools/list is the read-only introspection call the protocol defines for this. It reflects what the server advertised at that moment; a hosted endpoint is not pinned to any version and can change without notice.
https://serdaroztetik.com/aiphone/mcp6 tools · 286mssetupReturn first-setup instructions and a clickable App Store download link when no number is available.Return first-setup instructions and a clickable App Store download link when no number is available.
No input schema was published for this tool.
callRing the human's iPhone, speak the question aloud, and return what they
say. Waits up to ~30s; if the result comes back status "ringing", 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 i…Ring the human's iPhone, speak the question aloud, and return what they say. Waits up to ~30s; if the result comes back status "ringing", 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 i…
| Parameter | Type | Description |
|---|---|---|
| question* | string | — |
| to | — | — |
| from_label | string | — |
| session_token | — | — |
poll_resultCheck on a call that was still ringing. Waits up to ~25s for it to
settle; returns the final status and transcript once the human answers,
declines, or the ring times out ("missed").Check on a call that was still ringing. Waits up to ~25s for it to settle; returns the final status and transcript once the human answers, declines, or the ring times out ("missed").
| Parameter | Type | Description |
|---|---|---|
| call_id* | integer | — |
| session_token* | string | — |
textSend 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 i…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 i…
| Parameter | Type | Description |
|---|---|---|
| body* | string | — |
| to | — | — |
| from_label | string | — |
| session_token | — | — |
wait_for_replyWait 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 st…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 st…
| Parameter | Type | Description |
|---|---|---|
| session_token* | string | — |
| cursor | integer | — |
| wait_s | integer | — |
set_thread_titleName 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.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.
| Parameter | Type | Description |
|---|---|---|
| session_token* | string | — |
| title* | string | — |
6 of 6 tools published a description.
Tool names and descriptions are written by the publisher and shown verbatim as inert text. They are the strings an MCP client passes to a model, so Forge scans them for prompt-injection patterns — any finding appears with the security scan above. “Privileged” is a keyword match on the tool name, not an audit of what the tool does: a benign-sounding name can still do anything.
Your AI rings your iPhone, speaks its question, and gets your spoken answer back as text.
Linked names open Forge’s index of every entry observed exposing that tool. Browse all indexed tools.
This entry publishes no npm package, so Forge has no dependency tree for it. That is a gap in coverage — not a statement that it has no dependencies.