🚀 kagi-ken-mcp
kagi-ken-mcpは、kagi-kenパッケージを中心とした軽量なNode MCPサーバーです。Kagiのセッショントークンを使用して、Kagi.comのサービスにアクセスすることができます。
- 検索: Kagiを使用した検索
- 要約: Kagiの要約機能を使って、URLまたはテキストコンテンツから要約を作成
公式のKagi APIではAPIアクセスが必要ですが、このMCPサーバーは既存のKagiセッションを使用して、検索と要約の両方の機能にアクセスできます。
"Kagi-ken" は、 "Kagi" (サービス名)と "token" を組み合わせた造語です。
🚀 クイックスタート
Kagi APIは別途APIキーが必要で、現時点では招待制です。Kagiのサブスクリプションを持っているがAPIアクセスがなく、ClaudeのようなLLMやエージェントからKagiのサービスにプログラムでアクセスしたい場合、このMCPサーバーが代替手段となります。
✨ 主な機能
- 検索: Kagi Searchを使用してウェブ検索結果を取得し、同時に複数のクエリを処理できます。
- 要約: URLからコンテンツを要約し、出力形式と言語をカスタマイズできます。
サーバーは、Kagiのセッショントークンを使用する2つの方法をサポートしています(インストールを参照)。順番は以下の通りです。
KAGI_SESSION_TOKEN環境変数
- トークン文字列を含む
~/.kagi_session_tokenファイル
また、包括的なエラーハンドリングが含まれています。
- 接続タイムアウト(検索ごとに10秒)
- 無効な入力の検証
- 環境変数の検証
- エラーの適切なフォーマット
📦 インストール
Node.js 22以上が必要です。
1. Kagiセッショントークンを取得する
- ブラウザでKagi設定にアクセスします。
- セッションリンクをコピーします。
- リンクから
tokenの値を抽出します。
- その値をセッショントークンとして使用します。推奨される方法は、
~/.kagi_session_tokenに保存することです。または、KAGI_SESSION_TOKEN環境変数として渡すこともできます。
サーバーは自動的に環境変数を最初に試し、それが失敗した場合にはトークンファイルを使用します。
⚠️ 重要提示
セッショントークンは機密情報です。Kagiアカウントにアクセスできるため、絶対に外部に漏らさないでください。
2.a. Claude DesktopにMCPサーバーを追加する
Claude Desktopアプリから、設定 → 開発者 → ローカルMCPサーバー → 設定を編集 を選択して、claude_desktop_config.jsonを開き、kagi-ken-mcpを追加します。
オプション1: トークンファイルを使用する(推奨)
{
"mcpServers": {
"kagi-ken-mcp": {
"command": "npx",
"args": ["-y", "github:czottmann/kagi-ken-mcp"]
}
}
}
オプション2: 環境変数を使用する
{
"mcpServers": {
"kagi-ken-mcp": {
"command": "npx",
"args": ["-y", "github:czottmann/kagi-ken-mcp"],
"env": {
"KAGI_SESSION_TOKEN": "YOUR_SESSION_TOKEN_HERE"
}
}
}
}
インストール後の設定
Claude Desktopの組み込みウェブ検索を無効にします。これにより、このMCPサーバーが使用されます。また、設定の「個人設定」(システムプロンプト)に以下を追加すると良いでしょう。
ウェブ検索には、kagi-ken-mcp MCPサーバーの`kagi_search_fetch`ツールを使用します。
URLを要約するには、kagi-ken-mcp MCPサーバーの`kagi_summarizer`ツールを使用します。
2.b. Claude CodeにMCPサーバーを追加する
オプション1: トークンファイルを使用する(推奨)
claude mcp add kagi-ken-mcp --scope user -- npx -y github:czottmann/kagi-ken-mcp
オプション2: 環境変数を使用する
claude mcp add kagi-ken-mcp \
--scope user \
--env KAGI_SESSION_TOKEN="YOUR_SESSION_TOKEN_HERE" -- \
npx -y github:czottmann/kagi-ken-mcp
インストール後の設定
Claude Codeの組み込みウェブ検索を無効にすることができます(オプション)。関連する.claude/settings*.jsonファイルで以下のように設定します。
{
"permissions": {
"deny": [
"WebSearch"
],
"allow": [
"mcp__kagi-ken-mcp__kagi_search_fetch",
"mcp__kagi-ken-mcp__kagi_summarizer"
]
}
}
💻 使用例
基本的な使用法
ツールを使用する必要があるクエリを投げることができます。例えば、検索の場合は "Who was time's 2024 person of the year?" 、要約の場合は "summarize this video: https://www.youtube.com/watch?v=sczwaYyaevY" のようなクエリを使用します。
高度な使用法
ツールの詳細な使い方は以下の通りです。
kagi_search_fetch
Kagi Search APIを使用して、1つ以上のクエリに基づいてウェブ検索結果を取得します。結果は連続した番号が付けられ、参照が容易です。
パラメーター:
queries (文字列の配列): 1つ以上の検索クエリ
kagi_summarizer
Kagi Summarizer APIを使用して、URLからコンテンツを要約します。ウェブページ、ビデオ、オーディオなど、さまざまなドキュメントタイプをサポートしています。
パラメーター:
url (文字列): 要約するURL
summary_type (列挙型): 段落形式の要約には "summary" 、箇条書き形式の要約には "takeaway" を指定します(デフォルト: "summary")
target_language (文字列、オプション): 言語コード(例: 英語の場合は "EN" 、デフォルト: "EN")
🔧 技術詳細
プロジェクト構造
kagi-ken-mcp/
├── src/
│ ├── index.js # メインサーバーのエントリーポイント
│ ├── tools/
│ │ ├── search.js # 検索ツールの実装
│ │ └── summarizer.js # 要約ツールの実装
│ └── utils/
│ └── formatting.js # ユーティリティ関数
├── package.json
└── README.md
インストール
-
リポジトリをクローンする:
git clone <repository-url>
cd kagi-ken-mcp
-
依存関係をインストールする:
npm install
開発モードで実行する
npm run dev
デバッグ
MCPインスペクターを使用してデバッグできます。
npx @modelcontextprotocol/inspector node ./src/index.js
その後、http://localhost:5173でインスペクターにアクセスします。環境変数を使用する場合は、インスペクターの環境変数セクションにKAGI_SESSION_TOKENを追加します。
コントリビューション
- リポジトリをフォークします。
- 新しい機能ブランチを作成します。
- 変更を加えます。
- MCPインスペクターでテストします。
- プルリクエストを送信します。
📄 ライセンス
このプロジェクトはKagiとは関係がなく、Kagiによる承認も受けていません。私はただ非常に満足している顧客です。
💡 使用建议
私はActions For Obsidian、Browser Actions(いくつかの主要なブラウザにShortcutsサポートを追加する)、BarCuts(意外と便利なコンテキストベースのShortcutsランチャー)など、Shortcuts関連のmacOSとiOSの生産性アプリを作っています。是非チェックしてみてください!
関連プロジェクト