agent-node
Agent Node
局域网多机智能体协作节点。每台电脑部署一个,即可组建「多机多智能体协作团队」:自动局域网互发现、对称受控/遥控执行命令、系统状态托盘可见、跨节点文件收发、内嵌 MCP Server 供 AI 客户端调用。
从
agent-bus仓库剥离出的最小化独立项目。源码运行,无打包交付。
一、能力设计
能力 | 说明 |
对称控制节点 | 每台电脑跑同一程序,功能等价,可互相遥控执行命令 |
自动局域网互发现 | UDP 广播 beacon(像 LocalSend),节点启动后自动发现同网段其他节点 |
受控能力 | 接收任意节点发来的 |
遥控能力 | 对任一发现的节点发起「在此电脑执行命令」,取回执行结果 |
状态可见性 | 托盘图标变色(有节点在线=绿,无=灰),标题实时显示发现的节点数 |
节点命名 | 默认取 hostname,可在 Web 面板随时改名,便于人类记忆 |
跨节点文件收发 |
|
内嵌 MCP Server | 10 个标准 MCP 工具,供 Claude Desktop / Cursor 等 AI 客户端连接 |
中心角色(hub) | 额外起 MQTT broker + Web 面板 + 文件服务,成为团队中心 |
端口兜底 | MQTT / HTTP / 发现端口各备端口池,被占用时自动回退 |
二、使用场景
多机多智能体协作:一个 AI 客户端通过 MCP 把多台电脑的能力封装为工具,跨机调度。
局域网远程运维 / 调试:在任意节点向其他节点下发命令并取回结果。
跨机文件传输:单文件 / 目录(自动打包 zip)双向收发。
AI 客户端接入:把「发任务 / 查收件箱 / 执行命令 / 读写文件 / 上传下载」封装成标准工具给 Claude / Cursor 调用。
三、技术架构
┌──────────── 中心节点 (一台, --role hub) ────────────┐
│ mosquitto (MQTT broker) │
│ bus_server (FastAPI + SQLite, Web 面板 + 文件服务) │
│ 自身控制节点 (带全部功能) │
└────────────────────────────────────────────────────┘
▲ MQTT / HTTP ▲ UDP beacon 发现
│ │
┌─────────┴─────────┐ ┌─────────┴─────────┐
│ worker (对称控制节点) │ ... │ worker (对称控制节点) │
│ 连总线 + 受控/遥控 │ │ 连总线 + 受控/遥控 │
└───────────────────┘ └───────────────────┘通信层:MQTT(mosquitto),消息按 topic 路由(
agent/<id>/inbox、bus/register、bus/heartbeat/),QoS 1,retain 注册 + 遗嘱离线。发现层:UDP 广播 beacon(
255.255.255.255:41830),对称无主从;worker 启动自动扫描is_master节点取真实 broker 地址(无需手动配置)。文件层:HTTP(bus_server,FastAPI),Claim-Check 上传下载,目录自动 zip / 安全解压(防路径穿越 + zip-slip)。
中心:hub 角色内联启动 mosquitto(本机已装则复用,否则首启从
build/mosquitto.zip解压)+ bus_server + Web 面板。MCP:FastMCP 走 stdio 传输,与 GUI 模式解耦,可独立启动。
MCP 工具(10 个):list_online_agents · send_task · check_inbox · run_command · read_file · upload_file · download_file · fetch_file · post_file · reply_task
四、安装
4.1 前置
Python 3.10+(所有机器)
局域网互通 + 防火墙放行(hub 侧入站):
TCP
1883(MQTT,端口池可能回退1884/1885/8883/18830)TCP
8000(HTTP 面板/文件,池回退8001/8002/8010/8088)UDP
41830(发现广播)
4.2 hub 主控机(一台)
需要完整项目目录 + mosquitto。
# 1. 获取代码(git clone 或拷贝整个 agent-node 文件夹)
git clone <本仓库地址>
# 2. 安装依赖
cd agent-node
pip install -r requirements.txt
# 3. 启动中心节点(起 broker + Web 面板 + 自身控制节点 + 托盘)
python executor/control_app.py --role hubmosquitto:本机已装则自动复用(
shutil.which("mosquitto")或C:\Program Files\mosquitto);没装则首次启动自动从build/mosquitto.zip解压到data/runtime/mosquitto,所以build/必须保留。Web 面板:启动后浏览器打开
http://127.0.0.1:8000/(端口池回退时看启动日志实际端口)。hub 首次启动会创建
data/(bus.db、files、broker.log、node_config.json),无需预置。
4.3 worker 其他机器(若干)
只需精简子集:agent_bus/ 包 + executor/control_app.py + requirements.txt(server/、build/、scripts/ 都不需要)。
# 1. 拷贝精简子集到目标机器(或 git clone 后仅运行,多余的目录会被自动忽略)
# agent_bus/ executor/control_app.py requirements.txt
# 2. 安装依赖
pip install -r requirements.txt
# 3. 启动 worker(无参数,自动扫描局域网中心)
python executor/control_app.py无需配置 broker 地址:worker 无
--broker-host时自动扫描局域网is_master节点取真实地址(host / MQTT 端口 / HTTP 端口三样全取)。手动指定中心(跨网段 / 自动发现失败时):
python executor/control_app.py --broker-host 192.168.1.10收件箱自动落在
Downloads/agent-node/inbox,data/配置目录自动生成,均无需预置。
4.4 精简文件清单
文件/目录 | hub | worker | 说明 |
| ✅ | ✅ | 通信 SDK |
| ✅ | ✅ | 唯一入口 |
| ✅ | ✅ | 装依赖 |
| ✅ | ❌ | Web 面板,仅 hub 用 |
| ✅ | ❌ | broker 便携包,仅 hub 用 |
| 可选 | ❌ | 打包工具,运行时不用 |
| 自动生成 | 自动生成 | 运行时产物 |
五、命令参数
参数 | 说明 | 默认 |
| 节点角色 | worker |
| 节点 ID(寻址身份) |
|
| 显示名 | 同 agent-id |
| 连外部中心 broker 地址(worker 用;缺省自动发现) | 空 |
| MQTT 端口 | 池内自动选 |
| HTTP 端口 | 池内自动选 |
| 发现端口 | 池内自动选 |
| 启动时关闭受控能力 | false |
| 不起托盘(后台/测试) | false |
| MCP Server 模式(stdio) | false |
端口池
MQTT:
1883 → 1884 → 1885 → 8883 → 18830HTTP:
8000 → 8001 → 8002 → 8010 → 8088发现:
41830 → 41831 → 41832 → 41840 → 41850
六、MCP 配置(给 AI 客户端)
--mcp 走 stdin/stdout,供 Claude Desktop / Cursor 等作为 MCP Client 通过 JSON 配置拉起。
{
"mcpServers": {
"agent-node": {
"command": "python",
"args": [
"C:/path/to/agent-node/executor/control_app.py",
"--mcp", "--role", "worker", "--agent-id", "my-agent"
],
"env": { "BUS_BROKER_HOST": "192.168.1.10" }
}
}
}
BUS_BROKER_HOST可省略——worker 会自动发现中心;跨网段或发现失败时显式指定。
七、目录结构
agent-node/
├── executor/
│ └── control_app.py # 节点主入口(对称 + 托盘 + MCP + 中心角色)
├── agent_bus/ # 通信 SDK(client/config/discovery/provision/files/schema...)
├── server/
│ ├── bus_server.py # 中心 HTTP + 消息服务(可编程 serve_bus_server 内联启动)
│ └── static/index.html # Web 面板
├── scripts/
│ └── build_mosquitto_zip.py # 重建 mosquitto 便携包
├── build/
│ └── mosquitto.zip # 便携 mosquitto(hub 首启自解压)
├── docs/
│ ├── 需求与设计.md
│ └── BUGFIX_LOG_20260819.md
└── requirements.txt八、安全模型
本项目定位于可信局域网:broker allow_anonymous,控制消息明文走 MQTT,仅做 sender_id 前缀白名单(控制面只接受 hub-* 身份)。不做 HMAC 验签 / 加密 / 节点白名单——跨不可信网络需自行加固。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Agent-native collaboration network: orchestrate a team of long-running agents from any MCP client.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Remote MCP server for The Colony — a social network for AI agents (posts, DMs, search, marketplace).
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/weifeng-work/agent-node'
If you have feedback or need assistance with the MCP directory API, please join our Discord server