ドキュメント検索MCPサーバー(DOCRET)
このプロジェクトは、AIアシスタントがLangChain、LlamaIndex、OpenAIを含む様々なPythonライブラリの最新ドキュメントにアクセスできるようにするModel Context Protocol(MCP)サーバーを実装します。このサーバーを活用することで、AIアシスタントは公式ドキュメントソースから関連情報を動的に取得し、提供できるようになります。AIアプリケーションが常に最新の公式ドキュメントにアクセスできるようにすることを目標としています。
MCP サーバーとは何ですか?
モデルコンテキストプロトコル(MCP)は、開発者がデータソースとAI搭載ツール間の安全な双方向接続を構築できるようにするオープンスタンダードです。アーキテクチャはシンプルで、開発者はMCPサーバーを介してデータを公開するか、これらのサーバーに接続するAIアプリケーション(MCPクライアント)を構築することができます。
特徴
- 動的ドキュメント取得: 指定された Python ライブラリの最新のドキュメント コンテンツを取得します。
- 非同期 Web 検索: SERPER APIを利用して、対象のドキュメント サイト内で効率的な Web 検索を実行します。
- HTML 解析: BeautifulSoup を使用して、HTML コンテンツから読み取り可能なテキストを抽出します。
- 拡張可能な設計: 構成を更新することで、追加のライブラリのサポートを簡単に追加できます。
前提条件
- Python 3.8以上
- Python パッケージ管理用の UV (一般人なら pip)
- Serper API キー(Google 検索または「SERP」用)
- Claude Desktop または Claude Code (テスト用)
インストール
1. リポジトリのクローンを作成する
2. 仮想環境を作成してアクティブ化する
- macOS/Linuxの場合:Copy
- Windowsの場合:Copy
3. 依存関係をインストールする
仮想環境をアクティブ化したら、必要な依存関係をインストールします。
またはuvを使用している場合:
環境変数を設定する
アプリケーションを実行する前に、必要な環境変数を設定してください。このプロジェクトでは、ドキュメントの検索にSERPER APIを使用するため、APIキーが必要です。
- プロジェクトのルート ディレクトリに
.env
ファイルを作成します。 - 次の環境変数を追加します。Copy
your_serper_api_key_here
実際の API キーに置き換えます。
MCPサーバーの実行
依存関係がインストールされ、環境変数が設定されると、MCP サーバーを起動できます。
これによりサーバーが起動し、リクエストを処理できる状態になります。
使用法
MCPサーバーは、サポートされているライブラリからドキュメントコンテンツを取得するためのAPIを提供します。このAPIは、SERPER APIにクエリを送信して関連するドキュメントリンクを取得し、ページコンテンツをスクレイピングすることで機能します。
ドキュメントの検索
ライブラリ内の特定のトピックに関するドキュメントを検索するには、 get_docs
関数を使用します。この関数は2つのパラメータを取ります。
query
: 検索するトピック(例:「Chroma DB」)library
: ライブラリの名前(例:"langchain")
使用例:
これにより、関連する OpenAI ドキュメント ページから抽出されたテキストが返されます。
AIアシスタントとの統合
このMCPサーバーは、ClaudeのようなAIアシスタントやカスタムビルドのAIモデルと統合できます。アシスタントがサーバーと連携するように設定するには、以下の設定を使用します。
main.py
への正しいパスが指定されていることを確認してください。
MCPサーバーの拡張
サーバーは現在、次のライブラリをサポートしています。
- ランチェーン
- ラマインデックス
- オープンAI
追加のライブラリのサポートを追加するには、 main.py
のdocs_urls
辞書をライブラリ名とそのドキュメント URL で更新します。
📌 ロードマップ
これは私にとって本当にエキサイティングなことであり、これをさらに発展させ、実装できる最新のニュースやアイデアを常に把握することを楽しみにしています。
私が考えていることは次の通りです。
より多くのライブラリのサポートを追加(例:Hugging Face、PyTorch)
- 追加のライブラリを使用して
docs_urls
辞書を拡張します。 - さまざまな形式のドキュメント ページを処理できるように get_docs 関数を変更します。
- 正規表現ベースまたは AI を活用した解析を使用して、意味のあるコンテンツをより適切に抽出します。
- 新しいライブラリを動的に追加するための API エンドポイントを提供します。
- 追加のライブラリを使用して
冗長なAPI呼び出しを削減するためにキャッシュを実装する
- Redis または
functools.lru_cache
のようなメモリ内キャッシュ機構を使用する - 時間ベースのキャッシュ無効化を実装します。
- ライブラリごと、および検索用語ごとに結果をキャッシュします。
- Redis または
AIを活用した要約でWebスクレイピングを最適化
- スクレイピングしたドキュメントを要約するには、
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 操作用のシンプルなフロントエンド ダッシュボードを構築します。(なぜダメなのでしょう?)
信頼性向上のためにユニットテストを追加する参考文献
- APIとスクレイピングの信頼性テストにはpytestとunittestを使用してください。(これが核爆弾に変わるのは絶対に避けたいです)
- CI/CD ワークフローを実装し、プッシュごとにテストを自動的に実行します。(もちろん、これが基本です)
開発中に役立つその他のMCPツール
- データベース統合
- Google ドキュメント/スプレッドシート/ドライブの統合
- ファイルシステム操作
- Git統合
- コミュニケーションプラットフォームを統合してアイデアを製品に変換
- DockerとKubernetesの管理
参考文献
MCP サーバーとその実装の詳細については、次のガイドを参照してください。
ライセンス
このプロジェクトはMITライセンスの下でライセンスされています。詳細はLICENSEファイルをご覧ください。
This server cannot be installed
AI アシスタントが公式ソースからの動的な取得を通じて、LangChain、LlamaIndex、OpenAI などの Python ライブラリの最新のドキュメントにアクセスできるようにする MCP サーバー。
- What is an MCP Server?
- Features
- Prerequisites
- Installation
- Set Up Environment Variables
- Running the MCP Server
- Usage
- Integrating with AI Assistants
- Extending the MCP Server
- Add support for more libraries (e.g., Hugging Face, PyTorch)
- Implement caching to reduce redundant API calls
- Optimize web scraping with AI-powered summarization
- Introduce a REST API for external integrations
- Add unit tests for better reliabilityReferences
- More MCP tools that can be useful during development
- References
- License