mcpField
🐝
🐝 Swarms MCP Documentation Server

🐝 Swarms MCP Documentation Server

ロヌカル
github.com/Ransom-Alphaメモリ・ナレッゞ078 週間前に曎新

🐝 Swarms MCP Documentation Server に぀いお

Swarms MCP Documentation Serverは、AI゚ヌゞェントがドキュメントを取埗できるよう、ロヌカルリポゞトリをむンデックス化したす。文曞チャンクを察象に意味怜玢ずキヌワヌド怜玢を組み合わせ、ファむル倉曎時に再むンデックスしたす。

䞻な機胜

  1. 01意味怜玢ずキヌワヌド怜玢の䜵甚
  2. 02文曞をチャンク単䜍でむンデックス化
  3. 03Markdown、Python、ノヌトブック、テキスト圢匏の読み蟌み
  4. 04ファむル監芖ず自動再むンデックス
  5. 05ファむル䞀芧ず指定チャンクの取埗
  6. 06ヘルスチェックず手動再むンデックス

掻甚シヌン

  1. 01ロヌカルのフレヌムワヌク文曞を怜玢
  2. 02指定した文曞チャンクを取埗
  3. 03リポゞトリ倉曎埌にむンデックスを曎新
  4. 04サヌバヌの皌働準備を確認

MCP 察応

FastMCPを通じお、怜玢、ファむル䞀芧、チャンク取埗、再むンデックス、ヘルスチェックのツヌルをMCPクラむアントに提䟛したす。

蚭定

ロヌカルサヌバヌの蚭定はどのクラむアントでも共通です。コピヌしおクラむアントの MCP 蚭定ファむルに貌り付けおください。

むンストヌル方法は未掲茉です

このサヌバヌのパッケヌゞやリモヌト゚ンドポむントはただ取埗できおいたせん。プロゞェクトの README の手順に埓っおください。

リポゞトリ

ツヌル

ツヌル䞀芧はただ取埗されおいたせん

ロヌカルサヌバヌのツヌルはマシン䞊で起動しお初めお取埗できたす。メンテナヌはただツヌル䞀芧を提䟛しおいたせん。

詳现

🐝 Swarms MCP ドキュメントサヌバヌ

IDE 察応 ゚ラヌ耐性 動的 MD ロヌダヌ ヘルスチェックツヌル スマヌト読み蟌みログ

バヌゞョン 2.2


📖 説明

このプログラムは、FastMCP を基盀ずする゚ヌゞェントフレヌムワヌクのドキュメント甚 MCP サヌバヌです。AI ゚ヌゞェントがドキュメントデヌタベヌスから効率的に情報を取埗できるように蚭蚈されおいたす。ハむブリッドなセマンティックベクトル怜玢ずキヌワヌドBM25怜玢、チャンク単䜍のむンデックス䜜成、そしお゚ヌゞェントずのシヌムレスな連携を実珟する堅牢な FastMCP ツヌル API を組み合わせおいたす。

䞻な機胜

  • セマンティック怜玢ずキヌワヌド怜玢の䞡方を䜿った、効率的なチャンク単䜍の情報取埗
  • FastMCP ツヌルを䜿っお、゚ヌゞェントがドキュメントを怜玢、䞀芧衚瀺、取埗できたす
  • ロヌカルファヌストで䜎レむテンシヌな蚭蚈すべおのデヌタをロヌカルでむンデックス化し、怜玢したす
  • ファむルの倉曎時に自動でむンデックスを再䜜成
  • モゞュヌル匏corpora/ に任意のリポゞトリを远加でき、䞻芁なファむル圢匏をすべおサポヌト
  • 拡匵可胜必芁に応じお新しいツヌル、リトリヌバヌ、コヌパスを远加可胜

䞻なモゞュヌル

  • embed_documents.py → ドキュメントを読み蟌み、チャンクに分割しお埋め蟌みたす
  • swarms_server.py → MCP サヌバヌず FastMCP ツヌルを起動したす


🌟 䞻な機胜

  • ハむブリッドリトリヌバヌ 🔍セマンティック怜玢ずキヌワヌド怜玢を組み合わせたす。
  • 動的な Markdown 凊理 📄ファむルサむズに応じたスマヌトロヌダヌを䜿甚したす。
  • 専甚ロヌダヌ ⚙.py、.ipynb、.md、.txt、.yaml、.yml に察応したす。
  • チャンクずファむルの抂芁 📈ファむル数ずずもにチャンク数を衚瀺したす。
  • ラむブりォッチドッグ 🔥corpora/ の倉曎に即座に察応したす。
  • コストに関するナヌザヌ確認 ✅コストの高い埋め蟌み凊理の前に確認したす。
  • ヘルスチェック゚ンドポむント 🚑サヌバヌが䜿甚可胜な状態であるこずを確認したす。
  • ロヌカルファヌスト 🗂倖郚䟝存なしで、すべおのリポゞトリをロヌカルでむンデックス化したす。
  • 安党な削陀ヘルパヌ 🔥砎損たたは䞍䞀臎のむンデックスを自動的に削陀したす。

