Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Beschreibung vom Entwickler (englisches Original)
Give AI agents real phone numbers, messages, and voice calls via MCP.
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
AGENTPHONE_API_KEY, AuthorizationAls geheim markierte Werte sind Schlüssel zu deinem Konto. Gib sie nie weiter und füge sie nie in einen Chat ein.
Du brauchst
Welche App nutzt du?
Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.
Diese Adresse braucht einen Schlüssel in einem Header der Anfrage, und das Menü zum Hinzufügen von Connectors kann ihn nicht setzen. Nutze stattdessen Claude Code, Cursor oder VS Code.
Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein
{
"mcpServers": {
"agentphone": {
"command": "npx",
"args": [
"-y",
"agentphone-mcp"
],
"env": {
"AGENTPHONE_API_KEY": "your-value"
}
}
}
}Führe das in deinem Terminal aus
claude mcp add --transport http agentphone https://mcp.agentphone.ai/mcp --header 'Authorization: your-value'claude mcp add agentphone --env AGENTPHONE_API_KEY=your-value -- npx -y agentphone-mcpTrag die leeren Werte ein, bevor du ihn startest.
In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"agentphone": {
"url": "https://mcp.agentphone.ai/mcp",
"headers": {
"Authorization": "your-value"
}
}
}
}In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"agentphone": {
"command": "npx",
"args": [
"-y",
"agentphone-mcp"
],
"env": {
"AGENTPHONE_API_KEY": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"agentphone": {
"type": "http",
"url": "https://mcp.agentphone.ai/mcp",
"headers": {
"Authorization": "your-value"
}
}
}
}In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"agentphone": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"agentphone-mcp"
],
"env": {
"AGENTPHONE_API_KEY": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
Diese Adresse braucht einen Schlüssel in einem Header der Anfrage, und das Menü zum Hinzufügen von Connectors kann ihn nicht setzen. Nutze stattdessen Claude Code, Cursor oder VS Code.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
Authorization geheim erforderlich HTTP headerDiese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Die Tool-Liste dieses Servers haben wir noch nicht gelesen; wir prüfen die Endpunkte reihum.
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 7. Nov. 2026
Der Registry-Name wurde mit dem GitHub-Konto AgentPhone-AI bestätigt, dem das Repo gehört
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieses Repo haben wir noch nicht von GitHub gelesen
Noch nicht geprüft; wir prüfen die Endpunkte reihum
Noch nicht geprüft; wir prüfen die Endpunkte reihum
Noch nicht geprüft; wir lesen die Tool-Liste, wenn wir den Endpunkt prüfen
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Das musst du eintragen: AGENTPHONE_API_KEY, Authorization
Beides geht: Installiere ihn auf deinem Computer oder verbinde dich mit der Cloud-Version.
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (0.8.0) kam vor 17 Tagen in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Er verbindet sich per URL, also funktionieren auch Apps, die Remote-MCP-Server akzeptieren, zum Beispiel ChatGPT im Entwicklermodus.
In derselben Kategorie: Spec Driven Development, Remote Desktop Commander, Rystic
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Start, seed, clock, inspect and diff Rystic API simulators from your agent.
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
Give AI agents real phone numbers, SMS, and voice calls via the Model Context Protocol.
AgentPhone lets your AI agent buy phone numbers, send/receive SMS, and place voice calls — all through natural language in Cursor, Claude Desktop, or any MCP-compatible client.
Agents are the core concept — each agent gets its own phone numbers, voice personality, system prompt, and webhook. Think of an agent as a virtual team member with its own phone line. You can create agents for different purposes (support, sales, scheduling) and configure how they sound and behave on calls.
Sign up at agentphone.ai and create an API key from Settings.
Option A: Remote server (recommended)
Point your MCP client at the hosted endpoint — no install needed:
{
"mcpServers": { "agentphone": { "type": "streamable-http", "url": "https://mcp.agentphone.ai/mcp", "headers": { "Authorization": "Bearer your_api_key_here" } } } }
Works with any MCP client that supports Streamable HTTP transport (Switchboard, remote agent platforms, etc.).
Option B: Local server (stdio)
Runs locally via npx — works with Cursor, Claude Desktop, Windsurf, and Claude Code:
Cursor: Settings > MCP or ~/.cursor/mcp.json Claude Desktop: ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
{
"mcpServers": { "agentphone": { "command": "npx", "args": ["-y", "agentphone-mcp"], "env": { "AGENTPHONE_API_KEY": "your_api_key_here" } } } }
Option C: Self-hosted HTTP server
Run your own HTTP MCP endpoint:
PORT=3000 npx agentphone-mcp --http
Then connect to http://localhost:3000/mcp and configure your MCP client to send Authorization: Bearer with each request. A server-side AGENTPHONE_API_KEY alone does not authorize HTTP callers.
Warning: AGENTPHONE_ALLOW_ANONYMOUS=true opts into using the server's AGENTPHONE_API_KEY for requests with no Authorization header, only when OAuth is off. Anyone who can reach that endpoint can act as the account: only enable this behind your own authentication. Malformed headers are rejected, and a caller's supplied bearer is never replaced by the server key.
Once configured, just ask your AI agent things like:
The server ships two transports from one entry point (node dist/index.js):
npm start / npx agentphone-mcp runs the standard MCP stdio transport for local clients, using AGENTPHONE_API_KEY.PORT (or pass --http, optionally with --port ) to run the Streamable HTTP server, reachable at /mcp. --port alone does not switch transports — --http or PORT selects HTTP. The HTTP layer is built on the mcp-use framework, which owns Streamable HTTP, the SSE stream, session management, and the OAuth discovery endpoints.https://mcp.agentphone.ai/mcpPORT=3000 npm start → http://localhost:3000/mcpMCP_OAUTH_CLIENT_ID (a client pre-registered with the AgentPhone AS). MCP_OAUTH_CLIENT_SECRET is optional: set it to run the gateway as a confidential client, or leave it unset to run as a public client (the gateway must then be registered with token_endpoint_auth_method=none). Public mode advertises none to downstream clients, which strict OAuth clients require.Authorization: Bearer . The server-side AGENTPHONE_API_KEY is only used for callers that send nothing, and only when AGENTPHONE_ALLOW_ANONYMOUS=true. Without that flag an unauthenticated call is rejected, so an exposed port cannot act as your account.With OAuth enabled, bearer tokens are verified through the backend’s /auth/me; the anonymous opt-in does not bypass that verification.
The caller’s credential is forwarded to the AgentPhone REST API for validation. The optional anonymous mode instead uses the configured server API key.
| Var | Purpose |
|---|---|
PORT | HTTP port (default 3000) |
AGENTPHONE_API_KEY | Fallback API key when OAuth is off. Only used for callers that send no Authorization header when AGENTPHONE_ALLOW_ANONYMOUS=true |
AGENTPHONE_ALLOW_ANONYMOUS | Default off; ignored when OAuth is enabled. Set to true to let requests with no Authorization header act with the server's AGENTPHONE_API_KEY. Anyone who can reach the port then controls the account: put the server behind your own auth first |
MCP_OAUTH_CLIENT_ID | Enable OAuth; a gateway client pre-registered with the AgentPhone AS |
MCP_OAUTH_CLIENT_SECRET | Optional. Set = confidential gateway; unset = public client (gateway registered with token_endpoint_auth_method=none, advertises none downstream) |
AGENTPHONE_BASE_URL | API base (default https://api.agentphone.ai) |
AGENTPHONE_OAUTH_AUTHORIZE | Override authorize/consent URL (default https://agentphone.ai/oauth/authorize) |
AGENTPHONE_MCP_PUBLIC_URL | Public base URL this server is reached at, advertised in the /.well-known/mcp.json install manifest (e.g. https://mcp.agentphone.ai). If unset, it's derived from the request. |
| Dimension | Supported | ||
|---|---|---|---|
| Transports | stdio (default) and Streamable HTTP (set PORT / --http) | ||
| Tested runtime | Node `^20.19.0 \ | \ | >=22.12.0` (CI runs 20, 22, 24) |
| Clients | Any MCP client — verified with Cursor, Claude Desktop, Claude Code, Windsurf (stdio); Streamable-HTTP clients and remote agent platforms (HTTP) | ||
| Auth modes | stdio: AGENTPHONE_API_KEY. HTTP: per-request bearer, OAuth (Authorization Code + PKCE), or anonymous server-key fallback (AGENTPHONE_ALLOW_ANONYMOUS=true, OAuth off) | ||
| Channels | SMS and iMessage (send/receive); voice calls (webhook-driven or built-in AI) | ||
| Number types | US and Canada numbers |
make_call, make_conversation_call, and send_message do nothing unless confirm=true is passed — without it they return a preview of the full destination(s) and content (all group recipients, the complete message body, every media URL, and any interactive payload) for the user to approve first (the same two-step pattern buy_number uses). There is no bulk-send path that skips a person in the loop.list_voices includes a static voice-sample preview_audio_url, which is a library clip, not call audio.)| Tool | Description |
|---|---|
account_overview | Get a full snapshot of your account — agents, numbers, webhook, and usage |
get_usage | Get usage stats — number usage, billed SMS segments, and message/call/webhook volume. Use breakdown for daily or monthly time-series. |
| Tool | Description |
|---|---|
list_numbers | List all phone numbers in your account |
buy_number | Purchase a new phone number with optional area_code and agent_id |
| Tool | Description |
|---|---|
send_message | Send SMS, iMessage, or WhatsApp. Requires `confirm=true` (previews first — every message is individually authorized by the user). Supports media, threaded replies (reply_to_message_id), iMessage effects (send_style), existing groups (to_number) or new groups (recipients), and WhatsApp interactive content (channel=whatsapp with buttons/list/cta/template) |
check_capabilities | Check which channels a phone number can receive (iMessage / SMS / RCS) before sending |
check_readiness | Check a number is ready before sending/calling: active + assigned + channel-capable are hard blockers; A2P/10DLC registration and recipient reachability are warnings. Returns ready, blockers, warnings, and next steps (credit/concurrency are enforced at send time, not pre-checkable) |
get_messages | Get messages for a specific number. Page older history with cursor (from nextCursor); before/after are optional time filters. |
list_conversations | List SMS conversations. Pass agent_id to filter by agent. |
get_conversation | Get a conversation with a bounded tail of recent messages |
get_conversation_messages | Page through a conversation's full message history with cursor |
update_conversation | Set metadata on a conversation |
| Tool | Description |
|---|---|
list_contacts | List saved contacts (address book). Filter with a search term. |
manage_contact | Create, update, or delete a contact (set action) |
| Tool | Description |
|---|---|
list_calls | List calls. Scope by agent_id or number_id, or filter the account-wide list by status/direction/search. Scope and filters can't be combined. |
get_call | Get call details and transcript |
end_call | End an in-progress call (safe to retry; ending a finished call is a no-op) |
make_call | Place an outbound call (webhook-driven). Requires `confirm=true` (previews first — every call is individually authorized by the user). Supports recording, variables, model tier, and call-screening controls |
| make_conversation_call | Place a call with built-in AI conversation — no webhoo
Nur der Anfang wird gezeigt; den Rest findest du im Repo