Kagi MCP Server
OfficialThe Kagi MCP Server provides access to Kagi's search and summarization tools:
Web Search: Execute one or more search queries, returning numbered results for easy reference.
Content Summarization: Summarize videos or other content using customizable engines like 'cecil' or 'daphne'.
Claude Desktop Integration: Configure and integrate with Claude Desktop for enhanced functionality.
Customization Options: Adjust logging levels via the
FASTMCP_LOG_LEVELenvironment variable.Requirements: Needs a Kagi API key and access to Kagi's closed beta search API.
Integrates with Kagi search API to provide search capabilities to Claude AI, allowing Claude to answer questions requiring up-to-date information through internet search
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 Serverwhat are the latest developments in quantum computing?"
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 MCP Server
An MCP server backed by the Kagi API. It exposes search and extraction tools to MCP-compatible clients.
Tools
kagi_search_fetch- web, news, videos, podcasts, and image search with optional page extracts, filters, and Kagi lenses.kagi_extract- fetch a page's full content as markdown.
Note: The previous
kagi_fastgptandkagi_summarizertools have been removed. Both are planned to return in a future release.
Related MCP server: Perplexity MCP Server
Requirements
A Kagi API key in
KAGI_API_KEY.uvfor the recommendeduvxinstall path.
Install uv:
curl -LsSf https://astral.sh/uv/install.sh | shWindows:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"Client Setup
Codex CLI
codex mcp add kagi --env KAGI_API_KEY=<YOUR_API_KEY_HERE> -- uvx kagimcpCodex writes MCP configuration to ~/.codex/config.toml.
Claude Desktop
Install uv first.
MacOS/Linux:
curl -LsSf https://astral.sh/uv/install.sh | shWindows:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"Then in your Claude Desktop config (found through Settings -> Developer -> Edit Config):
{
"mcpServers": {
"kagi": {
"command": "uvx",
"args": ["kagimcp"],
"env": {
"KAGI_API_KEY": "YOUR_API_KEY_HERE"
}
}
}
}Claude Code
claude mcp add kagi -e KAGI_API_KEY="YOUR_API_KEY_HERE" -- uvx kagimcpSmithery
npx -y @smithery/cli install kagimcp --client claudeKiro
Add to your Kiro MCP config file (~/.kiro/settings/mcp.json for global, or .kiro/settings/mcp.json for project-scoped) using the same mcpServers JSON as Claude Desktop. See the Kiro MCP documentation for more details.
OpenCode
Edit the OpenCode configuration file in ~/.config/opencode/opencode.json and add the following:
{
"mcp": {
"kagi": {
"type": "local",
"command": ["uvx", "kagimcp"],
"enabled": true,
"environment": {
"KAGI_API_KEY": "<YOUR_API_KEY_HERE>"
}
}
}
}Usage Examples
Search:
Who was Time's 2024 person of the year?Extract:
extract the full content of https://en.wikipedia.org/wiki/Model_Context_Protocol
Configuration
Environment variable | Description |
| Required Kagi API key. |
| Logging level, for example |
| Search timeout in seconds. Defaults to |
| Extract timeout in seconds. Defaults to |
| Max retry attempts after the first request. Defaults to |
| Comma-separated search params to hide from the LLM-facing schema. |
Hideable search params:
workflow, extract_count, limit, include_domains, exclude_domains, time_relative, after, before, file_type, lens_idExample:
KAGI_HIDDEN_PARAMS="extract_count,after,before,time_relative,include_domains,exclude_domains"Local Development
git clone https://github.com/kagisearch/kagimcp.git
cd kagimcp
uv syncRun locally over stdio:
KAGI_API_KEY=<YOUR_API_KEY_HERE> uv run kagimcpRun with streamable HTTP transport:
KAGI_API_KEY=<YOUR_API_KEY_HERE> uv run kagimcp --http --host 0.0.0.0 --port 8000Self-Hosting
HTTP mode is multi-tenant: each request supplies its API key via the
Authorization: Bearer <key> header instead of a server-wide env var, so one
instance can serve multiple users. The repo ships a Dockerfile that installs a pinned kagimcp from PyPI and
runs it in HTTP mode. The container respects $PORT so it works on any
platform that injects one (Railway, Render, Cloud Run, Fly.io, etc.).
Build and run locally:
docker build -t kagimcp-hosted .
docker run --rm -p 8000:8000 kagimcp-hostedSmoke test:
curl -sL http://127.0.0.1:8000/mcp -X POST \
-H "authorization: Bearer $KAGI_API_KEY" \
-H "content-type: application/json" \
-H "accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'To bump the version in production, edit the pin in the Dockerfile and redeploy.
Debugging
Inspect the published package:
npx @modelcontextprotocol/inspector uvx kagimcpInspect a local checkout:
npx @modelcontextprotocol/inspector uv --directory /ABSOLUTE/PATH/TO/kagimcp run kagimcpThe inspector is usually available at http://localhost:5173.
Prerelease Instructions
If using a prerelease build, the same installation instructions apply, but use uvx --prerelease allow --from kagimcp==1.0.0rc2 kagimcp instead of uvx kagimcp (replace 1.0.0rc2 with whatever version you're wanting to install).
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
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/kagisearch/kagimcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server