Provides access to Kagi's search engine, content summarization, and AI assistant capabilities using session tokens, enabling web search with multiple queries, URL/content summarization with customizable formats, and AI-powered conversations using Kagi's AI models.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Kagi MCP Serversummarize this article about AI advancements in medicine"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
kagi-ken-mcp
Node.js MCP server providing Kagi search, summarization and AI assistant tools using your existing Kagi session token.
Features
Search: Kagi web search with multiple query support
Summarizer: URL/content summarization with customizable formats
Assistant: AI-powered conversations using Kagi's AI models
Environment Variables
The server requires different environment variables depending on which features you want to use:
For Search and Summarization only:
KAGI_SESSION_TOKEN: Your Kagi session tokenKAGI_SUMMARIZER_ENGINE: Summarizer engine to use (optional, default: "default")
For Assistant feature (in addition to the above):
KAGI_SEARCH_COOKIE: Your_kagi_search_cookie valueKAGI_MODEL_LIST: Comma-separated list of available AI models (required for assistant)KAGI_DEFAULT_MODEL: Default model to use (optional, uses first from list if not specified)
Setup
Get Required Tokens
Session Token
Visit Kagi Settings
Copy the Session Link
Extract the
tokenvalueSet
KAGI_SESSION_TOKENenv variable
Search Cookie (for Assistant feature)
Open browser developer tools (F12)
Go to Kagi.com and login
In Application/Storage tab, find Cookies for kagi.com
Copy the value of
_kagi_search_cookieSet
KAGI_SEARCH_COOKIEenv variable
Model Configuration (for Assistant feature)
Set
KAGI_MODEL_LISTwith comma-separated available models (e.g., "o3-pro,claude-4-sonnet,gemini-2-5-pro")Optionally set
KAGI_DEFAULT_MODELto specify default model
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"kagi-mcp": {
"command": "npx",
"args": ["-y", "@duange/kagi-mcp"],
"env": {
"KAGI_SESSION_TOKEN": "YOUR_SESSION_TOKEN_HERE",
"KAGI_SEARCH_COOKIE": "YOUR_KAGI_SEARCH_COOKIE_HERE",
"KAGI_MODEL_LIST": "o3-pro,claude-4-sonnet,gemini-2-5-pro",
"KAGI_DEFAULT_MODEL": "claude-4-sonnet",
"KAGI_SUMMARIZER_ENGINE": "default"
}
}
}
}Post-install
Disable Claude Desktop's built-in websearch so it'll use this here MCP server. And maybe add this to your "Personal preferences" (i.e., system prompt) in Settings:
For web searches, use kagi-ken-mcp MCP server's `kagi_search_fetch` tool.
For summarizing a URL, use the kagi-ken-mcp MCP server's `kagi_summarizer` tool.
For AI conversations, use the kagi-ken-mcp MCP server's `kagi_assistant` tool.Claude Code
Add MCP server to Claude Code:
claude mcp add kagi-mcp \
--scope user \
--env KAGI_SESSION_TOKEN="YOUR_SESSION_TOKEN_HERE" \
--env KAGI_SEARCH_COOKIE="YOUR_KAGI_SEARCH_COOKIE_HERE" \
--env KAGI_MODEL_LIST="o3-pro,claude-4-sonnet,gemini-2-5-pro" \
--env KAGI_DEFAULT_MODEL="claude-4-sonnet" \
npx -y @duange/kagi-mcpPost-install
Disable Claude Code's built-in web search (optional) by setting the permission in the relevant .claude/settings*.json file:
{
"permissions": {
"deny": [
"WebSearch"
],
"allow": [
"mcp__kagi-mcp__kagi_search_fetch",
"mcp__kagi-mcp__kagi_summarizer",
"mcp__kagi-mcp__kagi_assistant"
]
}
}Usage: Pose query that requires use of a tool
e.g. "Who was time's 2024 person of the year?" for search, or "summarize this video: https://www.youtube.com/watch?v=sczwaYyaevY" for summarizer.
Tools
kagi_search_fetch
Fetch web results based on one or more queries using the Kagi Search API. Results are numbered continuously for easy reference.
Parameters:
queries(array of strings): One or more search queries
kagi_summarizer
Summarize content from URLs using the Kagi Summarizer API. Supports various document types including webpages, videos, and audio.
Parameters:
url(string): URL to summarizesummary_type(enum):"summary"for paragraph prose or"takeaway"for bullet points (default:"summary")target_language(string, optional): Language code (e.g.,"EN"for English, default:"EN")
kagi_assistant
Interact with Kagi's AI assistant models for conversations and queries.
Parameters:
message(string): The message or question to send to the assistantmodel(string, optional): AI model to use (default: uses configured default model)web_search(boolean, optional): Enable web search integration (default: true)image(string, optional): Base64 encoded image for vision models
Development
Project Structure
kagi-ken-mcp/
├── src/
│ ├── index.js # Main server entry point
│ ├── tools/
│ │ ├── search.js # Search tool implementation
│ │ ├── summarizer.js # Summarizer tool implementation
│ │ └── assistant.js # Assistant tool implementation
│ └── utils/
│ └── formatting.js # Utility functions
├── package.json
└── README.mdInstallation
Clone the repository:
git clone https://github.com/z23cc/kagi-mcp.git cd kagi-mcpInstall dependencies:
npm install
Running in Development Mode
npm run devDebugging
Use the MCP Inspector to debug:
npx @modelcontextprotocol/inspector node ./src/index.jsContributing
Fork the repository
Create a feature branch
Make your changes
Test with the MCP Inspector
Submit a pull request
Related Projects
czottmann/kagi-ken - Unofficial session token-based Kagi client, Node
czottmann/kagi-ken-cli - Unofficial Node session token-based CLI tool, Node
Official Kagi MCP Server - Python
This server cannot be installed
Resources
Looking for Admin?
Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.