MCP tools and resources reference
This page lists every tool, resource, and prompt exposed by the Keyban MCP server.
The authoritative source is the live OpenAPI document at https://api.prod.keyban.io/openapi.json — the bridge auto-registers every operation that carries an x-mcp-type annotation. This page mirrors that surface for offline reading. To configure a client, see Connect your AI assistant to the Keyban MCP server.
How to read this page
- Type —
Toolfor actions (POST / PATCH / DELETE),Resourcefor read-only data (GET). Resources whose path contains a parameter (e.g.{provider}) are exposed as MCP resource templates. - Method + Route — the underlying REST endpoint that the bridge proxies to. The bridge itself listens on
POST /mcp(port3334locally,https://mcp.keyban.io/mcpin production). - Auth —
org-userfor endpoints that require an authenticated organization caller (OAuth access token, API key or session);publicfor endpoints that accept anonymous access. The MCP bridge forwards theAuthorization,X-Api-KeyandCookieheaders of each request transparently — it never authenticates the caller itself.
For request and response schemas, follow the route to the Backend OpenAPI reference.
Where to start
The catalogue below is exhaustive. If you only want a sense of what the bridge can already do, here are the most useful entry points — each one is a real capability already wired up:
get_instructions— the guide an assistant follows with this server, from a fresh account to an installed agent wallet MCP (the keyban-admin skill).list_applications+lookup_application_id— navigate your Keyban applications by name. The second tool uses MCP elicitation when several apps match.get_quota_usage— read the org's monthly consumption so an assistant can self-monitor.
Applications
| Name | Type | Method + Route | Auth | Description |
|---|---|---|---|---|
list_applications | Resource | GET /v1/applications | org-user | List the applications owned by the current organization. |
get_application | Resource template | GET /v1/applications/{appId} | public | Fetch a specific application by ID. |
create_application | Tool | POST /v1/applications | org-user | Create a new application under the current organization. |
update_application | Tool | PATCH /v1/applications/{appId} | org-user | Update mutable application settings. |
delete_application | Tool | DELETE /v1/applications/{appId} | org-user | Remove an application and clean up associated resources. |
Agent wallets
| Name | Type | Method + Route | Auth | Description |
|---|---|---|---|---|
list_wallets | Resource | GET /v1/agent-wallets | org-user | List agent wallets for the current organization. |
get_wallet | Resource template | GET /v1/agent-wallets/{id} | org-user | Fetch a specific agent wallet by ID. |
get_wallet_balance | Resource template | GET /v1/agent-wallets/{id}/balance | org-user | Read what an agent wallet can pay with, one line per funding source. |
create_wallet | Tool | POST /v1/agent-wallets | org-user | Create a new agent wallet for an application. |
update_wallet | Tool | PATCH /v1/agent-wallets/{id} | org-user | Update the label of an agent wallet. |
delete_wallet | Tool | DELETE /v1/agent-wallets/{id} | org-user | Delete an agent wallet. |
x402 Discovery
| Name | Type | Method + Route | Auth | Description |
|---|---|---|---|---|
list_x402_services | Resource | GET /v1/x402/resources | org-user | List x402 services. Search and browse online services that accept x402 payments with full-text search and network/tag filters. |
get_x402_service | Resource template | GET /v1/x402/resources/{id} | org-user | Get one x402 service. Fetch a single x402 directory entry by ID. |
Organization
| Name | Type | Method + Route | Auth | Description |
|---|---|---|---|---|
get_organization | Resource template | GET /v1/organizations/{id} | org-user | Return the organization identified by ID. |
update_organization | Tool | PATCH /v1/organizations/{id} | org-user | Update mutable fields and settings of the active organization. |
Quota
| Name | Type | Method + Route | Auth | Description |
|---|---|---|---|---|
get_quota_usage | Resource | GET /v1/quotas/usage | org-user | Retrieve monthly quota usage data for the current organization. |
Events
| Name | Type | Method + Route | Auth | Description |
|---|---|---|---|---|
list_events | Resource | GET /v1/events | org-user | Paginated audit and quota events scoped to the caller organization. |
Bridge-only features
These capabilities are implemented inside the MCP bridge itself, not as REST proxies.
| Name | Kind | Source | Description |
|---|---|---|---|
get_instructions | Tool | backend/mcp/src/lib/registrar/instructions-service.ts | Return the guide to follow with the server, the keyban-admin skill, or the agent wallet guide with skill: "keyban-agent-wallet". |
lookup_application_id | Tool | backend/mcp/src/lib/registrar/application-lookup-service.ts | Resolve an application's UUID from its human-readable name. Supports exact and partial matching, with MCP elicitation when several applications match. |
prepare_demo_environment | Prompt | backend/mcp/src/lib/registrar/prompt-registry.ts | Runbook prompt that walks the assistant through seeding a sandbox with sample applications, loyalty tiers, and DPP data. |
Argument completion
The bridge auto-completes applicationId and appId arguments by querying /v1/applications (max 20 suggestions, ranked by ID exact-match first, then name substring). Source: backend/mcp/src/lib/registrar/server-introspection.ts.
Capabilities advertised to clients
The bridge advertises these MCP capabilities at handshake time (source: backend/mcp/src/index.ts):
| Capability | Supported | Notes |
|---|---|---|
tools | Yes | Listed above. |
resources | Yes | subscribe: false, listChanged: false — no live updates. |
prompts | Yes | listChanged: false. |
completions | Yes | Application ID lookup only. |
elicitation | Yes | Used by lookup_application_id for ambiguous matches. |
logging | No | The bridge does not stream server-side logs to the client. |
HTTP endpoints recap
| Endpoint | Purpose |
|---|---|
POST https://mcp.keyban.io/mcp | Production MCP entry point (StreamableHTTP transport). |
GET https://api.prod.keyban.io/openapi.json | Authoritative OpenAPI document the bridge consumes at boot. |
Out of scope
The bridge intentionally does not expose three families of endpoints.
Products other than the agent wallet
Digital Product Passports, Trust, loyalty, points of sale, invest, multisig treasury, imports, accounts, metrics and billing carry no x-mcp-* annotation: the bridge serves the agent wallet and what it needs. Use the admin dashboard or the REST API for them.
Super-admin endpoints
Endpoints decorated with @SuperAdminController() / @SuperAdminEndpoint() (backend/nestjs/src/auth/super-admin.decorator.ts) are excluded from the public OpenAPI document and therefore from the MCP surface. The exclusion is enforced by backend/nestjs/src/auth/super-admin-contract.spec.ts.
Out-of-scope super-admin domains include LLM usage analytics and pricing administration, Chargebee customer creation, plan synchronisation, overage synchronisation, pending-onboarding management, and platform-wide metrics. For platform administration, use the admin dashboard rather than the MCP bridge.
LLM endpoints (/v1/llm/*)
Chat completion and provider catalogue endpoints (POST /v1/llm/chat/completions, GET /v1/llm/providers, GET /v1/llm/providers/{provider}/models) are deliberately not exposed via MCP. An MCP client is already an LLM — proxying a chat completion through the bridge would be redundant and would double-bill the same call (once on the client side, once on the Keyban LLM quota).
LLM remains a Keyban-internal capability consumed by other controllers (e.g. content generation flows). The exclusion is enforced by backend/nestjs/src/auth/mcp-exposure-contract.spec.ts, which fails the build if any controller under backend/nestjs/src/llm/controllers/ regrows an x-mcp-* annotation.