Connecting clients

Validate with curl

Before wiring up a GUI client, confirm your key reaches the server and tools come back. The Streamable HTTP transport requires an Accept header listing both application/json and text/event-stream.

1. Initialize

curl -i https://mcp.pocketpart.io/mcp \
  -H "Authorization: Bearer pp_mcp_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{
    "jsonrpc": "2.0", "id": 1, "method": "initialize",
    "params": {
      "protocolVersion": "2025-06-18",
      "capabilities": {},
      "clientInfo": { "name": "curl-test", "version": "1.0.0" }
    }
  }'

Healthy: HTTP 200 and a JSON-RPC result with serverInfo and a capabilities object advertising tools.

2. List tools

curl -s https://mcp.pocketpart.io/mcp \
  -H "Authorization: Bearer pp_mcp_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'

Healthy: a result.tools array. You always see the core tools (echo, ping, _status, web_search, …) plus whatever your packs unlock. Only seeing core tools means your plan/packs aren’t enabling the rest — an entitlement result, not a connection failure.

3. Call a tool

curl -s https://mcp.pocketpart.io/mcp \
  -H "Authorization: Bearer pp_mcp_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"ping","arguments":{}}}'

Run _status instead of ping to see your org, plan, enabled packs, key prefix, and current-month usage.

What failure looks like

401 with a JSON-RPC Unauthorized → key missing, wrong, revoked, expired, or no Bearer  prefix. 406 / an Accept transport error → you omitted text/event-stream. A successful connect but near-empty tool list → a plan/pack entitlement issue. More in Troubleshooting.