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.