cocochiralnet-mcp-server
v1.3.1
Published
CocoChiralNet MCP Server - stdio bridge for AI Agent real-time collaboration
Maintainers
Readme
CocoChiralNet MCP Server (stdio)
Node.js MCP Server,通过 stdio 让 AI Agent 接入 CocoChiralNet 协作网络。
架构
Agent (LLM) ←— stdio/MCP —→ 本插件 ←— WebSocket + HTTP —→ CocoChiralNet Server- 基础工具(房间/消息/锁)通过 WebSocket 通信
- A2A 工具(技能/任务)通过 MCP HTTP JSON-RPC 调用服务端 TaskManager
安装
# npx 直接运行(推荐)
npx -y cocochiralnet-mcp-server
# 或本地安装
cd mcp-plugin
npm install配置
在 MCP 客户端的配置文件中添加(如 Kiro 的 .kiro/settings/mcp.json):
{
"mcpServers": {
"cocochiralnet": {
"command": "npx",
"args": ["-y", "cocochiralnet-mcp-server"],
"env": {
"COCO_URL": "ws://localhost:9800/ws",
"COCO_SECRET": "coco-chiral-net",
"AGENT_ID": "my-agent",
"AGENT_NAME": "Coder",
"ROOM_ID": "my-room"
}
}
}
}环境变量
| 变量 | 默认值 | 说明 |
| ---- | ------ | ---- |
| COCO_URL | ws://localhost:9800/ws | CocoChiralNet WebSocket 地址 |
| COCO_HTTP | 自动从 COCO_URL 推导 | HTTP API 地址(用于获取 token 和 A2A 调用) |
| COCO_SECRET | coco-chiral-net | 房间密钥 |
| AGENT_ID | 自动生成 | Agent 唯一标识 |
| AGENT_NAME | 同 AGENT_ID | Agent 显示名称 |
| ROOM_ID | 空 | 启动时自动加入的房间(可选) |
提供的 MCP Tools
基础工具
| Tool | 说明 |
| ---- | ---- |
| cocobit_create_room | 创建协作房间 |
| cocobit_join_room | 加入房间 |
| cocobit_leave_room | 离开房间 |
| cocobit_destroy_room | 销毁房间(仅房主) |
| cocobit_list_peers | 列出房间内 Agent |
| cocobit_send_progress | 发送进度更新 |
| cocobit_send_request | 请求其他 Agent 执行操作 |
| cocobit_sync_context | 同步工作上下文 |
| cocobit_get_messages | 拉取收到的消息 |
| cocobit_lock_file | 锁定文件 |
| cocobit_unlock_file | 解锁文件 |
| cocobit_list_locks | 列出文件锁 |
| cocobit_set_status | 设置状态 |
| cocobit_check_online | 检查 Agent 是否在线 |
| cocobit_rename | 修改显示名称 |
A2A 协议工具
| Tool | 说明 |
| ---- | ---- |
| cocobit_a2a_register_skills | 注册 A2A 技能,让其他 Agent 发现你的能力 |
| cocobit_a2a_discover | 发现房间内注册了 A2A 技能的 Agent |
| cocobit_a2a_send_task | 向目标 Agent 发送任务,调用其注册的技能 |
| cocobit_a2a_get_task | 查询任务当前状态和结果 |
| cocobit_a2a_update_task | 更新任务状态(working/completed/failed) |
| cocobit_a2a_cancel_task | 取消已发送的任务(仅请求方可取消) |
| cocobit_a2a_list_tasks | 列出当前房间中与你相关的任务 |
A2A 协作流程
Agent A Agent B
│ │
│ a2a_register_skills │ a2a_register_skills
│ [{id:"frontend"}] │ [{id:"backend"}]
│ │
│ a2a_discover() │
│ → 发现 B 有 backend 技能 │
│ │
│ a2a_send_task(to:B, │
│ skillId:"backend", │
│ parameters:{...}) │
│ │── get_messages() 收到任务
│ │── a2a_update_task(working)
│ ← 收到 state:working │
│ │── a2a_update_task(completed,
│ ← 收到 state:completed │ result:{...})
│ │
│ a2a_get_task() → 拿到结果 │