agent-node
Agent-Knoten
Lokaler Multi-Rechner-Agenten-Kooperationsknoten. Einmal auf jedem Computer bereitgestellt, bildet er ein „Multi-Rechner-Multi-Agenten-Kooperationsteam": automatische LAN-Erkennung, symmetrische ferngesteuerte/fernsteuernde Befehlsausführung, sichtbares System-Tray-Symbol, knotenübergreifender Dateiversand und -empfang, eingebetteter MCP-Server für den Aufruf durch KI-Clients.
Ein minimalistisches, eigenständiges Projekt, das aus dem
agent-bus-Repository extrahiert wurde. Läuft aus dem Quellcode, keine ausgelieferten Builds.
I. Fähigkeiten
Fähigkeit | Beschreibung |
Symmetrische Steuerknoten | Jeder Computer führt dasselbe Programm aus, funktional gleichwertig, kann sich gegenseitig fernsteuern |
Automatische LAN-Erkennung | UDP-Broadcast-Beacon (wie LocalSend), nach dem Start werden andere Knoten im selben Subnetz automatisch erkannt |
Ferngesteuert | Empfängt |
Fernsteuerung | Kann auf jedem erkannten Knoten „Befehl auf diesem Computer ausführen" auslösen und das Ergebnis abrufen |
Statusanzeige | Tray-Symbol wechselt die Farbe (Knoten online = grün, keine = grau), Titel zeigt die Anzahl erkannter Knoten in Echtzeit an |
Knotenbenennung | Standardmäßig wird der Hostname verwendet, kann im Web-Panel jederzeit umbenannt werden, für bessere Lesbarkeit |
Knotenübergreifender Dateiversand |
|
Integrierter MCP-Server | 10 Standard-MCP-Tools für KI-Clients wie Claude Desktop / Cursor |
Zentrale Rolle (Hub) | Startet zusätzlich MQTT-Broker + Web-Panel + Dateidienst, wird zum Team-Zentrum |
Port-Fallback | Pool von Ersatzports für MQTT / HTTP / Discovery, automatischer Fallback bei Belegung |
Related MCP server: R-Shell
II. Anwendungsfälle
Multi-Rechner-Multi-Agenten-Kooperation: Ein KI-Client kapselt die Fähigkeiten mehrerer Computer über MCP als Tools und orchestriert sie maschinenübergreifend.
LAN-Fernwartung / -Debugging: Befehle von einem beliebigen Knoten an andere Knoten senden und Ergebnisse abrufen.
Maschinenübergreifender Dateitransfer: Senden und Empfangen von Einzeldateien / Verzeichnissen (automatisch als ZIP gepackt) in beide Richtungen.
KI-Client-Anbindung: Kapselt „Aufgaben senden / Posteingang prüfen / Befehle ausführen / Dateien lesen/schreiben / Hoch- und Herunterladen" als Standard-Tools für Claude / Cursor.
III. Technische Architektur
┌──────────── 中心节点 (一台, --role hub) ────────────┐
│ mosquitto (MQTT broker) │
│ bus_server (FastAPI + SQLite, Web 面板 + 文件服务) │
│ 自身控制节点 (带全部功能) │
└────────────────────────────────────────────────────┘
▲ MQTT / HTTP ▲ UDP beacon 发现
│ │
┌─────────┴─────────┐ ┌─────────┴─────────┐
│ worker (对称控制节点) │ ... │ worker (对称控制节点) │
│ 连总线 + 受控/遥控 │ │ 连总线 + 受控/遥控 │
└───────────────────┘ └───────────────────┘Kommunikationsebene: MQTT (mosquitto), Nachrichten werden über Topics geroutet (
agent/<id>/inbox,bus/register,bus/heartbeat/), QoS 1, retain-Registrierung + Last-Will für Offline-Status.Discovery-Ebene: UDP-Broadcast-Beacon (
255.255.255.255:41830), symmetrisch ohne Master/Slave; Worker scannt beim Start automatisch nachis_master-Knoten, um die echte Broker-Adresse zu erhalten (keine manuelle Konfiguration erforderlich).Dateiebene: HTTP (bus_server, FastAPI), Claim-Check-Upload/-Download, automatisches ZIP für Verzeichnisse / sicheres Entpacken (Schutz vor Pfadmanipulation + Zip-Slip).
Zentrale: Die Hub-Rolle startet mosquitto (falls lokal installiert, wird es wiederverwendet, andernfalls wird es beim ersten Start aus
build/mosquitto.zipentpackt) + bus_server + Web-Panel.MCP: FastMCP über stdio-Transport, entkoppelt vom GUI-Modus, separat startbar.
MCP-Tools (10 Stück): list_online_agents · send_task · check_inbox · run_command · read_file · upload_file · download_file · fetch_file · post_file · reply_task
IV. Installation
4.1 Voraussetzungen
Python 3.10+ (auf allen Rechnern)
LAN-Konnektivität + Firewall-Freigabe (eingehend auf der Hub-Seite):
TCP
1883(MQTT, Port-Pool-Fallback möglich:1884/1885/8883/18830)TCP
8000(HTTP-Panel/Dateien, Pool-Fallback:8001/8002/8010/8088)UDP
41830(Discovery-Broadcast)
4.2 Hub-Hauptrechner (einer)
Benötigt vollständiges Projektverzeichnis + 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: Wenn lokal installiert, wird es automatisch verwendet (
shutil.which("mosquitto")oderC:\Program Files\mosquitto); wenn nicht installiert, wird es beim ersten Start automatisch ausbuild/mosquitto.zipnachdata/runtime/mosquittoentpackt.build/muss daher erhalten bleiben.Web-Panel: Nach dem Start im Browser
http://127.0.0.1:8000/öffnen (bei Port-Pool-Fallback die tatsächliche Portnummer im Startprotokoll beachten).Beim ersten Start des Hubs wird
data/erstellt (bus.db, files, broker.log, node_config.json), keine Vorkonfiguration nötig.
4.3 Worker (andere Rechner, beliebig viele)
Nur eine reduzierte Teilmenge wird benötigt: agent_bus/-Paket + executor/control_app.py + requirements.txt (server/, build/, scripts/ werden nicht benötigt).
# 1. 拷贝精简子集到目标机器(或 git clone 后仅运行,多余的目录会被自动忽略)
# agent_bus/ executor/control_app.py requirements.txt
# 2. 安装依赖
pip install -r requirements.txt
# 3. 启动 worker(无参数,自动扫描局域网中心)
python executor/control_app.pyKeine Broker-Adresse konfigurieren: Ohne
--broker-hostscannt der Worker automatisch das LAN nachis_master-Knoten und übernimmt die echte Adresse (Host / MQTT-Port / HTTP-Port).Manuelle Angabe des Zentrums (bei gerouteten Netzen / fehlgeschlagener automatischer Erkennung):
python executor/control_app.py --broker-host 192.168.1.10Der Posteingang wird automatisch unter
Downloads/agent-node/inboxabgelegt, das Konfigurationsverzeichnisdata/wird automatisch erstellt. Keine Vorkonfiguration nötig.
4.4 Reduzierte Dateiliste
Datei/Verzeichnis | Hub | Worker | Beschreibung |
| ✅ | ✅ | Kommunikations-SDK |
| ✅ | ✅ | Einziger Einstiegspunkt |
| ✅ | ✅ | Abhängigkeiten installieren |
| ✅ | ❌ | Web-Panel, nur für Hub |
| ✅ | ❌ | Portables Broker-Paket, nur für Hub |
| Optional | ❌ | Build-Tools, zur Laufzeit nicht benötigt |
| Automatisch erstellt | Automatisch erstellt | Laufzeitartefakte |
V. Befehlszeilenargumente
Argument | Beschreibung | Standard |
| Rollen des Knotens | worker |
| Knoten-ID (Adressierungsidentität) |
|
| Anzeigename | Wie Agent-ID |
| Adresse des externen zentralen Brokers (für Worker; Standard: automatische Erkennung) | Leer |
| MQTT-Port | Automatisch aus Pool |
| HTTP-Port | Automatisch aus Pool |
| Discovery-Port | Automatisch aus Pool |
| Deaktiviert die Fernsteuerungsfähigkeit beim Start | false |
| Kein Tray-Symbol (Hintergrund/Test) | false |
| MCP-Server-Modus (stdio) | false |
Port-Pools
MQTT:
1883 → 1884 → 1885 → 8883 → 18830HTTP:
8000 → 8001 → 8002 → 8010 → 8088Discovery:
41830 → 41831 → 41832 → 41840 → 41850
VI. MCP-Konfiguration (für KI-Clients)
--mcp läuft über stdin/stdout und kann von Claude Desktop / Cursor usw. als MCP-Client per JSON-Konfiguration gestartet werden.
{
"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_HOSTkann weggelassen werden – der Worker erkennt das Zentrum automatisch; bei gerouteten Netzen oder fehlgeschlagener Erkennung explizit angeben.
VII. Verzeichnisstruktur
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.txtVIII. Sicherheitsmodell
Dieses Projekt ist für vertrauenswürdige lokale Netzwerke ausgelegt: Der Broker erlaubt anonyme Verbindungen (allow_anonymous), Steuernachrichten werden im Klartext über MQTT gesendet, es gibt nur eine Whitelist für das sender_id-Präfix (die Steuerebene akzeptiert nur hub-*-Identitäten). Keine HMAC-Signaturprüfung / Verschlüsselung / Knoten-Whitelist – für den Einsatz über nicht vertrauenswürdige Netzwerke hinweg sind eigene Sicherheitsmaßnahmen erforderlich.
This server cannot be deployed
Maintenance
Related MCP Connectors
Remote MCP server exposing your Node Command fleet (files, shell, processes, browser) to AI hosts.
1MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
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.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceMCP server for multi-agent collaboration enabling AI agents to communicate, delegate tasks, and share artifacts across clients and machines with federation support.28 npm1MIT
- AlicenseNot gradedqualityBmaintenanceMCP server enabling AI assistants to securely operate remote servers via persistent SSH sessions, with tools for command execution, file transfer, directory listing, and system monitoring.4MIT
- AlicenseNot gradedqualityAmaintenanceMCP server that turns multiple home computers into a fleet for AI coding agents, enabling task delegation and LAN-based execution with local models.1Apache 2.0
- AlicenseNot gradedqualityBmaintenanceMCP server that enables AI agents on different machines to communicate and collaborate directly through relay channels, supporting structured agent contracts, real-time messaging, and human-in-the-loop approval workflows.9,753 npmMIT