Kagi Search logo

Kagi Search

Organization
kagisearch

The Official Model Context Protocol (MCP) server for Kagi Search & other tools.

Publisherkagisearch
Repositorykagimcp
LanguagePython
Forks
48
Stars
527
Available tools
0
Transport typestdio
Categories
LicenseMIT
Links
  • Connect tools to AI workflows

    Kagi Search exposes MCP capabilities that can be used by compatible AI clients and agents.

  • 0 available tools

    Browse the callable actions below, including names and descriptions when provided by the server.

  • Ready-to-copy setup

    Use the installation snippets to configure this server in your preferred MCP client.

  • Open source signals

    527 stars and 48 forks from the linked repository.

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_fastgpt and kagi_summarizer tools have been removed. Both are planned to return in a future release.

Hosted Server

We run a hosted MCP server at https://mcp.kagi.com/mcp — no install required. Point any HTTP-capable MCP client at it and authenticate with your Kagi API key.

OAuth2 isn't supported yet (it's on our roadmap), so for now grab your API key from the dashboard and pass it via Bearer HTTP authentication.

Example with Claude Code:

bash
claude mcp add kagi https://mcp.kagi.com/mcp --transport http --header "Authorization: Bearer $(read -sp 'API key: ' k; echo $k)" --scope user

Prefer to run it yourself? See Client Setup for the local uvx install, or Self-Hosting to host the HTTP server on your own infrastructure.

Requirements

  • A Kagi API key in KAGI_API_KEY.
  • uv for the recommended uvx install path.

Install uv:

bash
curl -LsSf https://astral.sh/uv/install.sh | sh

Windows:

powershell
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Client Setup

Codex CLI

bash
codex mcp add kagi --env KAGI_API_KEY=<YOUR_API_KEY_HERE> -- uvx kagimcp

Codex writes MCP configuration to ~/.codex/config.toml.

Claude Desktop

Install uv first.

MacOS/Linux:

bash
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):

json
{
  "mcpServers": {
    "kagi": {
      "command": "uvx",
      "args": ["kagimcp"],
      "env": {
        "KAGI_API_KEY": "YOUR_API_KEY_HERE"
      }
    }
  }
}

Claude Code

bash
claude mcp add kagi -e KAGI_API_KEY="YOUR_API_KEY_HERE" -- uvx kagimcp

Smithery

bash
npx -y @smithery/cli install kagimcp --client claude

Kiro

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:

json
{
  "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 variableDescription
KAGI_API_KEYRequired Kagi API key.
FASTMCP_LOG_LEVELLogging level, for example ERROR.
KAGI_SEARCH_TIMEOUTSearch timeout in seconds. Defaults to 10.
KAGI_EXTRACT_TIMEOUTExtract timeout in seconds. Defaults to 30.
KAGI_MAX_RETRIESMax retry attempts after the first request. Defaults to 2; set 0 to disable retries.
KAGI_HIDDEN_PARAMSComma-separated search params to hide from the LLM-facing schema.

Hideable search params:

text
workflow, extract_count, limit, include_domains, exclude_domains, time_relative, after, before, file_type, lens_id

Example:

bash
KAGI_HIDDEN_PARAMS="extract_count,after,before,time_relative,include_domains,exclude_domains"

Local Development

bash
git clone https://github.com/kagisearch/kagimcp.git
cd kagimcp
uv sync

Run locally over stdio:

bash
KAGI_API_KEY=<YOUR_API_KEY_HERE> uv run kagimcp

Run with streamable HTTP transport:

bash
KAGI_API_KEY=<YOUR_API_KEY_HERE> uv run kagimcp --http --host 0.0.0.0 --port 8000

Self-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:

sh
docker build -t kagimcp-hosted .
docker run --rm -p 8000:8000 kagimcp-hosted

Smoke test:

sh
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:

bash
npx @modelcontextprotocol/inspector uvx kagimcp

Inspect a local checkout:

bash
npx @modelcontextprotocol/inspector uv --directory /ABSOLUTE/PATH/TO/kagimcp run kagimcp

The 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).

Installation

TypingMind
Prerequisites:

Node.js 18+

