Boltly Boltly / Docs
Docs / MCP Server

MCP Server

Boltly exposes every API endpoint as an MCP tool (Model Context Protocol). This means any AI agent — Claude, Cursor, or your own — can send messages, manage contacts, and trigger automations without writing glue code.


How it works

At startup, the Boltly backend parses its Swagger spec and auto-generates an MCP tool for every /public/ endpoint. Tools follow a {tag}_{action} naming convention:

contacts_list GET /v1/contacts
contacts_create POST /v1/contacts
messages_create POST /v1/messages
broadcasts_create POST /v1/broadcasts
broadcasts_execute POST /v1/broadcasts/{id}/execute

Tools are scope-filtered — an API key with contacts:read will only see contact read tools.


Listing available tools

cURL
curl https://api.boltly.online/v1/mcp/tools \
  -H "X-API-Key: sk_live_..."
Response
{
  "data": [
    {
      "name": "contacts_list",
      "description": "List contacts with optional search",
      "input_schema": {
        "type": "object",
        "properties": {
          "search": { "type": "string" },
          "page": { "type": "integer" }
        }
      }
    }
  ]
}

Calling a tool

Execute any tool by name with a JSON arguments object:

cURL
curl -X POST https://api.boltly.online/v1/mcp/tools/call \
  -H "X-API-Key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "name": "messages_create",
    "arguments": {
      "to": "+1234567890",
      "type": "text",
      "text": { "body": "Sent via MCP!" }
    }
  }'

The response is the raw JSON result from the underlying API endpoint. A 403 is returned if the API key lacks the required scope for the tool.


Using with Claude Code

Add Boltly as an MCP server in your Claude Code configuration. Claude will automatically discover all available tools based on your API key scopes.

.claude/settings.json
{
  "mcpServers": {
    "boltly": {
      "url": "https://api.boltly.online/v1/mcp",
      "headers": {
        "X-API-Key": "sk_live_..."
      }
    }
  }
}

Once configured, you can ask Claude to "send a WhatsApp message to +1234567890" and it will use the messages_create tool automatically.


Scope mapping

Tools inherit scope requirements from their underlying HTTP method:

GET {resource}:read
POST {resource}:write
PUT / PATCH {resource}:write
DELETE {resource}:manage