Andy Developer Docs
MCP

Generic JSON

Streamable HTTP / remote MCP client config and raw JSON-RPC probe for Andy.

Outcome

Connect any Streamable HTTP MCP client that accepts a URL + headers map, or run the reference handshake with curl.

Install

Streamable HTTP / remote MCP clients that accept a URL + headers map:

{
  "mcpServers": {
    "andy": {
      "url": "https://app.andypartner.com/api/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_ANDY_API_KEY"
      }
    }
  }
}

Raw JSON-RPC probe (optional; clients normally handle initialize + session + protocol version). This is the reference handshake for client authors:

export ANDY_API_KEY='YOUR_ANDY_API_KEY'
MCP_URL='https://app.andypartner.com/api/mcp'
PROTO='2025-06-18'

# 1) initialize → capture Mcp-Session-Id response header
curl -sS -D /tmp/andy-mcp-headers.txt -o /tmp/andy-mcp-init.json -X POST "$MCP_URL" \
  -H "Authorization: Bearer $ANDY_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "MCP-Protocol-Version: $PROTO" \
  -d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"$PROTO\",\"capabilities\":{},\"clientInfo\":{\"name\":\"andy-mcp-probe\",\"version\":\"0.1.0\"}}}"

SESSION=$(awk 'BEGIN{IGNORECASE=1}/^mcp-session-id:/{print $2}' /tmp/andy-mcp-headers.txt | tr -d '\r')
test -n "$SESSION" || { echo "missing Mcp-Session-Id"; cat /tmp/andy-mcp-headers.txt /tmp/andy-mcp-init.json; exit 1; }

# 2) notifications/initialized (required after initialize; server returns 202)
curl -sS -o /tmp/andy-mcp-initialized.json -w '%{http_code}\n' -X POST "$MCP_URL" \
  -H "Authorization: Bearer $ANDY_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "MCP-Protocol-Version: $PROTO" \
  -H "Mcp-Session-Id: $SESSION" \
  -d '{"jsonrpc":"2.0","method":"notifications/initialized"}'

# 3) tools/list
curl -sS -X POST "$MCP_URL" \
  -H "Authorization: Bearer $ANDY_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "MCP-Protocol-Version: $PROTO" \
  -H "Mcp-Session-Id: $SESSION" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'

# 4) tools/call andy_identity_status
curl -sS -X POST "$MCP_URL" \
  -H "Authorization: Bearer $ANDY_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "MCP-Protocol-Version: $PROTO" \
  -H "Mcp-Session-Id: $SESSION" \
  -d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"andy_identity_status","arguments":{}}}'

Success shape (abridged): structuredContent.data.status === "ready" and structuredContent.meta.requestId present (prefix mcp-).

Next step

See Auth and scopes and the Tool catalog.

On this page