Skip to content
kenari.

MCP server

kenari runs a Model Context Protocol server that gives an agent the kenari documentation, the live model list, your account figures, web search, page fetch and X search. Connect it to Claude Code, Cursor or another MCP client, and the agent can look things up and check your balance without leaving its session.

The server is at https://kenari.id/mcp. It uses the Streamable HTTP transport: the client sends a JSON-RPC 2.0 message with POST and gets one JSON response back. There is no server-initiated stream, so GET /mcp returns 405.

The two documentation tools need no key. Add a key to use the rest. Create one under API Keys in the dashboard. See Authentication and API keys.

Terminal window
claude mcp add --transport http kenari https://kenari.id/mcp \
--header "Authorization: Bearer $KENARI_API_KEY"

Your shell expands $KENARI_API_KEY when you run the command, so the key is stored in Claude Code’s MCP config. Leave out --header to use the public tools only.

Add the server to ~/.cursor/mcp.json, or to .cursor/mcp.json in a project:

{
"mcpServers": {
"kenari": {
"url": "https://kenari.id/mcp",
"headers": { "Authorization": "Bearer kn-..." }
}
}
}

Clients that document the mcpServers schema, such as Cursor, accept the entry above. For any other client that supports remote MCP servers over HTTP, set the URL https://kenari.id/mcp and an Authorization: Bearer $KENARI_API_KEY header in that client’s own settings.

Set the key once, in the headers of the server entry. It is never a tool argument. kenari reads it from the Authorization header, with or without the Bearer prefix, or from x-api-key if your client sends that style. When both are present, Authorization wins. A request with no valid key can still call the public tools. A tool that needs a key returns an error telling you to set the header.

ToolNeeds a keyBilledWhat it does
kenari_search_docsNoNoSearches this documentation and returns the most relevant sections.
kenari_list_modelsNoNoLists models with live prices in Rupiah per 1,000,000 tokens.
kenari_balanceYesNoReturns your balance in Rupiah. Refused for a restricted key. The HTTP equivalent is Account balance.
kenari_usageYesNoReturns your usage for the last 30 days: requests, tokens and cost per model. For a restricted key, it covers only that key. The HTTP equivalent is Usage.
kenari_quotaYesNoReturns your plan and coupon quota. Refused for a restricted key. The HTTP equivalent is Account quota.
kenari_web_searchYesPer callSearches the web and returns titles, URLs and snippets.
kenari_web_fetchYesPer callFetches one URL and returns its text.
kenari_x_searchYesPer callSearches live posts on X and returns a short answer with sources.

Billed tools report the fee they charged at the end of the result.

ToolArguments
kenari_search_docsquery (string, required).
kenari_list_modelssearch (string, optional). Filters by model id or provider.
kenari_web_searchquery (string, required) and max_results (integer, 1 to 10, default 5, and a value outside that range is moved to the nearest limit).
kenari_web_fetchurl (string, required).
kenari_x_searchquery (string, required) and x_search_filter (object, optional).
kenari_balance, kenari_usage, kenari_quotaNone.

x_search_filter takes the same fields as POST /v1/x/search. allowed_x_handles and excluded_x_handles each hold at most 20 handles without the @ and cannot be used together. from_date and to_date are YYYY-MM-DD. enable_image_understanding and enable_video_understanding read the media inside posts. See Web and X search for the full table.

The three search tools are billed per call from your account, the same as the endpoints in Web and X search. Web search and page fetch share one daily plan allowance, and kenari_x_search is billed from your balance only. A call that fails is not charged. See How billing works.

A shared API key cannot access the owner’s financial information. kenari_balance, kenari_usage and kenari_quota are refused for a shared API key, because they would reveal the owner’s balance, usage and quota. The search tools still work with a shared API key, within what the share allows. Use a key from your own account to read those figures.

A restricted key, meaning one with a model restriction, a spend cap or a token cap, is refused by kenari_balance and kenari_quota. kenari_usage works but shows only that key’s own usage. See Account overview.