Search MCP Server
A lightweight and fast MCP server that enables AI agents to efficiently discover and execute tools through progressive disclosure, minimizing context consumption while supporting safe code execution in external environments.
README
Search MCP Server
複数のMCPサーバーを統合し、AIクライアントのコンテキスト消費を75%削減するMCPアグリゲーター
Search MCP Serverは、Model Context Protocol (MCP) の理念に基づき、複数のMCPサーバーを1つに集約することで、Claude Desktop、Cursor、Windsurf等のAIクライアントのコンテキスト消費を約75%削減します。
⚡ Bun最適化: 高速なBunランタイムで実装されており、Node.jsと比較して3-4倍高速に動作します。
問題と解決策
現在の課題
Claude Desktop
├── filesystem MCP (50 tools)
├── brave-search MCP (20 tools)
├── database MCP (30 tools)
└── slack MCP (15 tools)
→ 115 tools × 平均200トークン = 23,000トークン消費 😢
各MCPサーバーが個別に接続されており、すべてのツールのメタデータが初期読み込み時にコンテキストを消費します。
Search MCPの解決策
Claude Desktop
└── Search MCP (アグリゲーター)
├── filesystem MCP
├── brave-search MCP
├── database MCP
└── slack MCP
→ 軽量メタデータのみ: 約5,750トークン (75%削減!) 🎉
Search MCPが複数のMCPサーバーを束ね、プログレッシブな開示により必要な情報だけを段階的に提供します。
主な特徴
- 🎯 MCPアグリゲーター: 複数のMCPサーバーを1つに統合
- 📉 コンテキスト削減: 初期読み込みを75%削減(23,000 → 6,000トークン)
- 🔌 簡単な移行: 既存のClaude Desktop設定をコピペするだけ
- 🔄 プログレッシブ開示: 必要な情報のみを段階的に取得
- 🛠️ MCP標準準拠: stdio + JSON-RPC 2.0による標準プロトコル
- ⚡ 高速: Bunランタイムで3-4倍高速(起動12ms、Node.jsは50ms)
- 📦 シングルバイナリ: 1つのバイナリファイルで配布可能
- 🔀 デュアルサポート: Bun(推奨) + Node.js(互換)
クイックスタート
1. インストール
オプション A: Bun を使用(推奨)
# Bunのインストール
curl -fsSL https://bun.sh/install | bash
# リポジトリのクローン
git clone https://github.com/krtw00/search-mcp.git
cd search-mcp
# 依存関係のインストール
bun install
オプション B: Node.js を使用
# リポジトリのクローン
git clone https://github.com/krtw00/search-mcp.git
cd search-mcp
# 依存関係のインストール
npm install
2. 設定ファイルの作成
既存のClaude Desktop設定からmcpServersセクションをコピー:
mkdir -p config
vi config/mcp-servers.json
config/mcp-servers.json:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/you/projects"]
},
"brave-search": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-brave-search"],
"env": {
"BRAVE_API_KEY": "${BRAVE_API_KEY}"
}
}
}
}
ポイント: Claude Desktopの設定ファイルと全く同じ形式なので、コピペするだけ!
3. Search MCPの起動
開発モード:
# Bunで起動(推奨)
bun run dev
# Node.jsで起動
npm run dev:node
ビルド & 起動:
# Bunでビルド
bun run build
bun start
# Node.jsでビルド
npm run build:node
npm run start:node
# シングルバイナリをビルド(Bun)
bun run build:binary
./search-mcp
4. Claude Desktopの設定を更新
変更前 (~/.config/claude/claude_desktop_config.json):
{
"mcpServers": {
"filesystem": { ... },
"brave-search": { ... },
"database": { ... }
}
}
変更後(Bun使用):
{
"mcpServers": {
"search-mcp": {
"command": "bun",
"args": ["run", "/path/to/search-mcp/src/index.ts"],
"env": {
"MCP_CONFIG_PATH": "/path/to/search-mcp/config/mcp-servers.json"
}
}
}
}
変更後(シングルバイナリ使用):
{
"mcpServers": {
"search-mcp": {
"command": "/path/to/search-mcp/search-mcp",
"args": [],
"env": {
"MCP_CONFIG_PATH": "/path/to/search-mcp/config/mcp-servers.json"
}
}
}
}
変更後(Node.js使用):
{
"mcpServers": {
"search-mcp": {
"command": "node",
"args": ["/path/to/search-mcp/dist/index.js"],
"env": {
"MCP_CONFIG_PATH": "/path/to/search-mcp/config/mcp-servers.json"
}
}
}
}
5. Claude Desktopを再起動
完了!これでSearch MCP経由ですべてのツールが使えるようになり、コンテキスト消費が大幅に削減されます。
コンテキスト削減の仕組み
段階的な情報取得
-
初期読み込み(軽量)
- ツール名とサーバー名のみ返す
- 115 tools × 50トークン = 5,750トークン
-
詳細取得(必要時のみ)
- 詳細なパラメータ情報を返す
- 1 tool × 200トークン = 200トークン
-
実行
- ツールを実行し、結果を返す
合計: 約6,000トークン (従来の23,000トークンから75%削減)
プロジェクト構成
search-mcp/
├── src/
│ ├── mcp/
│ │ ├── mcp-client-manager.ts # MCP統合管理
│ │ └── mcp-client.ts # 個別MCP接続
│ ├── index.ts # MCPサーバー実装
│ ├── tool-registry.ts # ツール集約
│ └── types.ts # 型定義
├── config/
│ └── mcp-servers.json # MCP設定ファイル
├── docs/
│ ├── design/ # 詳細設計
│ │ ├── 07-simplified-setup.md
│ │ └── 08-mcp-aggregator.md
│ ├── architecture.md
│ └── mcp-concepts.md
└── package.json
MCPプロトコル対応
Search MCPは、Model Context Protocolの標準仕様に準拠しています:
- ✅ stdio通信: 標準入出力を使用した通信
- ✅ ツール発見:
tools/listメソッド - ✅ ツール実行:
tools/callメソッド - ✅ 初期化:
initializeプロトコル - 🔜 SSE (Server-Sent Events): 今後対応予定
- 🔜 リソース管理: 今後対応予定
対応MCPサーバー
以下を含む、すべての標準MCP準拠サーバーに対応:
- @modelcontextprotocol/server-filesystem
- @modelcontextprotocol/server-brave-search
- @modelcontextprotocol/server-postgres
- @modelcontextprotocol/server-github
- @modelcontextprotocol/server-slack
- その他、MCPプロトコルを実装したすべてのサーバー
ドキュメント
ユーザー向け
開発者向け
- MCPアグリゲーター設計 - 内部設計の詳細
- アーキテクチャ - システムアーキテクチャ
- 設計ドキュメント - 詳細な実装設計
ロードマップ
- [x] Phase 1: MCPアグリゲーター基本実装
- [ ] Phase 2: 検索機能強化
- [ ] Phase 3: セキュリティ機能(認証・レート制限)
- [ ] Phase 4: 動的MCPサーバー登録
- [ ] Phase 5: Web管理UI(オプション)
詳細は docs/design/00-overview.md を参照。
技術スタック
- ランタイム: Bun 1.0+ (推奨)/ Node.js 18+ (互換)
- 言語: TypeScript 5.9+
- プロトコル: MCP (Model Context Protocol)
- 通信: stdio + JSON-RPC 2.0
- プロセス管理: child_process.spawn
- 依存関係: @modelcontextprotocol/sdk(オプション)
なぜBun?
- ⚡ 3-4倍高速: Node.jsと比較して圧倒的なパフォーマンス
- 🪶 30%軽量: メモリ使用量が少ない(20-30MB vs 30-50MB)
- 🚀 起動が速い: 12ms(Node.jsは50ms)
- 📦 シングルバイナリ: ランタイム不要の配布が可能
- 🔧 TypeScript標準: トランスパイル不要で直接実行
- ✅ Claude Code採用: AnthropicがBunでMCPを実装(互換性保証)
詳細は docs/design/tech-stack-bun-deep-dive.md を参照。
開発
開発モード
# Bunで開発(推奨)
bun run dev
# Node.jsで開発
npm run dev:node
テスト
# Bunでテスト
bun test
# Node.jsでテスト
npm run test:node
ビルド
# Bunでビルド
bun run build
# シングルバイナリ作成
bun run build:binary
# Node.jsでビルド
npm run build:node
詳細な実装ガイドは IMPLEMENTATION.md を参照。
トラブルシューティング
MCPサーバーに接続できない
# 詳細ログを有効化
LOG_LEVEL=debug npm start
# 設定を確認
cat config/mcp-servers.json
環境変数が読み込まれない
# 環境変数を設定
export BRAVE_API_KEY="your-api-key"
# または.envファイルを使用
echo "BRAVE_API_KEY=your-api-key" > .env
ライセンス
MIT
貢献
プルリクエストを歓迎します。大きな変更の場合は、まずissueを開いて変更内容を議論してください。
参考
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。
mcp-server-qdrant
这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。