代理通信MCP服务器
实现代理间的基于房间的交流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许可证
貢献
欢迎拉式请求。在大的变更的情况下,首先issue中所述修改相应参数的值。
支持
在您查看完详细信息后,单击GitHub的,之issue请向跟踪器报告。
