MCP server
Every model behind one MCP URL, with a spend cap you set.
Connect Claude, Cursor, VS Code, Codex, Cline or any MCP client to Kyma API. Sign in once with OAuth. Read the live catalog, prices, rankings, uptime and your own spend for free. Send chat completions through any model, up to a cap that starts at $10 per 30 days.
https://mcp.kymaapi.com/mcpHosted, remote, OAuth sign-in
Streamable HTTP with OAuth 2.1, PKCE and dynamic client registration. No API key is pasted into the client.
A dedicated key per connection
Separate from your REST API keys. Capped at $10 per 30 days by default, adjustable from $1 to $500, revocable at any time.
Read tools never charge
Catalog, pricing, rankings, uptime, your usage, your requests, credits and spend are free to call and auto-approved by most clients.
One tool spends, and it asks first
send_message is the only tool that spends credit. The client must allow it, max_cost_usd refuses anything above your ceiling before the call, and every reply reports the cost, the amount spent and the cap.
Measured uptime, not a promise
get_model_uptime returns the 30-day rate per model from real traffic and scheduled probes, the same numbers as the status page.
Beyond chat
The same Kyma key covers speech-to-text, text-to-speech, embeddings, rerank, image and video through the REST API.
Install
Paste the URL into your client. The first tool call opens the Kyma sign-in and the approval screen where you set the cap.
claude mcp add --transport http kyma https://mcp.kymaapi.com/mcp # then /mcp to sign in
Settings → Connectors → Add custom connector URL: https://mcp.kymaapi.com/mcp Sign in with Kyma when asked
// .cursor/mcp.json
{ "mcpServers": { "kyma": { "url": "https://mcp.kymaapi.com/mcp" } } }// .vscode/mcp.json
{ "servers": { "kyma": { "type": "http", "url": "https://mcp.kymaapi.com/mcp" } } }# ~/.codex/config.toml [mcp_servers.kyma] url = "https://mcp.kymaapi.com/mcp" codex mcp login kyma
// Cline → MCP Servers → Configure MCP Servers
{ "mcpServers": { "kyma": { "url": "https://mcp.kymaapi.com/mcp", "type": "streamableHttp" } } }gemini extensions install https://github.com/kyma-api/kyma-mcp-plugin
Connectors → add a custom connector URL: https://mcp.kymaapi.com/mcp Sign in with Kyma (OAuth)
Stdio-only client? npx -y @kyma-api/mcp-server bridges to the same server. Set KYMA_MCP_KEY to a Kyma MCP key (km-…) from /integrations to skip the browser.
Tools
18 tools. 16 appear on a default connection; list_keys and set_low_balance_alert appear when their optional scopes are granted on the approval screen.
| Tool | What it does | Scope | Approval |
|---|---|---|---|
| list_models | Compact catalog: total count plus prices, context window and capabilities per model, filterable by type/creator/search | models.read | auto, read-only |
| get_model | One model's full details | models.read | auto, read-only |
| list_pricing | Prices across the catalog | models.read | auto, read-only |
| list_rankings | Top models and apps from real traffic | models.read | auto, read-only |
| get_model_uptime | Measured 30-day uptime per model | models.read | auto, read-only |
| recommend_model | Best model and config for your coding agent | models.read | auto, read-only |
| search_docs | Search Kyma docs | models.read | auto, read-only |
| ping | Health check | models.read | auto, read-only |
| get_credits | Your balance | usage.read | auto, read-only |
| get_spend | This connection's cap, spent, remaining and reset date | usage.read | auto, read-only |
| get_usage | Your requests, tokens and cost by model over a window | usage.read | auto, read-only |
| get_request | One request by id: model served, tokens, cost, routes tried | usage.read | auto, read-only |
| estimate_cost | What a call would cost before you make it | models.read | auto, read-only |
| get_transactions | Recent credit ledger entries | usage.read | auto, read-only |
| get_topup_link | Balance and the billing page link | usage.read | auto, read-only |
| list_keys | Your REST keys by name, masked | keys.read (optional) | auto, read-only |
| set_low_balance_alert | Balance at which Kyma emails you | billing.alerts (optional) | asks once |
| send_message | A chat completion through any model; the only tool that spends | chat.completions | asks once |
Security and spend
- What a connection can do: read the catalog, prices, rankings, uptime, your balance and this connection's spend; send chat completions up to its cap; with optional scopes, list your keys masked and set a low-balance alert.
- What it can never do: create or delete API keys, change billing, buy credits, register accounts or see provider internals. Those scopes do not exist on this server.
- Spend cap: enforced on the server. When it is reached, send_message returns an error until the 30-day window resets or you raise the cap on /integrations.
- Tokens and keys: access tokens live 7 days, refresh tokens 90 days and rotate on use; connection keys are stored hashed and can be revoked without touching your REST keys.
- Prompt injection: model output that reaches your agent is untrusted text. Keep your client's confirmation prompt on for send_message.
- Data: request logs are kept 90 days for billing reconciliation and abuse handling, then deleted. Kyma does not train on customer data. Privacy policy.
Try these once connected
- Which models under $1 per million output tokens have the best 30-day uptime?
- Recommend a model and config for Cline, then show its price.
- How much of this connection's budget is left, and when does it reset?
- What would this prompt cost on qwen-3.6-plus before I send it?
- What did I spend by model in the last 7 days?
- Send 'summarize this in one line' to qwen-3.6-plus and tell me what it cost.
Where else it is listed
Official MCP Registry as com.kymaapi/kyma, Smithery as kyma-api/kyma, npm as @kyma-api/mcp-server, and the Gemini CLI extensions gallery. Source, manifests and skills: github.com/kyma-api/kyma-mcp-plugin. Guide: docs.kymaapi.com/guides/mcp-server. Questions: hello@kymaapi.com.