MCP Conversation Server について
MCP Conversation Serverは、OpenRouter経由でLLMとの会話を管理するMCPサーバーです。会話の作成、検索、永続化が必要なアプリケーション開発者向けで、ストリーミング応答とトークン使用量の追跡に対応します。
主な機能
- 01複数の会話の作成と管理
- 02OpenRouterモデルへの接続
- 03応答のストリーミング
- 04会話の絞り込みと検索
- 05会話状態の永続化
活用シーン
- 01アプリケーション内での会話作成
- 02メッセージ履歴の継続確認
- 03モデルや日付による会話の絞り込み
MCP 対応
会話の作成、メッセージ送信、一覧取得のツールをMCPクライアントに公開します。リソースURIから会話の詳細と履歴を参照できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Conversation Server
OpenRouter の言語モデルとの会話を管理するための、Model Context Protocol(MCP)サーバー実装です。このサーバーは、統一された会話管理システムを通じて、アプリケーションがさまざまな言語モデルとやり取りするための標準化されたインターフェースを提供します。
機能
-
MCP プロトコルのサポート
- MCP プロトコルに完全準拠
- リソースの管理と検出
- ツールベースのインタラクションモデル
- ストリーミングレスポンスのサポート
- エラー処理と復旧
-
OpenRouter との統合
- すべての OpenRouter モデルをサポート
- リアルタイムのストリーミングレスポンス
- トークン数の自動カウント
- モデルのコンテキストウィンドウ管理
- 利用可能なモデルには次のものが含まれます:
- Claude 3 Opus
- Claude 3 Sonnet
- Llama 2 70B
- その他、OpenRouter のカタログに掲載されている多数のモデル
-
会話管理
- 複数の会話を作成・管理
- システムメッセージのサポート
- メッセージ履歴の追跡
- トークン使用量の監視
- 会話のフィルタリングと検索
-
ストリーミングのサポート
- リアルタイムのメッセージストリーミング
- チャンク化されたレスポンスの処理
- トークン数のカウント
-
ファイルシステムへの永続化
- 会話状態の永続化
- 保存場所の設定
- 状態の自動管理
インストール
npm install mcp-conversation-server
設定
設定
MCP Conversation Server の設定はすべて YAML で行います。config/models.yaml ファイルを更新して設定してください。例:
# MCP Server Configuration
openRouter:
apiKey: "YOUR_OPENROUTER_API_KEY" # Replace with your actual OpenRouter API key.
persistence:
path: "./conversations" # Directory for storing conversation data.
models:
# Define your models here
'provider/model-name':
id: 'provider/model-name'
contextWindow: 123456
streaming: true
temperature: 0.7
description: 'Model description'
# Default model to use if none specified
defaultModel: 'provider/model-name'
サーバー設定
MCP Conversation Server は、すべての設定を YAML ファイルから読み込みます。アプリケーションでは、次のように設定を読み込めます:
const config = await loadModelsConfig(); // Loads openRouter, persistence, models, and defaultModel settings from 'config/models.yaml'
注:すべての設定を YAML ファイルで行うため、環境変数は不要になりました。
使用方法
基本的なサーバーのセットアップ
import { ConversationServer } from 'mcp-conversation-server';
const server = new ConversationServer(config);
server.run().catch(console.error);
利用可能なツール
サーバーは、いくつかの MCP ツールを公開します:
-
create-conversation
{ provider: 'openrouter', // Provider is always 'openrouter' model: string, // OpenRouter model ID (e.g., 'anthropic/claude-3-opus-20240229') title?: string; // Optional conversation title } -
send-message
{ conversationId: string; // Conversation ID content: string; // Message content stream?: boolean; // Enable streaming responses } -
list-conversations
{ filter?: { model?: string; // Filter by model startDate?: string; // Filter by start date endDate?: string; // Filter by end date } }
リソース
サーバーは、いくつかのリソースへのアクセスを提供します:
-
conversation://{id}
- 特定の会話の詳細にアクセス
- メッセージ履歴を表示
- 会話のメタデータを確認
-
conversation://list
- すべてのアクティブな会話を一覧表示
- 条件で会話をフィルタリング
- 最近のアクティビティ順に並べ替え
開発
ビルド
npm run build
テストの実行
npm test
デバッグ
サーバーには、いくつかのデバッグ機能があります:
-
エラーログ
- すべてのエラーをスタックトレースとともに記録
- トークン使用量の追跡
- レート制限の監視
-
MCP Inspector
npm run inspectorMCP Inspector を使用して、次のことを行えます:
- ツールの実行をテスト
- リソースの内容を表示
- メッセージの流れを監視
- プロトコルへの準拠を検証
-
プロバイダーの検証
await server.providerManager.validateProviders();次の項目を検証します:
- API キーの有効性
- モデルの利用可能状況
- レート制限の状態
トラブルシューティング
よくある問題と解決方法:
-
OpenRouter への接続に関する問題
- API キーが有効であることを確認
- OpenRouter のダッシュボードでレート制限を確認
- モデル ID が正しいことを確認
- クレジットの使用量を監視
-
メッセージのストリーミングエラー
- モデルがストリーミングをサポートしていることを確認
- 接続の安定性を確認
- トークン制限を監視
- タイムアウト設定を適切に処理
-
ファイルシステムのエラー
- ディレクトリのアクセス権を確認
- パスの設定を確認
- ディスク容量を監視
- 同時アクセスを適切に処理
コントリビューション
- リポジトリをフォークします
- 機能ブランチを作成します
- 変更をコミットします
- ブランチにプッシュします
- プルリクエストを作成します
ライセンス
ISC ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。