Connect via MCP & SDKs
Your tengu_ key works over three interfaces — the raw REST API, the Model Context Protocol
(for AI agents like Claude), and generated SDKs. All three authenticate the same way, debit the
same credit wallet, and honor the same tier gating. Pick whichever fits your stack.
Model Context Protocol (MCP)#
A hosted MCP server exposes the FIRM tool catalogue to AI agents over the Model Context Protocol (Streamable HTTP), so Claude and other agents can call live market & quant data directly.
| Server URL | https://firm.tengu.co/mcp |
| Transport | MCP Streamable HTTP (JSON-RPC 2.0) |
| Auth | your tengu_ key as the X-API-Key header |
| Tools | the public data catalogue — each call is metered and tier-gated exactly like REST |
claude.ai / Claude web (recommended)#
Settings → Connectors → Add custom connector → set the URL to https://firm.tengu.co/mcp and
add an X-API-Key header with your key. This is the most reliable path for a hosted,
header-authenticated MCP server.
Claude Desktop#
Desktop launches MCP servers as local processes, so bridge to the hosted endpoint with
mcp-remote in claude_desktop_config.json — it
forwards your auth header:
1{2 "mcpServers": {3 "tengu-firm": {4 "command": "npx",5 "args": ["-y", "mcp-remote", "https://firm.tengu.co/mcp",6 "--header", "X-API-Key:tengu_YOUR_KEY"]7 }8 }9}Check the endpoint is reachable (listing tools needs no key):
1curl -s -X POST https://firm.tengu.co/mcp \2 -H 'Content-Type: application/json' \3 -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | jq '.result.tools | length'Once connected, ask Claude something like "use tengu-firm to pull Ford's recent bond prints" and it will call the matching tool, billed to your wallet.
OpenAPI spec#
A curated public OpenAPI 3.1 spec — only the advertised public tools, never internal or admin routes — is served at:
https://firm.tengu.co/api/openapi.json(no key needed to fetch the spec)
Load it into Swagger UI, Redoc, or Postman, or lint it:
npx @redocly/cli lint https://firm.tengu.co/api/openapi.jsonSDKs#
Published, ready-to-install clients for both languages — same auth, same wallet, same tier gating:
1pip install tengu-firm # Python (import as: import tengu_firm)2npm i tengu-firm # TypeScript / JavaScriptPrefer to generate the client yourself, or pin it to the live spec? Codegen either language:
1# Python2openapi-generator generate -i https://firm.tengu.co/api/openapi.json \3 -g python -o tengu-python --additional-properties=packageName=tengu_firm,projectName=tengu-firm4 5# TypeScript6openapi-generator generate -i https://firm.tengu.co/api/openapi.json \7 -g typescript-axios -o tengu-tsNo SDK required to start — the API is plain HTTP + JSON, so any client works:
1import requests2 3r = requests.get(4 "https://firm.tengu.co/api/v3/credit/bonds/F",5 headers={"Authorization": "Bearer tengu_YOUR_KEY"},6)7print(r.json()["rows"][:3])MCP, the OpenAPI spec, and /api/capabilities are all generated from the same catalogue, so
they can never advertise different tools.