Documentation Retrieval MCP Server (DOCRET) について
DOCRETは、指定されたPythonライブラリーの最新ドキュメントを取得するMCPサーバーです。AIアシスタント向けに公式ドキュメントサイトを検索し、ページから読みやすいテキストを抽出します。
主な機能
- 01トピック別のドキュメント検索
- 02LangChain、LlamaIndex、OpenAIに対応
- 03SERPER APIによるサイト検索
- 04HTMLから読みやすいテキストを抽出
- 05ライブラリーURL設定の拡張
活用シーン
- 01Pythonライブラリーのトピックを調べる
- 02AIアシスタント向けに公式資料を取得
- 03別のライブラリーのドキュメントサイトを追加
MCP 対応
MCPサーバーは`get_docs`関数でドキュメント検索を提供します。クエリとライブラリー名を受け取り、抽出したテキストを返します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
ドキュメント検索 MCP サーバー(DOCRET)
このプロジェクトは、LangChain、LlamaIndex、OpenAI など、さまざまな Python ライブラリの最新ドキュメントに AI アシスタントがアクセスできるようにする、Model Context Protocol(MCP)サーバーを実装しています。このサーバーを利用すると、AI アシスタントは公式ドキュメントの情報を動的に取得し、関連情報を提供できます。AI アプリケーションが常に最新の公式ドキュメントを利用できるようにすることが目的です。
MCP サーバーとは?
Model Context Protocol は、開発者がデータソースと AI を活用したツールとの間に安全な双方向接続を構築できるオープン標準です。アーキテクチャはシンプルです。開発者は、MCP サーバーを通じてデータを公開するか、サーバーに接続する AI アプリケーション(MCP クライアント)を構築できます。
特長
- ドキュメントの動的取得:指定した Python ライブラリの最新ドキュメントを取得します。
- 非同期ウェブ検索:SERPER API を利用して、対象のドキュメントサイトを効率的に検索します。
- HTML の解析:BeautifulSoup を使用して、HTML コンテンツから読みやすいテキストを抽出します。
- 拡張しやすい設計:設定を更新するだけで、ほかのライブラリのサポートを簡単に追加できます。
前提条件
- Python 3.8 以降
- Python パッケージ管理用の UV(または、初心者向けの pip)
- Serper API キー(Google 検索または「SERP」用)
- Claude Desktop または Claude Code(テスト用)
インストール
1. リポジトリをクローンする
git clone https://github.com/Sreedeep-SS/docret-mcp-server.git
cd docret-mcp-server
2. 仮想環境を作成して有効化する
-
macOS/Linux の場合:
python3 -m venv env source env/bin/activate -
Windows の場合:
python -m venv env .\env\Scripts\activate
3. 依存関係をインストールする
仮想環境を有効化した状態で、必要な依存関係をインストールします。
pip install -r requirements.txt
または、uv を使用している場合:
uv sync
環境変数を設定する
アプリケーションを実行する前に、必要な環境変数を設定します。このプロジェクトではドキュメントの検索に SERPER API を使用するため、API キーが必要です。
-
プロジェクトのルートディレクトリに
.envファイルを作成します。 -
次の環境変数を追加します。
SERPER_API_KEY=your_serper_api_key_here
your_serper_api_key_here を実際の API キーに置き換えてください。
MCP サーバーの実行
依存関係のインストールと環境変数の設定が完了したら、MCP サーバーを起動できます。
python main.py
これによりサーバーが起動し、リクエストを処理できるようになります。
使用方法
MCP サーバーは、サポート対象のライブラリからドキュメントを取得する API を提供します。SERPER API に関連するドキュメントへのリンクを問い合わせ、ページの内容をスクレイピングして取得します。
ドキュメントを検索する
ライブラリ内の特定のトピックに関するドキュメントを検索するには、get_docs 関数を使用します。この関数は、次の 2 つのパラメーターを受け取ります。
query:検索するトピック(例:「Chroma DB」)library:ライブラリ名(例:「langchain」)
使用例:
from main import get_docs
result = await get_docs("memory management", "openai")
print(result)
これにより、関連する OpenAI ドキュメントのページから抽出したテキストが返されます。
AI アシスタントとの統合
この MCP サーバーは、Claude などの AI アシスタントや、独自に構築した AI モデルと統合できます。アシスタントがサーバーと連携できるように設定するには、次の設定を使用します。
{
"servers": [
{
"name": "Documentation Retrieval Server",
"command": "python /path/to/main.py"
}
]
}
main.py への正しいパスが指定されていることを確認してください。
MCP サーバーの拡張
現在、サーバーは以下のライブラリに対応しています。
- LangChain
- LlamaIndex
- OpenAI
ほかのライブラリへの対応を追加するには、ライブラリ名とドキュメントの URL を main.py の docs_urls 辞書に追加してください。
docs_urls = {
"langchain": "python.langchain.com/docs",
"llama-index": "docs.llamaindex.ai/en/stable",
"openai": "platform.openai.com/docs",
"new-library": "new-library-docs-url.com",
}
📌 ロードマップ
これは私にとって本当にワクワクする内容で、今後さらに開発を進め、実装できる最新のニュースやアイデアを取り入れていくのが楽しみです。
今考えているのは以下のとおりです。
-
対応するライブラリを増やす(例:Hugging Face、PyTorch)
docs_urls辞書にライブラリを追加します。- さまざまな形式のドキュメントページを処理できるよう、get_docs 関数を変更します。
- 正規表現ベース、または AI を活用した解析を使い、意味のあるコンテンツをより適切に抽出します。
- 新しいライブラリを動的に追加できる API エンドポイントを提供します。
-
キャッシュを実装して、重複する API 呼び出しを減らす
- Redis、または
functools.lru_cacheのようなインメモリーキャッシュの仕組みを使用します。 - 時間ベースのキャッシュ無効化を実装します。
- ライブラリごと、検索語ごとに結果をキャッシュします。
- Redis、または
-
AI を活用した要約でウェブスクレイピングを最適化する
GPT-4、BART、またはT5を使用して、スクレイピングしたドキュメントを要約します。Claude 3 Haiku、Gemini 1.5 Pro、GPT-4-mini、Open-mistral-nemo、Hugging Face Modelsなど、ほかにも利用できるものがたくさんあります。いずれも議論の余地があります。- 生のドキュメントテキストと要約版のどちらを使うか、ユーザーが選べるようにします。
-
外部連携向けに REST API を導入する
- FastAPI を使用して API エンドポイントを公開します。(ただそれだけです)
- API 操作用のシンプルなフロントエンドダッシュボードを構築します。(やってみてもいいでしょう)
-
信頼性を高めるためのユニットテストを追加するReferences
- pytest と unittest を使用して、API とスクレイピングの信頼性をテストします。(この仕組みが核爆弾になるのは、何としても避けたいところです)
- プッシュのたびにテストを自動実行する CI/CD ワークフローを実装します。(もちろん、基本中の基本です)
-
開発中に役立つ MCP ツールをさらに追加する
- データベース連携
- Google Docs/Sheets/Drive 連携
- ファイルシステム操作
- Git 連携
- アイデアを製品に変えるためのコミュニケーションプラットフォーム連携
- Docker と Kubernetes の管理
参考資料
MCP サーバーとその実装について詳しくは、以下のガイドを参照してください。
ライセンス
このプロジェクトは MIT License の下でライセンスされています。詳細については、LICENSE ファイルを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。