mcpField
M
MCP-OS · Model Context Protocol Orchestration System

MCP-OS · Model Context Protocol Orchestration System

ローカル
github.com/giao-123-sun生産性377 週間前に更新

MCP-OS · Model Context Protocol Orchestration System について

MCP-OSは、タスクに合うMCPサーバーを検索するオーケストレーションシステムです。LLMに渡すツール情報を絞りたい開発者向けで、現段階ではベクトル検索で候補を選び、その説明だけを追加します。オンデマンド起動・停止などはロードマップ上の機能です。

主な機能

  1. 01タスクに応じたMCPサーバーのベクトル検索
  2. 02一致したサーバーの説明だけを追加
  3. 03交換可能なベクトルバックエンド
  4. 04HTTPとSSEによる検索サービス

活用シーン

  1. 01タスクに関連するMCPサーバーの選定
  2. 02プロンプト内のツール説明の削減
  3. 03ベクトルストアバックエンドの交換やカスタマイズ

MCP 対応

MCP Retrieverを提供し、MCPサーバーとして設定するかRESTエンドポイントを通じて、タスクに合うMCPサーバーを検索できます。ランタイムでの起動・停止とポリシーサンドボックスは計画中です。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

MCP-OS · Model Context Protocol Orchestration System

LLM にはタスクの解決に集中させ、MCP があふれる海に溺れさせないようにしましょう。

👉 中国語版 README を表示


✨ プロジェクトのビジョン

Model Context Protocol(MCP) エコシステムの急速な拡大に伴い、何百もの MCP サーバーによって、よくある 3 つの悩みが生じています。

問題点説明
プロンプトの肥大化長大な MCP の説明がコンテキストウィンドウを圧迫し、モデルは 計画/分析 よりもツールの選択に多くのトークンを費やします。
接続の管理どの MCP が稼働しているか、また現在のタスクに対応できるかを常に把握しなければなりません。
リソースとセキュリティ常時稼働する MCP サーバーはメモリを消費してインターフェースを公開し、攻撃対象領域を広げます。

MCP-OS の目標は次のとおりです。

「オペレーティングシステムがプロセスを管理するように MCP を管理します。必要に応じて読み込み、アイドル時にアンロードします。」


🌟 現在のフェーズ:MCP-Retriever(完了 ✅)

  1. ベクトル検索 — タスクの説明を埋め込み、ベクトルインデックスから上位 k 件の MCP を検索します。
  2. 簡潔なプロンプトテンプレート — 上位 k 件の MCP の説明だけを挿入し、平均でプロンプトのトークンを約 70 % 削減します。
  3. プラグイン可能なバックエンド — デフォルトは openai/embeddings です。FAISS、Qdrant、Milvus などに切り替えられます。

📖 詳細は /packages/retriever をご覧ください。


🛣️ ロードマップ

マイルストーン機能状態
v0.1MCP-Retriever – ベクトル検索✅ リリース済み
v0.2MCP-Retriever - 軽量版⏳ 進行中
v0.3ヘルスチェックデーモン – 自動ハートビートと整理⏳ 進行中
v0.4ランタイムマネージャー – MCP のオンデマンド起動/停止🗓 予定
v1.0ポリシーサンドボックス – 細かな認証、レート、コスト管理🗓 予定

⚙️ クイックスタート

1. クローンとインストール
git clone https://github.com/your-org/mcp-os.git
cd mcp-os
npm install      # or npm / yarn
2. ベクトルインデックスを構築
# Scan local / remote MCP metadata and create an index
npm run build:index --src ./mcp_list.json --out ./index
3. Retriever サーバーを起動
npm run start:retriever
# Default listens on 127.0.0.1:5500 (HTTP + SSE)
4. LLM/エージェントに接続
// Example: Claude Desktop
{
  "mcpServers": {
    "mcp-os": {
      "command": "/absolute/path/to/mcp-os/bin/retriever.js"
    }
  }
}

または、REST エンドポイントを呼び出します。

curl -X POST http://localhost:5500/match \
  -H "Content-Type: application/json" \
  -d '{"task": "Scrape a web page and extract its title"}'

応答例:

{
  "matches": [
    {
      "id": "web-scraper",
      "score": 0.89,
      "functions": ["fetchHtml", "querySelector"]
    }
  ]
}

📂 リポジトリの構成

mcp-os/
├─ packages/
│  ├─ retriever/        # Phase 1: vector retrieval
│  ├─ health-check/     # Phase 2: heartbeat daemon (WIP)
│  └─ runtime-manager/  # Phase 3: load/unload (planned)
├─ scripts/             # CLI helpers
├─ examples/            # Usage demos
└─ docs/                # Architecture & deep dives

🧩 MCP リストの形式

mcp_list.json は MCP のメタデータを記述します。

{
  "web-scraper": {
    "name": "Web Scraper MCP",
    "description": "Fetches HTML and parses DOM.",
    "functions": ["fetchHtml", "querySelector"]
  },
  "calc": { ... }
}

❓ よくある質問

検索品質が低い場合、どのように調整できますか?
  • topK を増やすと、再現率が向上します。
  • より強力な埋め込みモデルに切り替えます。
  • タスクテキストの正規化ルールを改善します。
独自のベクトルストアを接続するにはどうすればよいですか?

VectorStore インターフェースを実装します:src/store/yourStore.ts。


🤝 コントリビュート

  1. リポジトリを フォーク します
  2. ブランチ feature/awesome-stuff を作成します
  3. PR を作成し、関連する課題へのリンクを追加します
  4. CI とレビューを待ちます 🎉

📜 ライセンス

Apache License v2


🙏 謝辞

  • オープンな仕様を提供してくださった Model Context Protocol コミュニティ
  • デバッグ用の MCP Inspector
  • 課題や PR を提出してくださった皆さま、ありがとうございます! ❤️

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。