WTF Voice API Reference MCP Server Get an API key

MCP Server

Connect Claude, Cursor, or any MCP-compatible client to WTF Voice and drive your workspace end-to-end from your assistant — build agents, attach knowledge bases and phone numbers, dispatch calls, run campaigns, and read results, all with a single scoped API key.

What it is

WTF Voice exposes a Model Context Protocol (MCP) server over Streamable HTTP. An AI assistant connected to it can call the WTF Voice tools directly. Every non-builder tool is scope-gated and organization-scoped: the key's scopes decide which tools it may call, and every operation is bound to the organization that minted the key — a reference to another organization's resource resolves to a clean not found with no data leak.

Connection

https://app.voice.wtflabs.ai/api/v1/mcp/

Authenticate with an API key minted at /api-keys, sent as Authorization: Bearer <key> (an X-API-Key header also works). The key's scopes gate which tools you can call. The endpoint and a copy-paste client config are also shown in the MCP tab of the in-app Developer Portal.

Add to your client

Claude Code

claude mcp add --transport http wtfvoice https://app.voice.wtflabs.ai/api/v1/mcp/ \
  --header "Authorization: Bearer YOUR_API_KEY"

Then verify it connected:

claude mcp list

Claude Desktop & Cursor

Add the wtfvoice entry under mcpServers in your client config, then restart the client:

{
  "mcpServers": {
    "wtfvoice": {
      "url": "https://app.voice.wtflabs.ai/api/v1/mcp/",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

Any MCP client that supports Streamable HTTP transport connects with the same URL and header.

Tool catalog

Every tool exposed by the MCP server, grouped by domain. Each public tool requires the scope shown — a call without that scope is rejected before any work is done. The first-party Workflow builder and Docs tools predate the public scope model and are gated by session auth rather than a mintable scope (shown as ).

Agents

ToolDescriptionScope
create_agentCreate a voice agent from an explicit configagents:write
create_agent_from_briefCreate a voice agent from a natural-language briefagents:write
list_agentsList the organization's agentsagents:read
get_agentFetch a single agent by idagents:read
update_agentUpdate an existing agentagents:write

Calls

ToolDescriptionScope
dispatch_callTrigger an outbound call from an agentcalls:dispatch
get_callRead the status and result of a callcalls:read
list_callsList recent calls for the organizationcalls:read

Campaigns

ToolDescriptionScope
create_campaignCreate a campaign from a batch of contactscampaigns:write
campaign_actionPause, resume, or stop a campaigncampaigns:write
get_campaignRead a campaign's configuration and statecampaigns:read
get_campaign_resultsRead a campaign's analytics and resultscampaigns:read

Knowledge base

ToolDescriptionScope
create_knowledge_baseCreate a knowledge base for RAGkb:write
attach_knowledge_baseAttach a knowledge base to an agentkb:write
list_knowledge_basesList available knowledge baseskb:read

Phone numbers

ToolDescriptionScope
list_phone_numbersList provisioned phone numbersnumbers:read
get_phone_numberFetch a single phone number by idnumbers:read
attach_number_to_agentBind a phone number to an agentnumbers:write

Workflow builder (first-party, session-auth)

ToolDescriptionScope
create_workflowCreate a new workflow
save_workflowPersist changes to a workflow
get_workflowFetch a workflow definition
list_workflowsList workflows
list_node_typesList available workflow node types
get_node_typeFetch the schema for a node type

Docs

ToolDescriptionScope
search_docsSearch the product documentation
list_docsList available documentation pages
read_docRead a single documentation page
catalogEnumerate the full MCP tool catalog

Example prompts

Once connected, drive WTF Voice from your assistant in plain English:

The API key controls which workspace the assistant sees and what it can do. Treat it like any other credential — grant only the scopes the assistant needs, and never commit it to source control or paste it into shared chats.
Agent edits are saved as a new draft version — your published agent keeps serving calls until you explicitly publish the draft from the WTF Voice UI.

→ Browse the full REST endpoints in the API Reference.