@usethrottle/mcp
v0.2.0
Published
Model Context Protocol server for Throttle — let AI assistants read your commerce data, debug integrations, and search the docs
Maintainers
Readme
@usethrottle/mcp
Model Context Protocol server for Throttle. Connects Claude Code, Claude Desktop, Cursor, and any other MCP client to your commerce data, your event log, and the Throttle developer docs.
Full documentation: https://docs.usethrottle.dev/developers/mcp
Install
# Claude Code
claude mcp add throttle -e THROTTLE_API_KEY=sk_uat_... -- npx -y @usethrottle/mcpOr, for any client that reads an mcpServers config:
{
"mcpServers": {
"throttle": {
"command": "npx",
"args": ["-y", "@usethrottle/mcp"],
"env": { "THROTTLE_API_KEY": "sk_uat_..." }
}
}
}The key pins the workspace, application and environment; there is no way to switch
from inside a tool call. Mint a dedicated key holding only the scopes the
assistant needs, and start with a non-production environment. Publishable (pk_)
keys are rejected — they carry only browser-safe compute scopes and cannot read
data.
Tools
Registration is scope-driven: a read-only key produces a read-only toolset rather than tools that fail when called.
| Tool | What it answers |
| --- | --- |
| whoami | Which workspace/application/environment am I connected to, and is it production? |
| search_docs | Full-text search over the developer docs, with canonical links. |
| describe_endpoint | The request shape of an endpoint, from the published OpenAPI contract. |
| validate_payload | Is this request body valid? Names retired fields and their camelCase replacements. |
| api_get | GET-only escape hatch for any /api/v1 path. Cannot write. |
| search_orders / get_order | Order lists, and one order with its payments, returns and fulfillments. |
| search_customers / get_customer | Customer lists, and one customer with addresses and subscriptions. |
| list_subscriptions / get_subscription | Subscription state. |
| search_quotes / get_quote | Quotes and their buyer-link state. |
| list_invoices / receivables_aging | Issued invoices and what is overdue. |
| search_events | The immutable event log, by type or entity. |
| list_webhook_deliveries / get_webhook_delivery | Outbound deliveries: payload sent, response received, attempts. |
| explain_checkout_failure | Session, cart, events and deliveries for one failing checkout, in a single call. |
| get_integration_status | Connectors, webhook endpoints, delivery health — "am I ready to go live?" |
| get_business_summary | Orders/revenue, subscription MRR, receivables and quotes pipeline for a week/month/quarter, compared to the prior period. |
| get_attention_digest | Open disputes, subscriptions in dunning, overdue Net-N invoices, and webhooks with degraded delivery health — right now, not a range. |
| seed_test_data | A customer, cart, line items and a draft order. Refuses to run against production. |
Writes
This release is read-only against real data; sandbox seeding is the sole exception and is refused outright on a production credential.
Write tools (quotes, refunds, subscription changes, webhook replay) land in the
next release behind --allow-writes, with a second --allow-live-writes gate for
production keys and an idempotency key on every call.
Options
| Flag | Default |
| --- | --- |
| --api-key <key> | THROTTLE_API_KEY |
| --api <url> | THROTTLE_API_URL, else https://api.usethrottle.dev |
| --allow-writes | off (reserved for the write tools above) |
| --allow-live-writes | off |
A key belongs to one environment. To expose both production and a sandbox environment, add two server entries with different keys and distinct names.
