@duange/kagi-mcp
v1.0.0
Published
Kagi MCP server using kagi-ken package
Maintainers
Readme
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
tokenvalue - Set
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_cookie - Set
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", "@z23cc/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 @z23cc/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
- Model Context Protocol
