Search MCP Server

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.

Category
访问服务器

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経由ですべてのツールが使えるようになり、コンテキスト消費が大幅に削減されます。

コンテキスト削減の仕組み

段階的な情報取得

  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準拠サーバーに対応:

ドキュメント

ユーザー向け

開発者向け

ロードマップ

  • [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

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选
mcp-server-qdrant

mcp-server-qdrant

这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。

官方
精选