kagi_extract
Extract the content of a web page as markdown using the Kagi Extract API. Use this to read the full content of a page when needed.
Search the web through Kagi with date, domain and file-type filters, then pull any result page back as markdown when the snippet is not enough to answer from.
LABSCO SUMMARY
Two tools is the entire surface and the split between them is the point: results come back numbered so a reference to one of them survives into the next turn, and the chosen URL is then fetched as markdown rather than being reasoned about from a snippet. Filters that normally live in search-operator syntax — include_domains, exclude_domains, file_type, before and after — are ordinary parameters here, so a model can narrow its own query instead of rephrasing it.
Two tools over the Kagi Search and Kagi Extract APIs: a numbered result set, and the full content of a page as markdown.
KAGI_API_KEY for a Kagi account, and uv with a Python available (UV_PYTHON).
One command plus a key — uvx kagimcp, then supply credentials
USE CASES
Search, then pull the page that looked right back as markdown and read it properly. Results are numbered, so the follow-up refers to a result rather than repeating the query.
Domain includes and excludes, file type, a lens, and an absolute or relative date window are parameters on the call, so the constraint is set by the model rather than typed into a query string.
No search step: give the URL and get markdown back, which is what you want when the link came from a colleague and the question is what it says.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
kagi_extractExtract the content of a web page as markdown using the Kagi Extract API. Use this to read the full content of a page when needed.
kagi_search_fetchFetch web results for a query using the Kagi Search API. Use for general search and when the user explicitly tells you to 'fetch' results/information. Results are numbered so that a user may refer to a result by a specific number.
BEFORE YOU INSTALL
2 tools when we connected. kagi_fastgpt and kagi_summarizer were removed and are planned to return, so listings showing four tools are out of date. KAGI_HIDDEN_PARAMS hides chosen search parameters from the model.
CONTEXT COST
Rated by the size of the 2 tool definitions that ride along on every turn, not by how many there are
INSTALLATION
uvx kagimcphttps://mcp.kagi.com/mcpConnect a client to this instead of installing anything. Send your Kagi API key, from kagi.com/api/keys, as an Authorization: Bearer header. Taken from this project's own documentation.
Run this in bash, not zsh (the macOS default): in zsh the key prompt fails and the server is saved with an empty key. The $(...) part can also be your key itself.
claude mcp add kagi https://mcp.kagi.com/mcp --transport http --header "Authorization: Bearer $(read -sp 'API key: ' k; echo $k)" --scope usercodex mcp add kagi --env KAGI_API_KEY=<YOUR_KAGI_API_KEY> -- uvx kagimcp{
"mcpServers": {
"kagi": {
"command": "uvx",
"args": [
"kagimcp"
],
"env": {
"KAGI_API_KEY": "<YOUR_KAGI_API_KEY>"
}
}
}
}claude mcp add kagi -e KAGI_API_KEY="<YOUR_KAGI_API_KEY>" -- uvx kagimcp{
"mcp": {
"kagi": {
"type": "local",
"command": [
"uvx",
"kagimcp"
],
"enabled": true,
"environment": {
"KAGI_API_KEY": "<YOUR_KAGI_API_KEY>"
}
}
}
}