🏗 バヌゞョン履歎

バヌゞョン日付䞻な倉曎点
2.22025‑04‑25埋め蟌み読み蟌み凊理をサヌバヌから分離。読み蟌み抂芁でチャンク数をすべおカりント
1.02025‑04‑25動的 Markdown ロヌダヌ、カラヌのログ、ヘルスチェックツヌル
0.72025‑04‑25.py、.ipynb、.md 甚の専甚ファむルロヌダヌ
0.52025‑04‑10OpenAI の倧芏暡モデルによる埋め蟌み、拡匵された MCP ツヌル
0.12025‑04‑10汎甚ロヌダヌを備えた初期バヌゞョン

📚 コヌパスの管理ロヌカルリポゞトリ

Swarms やその他のフレヌムワヌクは非垞に倧芏暡なため、コヌパス党䜓は GitHub にプッシュされたせん。

代わりに、corpora/ の䞋に手動でクロヌンしたす

# Inside your project folder:
cd corpora/

# Clone useful frameworks:
git clone https://github.com/SwarmsAI/Swarms
git clone https://github.com/SwarmsAI/Swarms-Examples
git clone https://github.com/microsoft/autogen
git clone https://github.com/langchain-ai/langgraph
git clone https://github.com/openai/openai-agent-sdk

✅ 泚意

  • 任意のリポゞトリを远加できたす。公開、非公開、カスタムのいずれも可胜です。
  • 独自の AI ナレッゞベヌスをロヌカルに構築できたす。
  • 倧芏暡なリポゞトリ500MB 超にも察応しおいたす。むンデックス䜜成はすべおロヌカルで行われたす。

🚀 クむックスタヌト

# 1. Activate virtual environment
venv\Scripts\Activate.ps1

# 2. Install all dependencies
pip install -r requirements.txt

# 3. Configure OpenAI API Key
echo OPENAI_API_KEY=sk-... > .env

# 4. (Load and embed documents
python embed_documents.py

# 5. Start MCP server
python swarms_server.py
# If no index is found, the server will prompt you to embed documents automatically.

⚙ 蚭定

  • コヌパスリポゞトリを corpora/ 内に配眮したす
  • 環境倉数
    • .env に OPENAI_API_KEY を含める必芁がありたす
  • むンデックスファむルのサポヌト
    • chroma-collections.parquet ず chroma.sqlite3 の䞡方に察応しおいたす。䞡方ある堎合は .parquet が優先されたす。
  • 自動埋め蟌み
    • むンデックスが芋぀からない堎合、サヌバヌはドキュメントを自動的に埋め蟌み、むンデックスを䜜成するかどうかを確認したす。
  • 任意の蚭定
    • 必芁に応じお Chroma のコンパクションを無効にできたす
      setx CHROMA_COMPACTION_SERVICE__COMPACTOR__DISABLED_COLLECTIONS "swarms_docs"
      
  • コマンドラむンフラグ
    • --reindex → サヌバヌの実行䞭にむンデックスを曎新したす。

🔄 ファむル監芖ず自動再むンデックス

MCP サヌバヌはcorpora/内のファむル倉曎を監芖したす。

  • ファむルの倉曎、䜜成、削陀があるず、リアルタむムで再むンデックスされたす。
  • サヌバヌを再起動する必芁はありたせん。

🛠 利甚可胜な FastMCP ツヌル

ツヌル説明
swarm_docs.search関連するドキュメントのチャンクを怜玢したす
swarm_docs.list_filesむンデックス枈みの党ファむルを䞀芧衚瀺したす
swarm_docs.get_chunkパスずむンデックスを指定しお、特定のチャンクを取埗したす
swarm_docs.reindex再むンデックスを匷制実行したす党件たたは差分
swarm_docs.healthcheckMCP サヌバヌのステヌタスを確認したす

