MCP Reference

50 tools. 4 resources.
One secure bridge.

Streamable HTTP at https://zap.zaptdev.com/mcp. Protocol 2025-11-25. Cursor, Claude Desktop, Claude Messages API connector, Grok.

Connection

POST https://zap.zaptdev.com/mcp
Authorization: Bearer mcp_...   # or oat_... after OAuth
MCP-Protocol-Version: 2025-11-25
Content-Type: application/json
Accept: application/json, text/event-stream

MCP is auto-enabled when connect status reaches success. Defaults: allow_send=true, allow_read=true, allow_provision=false.

OAuth discovery: /.well-known/oauth-protected-resource · /.well-known/oauth-authorization-server · authorize at /oauth/authorize.

Claude Messages API — MCP connector

Use Anthropic’s remote MCP connector (beta mcp-client-2025-11-20) so Claude calls WAMCP tools from the Messages API without a local MCP client. You obtain a token first, then pass it as authorization_token.

# 1) Token: mcp_… from connect/portal, or oat_… via OAuth / MCP Inspector Quick OAuth Flow
# 2) Messages API (Python)
from anthropic import Anthropic
client = Anthropic()
resp = client.beta.messages.create(
    model="claude-opus-4-8",
    max_tokens=1000,
    messages=[{"role": "user", "content": "What WhatsApp tools do I have?"}],
    mcp_servers=[{
        "type": "url",
        "url": "https://zap.zaptdev.com/mcp",
        "name": "wamcp",
        "authorization_token": "mcp_… or oat_…",
    }],
    tools=[{"type": "mcp_toolset", "mcp_server_name": "wamcp"}],
    betas=["mcp-client-2025-11-20"],
)

Ready-made JSON lives in mcp_connection.anthropic_mcp_connector from GET /api/mcp/connection or tool whatsapp_get_mcp_connection. Denylist write tools with per-tool configs if you want a read-only assistant.

Claude Desktop / Web — custom connector (OAuth)

Settings → Connectors → Add custom connector → MCP URL https://zap.zaptdev.com/mcp. Claude runs OAuth 2.1 + PKCE against this host (DCR). The owner signs in with WhatsApp OTP and consents; a named agent is created in /portal.

Tool categories (50 tools)

CategoryTools
Messagingwhatsapp_send_message, whatsapp_reply_to_message, whatsapp_send_reaction, whatsapp_send_typing, whatsapp_list_messages, whatsapp_search_messages, whatsapp_get_chat, whatsapp_mark_chat_read, whatsapp_download_media, whatsapp_list_chats, whatsapp_list_contacts, whatsapp_list_groups, whatsapp_get_group_members
Session & syncwhatsapp_get_session_status, whatsapp_get_sync_status, whatsapp_wait_for_sync, whatsapp_health_check, whatsapp_resolve_recipient, whatsapp_get_mcp_connection, whatsapp_rotate_mcp_token, whatsapp_get_audit_log
Notificationswhatsapp_list_notifications, whatsapp_watch_notifications, whatsapp_get_unread_notification_count, whatsapp_mark_notification_read, whatsapp_mark_all_notifications_read
Lifecycle*whatsapp_reconnect, whatsapp_disconnect, whatsapp_connect_code, whatsapp_connect_qr, whatsapp_connect_kit, whatsapp_connect_status, whatsapp_enable_mcp

* Lifecycle tools require allow_provision=true (except reconnect/status on own session).

MCP resources

whatsapp://session
whatsapp://sync
whatsapp://notifications/unread
whatsapp://messages/{chat_jid}

Production skills & patterns

Start with /skills: Reactive Loop (using watch_notifications), Inbox Triage, Scheduled Digest, Memory Recall, Group Coordinator + reusable blueprints (approval gate, audit-after-action, resolve discipline). Full tool sequences, traces, and host configs.

Examples

Health check

// Tool: whatsapp_health_check
// No parameters. Returns connection, sync, MCP, notifications.

Send message

// Tool: whatsapp_send_message
{
  "recipient": "5511999999999",
  "content": "Hello from MCP"
}

Wait for sync

// Tool: whatsapp_wait_for_sync
{
  "wait_seconds": 120,
  "target_phase": "completed"
}

Connect kit (provision)

// Tool: whatsapp_connect_kit
// Requires allow_provision=true
{
  "phone_number": "5511999999999",
  "wait_seconds": 20
}

Cursor / Grok config snippet

{
  "mcpServers": {
    "whatsapp-PHONE": {
      "url": "https://zap.zaptdev.com/mcp",
      "headers": {
        "Authorization": "Bearer mcp_YOUR_TOKEN",
        "MCP-Protocol-Version": "2025-11-25"
      }
    }
  }
}