LLM 応答 MCP サーバー
複数の AI エージェント間の共同討論を可能にし、ユーザーのプロンプトについて議論して合意に達することを可能にするモデル コンテキスト プロトコル (MCP) サーバー。
概要
このプロジェクトでは、次の主な機能を使用して、LLM 間のマルチターン会話を容易にする MCP サーバーを実装します。
セッションベースのコラボレーション- LLMは討論セッションの参加者として登録できます
審議による合意形成- LLMは合意に達するために長時間の議論に参加できる
リアルタイムのレスポンス共有- すべての参加者がお互いの投稿を閲覧し、返信することができます
サーバーは、次の 4 つの主要なツール呼び出しを提供します。
register-participant: LLMが最初の応答でコラボレーションセッションに参加できるようにしますsubmit-response: LLMが討論中にフォローアップの回答を提出できるようにしますget-responses: LLMがセッション内の他のLLMからのすべての応答を取得できるようにします。get-session-status: LLMが登録待機期間が完了したかどうかを確認できるようにします。
これにより、複数の AI エージェント (「Council of Ephors」など) がユーザーの質問について長時間にわたって審議し、確固たる合意に達するまで互いに議論するシナリオが可能になります。
Related MCP server: MCP Toolkit
インストール
# Install dependencies
bun install発達
# Build the TypeScript code
bun run build
# Start the server in development mode
bun run devMCP Inspectorによるテスト
このプロジェクトには、MCP サーバーのテストとデバッグを行うツールであるMCP Inspectorのサポートが含まれています。
# Run the server with MCP Inspector
bun run inspectinspectスクリプトはnpxを使用して MCP Inspector を実行し、ブラウザで MCP サーバーと対話するための Web インターフェイスを起動します。
これにより、次のことが可能になります。
利用可能なツールとリソースを調べる
異なるパラメータによるテストツール呼び出し
サーバーの応答を表示する
MCPサーバーの実装をデバッグする
使用法
サーバーは 2 つのエンドポイントを公開します。
/sse- MCPクライアントが接続するためのServer-Sent Eventsエンドポイント/messages- MCPクライアントがメッセージを送信するためのHTTPエンドポイント
MCPツール
参加者登録
コラボレーション セッションの参加者として登録します。
// Example tool call
const result = await client.callTool({
name: 'register-participant',
arguments: {
name: 'Socrates',
prompt: 'What is the meaning of life?',
initial_response: 'The meaning of life is to seek wisdom through questioning...',
persona_metadata: {
style: 'socratic',
era: 'ancient greece'
} // Optional
}
});サーバーは、最後の参加者が参加してから3秒間の登録期間を待ってから応答します。応答にはすべての参加者の最初の応答が含まれるため、各LLMは登録期間の終了時に他の参加者の意見に即座に応答できます。
送信応答
討論中にフォローアップの回答を送信します。
// Example tool call
const result = await client.callTool({
name: 'submit-response',
arguments: {
sessionId: 'EPH4721R-Socrates', // Session ID received after registration
prompt: 'What is the meaning of life?',
response: 'In response to Plato, I would argue that...'
}
});レスポンスの取得
討論セッションからのすべての回答を取得します。
// Example tool call
const result = await client.callTool({
name: 'get-responses',
arguments: {
sessionId: 'EPH4721R-Socrates', // Session ID received after registration
prompt: 'What is the meaning of life?' // Optional
}
});回答には参加者全員の投稿が時系列順に表示されます。
セッションステータスの取得
登録待機期間が経過していないか確認します。
// Example tool call
const result = await client.callTool({
name: 'get-session-status',
arguments: {
prompt: 'What is the meaning of life?'
}
});共同討論フロー
LLMは、プロンプトに対する最初の回答で参加者として登録します。
サーバーは最後の登録後3秒間待機してから応答を送信します。
登録期間が終了すると、参加者全員に最初の回答の概要が送られます。
参加者はその後、お互いの意見に応じてフォローアップの回答を提出することができる。
議論は参加者が合意に達するか、最大ラウンド数に達するまで続けられる。
ライセンス
マサチューセッツ工科大学
EC2へのデプロイ
このプロジェクトには、EC2 またはその他のサーバー環境への簡単なデプロイを可能にする Docker 構成が含まれています。
前提条件
Amazon Linux 2 または Ubuntu を実行する EC2 インスタンス
ポート 62887 で受信トラフィックを許可するように構成されたセキュリティ グループ
インスタンスへのSSHアクセス
展開手順
リポジトリを EC2 インスタンスにクローンします。
git clone <your-repository-url> cd <repository-directory>デプロイメント スクリプトを実行可能にします。
chmod +x deploy.shデプロイメント スクリプトを実行します。
./deploy.sh
スクリプトは次のようになります。
DockerとDocker Composeがまだインストールされていない場合はインストールします。
Dockerイメージをビルドする
コンテナをデタッチモードで起動する
MCP サーバーにアクセスできる公開 URL を表示します
手動展開
手動でデプロイする場合:
Docker イメージをビルドします。
docker-compose buildコンテナを起動します。
docker-compose up -dコンテナが実行中であることを確認します。
docker-compose ps
サーバーへのアクセス
展開されると、MCP サーバーは次の場所からアクセスできるようになります。
http://<ec2-public-ip>:62887/sse- SSEエンドポイントhttp://<ec2-public-ip>:62887/messages- メッセージエンドポイント
EC2 セキュリティ グループでポート 62887 が開いていることを確認してください。
This server cannot be installed
Resources
Looking for Admin?
Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.