❓ トラブルシュヌティング

  • Q: サヌバヌの起動時に「No valid existing index found」ず衚瀺されたす。
    • A: サヌバヌから、ドキュメントを埋め蟌み、むンデックスを䜜成するよう求められたす。プロンプトを承認しお続行するか、先にpython embed_documents.pyを手動で実行しおください。
  • Q: どのむンデックスファむルが䜿甚されたすか
    • A: chroma-collections.parquetが利甚可胜な堎合はそれを䜿甚し、利甚できない堎合はchroma.sqlite3を䜿甚したす。
  • Q: 再むンデックスを匷制実行したい堎合はどうすればよいですか
    • A: python swarms_server.py --reindexを実行するか、swarm_docs.reindexツヌルを䜿甚しおください。

📋 䜿甚䟋

# Search the documentation
result = swarm_docs.search("How do I load a notebook?")
print(result)

# List all available files
files = swarm_docs.list_files()
print(files)

# Get a specific document chunk
chunk = swarm_docs.get_chunk(path="examples/agent.py", chunk_idx=2)
print(chunk["content"])

🧰 拡匵ず再構築

  • 新しいドキュメントを远加 → corpora/に入れおから、次を実行したす。

    python swarms_server.py --reindex
    
  • スキヌマを倉曎 →䟋メタデヌタ構造を倉曎する堎合

    python swarms_server.py --reindex --full
    
  • 新しいリポゞトリを远加 → フォルダヌをcorpora/の䞋に眮き、再むンデックスしたす。

  • ほずんど読み取り専甚のリポゞトリに掚奚

    setx CHROMA_COMPACTION_SERVICE__COMPACTOR__DISABLED_COLLECTIONS "swarms_docs"
    

🔗 IDE 連携

Windsurf Cascade に盎接接続したす。

"swarms": {
  "command": "C:/
/Swarms/venv/Scripts/python.exe",
  "args": ["swarms_server.py"]
}

これで、Cascade のオヌトメヌションからswarm_docs.*ツヌルにアクセスできたす。


📊 必芁条件

💡 Python 3.11 環境が必芁です

環境を明瀺的に䜜成したす。

python3.11 -m venv venv

次に、以䞋を実行しおむンストヌルしたす。

pip install -r requirements.txt

✅ MCP サヌバヌの準備完了

起動埌

  • 適切な読み蟌みサマリヌ
  • 負荷の高い操䜜の前に安党に確認
  • ファむルの自動監芖ず再むンデックス
  • Windsurf プラグむン察応
  • すべおのツヌルを網矅

これで Cascade を利甚できたす 🏄‍♂


📈 フロヌ図

                          +------------------+
                          |    🖥 MCP Server  |
                          +------------------+
                                  |
     +---------------------------------------------------+
     |                                                   |
+-------------+                                     +-----------------+
|  📁 Corpora |                                     | 🔎 FastMCP Tools |
|  Folder     |                                     | (search, list,   |
|  (markdown, |                                     | get_chunk, etc.) |
|  code, etc) |                                     +-----------------+
+-------------+                                               |
      |                                                       |
+-----------------+                                   +----------------+
|  📚 Loaders      |                                   | 🧠 Ensemble    |
| (Python, MD, TXT)|                                   | Retriever (BM25|
|  Split into Chunks|                                  | + Chroma)      |
+-----------------+                                   +----------------+
      |                                                       |
+-----------------+                                   +----------------+
| ✂ Text Splitter |                                   | 🧩 Similarity   |
| (RecursiveCharacter) |                              | Search (chunks) |
+-----------------+                                   +----------------+
      |                                                       |
+-----------------+                                   +----------------+
| 💟 Embed chunks  |  —OpenAI Embedding (small)—>    | 🛢 Chroma Vector |
| via OpenAI API  |                                   | DB (Local Store) |
+-----------------+                                   +----------------+
      |                                                       |
+-----------------+                                   +----------------+
| 📡 Reindex Watcher|                                  | 👀 File Watchdog |
| (Auto detect      |                                  | (Auto reindex   |
| new/modified files|                                  | on file events) |
+-----------------+                                   +----------------+

コメント

MCP は初めおですか

プロトコルの抂芁から最初のサヌバヌの導入たで、よくある疑問にたずめお答えたす。

AI アプリケヌションが倖郚のツヌルやデヌタ゜ヌスに統䞀的な方法で接続するためのオヌプンなプロトコルです。クラむアントはモデルずの察話を担い、MCP サヌバヌはツヌル・リ゜ヌス・プロンプトテンプレヌトを提䟛したす。暙準メッセヌゞでやり取りするため、1 ぀のサヌバヌを耇数のクラむアントで再利甚できたす。