Bonds API

MCP

Connect an agent to Bonds API

Seven tools for sovereign yields, spreads, and curves. The server is https://mcp.bonds-api.com/mcp. Without a credential, initialize and tools/list answer 401 so the client knows auth is required. That is not a browser login.

Tools

Authentication

Two credentials work. There is no browser login and no public client ID to paste.

?apikey= on the MCP URL is accepted and forwarded as X-API-Key, but Claude Desktop and claude.ai strip query credentials from the saved connector URL. Do not use npx or mcp-remote.

Claude

  1. Settings → Connectors → Add custom connector.
  2. Name: Bonds API. Remote server URL: https://mcp.bonds-api.com/mcp. No key in the URL.
  3. Claude will notice the 401 and may offer to connect. There is no Bonds login screen behind that button, and no client ID to fill in. Use Claude Code (or Cursor) to send X-API-Key.
claude mcp add --transport http bonds-api https://mcp.bonds-api.com/mcp --header "X-API-Key: YOUR_API_KEY"

Cursor

Cursor Settings → MCP, or ~/.cursor/mcp.json. Header, not query string.

{
  "mcpServers": {
    "bonds-api": {
      "url": "https://mcp.bonds-api.com/mcp",
      "headers": {
        "X-API-Key": "YOUR_API_KEY"
      }
    }
  }
}

ChatGPT

Settings → Connectors → custom MCP connector, remote URL https://mcp.bonds-api.com/mcp. Do not proxy this endpoint through the OpenAI API. A connector that only knows browser OAuth cannot attach an X-API-Key header; use Cursor or Claude Code for keyed calls.

FAQ

Why does initialize return 401? So clients know a credential is required before listing tools. tools/call does not 401: a missing key comes back as a tool error.

Does a call count against my quota? Yes. Each tool call is one REST request.

Discovery: /.well-known/mcp.json. Token details: /auth.md.