{
  "mcpServers": {
    "kagi": {
      "command": "uvx",
      "args": [
        "kagimcp"
      ],
      "env": {
        "KAGI_API_KEY": "YOUR_API_KEY_HERE",
        "KAGI_SUMMARIZER_ENGINE": "YOUR_ENGINE_CHOICE_HERE"
      }
    }
  }
}

Use Kagi Search MCP with multiple AI models

TypingMind connects MCP tools at the workspace level, so once Kagi Search is connected, you can use it with different AI models in TypingMind instead of setting it up separately for each model. This MCP runs locally through the TypingMind MCP connector on your device.

Setup guide to use the local connector

Use this when the MCP server needs access to local files, apps, or private resources on your computer.

1

Open the MCP settings

In TypingMind, go to Settings, Advanced Settings, then Model Context Protocol and choose Setup Connector.

  1. Open TypingMind in your browser.
  2. Click the Settings icon.
  3. Go to Advanced Settings.
  4. Open the Model Context Protocol section.
  5. Click Setup Connector and choose This Device.
TypingMind MCP connector setup screen with This Device selected
2

Run the connector command

Choose This Device, copy the command from TypingMind, and run it in Terminal. Keep the process running while you use MCP.

  1. Copy the setup command shown by TypingMind.
  2. Open Terminal on macOS or Windows Terminal on Windows.
  3. Paste and run the command.
  4. Approve the package install if Terminal asks you to proceed.
  5. Keep the Terminal window running while using MCP tools.
3

Add Kagi Search as a server

When the connector status is Ready, click Edit Servers and paste the MCP server configuration.

  1. Wait until the connector status shows Ready.
  2. Click Edit Servers.
  3. Paste the Kagi Search MCP server configuration.
  4. Save the server list.
  5. Refresh if you want to confirm the connector is still ready.
TypingMind MCP settings showing active server and Edit Servers button
{
  "mcpServers": {
    "kagi-search": {
      "command": "npx",
      "args": [
        "-y",
        "<mcp-server-package>"
      ]
    }
  }
}
4

Use it across models

Save the server list, open Plugins, enable the Kagi Search MCP tools, then select any supported AI model in TypingMind and use the tools in chat or assign them to an AI agent.

  1. Open the Plugins page in TypingMind.
  2. Enable the Kagi Search MCP tools.
  3. Start a chat and choose the AI model you want to use.
  4. Use the MCP tools in chat or assign them to an AI agent.
  5. Switch to another AI model whenever needed without reconnecting MCP.
TypingMind chat using enabled MCP tools with a selected AI model
Can you use Kagi Search to help me with this task?
Kagi Search
Sure. I read it.
Here is what I found using Kagi Search.

Frequently asked questions

What is the Kagi Search MCP server used for?

Kagi Search is an MCP server that lets compatible AI clients connect to external tools and context. In TypingMind, you can add this MCP server once and make its tools available in your AI workspace.

Can I use Kagi Search MCP with multiple AI models in TypingMind?

Yes. TypingMind connects MCP tools at the workspace level, so you can use Kagi Search with different AI models such as Claude, ChatGPT, Gemini, or other models you have configured in TypingMind without setting up the MCP server separately for each model.

Why use Kagi Search MCP with TypingMind?

TypingMind is one of the best frontends for LLM chat because it brings multiple AI models, prompts, plugins, AI agents, API keys, and MCP tools into one workspace. With Kagi Search connected, you can use its MCP tools across your preferred models while keeping your chat workflow organized in TypingMind.

How do I connect Kagi Search MCP to TypingMind?

Kagi Search runs through the TypingMind local MCP connector. This is best when the MCP server needs access to local files, desktop apps, command-line tools, or private resources on your computer.

What tools does Kagi Search MCP provide in TypingMind?

Kagi Search exposes MCP capabilities that can be enabled from the TypingMind Plugins page and used in chat or assigned to AI agents.

Do I need to share my API keys with TypingMind to use Kagi Search MCP?

No. TypingMind is local-first and lets you keep your model providers, API keys, prompts, and MCP configuration under your control. If Kagi Search requires authentication, add the required headers, OAuth settings, or local configuration for that MCP server when you create the connection.

Related MCP Servers

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