agent-node
Agent Node
Узел для совместной работы ИИ-агентов на нескольких машинах в локальной сети. Разверните по одному экземпляру на каждом компьютере — и получите «команду из нескольких машин и нескольких агентов»: автоматическое обнаружение в локальной сети, симметричное управляемое/дистанционное выполнение команд, состояние системы видно в трее, передача файлов между узлами, встроенный MCP Server для вызова из AI-клиентов.
Минимальный самостоятельный проект, выделенный из репозитория
agent-bus. Запускается из исходного кода, без сборки и упаковки.
1. Возможности
Возможность | Описание |
Симметричные управляющие узлы | На каждом компьютере запускается одна и та же программа с одинаковыми функциями; узлы могут удалённо выполнять команды друг на друге |
Автоматическое обнаружение в локальной сети | UDP-широковещательный beacon (как LocalSend): после запуска узел автоматически обнаруживает другие узлы в том же сегменте сети |
Управляемая возможность | Принимает команды |
Возможность удалённого управления | Для любого обнаруженного узла можно инициировать «выполнить команду на этом компьютере» и получить результат |
Видимость состояния | Иконка в трее меняет цвет (зелёная, если есть онлайн-узлы, серая — если нет), в заголовке в реальном времени отображается число обнаруженных узлов |
Именование узлов | По умолчанию используется hostname; имя можно в любой момент изменить в веб-панели для удобства запоминания |
Передача файлов между узлами |
|
Встроенный MCP Server | 10 стандартных MCP-инструментов для подключения AI-клиентов, таких как Claude Desktop / Cursor |
Центральная роль (hub) | Дополнительно запускает MQTT broker + веб-панель + файловый сервис, становясь центром команды |
Резервные порты | Для MQTT / HTTP / discovery предусмотрен пул запасных портов; при занятости порта выполняется автоматический откат |
2. Сценарии использования
Многоузловая multi-agent коллаборация: один AI-клиент через MCP оборачивает возможности нескольких компьютеров в инструменты и оркестрирует их между машинами.
Удалённое администрирование / отладка в локальной сети: с любого узла отправляйте команды другим узлам и получайте результаты.
Передача файлов между машинами: двусторонняя отправка/получение отдельных файлов и каталогов (автоматическая упаковка в zip).
Подключение AI-клиентов: «отправка задач / проверка входящих / выполнение команд / чтение и запись файлов / загрузка и скачивание» оформляются как стандартные инструменты для вызова из Claude / Cursor.
3. Техническая архитектура
┌──────────── 中心节点 (一台, --role hub) ────────────┐
│ mosquitto (MQTT broker) │
│ bus_server (FastAPI + SQLite, Web 面板 + 文件服务) │
│ 自身控制节点 (带全部功能) │
└────────────────────────────────────────────────────┘
▲ MQTT / HTTP ▲ UDP beacon 发现
│ │
┌─────────┴─────────┐ ┌─────────┴─────────┐
│ worker (对称控制节点) │ ... │ worker (对称控制节点) │
│ 连总线 + 受控/遥控 │ │ 连总线 + 受控/遥控 │
└───────────────────┘ └───────────────────┘Коммуникационный слой: MQTT (mosquitto), сообщения маршрутизируются по топикам (
agent/<id>/inbox,bus/register,bus/heartbeat/), QoS 1, retain-регистрация + завещание (LWT) для отметки офлайн.Слой обнаружения: UDP-широковещательный beacon (
255.255.255.255:41830), симметричный, без главного/подчинённого; при запуске worker автоматически сканирует узлыis_masterи получает реальный адрес broker (без ручной настройки).Файловый слой: HTTP (bus_server, FastAPI), загрузка/скачивание по схеме Claim-Check, автоматический zip для каталогов / безопасная распаковка (защита от path traversal + zip-slip).
Центр: роль hub запускает mosquitto встроенно (если уже установлен локально — переиспользуется, иначе при первом запуске распаковывается из
build/mosquitto.zip) + bus_server + веб-панель.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. Установка
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/необходимо сохранять.Веб-панель: после запуска откройте в браузере
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 |
| ✅ | ✅ | Единственная точка входа |
| ✅ | ✅ | Установка зависимостей |
| ✅ | ❌ | Веб-панель, только для hub |
| ✅ | ❌ | Портативный пакет broker, только для hub |
| опционально | ❌ | Инструменты сборки, в рантайме не используются |
| создаётся автоматически | создаётся автоматически | Артефакты времени выполнения |
5. Параметры командной строки
Параметр | Описание | По умолчанию |
| Роль узла | 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
6. Конфигурация MCP (для AI-клиентов)
--mcp работает через stdin/stdout и предназначен для запуска из MCP-клиентов, таких как Claude Desktop / Cursor, через 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 автоматически обнаружит центр; при разных подсетях или сбое обнаружения укажите его явно.
7. Структура каталогов
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.txt8. Модель безопасности
Проект рассчитан на доверенную локальную сеть: 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