mcpField
M
MCP Server

MCP Server

ローカル
github.com/semo94検索079 週間前に更新

MCP Server について

ドキュメントアーカイブを LLM から利用するアプリケーション向けの、Node.js と TypeScript による MCP サーバーです。複数文書の検索、メタデータリソース、文書 Q&A プロンプトを提供し、stdio と SSE に対応します。

主な機能

  1. 01複数文書の横断検索
  2. 02文書メタデータの一覧と参照
  3. 03文書 Q&A プロンプト
  4. 04stdio と SSE のトランスポート
  5. 05環境変数による設定とログ

活用シーン

  1. 01複数文書から関連情報を検索
  2. 02アーカイブとメタデータを確認
  3. 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
インストール
  1. リポジトリをクローンします
  2. 依存関係をインストールします。
npm install
  1. プロジェクトをビルドします。
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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。