Kagimcp provides integration with Kagi's search and summarization APIs as an MCP server, enabling Claude and other AI applications to perform web searches and summarize web content and videos. The server exposes tools for executing searches via the Kagi Search API (available in closed beta) and summarizing content using configurable Kagi summarization engines. It solves the problem of giving AI assistants access to current web information and content summarization capabilities by bridging Kagi's search and AI features with the Model Context Protocol.
An MCP server backed by the Kagi API. It exposes search and extraction tools to MCP-compatible clients.
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.
KAGI_API_KEY.uv for the recommended uvx install path.Install uv:
curl -LsSf https://astral.sh/uv/install.sh | sh
Windows:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
codex mcp add kagi --env KAGI_API_KEY=<YOUR_API_KEY_HERE> -- uvx kagimcp
Codex writes MCP configuration to ~/.codex/config.toml.
Install uv first.
MacOS/Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
Windows:
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 mcp add kagi -e KAGI_API_KEY="YOUR_API_KEY_HERE" -- uvx kagimcp
npx -y @smithery/cli install kagimcp --client claude
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.
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>"
}
}
}
}
Who was Time's 2024 person of the year?extract the full content of https://en.wikipedia.org/wiki/Model_Context_Protocol| Environment variable | Description |
|---|---|
KAGI_API_KEY | Required Kagi API key. |
FASTMCP_LOG_LEVEL | Logging level, for example ERROR. |
KAGI_SEARCH_TIMEOUT | Search timeout in seconds. Defaults to 10. |
KAGI_EXTRACT_TIMEOUT | Extract timeout in seconds. Defaults to 30. |
KAGI_MAX_RETRIES | Max retry attempts after the first request. Defaults to 2; set 0 to disable retries. |
KAGI_HIDDEN_PARAMS | 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_id
Example:
KAGI_HIDDEN_PARAMS="extract_count,after,before,time_relative,include_domains,exclude_domains"
git clone https://github.com/kagisearch/kagimcp.git
cd kagimcp
uv sync
Run locally over stdio:
KAGI_API_KEY=<YOUR_API_KEY_HERE> uv run kagimcp
Run with streamable HTTP transport:
KAGI_API_KEY=<YOUR_API_KEY_HERE> uv run kagimcp --http --host 0.0.0.0 --port 8000
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-hosted
Smoke 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.
Inspect the published package:
npx @modelcontextprotocol/inspector uvx kagimcp
Inspect a local checkout:
npx @modelcontextprotocol/inspector uv --directory /ABSOLUTE/PATH/TO/kagimcp run kagimcp
The inspector is usually available at http://localhost:5173.
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).
com.mcparmory/google-search
io.github.pipeworx-io/brave-search
marcopesani/mcp-server-serper
brave/brave-search-mcp-server
com.mcparmory/google-search-console
acamolese/google-search-console-mcp