Kagi-Session2API-MCP
Health Warn
- No license — Repository has no license file
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 44 GitHub stars
Code Pass
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Pass
- Permissions — No dangerous permissions requested
This tool is an MCP server that lets AI assistants access Kagi search and summarization features. It bypasses the official paid API by using a user-provided Kagi session token instead.
Security Assessment
The tool requires users to provide their Kagi session token, which grants full account access and must be treated as a highly sensitive secret. It makes external network requests to Kagi's services to perform searches and fetch summaries, actively spoofing a Firefox browser user-agent to avoid detection. The automated code scan found no hardcoded secrets, dangerous execution patterns, or malicious code. However, the core mechanism of the tool inherently violates Kagi's Terms of Service by bypassing their payment gateway. Overall risk is rated as Medium due to the handling of highly sensitive account tokens and the deceptive networking techniques required to function.
Quality Assessment
The project appears to be actively maintained, with recent repository pushes and a growing community interest. The code is clean and successfully passed the light security audit. However, it lacks a formal open-source license. While the README contains a license badge, the automated check flagged the repository for having no license file, which means legal usage rights are undefined. Additionally, users must be fully aware that utilizing this tool carries a high risk of facing a Kagi account suspension or permanent ban.
Verdict
Use with caution: the code itself is clean and safe, but handling session tokens requires strict security practices, and using the tool puts your Kagi account at risk of a permanent ban.
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.
Kagi Session2API MCP Server
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.
⭐ Star History
⚠️ 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.
🌟 Features
- Session-based access: Uses Kagi session tokens instead of the official API ($25/1000 queries) — completely free
- Multi-token pool: Configure multiple tokens for higher throughput with round-robin rotation
- Per-token rate limiting: 5 req/s per token with token bucket algorithm
- API-compatible output: Returns results in the same format as the official
kagimcp - Two tools:
kagi_search_fetch(web search) andkagi_summarizer(URL summarization) - Firefox UA spoofing: Mimics a real Firefox browser for session-based access
- Auto-disable expired tokens: Expired tokens are automatically detected and skipped
- Search operators: Supports Kagi operators (
site:,lang:,filetype:, etc.)
Compatible Platforms
Works with any MCP-compatible client:
- Claude Desktop
- Cursor
- Windsurf
- Cline
- Hermes Agent
- Any MCP client supporting
stdioorHTTPtransport
Quick Install (For AI Agents)
Just 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.
Install Manually
pip install kagi-session2api-mcp
Or with uvx:
uvx kagi-session2api-mcp
Configuration
Option 1: Environment Variable (Single Token)
{
"mcpServers": {
"kagi-session": {
"command": "uvx",
"args": ["kagi-session2api-mcp"],
"env": {
"KAGI_SESSION_TOKEN": "YOUR_SESSION_TOKEN_HERE"
}
}
}
}
Option 2: Environment Variable (Multiple Tokens)
{
"mcpServers": {
"kagi-session": {
"command": "uvx",
"args": ["kagi-session2api-mcp"],
"env": {
"KAGI_SESSION_TOKENS": "TOKEN_1,TOKEN_2,TOKEN_3"
}
}
}
}
Option 3: Config File (Recommended for Multi-Token)
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"
}
}
}
}
Getting Your Session Token
- Log in to kagi.com
- Go to Settings → Account → Session Link
- Copy the token from the session URL:
https://kagi.com/search?token={THIS_PART}&q=test - Use this token in your configuration
Usage
MCP Tools
kagi_search_fetch
Search 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 match
kagi_summarizer
Summarize 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.
Transport Modes
Stdio (default, for Claude Desktop):
kagi-session2api-mcp
HTTP (for remote access):
kagi-session2api-mcp --http --host 0.0.0.0 --port 8000
Architecture
MCP Client → FastMCP Server → TokenPool (round-robin) → httpx.AsyncClient → kagi.com
↓
TokenBucket (5 req/s per token)
↓
Auto-disable expired tokens
Token Pool Behavior
| 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.
Differences from Official 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) |
Risks
- Kagi may change their HTML structure, breaking the parser
- Session-based access may violate Kagi's Terms of Service
- Account suspension or permanent ban is possible
- The summarizer endpoint is internal and may change without notice
- Use at your own risk. The authors assume no liability for any consequences, including but not limited to account actions taken by Kagi.
License
MIT
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found