Skip to main content
Glama
README.md10.3 kB
# 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 を使用(推奨) ```bash # 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 を使用 ```bash # リポジトリのクローン git clone https://github.com/krtw00/search-mcp.git cd search-mcp # 依存関係のインストール npm install ``` ### 2. 設定ファイルの作成 既存のClaude Desktop設定から`mcpServers`セクションをコピー: ```bash mkdir -p config vi config/mcp-servers.json ``` **config/mcp-servers.json**: ```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の起動 **開発モード**: ```bash # Bunで起動(推奨) bun run dev # Node.jsで起動 npm run dev:node ``` **ビルド & 起動**: ```bash # 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`): ```json { "mcpServers": { "filesystem": { ... }, "brave-search": { ... }, "database": { ... } } } ``` **変更後(Bun使用)**: ```json { "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" } } } } ``` **変更後(シングルバイナリ使用)**: ```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使用)**: ```json { "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経由ですべてのツールが使えるようになり、コンテキスト消費が大幅に削減されます。 ## コンテキスト削減の仕組み ### 段階的な情報取得 1. **初期読み込み(軽量)** - ツール名とサーバー名のみ返す - 115 tools × 50トークン = 5,750トークン 2. **詳細取得(必要時のみ)** - 詳細なパラメータ情報を返す - 1 tool × 200トークン = 200トークン 3. **実行** - ツールを実行し、結果を返す **合計**: 約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](https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem) - [@modelcontextprotocol/server-brave-search](https://github.com/modelcontextprotocol/servers/tree/main/src/brave-search) - [@modelcontextprotocol/server-postgres](https://github.com/modelcontextprotocol/servers/tree/main/src/postgres) - [@modelcontextprotocol/server-github](https://github.com/modelcontextprotocol/servers/tree/main/src/github) - [@modelcontextprotocol/server-slack](https://github.com/modelcontextprotocol/servers/tree/main/src/slack) - その他、MCPプロトコルを実装したすべてのサーバー ## ドキュメント ### ユーザー向け - [セットアップガイド](docs/design/07-simplified-setup.md) - 詳細なセットアップ手順 - [MCP概念](docs/mcp-concepts.md) - MCPの基本概念 ### 開発者向け - [MCPアグリゲーター設計](docs/design/08-mcp-aggregator.md) - 内部設計の詳細 - [アーキテクチャ](docs/architecture.md) - システムアーキテクチャ - [設計ドキュメント](docs/design/) - 詳細な実装設計 ## ロードマップ - [x] Phase 1: MCPアグリゲーター基本実装 - [ ] Phase 2: 検索機能強化 - [ ] Phase 3: セキュリティ機能(認証・レート制限) - [ ] Phase 4: 動的MCPサーバー登録 - [ ] Phase 5: Web管理UI(オプション) 詳細は [docs/design/00-overview.md](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](docs/design/tech-stack-bun-deep-dive.md) を参照。 ## 開発 ### 開発モード ```bash # Bunで開発(推奨) bun run dev # Node.jsで開発 npm run dev:node ``` ### テスト ```bash # Bunでテスト bun test # Node.jsでテスト npm run test:node ``` ### ビルド ```bash # Bunでビルド bun run build # シングルバイナリ作成 bun run build:binary # Node.jsでビルド npm run build:node ``` 詳細な実装ガイドは [IMPLEMENTATION.md](IMPLEMENTATION.md) を参照。 ## トラブルシューティング ### MCPサーバーに接続できない ```bash # 詳細ログを有効化 LOG_LEVEL=debug npm start # 設定を確認 cat config/mcp-servers.json ``` ### 環境変数が読み込まれない ```bash # 環境変数を設定 export BRAVE_API_KEY="your-api-key" # または.envファイルを使用 echo "BRAVE_API_KEY=your-api-key" > .env ``` ## ライセンス MIT ## 貢献 プルリクエストを歓迎します。大きな変更の場合は、まずissueを開いて変更内容を議論してください。 ## 参考 - [Anthropic Model Context Protocol](https://www.anthropic.com/news/model-context-protocol) - [MCP Specification](https://spec.modelcontextprotocol.io/) - [MCP Servers Repository](https://github.com/modelcontextprotocol/servers)

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/krtw00/search-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server