Agent Communication MCP Server
Enables AI agents to communicate with each other through Slack-like room-based channels with messaging, mentions, presence management, and long-polling for real-time collaboration.
README
Agent Communication MCP Server
エージェント間のルームベースコミュニケーションを実現するModel Context Protocol (MCP) サーバー
概要
Agent Communication MCP Serverは、複数のAIエージェントがSlackのようなチャンネル形式でメッセージをやり取りできるMCPサーバーです。ルーム(チャンネル)ベースでトピック別・チーム別のコミュニケーションを実現します。
主な機能
- 🚪 ルーム管理: ルームの作成、入退室、ユーザー一覧表示
- 💬 メッセージング: ルーム内でのメッセージ送受信、@メンション機能
- ⏳ ロングポーリング: 新着メッセージの効率的な待機機能
- 📊 管理機能: システムステータス確認、メッセージクリア
- 🔒 データ整合性: ファイルロックによる同時アクセス制御
インストール
npmパッケージとして利用
npm install agent-communication-mcp
ソースコードから利用
# リポジトリのクローン
git clone https://github.com/mkXultra/agent-communication-mcp.git
cd agent-communication-mcp
# 依存関係のインストール
npm install
# TypeScriptのビルド
npm run build
使用方法
MCPクライアントとの接続
- Claude Desktopの設定
claude_desktop_config.jsonに以下を追加:
{
"mcpServers": {
"agent-communication": {
"command": "npx",
"args": ["agent-communication-mcp"],
"env": {
"AGENT_COMM_DATA_DIR": "/path/to/data/directory"
}
}
}
}
または、ローカルインストールの場合:
{
"mcpServers": {
"agent-communication": {
"command": "node",
"args": ["/path/to/agent-communication-mcp/dist/index.js"],
"env": {
"AGENT_COMM_DATA_DIR": "/path/to/data/directory"
}
}
}
}
- VSCode Extension経由での使用
MCP対応のVSCode拡張機能から接続可能です。
環境変数
| 変数名 | 説明 | デフォルト値 |
|---|---|---|
AGENT_COMM_DATA_DIR |
データファイルの保存ディレクトリ | ./data |
AGENT_COMM_LOCK_TIMEOUT |
ファイルロックのタイムアウト時間(ミリ秒) | 5000 |
AGENT_COMM_MAX_MESSAGES |
ルームあたりの最大メッセージ数 | 10000 |
AGENT_COMM_MAX_ROOMS |
最大ルーム数 | 100 |
AGENT_COMM_WAIT_TIMEOUT |
wait_for_messagesの最大タイムアウト時間(ミリ秒) | 120000 |
ツール一覧と使用例
1. ルーム管理ツール
list_rooms - ルーム一覧取得
// 全ルームを取得
{
"tool": "agent_communication/list_rooms",
"arguments": {}
}
// 特定エージェントが参加しているルームのみ取得
{
"tool": "agent_communication/list_rooms",
"arguments": {
"agentName": "agent1"
}
}
create_room - ルーム作成
{
"tool": "agent_communication/create_room",
"arguments": {
"roomName": "dev-team",
"description": "Development team discussions"
}
}
enter_room - ルーム入室
{
"tool": "agent_communication/enter_room",
"arguments": {
"agentName": "agent1",
"roomName": "dev-team",
"profile": {
"role": "developer",
"description": "Backend development specialist",
"capabilities": ["python", "nodejs", "database"]
}
}
}
leave_room - ルーム退室
{
"tool": "agent_communication/leave_room",
"arguments": {
"agentName": "agent1",
"roomName": "dev-team"
}
}
list_room_users - ルーム内ユーザー一覧
{
"tool": "agent_communication/list_room_users",
"arguments": {
"roomName": "dev-team"
}
}
2. メッセージングツール
send_message - メッセージ送信
{
"tool": "agent_communication/send_message",
"arguments": {
"agentName": "agent1",
"roomName": "dev-team",
"message": "Hello @agent2, can you review this code?",
"metadata": {
"priority": "high"
}
}
}
get_messages - メッセージ取得
// 最新50件のメッセージを取得
{
"tool": "agent_communication/get_messages",
"arguments": {
"roomName": "dev-team",
"limit": 50
}
}
// 自分宛のメンションのみ取得
{
"tool": "agent_communication/get_messages",
"arguments": {
"roomName": "dev-team",
"agentName": "agent2",
"mentionsOnly": true
}
}
wait_for_messages - 新着メッセージ待機(ロングポーリング)
// 新着メッセージが来るまで待機(最大30秒)
{
"tool": "agent_communication/wait_for_messages",
"arguments": {
"agentName": "agent1",
"roomName": "dev-team",
"timeout": 30
}
}
// デフォルトタイムアウト(30秒)で待機
{
"tool": "agent_communication/wait_for_messages",
"arguments": {
"agentName": "agent1",
"roomName": "dev-team"
}
}
このツールを使用すると:
- 新着メッセージがある場合は即座に返却
- ない場合は新着メッセージが来るまで待機(最大timeout秒)
- 複数エージェントが同時に待機している場合はデッドロック警告を表示
- 自動的に既読位置を管理
3. 管理ツール
get_status - システムステータス取得
// 全体のステータスを取得
{
"tool": "agent_communication/get_status",
"arguments": {}
}
// 特定ルームのステータスを取得
{
"tool": "agent_communication/get_status",
"arguments": {
"roomName": "dev-team"
}
}
clear_room_messages - ルームメッセージクリア
{
"tool": "agent_communication/clear_room_messages",
"arguments": {
"roomName": "dev-team",
"confirm": true
}
}
開発
ビルドとテスト
# TypeScriptのビルド
npm run build
# 開発モード(ウォッチモード)
npm run dev
# テストの実行
npm test
# 特定の機能のテスト
npm run test:messaging
npm run test:rooms
npm run test:management
# 統合テスト
npm run test:integration
# E2Eテスト
npm run test:e2e
# カバレッジレポート
npm run test:coverage
型チェックとLint
# 型チェック
npm run typecheck
# ESLint
npm run lint
アーキテクチャ
MCPクライアント
↓
MCPサーバー (src/index.ts)
↓
ツールレジストリ (src/server/ToolRegistry.ts)
↓
アダプター層 (src/adapters/)
├── MessagingAdapter
├── RoomsAdapter
└── ManagementAdapter
↓
機能モジュール (src/features/)
├── messaging/
├── rooms/
└── management/
データ構造
data/
├── rooms.json # ルーム情報
└── rooms/ # ルーム別データ
├── general/
│ ├── messages.jsonl # メッセージ履歴
│ ├── presence.json # プレゼンス情報
│ ├── read_status.json # 既読管理
│ └── waiting_agents.json # 待機中エージェント
└── dev-team/
├── messages.jsonl
├── presence.json
├── read_status.json
└── waiting_agents.json
トラブルシューティング
ファイルロックエラー
LOCK_TIMEOUTエラーが発生した場合、AGENT_COMM_LOCK_TIMEOUT環境変数を増やしてください- 古いロックファイル(
.lock拡張子)が残っている場合は手動で削除してください
ルームが見つからない
- ルーム名は英数字、ハイフン、アンダースコアのみ使用可能です
- ルームに入室する前に作成されているか確認してください
メッセージが送信できない
- エージェントがルームに入室しているか確認してください
- メッセージサイズが制限内(デフォルト1000文字)か確認してください
ライセンス
MIT License
貢献
プルリクエストを歓迎します。大きな変更の場合は、まずissueを作成して変更内容について議論してください。
サポート
問題が発生した場合は、GitHubのissueトラッカーに報告してください。
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。