mcpField
C
clawcall

clawcall

Remote
clawcall.devCommunication9Updated 2w ago

About clawcall

clawcall wraps the ClawCall REST API as MCP tools for AI agents that need to place real US phone calls. It supports call-status polling and transcripts, with both non-blocking calls and a single-call wait option.

Key features

  1. 01Place outbound US calls
  2. 02Retrieve call status and transcripts
  3. 03Wait for a single call to finish
  4. 04Share identity and API-key storage

Use cases

  1. 01Call businesses to ask about quotes or availability
  2. 02Navigate phone menus to reach an organization
  3. 03Review transcripts against a call task

MCP support

This stdio MCP server exposes the ClawCall REST API as tools. The README identifies it as a legacy local transport and recommends the hosted OAuth MCP connector for new integrations.

Configuration

Remote servers need no local install. Pick your client, then copy the config or install in one click.

Endpointhttps://api.clawcall.dev/mcp
Copy install command
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.

Packages
npm@clawcall/mcp0.1.0

Tools

Details

From the project README

@clawcall/mcp

Important

Legacy local transport. New integrations should use ClawCall's hosted OAuth MCP connector at https://api.clawcall.dev/mcp. This stdio package remains available for existing local/API-key installations, but it is not the connector submitted to the official xAI marketplace.

MCP server wrapping the ClawCall REST API for AI-powered US phone calls.

ClawCall places real outbound phone calls in the US (+1 only). This package is a stdio MCP server that exposes the ClawCall REST contract as tools any MCP host (Claude Code, Claude Desktop, Cursor, Windsurf) can call. It is a stateless client over the public API at https://api.clawcall.dev — it imports nothing from the ClawCall server.

Install / register

Add the server to your MCP client config:

{ "mcpServers": { "clawcall": { "command": "npx", "args": ["-y", "@clawcall/mcp"], "env": { "CLAWCALL_API_KEY": "optional", "CLAWCALL_BASE_URL": "https://api.clawcall.dev" } } } }

Or, for Claude Code, the one-liner:

claude mcp add clawcall -- npx -y @clawcall/mcp

The env block is optional. The ClawCall server self-provisions an API key on the first call: an anonymous place_call auto-issues a proto-key, which this server captures and persists. You do not need to set CLAWCALL_API_KEY to get started.

Identity sharing

This MCP server reads and writes the same ~/.config/clawcall/key.json file ({ "api_key": "...", "user_phone_number": "..." }) that the ClawCall agent skill uses. Running both the skill and this MCP server does not fork your identity — they share one key, one trial quota, one call history, and one balance.

If CLAWCALL_API_KEY is set in the environment, it shadows the file (an operator / CI override). The saved file is otherwise the source of truth, and the proto-key issued on your first call is persisted there automatically (preserving any saved user_phone_number).

The workflow

A call runs for several minutes. The load-bearing loop is:

  1. place_call — returns a call_id immediately. Does not block.
  2. Poll get_call every 3 seconds until lifecycle === "finalized".
  3. outcome is the phone-network result (answered / no_answer / busy / …), NOT task success. An answered call can still fail the task.
  4. Read the transcript with get_call_transcript and judge it against the task you set.

Choosing a tool

  • place_call_and_wait is the single-foreground-call shortcut: it places the call and internally polls until finalized or a hard cap (~180 s, ceiling 240 s). On the cap it degrades to the non-blocking contract — it returns { still_running: true, call_id, … } and you continue with get_call. Use it when you want one call's result in one shot.
  • Campaigns — 3–4 parallel, interchangeable, info-gathering-only calls (quotes, availability, inventory, policy comparison) — use place_call + get_call fan-out. Never use the blocking tool for campaigns. Never parallelize calls that book / buy / cancel / commit.

Caveats

  • greeting does NOT set the agent's first spoken line. It is outbound-opener context only. The agent's actual opening line is a hardcoded recording disclosure on the server.
  • 402 errors are PERMANENT gating, not retryable. trial_exhausted, plan_required, and reserved_number_required mean a human must act. Forward the returned action.url / sign_in_url verbatim (they are personalized and embed your proto-key). Do not retry.

Trial limits are read from the live quota object in the error envelope — they are never hardcoded in this package, so the displayed numbers always match the server.

Environment variables

VariableDefaultPurpose
CLAWCALL_BASE_URLhttps://api.clawcall.devClawCall REST API base URL.
CLAWCALL_FRONTEND_URLhttps://clawcall.devFrontend base used to build sign-in / account-link URLs.
CLAWCALL_API_KEY(unset)Optional operator override. Shadows the saved key file.
CLAWCALL_WAIT_DEFAULT180Default cap (seconds) for place_call_and_wait.
CLAWCALL_WAIT_CEILING240Maximum allowed cap (seconds) for place_call_and_wait.

More

  • skill-companion/MCP-COMPANION.md — companion note for the ClawCall skill describing how the two share identity and workflow.
  • ../skill/SKILL.md — the ClawCall agent skill (the procedural layer; this MCP server is the connectivity layer over the same REST API).

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.