MCP PROTOCOL JSON-RPC 2.0 STREAMABLE HTTP

How to connect an AI agent to Model Context Protocol (MCP).
Tested handshakes, bearer auth & live production tools.

A step-by-step developer guide for connecting Claude Code, OpenAI Codex, Cursor, Windsurf, or Python subagents to ELYRAON's live Model Context Protocol (MCP) server.

Published: 2026-11-09 Status: Live Production Endpoint Reading Time: 5 min

Direct Quickstart (30 Seconds)

ELYRAON provides an active production Model Context Protocol server at https://elyraon.com.co/agents/mcp using standard Streamable HTTP over JSON-RPC 2.0. Connecting requires three steps:

  1. Get a free trial bearer token: POST https://elyraon.com.co/agents/trial (20 free calls/day, no credit card required).
  2. Register the MCP server in your agent client (Claude Code, Codex, or Cursor).
  3. Invoke the live production tool: check_n8n_workflow to perform deterministic static workflow audits.

1. Step 1: Enroll for a Free Trial Bearer Token

Autonomous agents enroll programmatically via HTTP POST. Include your client source identifier:

bash · free trial enrollment
curl -s -X POST https://elyraon.com.co/agents/trial \
  -H "Content-Type: application/json" \
  -d '{"source": "direct_api", "campaign": "mcp-quickstart"}'

Sample JSON response:

{
  "token": "ely_9a8b7c6d5e4f3a2b1c0d9e8f7a6b5c4d",
  "client_id": "98bce142-7fa3-4211-9a42-d698e821034f",
  "free_calls_per_day": 20,
  "token_lifetime_days": 30,
  "mcp_url": "https://elyraon.com.co/agents/mcp"
}

2. Step 2: Configure Your Agent Client

A. Claude Code CLI

Run the official Claude Code CLI command to mount the server into your project:

claude mcp add --transport http elyraon-workflow-rescue \
  https://elyraon.com.co/agents/mcp \
  --header 'Authorization: Bearer YOUR_TOKEN'

B. OpenAI Codex / Cursor / Windsurf

Add the server configuration to your project's mcp.json or settings:

{
  "mcpServers": {
    "elyraon-workflow-rescue": {
      "url": "https://elyraon.com.co/agents/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_TOKEN"
      }
    }
  }
}

C. Python MCP SDK Client

import httpx

token = "YOUR_TOKEN"
mcp_url = "https://elyraon.com.co/agents/mcp"

headers = {
    "Authorization": f"Bearer {token}",
    "Idempotency-Key": "agent-step-001",
    "Content-Type": "application/json"
}

# Initialize JSON-RPC handshake
init_payload = {
    "jsonrpc": "2.0",
    "id": 1,
    "method": "initialize",
    "params": {
        "protocolVersion": "2025-11-25",
        "capabilities": {},
        "clientInfo": {"name": "workflow-rescue-client", "version": "1.0.0"}
    }
}
res = httpx.post(mcp_url, json=init_payload, headers=headers)
print("Initialized:", res.json())

3. Step 3: Call the Live Tool (`check_n8n_workflow`)

The public tool is check_n8n_workflow. It performs static analysis on sanitized n8n workflow JSON and reports findings; it does not execute workflows, test live credentials or APIs, prove runtime success, or issue a verified signed receipt. Read the current tool schema in your MCP client for the exact input and output fields.

curl -s -X POST https://elyraon.com.co/agents/mcp \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Idempotency-Key: check-001" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 2,
    "method": "tools/call",
    "params": {
      "name": "check_n8n_workflow",
      "arguments": {
        "workflow": {
          "nodes": [
            { "name": "Webhook Trigger", "type": "n8n-nodes-base.webhook", "id": "node_1" },
            { "name": "Filter Logic", "type": "n8n-nodes-base.if", "id": "node_2" }
          ],
          "connections": {
            "Webhook Trigger": {
              "main": [[{ "node": "Filter Logic", "type": "main", "index": 0 }]]
            }
          }
        }
      }
    }
  }'

4. Production Error Handling & Best Practices

  • Sanitize Before Sending: Remove production passwords, API tokens, and webhook secrets. Heuristic secret-pattern checks are not exhaustive and do not make it safe to upload sensitive workflow exports.
  • Use the Tool's Actual Limits: The trial advertises a 64 KiB request limit, at most 200 nodes, and 20 calls per client per day. Follow HTTP errors and retry guidance; do not retry in a tight loop.
  • Respect 429 Quotas: On HTTP 429, respect the Retry-After response header. Do not retry in tight loops.

Next Steps for Developers

Read our in-depth guide on workflow validation, download the MCP server specification, or visit the live Agent Hub.