by KSroido
Free Kagi Search MCP server — access search and summarizer via session tokens, no API key needed. Works with Claude Desktop, Cursor, Windsurf, Hermes and any MCP client.
# Add to your Claude Code skills
git clone https://github.com/KSroido/Kagi-Session2API-MCPGuides for using ai agents skills like Kagi-Session2API-MCP.
Last scanned: 5/30/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-05-30T16:18:50.001Z",
"npmAuditRan": true,
"pipAuditRan": true
}Kagi-Session2API-MCP is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by KSroido. Free Kagi Search MCP server — access search and summarizer via session tokens, no API key needed. Works with Claude Desktop, Cursor, Windsurf, Hermes and any MCP client. It has 137 GitHub stars.
Yes. Kagi-Session2API-MCP passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/KSroido/Kagi-Session2API-MCP" and add it to your Claude Code skills directory (see the Installation section above).
Kagi-Session2API-MCP is primarily written in Python. It is open-source under KSroido on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh Kagi-Session2API-MCP against similar tools.
No comments yet. Be the first to share your thoughts!
Free Kagi Search MCP server — session tokens, no API key needed
Access Kagi search and summarizer via session tokens — completely free. Works with Claude Desktop, Cursor, Windsurf, Cline, Hermes and any MCP-compatible AI coding assistant/agent.
⚠️ EndUser Warning: This project uses Kagi session tokens to access search and summarizer features without the official paid API. This may violate Kagi's Terms of Service. Potential consequences include account suspension or permanent ban. Use at your own risk. The authors assume no liability for any account actions taken by Kagi.
⚠️ Security Warning: Your Kagi session token provides full account access. Treat it like a password. Never share it or commit it to version control.
kagimcpkagi_search_fetch (web search) and kagi_summarizer (URL summarization)site:, lang:, filetype:, etc.)Works with any MCP-compatible client:
stdio or HTTP transportJust paste this prompt to your AI agent:
Install the Kagi Session2API MCP server from https://pypi.org/project/kagi-session2api-mcp/.
Then add it to my MCP:
`uvx kagi-session2api-mcp`
set env KAGI_SESSION_TOKEN to my token (ask me if you don't have it).
If I have multiple tokens, use KAGI_SESSION_TOKENS (comma-separated) instead,
or create a config file at ~/.config/kagi-session2api-mcp/config.toml with:
[kagi]
session_tokens = ["TOKEN_1", "TOKEN_2"]
summarizer_engine = "cecil"
[client]
timeout = 30
max_retries = 2
and set env KAGI_SESSION_CONFIG to that path.
pip install kagi-session2api-mcp
Or with uvx:
uvx kagi-session2api-mcp
{
"mcpServers": {
"kagi-session": {
"command": "uvx",
"args": ["kagi-session2api-mcp"],
"env": {
"KAGI_SESSION_TOKEN": "YOUR_SESSION_TOKEN_HERE"
}
}
}
}
{
"mcpServers": {
"kagi-session": {
"command": "uvx",
"args": ["kagi-session2api-mcp"],
"env": {
"KAGI_SESSION_TOKENS": "TOKEN_1,TOKEN_2,TOKEN_3"
}
}
}
}
Create ~/.config/kagi-session2api-mcp/config.toml:
[kagi]
session_tokens = [
"YOUR_TOKEN_1_HERE",
"YOUR_TOKEN_2_HERE",
]
summarizer_engine = "cecil"
[client]
timeout = 30
max_retries = 2
Then configure:
{
"mcpServers": {
"kagi-session": {
"command": "uvx",
"args": ["kagi-session2api-mcp"],
"env": {
"KAGI_SESSION_CONFIG": "/path/to/config.toml"
}
}
}
}
https://kagi.com/search?token={THIS_PART}&q=testkagi_search_fetchSearch the web using Kagi:
Search for "Python async tutorial"
Supports Kagi search operators:
site:github.com - Restrict to domain-site:reddit.com - Exclude domainfiletype:pdf - File type filterintitle:python - Title filterlang:zh - Language filterbefore:2024-01-01 / after:2024-01-01 - Date filters"exact phrase" - Exact matchkagi_summarizerSummarize any URL:
Summarize https://example.com/article
Options:
summary_type: "summary" (prose) or "takeaway" (bullet points)engine: "cecil" (default), "agnes", "daphne", "muriel"target_language: Language code (e.g., "EN")⚠️ The summarizer is experimental — it uses Kagi's internal endpoint which may change.
Stdio (default, for Claude Desktop):
kagi-session2api-mcp
HTTP (for remote access):
kagi-session2api-mcp --http --host 0.0.0.0 --port 8000
MCP Client → FastMCP Server → TokenPool (round-robin) → httpx.AsyncClient → kagi.com
↓
TokenBucket (5 req/s per token)
↓
Auto-disable expired tokens
| Config | Rate Limit | Effective Rate |
|---|---|---|
| 1 token | 5 req/s | 5 req/s |
| 2 tokens | 5 req/s each | 10 req/s |
| N tokens | 5 req/s each | 5×N req/s |
When a token expires (detected via 401/403 or redirect to login), it is automatically disabled. Remaining tokens continue serving requests.
kagimcp| Aspect | Official kagimcp |
kagi-session2api-mcp |
|---|---|---|
| Authentication | API key ($25/1000) | Session token (free) |
| Search endpoint | /api/v0/search |
/html/search (HTML scraping) |
| Summarizer | /api/v0/summarize |
/mother/summary_labs (internal) |
| Rate limiting | Server-side | Client-side (token bucket) |
api_balance |
Returns balance | Always null |
| Cost | Paid | Free (uses existing session) |
Star this repo if you feel it useful, that would help me a lot :)
MIT