Documentation Hub MCP Server について
React、Node.js、Python のドキュメントを探す AI クライアント向けの、ドキュメント検索 MCP サーバーです。分野を判定してトピックを抽出し、対象 URL を組み立てて関連内容を取得します。
主な機能
- 01技術分野の判定
- 02クエリからトピックを抽出
- 03対象を絞ったドキュメント URL の構築
- 04複数分野のドキュメント取得
- 05他分野への対応拡張
活用シーン
- 01React の特定トピックのドキュメント検索
- 02Node.js の技術資料の取得
- 03Python ドキュメントの検索
- 04技術的な質問を該当ページに対応付け
MCP 対応
互換クライアントに分野判定、トピック抽出、ドキュメント取得のツールを公開し、React、Node.js、Python、および一般ドキュメントのリソースを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
ドキュメントハブ MCP サーバー
複数の技術分野からインテリジェントにドキュメントを取得するための、Model Context Protocol(MCP)サーバーです。
概要
このプロジェクトは、技術的な質問に対して対象を絞ったドキュメント取得を提供する MCP サーバーを実装しています。次の処理を行うために、ハイブリッド方式を採用しています。
- 質問の技術分野(React、Node.js、Python)を特定する
- 質問から具体的なトピックを抽出する
- 適切なドキュメント URL を構築する
- 最も関連性の高いドキュメントを取得して返す
このサーバーは TypeScript と MCP SDK を使用して構築されており、AI モデルがドキュメントリソースにアクセスするための標準インターフェースを提供します。
機能
- 分野の分類:質問が React、Node.js、Python、または一般的なトピックのどれについてかを自動的に特定します
- トピックの抽出:正規表現パターンマッチングを使用して、質問内の具体的な技術概念を特定します
- URL の構築:特定したトピックに基づいて、対象を絞ったドキュメント URL を作成します
- 複数のドキュメントソース:React、Node.js、Python のドキュメントに対応しており、他の分野にも拡張できます
- 標準インターフェース:Model Context Protocol を実装し、MCP 対応クライアントとの相互運用性を実現します
インストール
# Clone the repository
git clone https://github.com/yourusername/mcp-server.git
cd mcp-server
# Install dependencies
npm install
# Build the project
npm run build
使い方
サーバーの実行
node build/index.js
トピック抽出のテスト
このプロジェクトには、トピックの抽出と URL の構築の仕組みを示すテストスクリプトが含まれています。
# Build the test script
npx tsc src/test.ts --outDir build
# Run the test
node build/test.js
クライアントとの統合
このサーバーは、MCP 対応クライアントであればどれとでも統合できます。クライアントがサーバーとやり取りする方法の例を以下に示します。
// Example client code (not included in this project)
const client = new McpClient();
const result = await client.callTool("fetch-documentation", {
query: "How do I use useState hook in React?",
});
console.log(result);
// Output: {
// domain: "react-docs",
// topics: ["useState", "state"],
// specificUrl: "https://react.dev/reference/react/useState",
// content: "...",
// source: "https://react.dev/reference/react/useState"
// }
プロジェクト構成
src/index.ts- メインのサーバー実装src/test.ts- トピックの抽出と URL の構築を行うテストスクリプトbuild/- コンパイル済み JavaScript の出力先package.json- プロジェクトの設定と依存関係
利用可能なツール
サーバーは次のツールを公開します。
determine-domain
質問がどの技術分野に属するかを特定します。
{
query: string; // The user query to classify
}
戻り値:
{
domain: string; // The identified domain
confidence: string; // "high" or "low"
}
extract-topics
指定された分野について、質問から具体的なトピックを抽出します。
{
query: string; // The user query to analyze
domain: string; // The technical domain to extract topics for
}
戻り値:
{
topics: string[]; // Array of identified topics
count: number; // Number of topics found
}
fetch-documentation
質問と分野に基づいてドキュメントを取得します。
{
query: string; // The user query
domain?: string; // Optional domain override
}
戻り値:
{
domain: string; // The identified domain
topics: string[]; // Array of identified topics
specificUrl: string | null; // The constructed URL if available
content: string; // The fetched documentation content
source: string; // The source URL
}
利用可能なリソース
サーバーは次のドキュメントリソースを提供します。
react-docs- React.js のドキュメントnode-docs- Node.js のドキュメントpython-docs- Python のドキュメントgeneral- 分野が明確でない場合の一般的なドキュメント
サーバーの拡張
新しい分野の追加
新しい技術分野への対応を追加するには、次の手順に従います。
determineDomain関数内のdomainKeywordsオブジェクトに分野のキーワードを追加しますextractTopics関数内のtopicPatternsオブジェクトにトピックのパターンを追加しますconstructSpecificUrl関数に URL の構築ロジックを追加します- サーバー設定に新しいリソースハンドラーを追加します
トピック抽出の改善
トピック抽出は、次の方法で改善できます。
- 既存のトピックの正規表現パターンを強化する
- 既存の分野に新しいトピックを追加する
- トピック抽出のための、より高度な NLP 技術を実装する
ライセンス
MIT
コントリビューション
コントリビューションを歓迎します。お気軽にプルリクエストを送信してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。