MCP Server について
ドキュメントアーカイブを LLM から利用するアプリケーション向けの、Node.js と TypeScript による MCP サーバーです。複数文書の検索、メタデータリソース、文書 Q&A プロンプトを提供し、stdio と SSE に対応します。
主な機能
- 01複数文書の横断検索
- 02文書メタデータの一覧と参照
- 03文書 Q&A プロンプト
- 04stdio と SSE のトランスポート
- 05環境変数による設定とログ
活用シーン
- 01複数文書から関連情報を検索
- 02アーカイブとメタデータを確認
- 03選択した文書に基づく質問応答
MCP 対応
MCP クライアントに文書検索ツール、メタデータリソース、Q&A プロンプトを公開します。stdio と SSE のトランスポートに対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP サーバー
Node.js と TypeScript を使用した Model Context Protocol(MCP)サーバーの実装です。
MCP とは?
Model Context Protocol(MCP)は、アプリケーションが LLM(大規模言語モデル)にコンテキストを提供する方法を標準化するオープンプロトコルです。AI アプリケーションとさまざまなデータソースやツールとのシームレスな通信を可能にします。
機能
このサーバー実装では、以下を提供します。
- 関連情報を取得するためのドキュメント横断検索ツール
- ドキュメント一覧表示とメタデータリソースによるドキュメント管理
- ドキュメントに関する質問に回答するためのドキュメント Q&A プロンプトテンプレート
- stdio と SSE の両方のトランスポート方式に対応
- 包括的なロギングシステム
- 環境変数による設定
- リクエストの受付開始前にすべてのサービスが初期化されたことを確認する準備状態の管理
- サーバー終了時のグレースフルシャットダウン処理
システムアーキテクチャ
はじめに
前提条件
- Node.js 22+ と npm
インストール
- リポジトリをクローンします
- 依存関係をインストールします。
npm install
- プロジェクトをビルドします。
npm run build
サーバーの起動
stdio を使用する場合(MCP クライアントとの連携用)
npm start
SSE を使用する場合(Web ベースでの利用用)
npm start -- --transport=sse
サーバーはデフォルトでポート 3000 で起動します。PORT 環境変数を設定するか、ポート引数を使用すると変更できます。
npm start -- --transport=sse --port=8080
または:
PORT=8080 npm start -- --transport=sse
API
ツール
-
getDocumentsMetadata:利用可能なドキュメントのメタデータを取得します- パラメーター:
query(string):ユーザーの元のクエリまたは質問
- パラメーター:
-
checkQueryRelevance:関連するドキュメントを評価し、意図分析のための指示を返します- パラメーター:
query(string):ユーザーの元のクエリまたは質問relevantDocIds(string):クエリに関連すると見られるドキュメント ID のカンマ区切りの一覧
- パラメーター:
-
analyzeIntent:意図の分類を受け取り、コンテキスト取得のための指示を返します- パラメーター:
query(string):ユーザーの元のクエリまたは質問intentType(string):クエリの分類済みの意図タイプ
- パラメーター:
-
retrieveContext:選択したドキュメントから関連する文章を取得します- パラメーター:
query(string):ユーザーの元のクエリまたは質問intentType(string):クエリの分類済みの意図タイプrelevantDocIds(string):コンテキストを取得するドキュメント ID のカンマ区切りの一覧
- パラメーター:
リソース
documents://metadata:すべてのドキュメントメタデータの一覧を返しますdocuments://metadata/{id}:ID を指定して特定のドキュメントのメタデータを返します
プロンプト
document_qa:ドキュメントの内容に関する Q&A- パラメーター:
question(string):ドキュメントに関するユーザーの質問relevantDocIds(string):関連するドキュメント ID のカンマ区切りの一覧(アーカイブから取得)intentType(string):質問の意図(ドロップダウンから選択)
- パラメーター:
設定
サーバーは環境変数で設定できます。
SERVER_NAME:サーバー名(デフォルト:"document-archive-mcp-server")SERVER_VERSION:サーバーのバージョン(デフォルト:"1.0.0")ENABLE_RESOURCES:リソースの有効/無効を切り替えます(デフォルト:true)ENABLE_TOOLS:ツールの有効/無効を切り替えます(デフォルト:true)ENABLE_PROMPTS:プロンプトの有効/無効を切り替えます(デフォルト:true)PORT:SSE トランスポートのデフォルトポート(デフォルト:3000)TRANSPORT_TYPE:デフォルトのトランスポートタイプ(デフォルト:"stdio")LOG_LEVEL:ログレベル(デフォルト:"info")LOG_DIR:ログファイルのディレクトリ(デフォルト:"logs")LOG_FILE:メインログファイル名(デフォルト:"combined.log")ERROR_LOG_FILE:エラーログファイル名(デフォルト:"error.log")ENABLE_FILE_LOGGING:ファイルへのログ記録を有効にします(デフォルト:本番環境ではtrue、開発環境ではfalse)DOCUMENT_DIRECTORIES:ドキュメントを監視するディレクトリのカンマ区切りリストDOCUMENT_CHUNK_SIZE:処理するドキュメントチャンクのサイズ(デフォルト:1000)DOCUMENT_CHUNK_OVERLAP:ドキュメントチャンクの重複サイズ(デフォルト:200)EMBEDDING_MODEL:使用する埋め込みモデル(デフォルト:'sentence-transformers/all-MiniLM-L6-v2')LANCEDB_PATH:LanceDB データベースのパス(デフォルト:'./vectordb')
開発
自動再読み込みを有効にして開発モードでサーバーを実行するには、次のコマンドを実行します。
npm run dev
開発モードで SSE トランスポートを使用するには、次のコマンドを実行します。
npm run dev -- --transport=sse
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。