kagi-mcp
kagi-mcp
English | 简体中文
MCP server for Kagi Search that authenticates with your session token —
no separate API subscription needed, it uses your existing Kagi plan via Kagi's lightweight
HTML interface (kagi.com/html/search).
Tools
Tool | Purpose | Parameters |
| Web search |
|
| News search |
|
| List available lenses | — |
region: 2-letter country code (us,cn,jp, ...); maps to Kagi'sr=parameter. Defaults tono_region(international/location-neutral) so the AI agent decides when a country-specific view is needed.lens: a Kagi lens by name or numeric id (e.g.Forums,Fediverse Forums,Academic,Programming,PDFs). Names are resolved against the lens list on your account (cached per server process — restart the server after creating new lenses).
Queries support Kagi operators: "exact phrase", site:example.com, -exclude, OR.
Output is compact plain text (title, URL, date, snippet, related searches). By default a
call returns the full first results page — the same set a user sees on kagi.com
(typically 20-40 results); pass limit to trim it. Snippets are Kagi's own SERP snippets;
fetching full page content is left to the agent's page-fetch tool.
1. Get your session token
Find the Session Link section and copy the link.
Use either the full link (
https://kagi.com/search?token=...) or just the token part — both work asKAGI_SESSION_TOKEN.
Treat the session link like a password — anyone with it can use your Kagi account. If it leaks, generate a new one from the same settings page (this invalidates the old one).
2. Add it to your AI agent
All examples run the published npm package via npx — nothing to install up front
(requires Node.js 18+; latest LTS recommended).
Claude Code
claude mcp add kagi -s user --env KAGI_SESSION_TOKEN=<token> -- npx -y kagi-mcp-claude-fable-5(-s user makes the server available in all your projects; omit it for project-local.)
Codex CLI
codex mcp add kagi --env KAGI_SESSION_TOKEN=<token> -- npx -y kagi-mcp-claude-fable-5Or add a table to ~/.codex/config.toml directly:
[mcp_servers.kagi]
command = "npx"
args = ["-y", "kagi-mcp-claude-fable-5"]
env = { "KAGI_SESSION_TOKEN" = "<token or session link>" }(On Windows, if the server fails to spawn, set command to the full path of
npx.cmd, e.g. 'C:\Program Files\nodejs\npx.cmd'.)
OpenClaw
openclaw mcp add kagi \
--command npx \
--arg -y \
--arg kagi-mcp-claude-fable-5 \
--env KAGI_SESSION_TOKEN=<token>Verify with openclaw mcp doctor kagi --probe.
Hermes Agent
Add to ~/.hermes/config.yaml under mcp_servers:
mcp_servers:
kagi:
command: "npx"
args: ["-y", "kagi-mcp-claude-fable-5"]
env:
KAGI_SESSION_TOKEN: "<token or session link>"Any MCP client (Claude Desktop, ...) — JSON config
{
"mcpServers": {
"kagi": {
"command": "npx",
"args": ["-y", "kagi-mcp-claude-fable-5"],
"env": { "KAGI_SESSION_TOKEN": "<token or session link>" }
}
}
}Development
git clone https://github.com/real-jiakai/kagi-mcp-claude-fable-5.git kagi-mcp
cd kagi-mcp
npm install # TypeScript build to dist/ runs automatically
# smoke test against your real Kagi account (append `news` for the news vertical)
KAGI_SESSION_TOKEN='<token or session link>' node test.js "capital of japan"To point a client at your checkout instead of npm, use
node /path/to/kagi-mcp/dist/index.js as the command; re-run npm run build
after editing src/.
Notes
Auth failures: if the token is invalid/expired, Kagi 302-redirects to its landing page; the server detects this and returns a clear error telling you to refresh the token.
Parsing: results are extracted via Kagi's own machine-readable markers (
._0_SRI,a._0_URL,._0_TITLE,._0_DESC), which are stable across the web and news verticals (verified July 2026). If Kagi ever changes its markup, updateparseResultsPage()insrc/kagi.ts.This uses your normal Kagi account the same way a browser would — standard fair-use search volume from an agent is indistinguishable from regular usage. It is not the official Kagi Search API (which bills separately).
Acknowledgements
Designed, implemented, and tested end-to-end with Claude Fable 5 via Claude Code — including live analysis of Kagi's HTML interface, an adversarial multi-agent code review, and human-click vs. MCP parity testing in the browser.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/real-jiakai/kagi-mcp-claude-fable-5'
If you have feedback or need assistance with the MCP directory API, please join our Discord server