Kagi Search MCP Server

公式

Kagiの検索APIを使用してウェブを検索する

ドキュメント

Kagi MCP サーバー

Kagi API をバックエンドとする MCP サーバーです。MCP 対応クライアントに検索および抽出ツールを提供します。

ツール

  • kagi_search_fetch - オプションのページ抽出、フィルター、Kagi レンズを使用した、ウェブ、ニュース、動画、ポッドキャスト、画像検索。
  • kagi_extract - ページの完全なコンテンツを Markdown として取得します。

注: 以前の kagi_fastgpt および kagi_summarizer ツールは削除されました。いずれも将来のリリースで復活する予定です。

ホステッドサーバー

https://mcp.kagi.com/mcp でホステッド MCP サーバーを運用しています。インストールは不要です。HTTP 対応の MCP クライアントをそこに向け、Kagi API キーで認証してください。

OAuth2 はまだサポートされていません(ロードマップに含まれています)。そのため、現時点ではダッシュボードから API キーを取得し、Bearer HTTP 認証で渡してください。

Claude Code での例:

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

自分で実行したい場合は、ローカル uvx インストールについてはクライアントセットアップを、独自のインフラストラクチャで HTTP サーバーをホストする場合はセルフホスティングを参照してください。

要件

  • KAGI_API_KEY に Kagi API キー。
  • 推奨される uvx インストールパス用の uv

uv のインストール:

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

Windows:

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

クライアントセットアップ

Codex CLI

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

Codex は MCP 設定を ~/.codex/config.toml に書き込みます。

Claude Desktop

最初に uv をインストールしてください。

MacOS/Linux:

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

Windows:

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

次に、Claude Desktop 設定(設定 -> 開発者 -> 設定を編集 からアクセス)で:

{
  "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 kagimcp

Smithery

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

Kiro

Claude Desktop と同じ mcpServers JSON を使用して、Kiro MCP 設定ファイル(グローバルの場合は ~/.kiro/settings/mcp.json、プロジェクトスコープの場合は .kiro/settings/mcp.json)に追加します。詳細については、Kiro MCP ドキュメントを参照してください。

OpenCode

~/.config/opencode/opencode.json にある OpenCode 設定ファイルを編集し、以下を追加します:

{
  "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

設定

環境変数説明
KAGI_API_KEY必須の Kagi API キー。
FASTMCP_LOG_LEVELログレベル。例: ERROR
KAGI_SEARCH_TIMEOUT検索タイムアウト(秒)。デフォルトは 10
KAGI_EXTRACT_TIMEOUT抽出タイムアウト(秒)。デフォルトは 30
KAGI_MAX_RETRIES最初のリクエスト後の最大再試行回数。デフォルトは 2。再試行を無効にするには 0 を設定します。
KAGI_HIDDEN_PARAMSLLM 向けスキーマから非表示にする検索パラメータ(カンマ区切り)。

非表示可能な検索パラメータ:

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

例:

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

標準入出力経由でローカル実行:

KAGI_API_KEY=<YOUR_API_KEY_HERE> uv run kagimcp

ストリーミング可能な HTTP トランスポートで実行:

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

セルフホスティング

HTTP モードはマルチテナントです。各リクエストはサーバー全体の環境変数ではなく、Authorization: Bearer <key> ヘッダーを介して API キーを提供するため、1 つのインスタンスで複数のユーザーにサービスを提供できます。リポジトリには、PyPI から固定バージョンの kagimcp をインストールし、HTTP モードで実行する Dockerfile が同梱されています。コンテナは $PORT を尊重するため、それを注入する任意のプラットフォーム(Railway、Render、Cloud Run、Fly.io など)で動作します。

ローカルでのビルドと実行:

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

動作確認テスト:

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"}'

本番環境でバージョンを上げるには、Dockerfile のピン留めを編集して再デプロイします。

デバッグ

公開パッケージの検査:

npx @modelcontextprotocol/inspector uvx kagimcp

ローカルチェックアウトの検査:

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

インスペクターは通常 http://localhost:5173 で利用できます。

プレリリース手順

プレリリースビルドを使用する場合、同じインストール手順が適用されますが、uvx kagimcp の代わりに uvx --prerelease allow --from kagimcp==1.0.0rc2 kagimcp を使用します(1.0.0rc2 をインストールしたいバージョンに置き換えてください)。