Agent & MCP API

Connect AI agents and MCP-compatible clients (Claude Desktop, Cursor, Windsurf) to manage websites programmatically.

Get your API key

MCP Endpoint

EscalateFlow implements a Model Context Protocol server over HTTP. Any MCP-compatible client can discover and call tools via a single JSON-RPC 2.0 endpoint.

POST https://escalateflow.com/api/v1/mcp/

Headers

HeaderValue
AuthorizationBearer ef_live_xxxxxxxxxxxxxxxxxxxx
Content-Typeapplication/json

All requests use JSON-RPC 2.0 format: {"jsonrpc": "2.0", "method": "...", "params": {...}, "id": 1}

MCP Methods

initialize

Handshake. Returns server info and capabilities. Call this first.

Request

{
  "jsonrpc": "2.0",
  "method": "initialize",
  "params": {},
  "id": 1
}

Response

{
  "jsonrpc": "2.0",
  "result": {
    "protocolVersion": "2024-11-05",
    "serverInfo": {"name": "escalateflow", "version": "1.0.0"},
    "capabilities": {"tools": {}, "resources": {}}
  },
  "id": 1
}

tools/list

Discover available tools with their names, descriptions, and input schemas.

{
  "jsonrpc": "2.0",
  "method": "tools/list",
  "params": {},
  "id": 2
}
{
  "jsonrpc": "2.0",
  "result": {
    "tools": [
      {
        "name": "escalateflow_pages_list",
        "description": "[pages] List all pages for a website",
        "inputSchema": {
          "type": "object",
          "properties": {
            "project_id": {"type": "string", "description": "Website/project UUID"}
          },
          "required": ["project_id"]
        }
      }
    ]
  },
  "id": 2
}

tools/call

Execute a tool. Tool names follow the pattern escalateflow_{tool}_{action}.

{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "escalateflow_pages_list",
    "arguments": {
      "project_id": "uuid-here"
    }
  },
  "id": 3
}
{
  "jsonrpc": "2.0",
  "result": {
    "content": [{"type": "text", "text": "[{\"slug\": \"home\", ...}]"}],
    "isError": false
  },
  "id": 3
}

resources/list

List your websites as MCP resources.

{
  "jsonrpc": "2.0",
  "method": "resources/list",
  "params": {},
  "id": 4
}
{
  "jsonrpc": "2.0",
  "result": {
    "resources": [
      {
        "uri": "escalateflow://projects/uuid-here",
        "name": "My Website",
        "mimeType": "application/json"
      }
    ]
  },
  "id": 4
}

Agent Orchestrator

Send natural-language instructions and let the server decompose them into tool calls automatically.

POST /api/v1/projects/{project_id}/agent/

Execute an agent instruction against a project.

{
  "instruction": "Create an about page with our company story and team photos"
}
GET /api/v1/projects/{project_id}/agent/{request_id}/

Check status of an agent request.

GET /api/v1/projects/{project_id}/agent/history/

List recent agent requests for a project.

GET /api/v1/agent/tools/

List all available agent tools and their schemas.

Batch Operations

Execute multiple API operations in a single request. Useful for reducing round-trips when building or updating a site.

POST /api/v1/projects/{project_id}/batch/
{
  "operations": [
    {"method": "POST", "path": "/pages/", "body": {"title": "About", "slug": "about", "html": "..."}},
    {"method": "POST", "path": "/pages/", "body": {"title": "Contact", "slug": "contact", "html": "..."}},
    {"method": "PUT", "path": "/settings/", "body": {"name": "Updated Site Name"}}
  ]
}

Each operation uses a path relative to /api/v1/projects/{project_id}/. Max 20 operations per batch.

Skills

Skills are predefined instruction sets that agents can use as context. They provide domain knowledge about EscalateFlow's API patterns.

GET /api/v1/agent/skills/

List available skill files.

GET /api/v1/agent/skills/{skill_name}/

Get skill content by name. Feed this to your AI agent as system context.

Client Configuration

Example configurations for popular MCP clients.

Claude Desktop / Cursor

Add to your MCP client config (e.g. claude_desktop_config.json):

{
  "mcpServers": {
    "escalateflow": {
      "url": "https://escalateflow.com/api/v1/mcp/",
      "headers": {
        "Authorization": "Bearer ef_live_xxxxxxxxxxxxxxxxxxxx"
      }
    }
  }
}

Get your API key: Go to Dashboard → Settings → API Keys or call POST /api/v1/keys/ to create one programmatically.

cURL Example

curl -X POST https://escalateflow.com/api/v1/mcp/ \
  -H "Authorization: Bearer ef_live_xxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"initialize","params":{},"id":1}'