Skip to main content
The Zavu MCP Server enables AI assistants like Claude, Cursor, and others to interact directly with the Zavu API. Send messages, manage templates, create broadcasts, and more through natural language.

Quick Start

Run the MCP Server directly via npx:
export ZAVUDEV_API_KEY="Your API Key"
npx -y @zavudev/sdk-mcp@latest

Installation by Client

Claude Desktop

Add to your Claude Desktop configuration file:
// ~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "zavudev_sdk_api": {
      "command": "npx",
      "args": ["-y", "@zavudev/sdk-mcp", "--client=claude", "--tools=dynamic"],
      "env": {
        "ZAVUDEV_API_KEY": "Your API Key"
      }
    }
  }
}

Cursor

Click the button below to install the MCP server in Cursor. You’ll need to set your API key in Cursor’s mcp.json (Settings > Tools & MCP > New MCP Server). Add to Cursor Or add manually:
{
  "mcpServers": {
    "zavudev_sdk_api": {
      "command": "npx",
      "args": ["-y", "@zavudev/sdk-mcp", "--client=cursor", "--tools=dynamic"],
      "env": {
        "ZAVUDEV_API_KEY": "Your API Key"
      }
    }
  }
}

VS Code

Click the link below to install. Set your API key via Command Palette > MCP: Open User Configuration. Install in VS Code

Claude Code

Run in your terminal:
claude mcp add --transport stdio zavudev_sdk_api --env ZAVUDEV_API_KEY="Your API Key" -- npx -y @zavudev/sdk-mcp

Tool Exposure Modes

There are three ways to expose API endpoints as tools:

Static Tools (Default)

Exposes one tool per API endpoint. Best for focused use cases where you know which endpoints you need.

Dynamic Tools

Use --tools=dynamic to expose tools that discover and invoke endpoints on-demand:
ToolDescription
list_api_endpointsDiscovers available endpoints with optional filtering
get_api_endpoint_schemaGets detailed schema for a specific endpoint
invoke_api_endpointExecutes any endpoint with parameters
This keeps context lightweight while providing full API access.

Code Execution

Use --tools=code to expose:
ToolDescription
search_docsSearches API documentation
executeRuns code against the TypeScript client
This allows the AI to implement complex logic by chaining API calls.

Filtering Endpoints

Filter which tools are exposed:
# Filter by resource
--resource=messages --resource=templates

# Filter by operation type
--operation=read   # Only get/list operations
--operation=write  # Only create/update/delete operations

# Include specific tools
--tool=send_messages --tool=list_templates

# Exclude specific tools
--no-tool=delete_senders

# Combine filters
--resource=messages --operation=read --no-tool=list_messages
Use --list to see all available tools.

Client Configuration

Specify your MCP client for optimized compatibility:
--client=claude
--client=claude-code
--client=cursor
--client=openai-agents
For advanced configuration, use capabilities:
--capability=top-level-unions
--capability=tool-name-length=40
--capability=refs
--capability=unions

Running Remotely

Launch as a remote HTTP server:
npx -y @zavudev/sdk-mcp --transport=http --port=3000
Configure clients to connect:
{
  "mcpServers": {
    "zavudev_sdk_api": {
      "url": "http://localhost:3000",
      "headers": {
        "Authorization": "Bearer <your-api-key>"
      }
    }
  }
}
Query parameters work for filtering: http://localhost:3000?resource=messages&operation=read

Available Tools

Messages

ToolTypeDescription
send_messageswriteSend SMS, WhatsApp, or email messages
retrieve_messagesreadGet message by ID
list_messagesreadList sent messages
react_messageswriteSend emoji reaction to WhatsApp message

Templates

ToolTypeDescription
create_templateswriteCreate WhatsApp message template
retrieve_templatesreadGet template details
list_templatesreadList all templates
delete_templateswriteDelete a template
submit_templateswriteSubmit template for Meta approval

Senders

ToolTypeDescription
create_senderswriteCreate sender profile
retrieve_sendersreadGet sender details
update_senderswriteUpdate sender
list_sendersreadList all senders
delete_senderswriteDelete sender
get_profile_sendersreadGet WhatsApp Business profile
update_profile_senderswriteUpdate WhatsApp Business profile
upload_profile_picture_senderswriteUpload profile picture
regenerate_webhook_secret_senderswriteRegenerate webhook secret

Contacts

ToolTypeDescription
retrieve_contactsreadGet contact by ID
update_contactswriteUpdate contact
list_contactsreadList all contacts
retrieve_by_phone_contactsreadGet contact by phone number

Broadcasts

ToolTypeDescription
create_broadcastswriteCreate broadcast campaign
retrieve_broadcastsreadGet broadcast details
update_broadcastswriteUpdate draft broadcast
list_broadcastsreadList all broadcasts
delete_broadcastswriteDelete draft broadcast
send_broadcastswriteStart sending broadcast
cancel_broadcastswriteCancel active broadcast
progress_broadcastsreadGet real-time progress
add_broadcasts_contactswriteAdd contacts to broadcast
list_broadcasts_contactsreadList broadcast contacts
remove_broadcasts_contactswriteRemove contact from broadcast

Phone Numbers

ToolTypeDescription
search_available_phone_numbersreadSearch numbers to purchase
purchase_phone_numberswritePurchase a phone number
retrieve_phone_numbersreadGet phone number details
update_phone_numberswriteUpdate phone number
list_phone_numbersreadList owned numbers
release_phone_numberswriteRelease a phone number

Introspect

ToolTypeDescription
validate_phone_introspectwriteValidate phone and check WhatsApp window

Usage Examples

Once configured, ask your AI assistant:
  • “Send an SMS to +1234567890 saying ‘Hello from Zavu’”
  • “List my WhatsApp templates”
  • “Create a broadcast campaign for Black Friday”
  • “Check the progress of my current broadcast”
  • “Search for available US phone numbers”

Learn More