agent-node
Agent Node
LAN内の複数マシン間で動作するインテリジェントエージェント連携ノード。各PCに1つデプロイするだけで、「複数マシン・複数エージェントの協働チーム」を構築可能:LAN内の自動相互検出、対称的な被制御/遠隔コマンド実行、システムトレイでの状態可視化、ノード間ファイル送受信、AIクライアントが呼び出せるMCP Server内蔵。
agent-busリポジトリから切り出した最小構成の独立プロジェクト。ソースコードで実行し、パッケージ配布は行わない。
一、機能設計
機能 | 説明 |
対称制御ノード | 各PCで同一プログラムを実行、機能は同等で、相互に遠隔コマンド実行が可能 |
LAN自動相互検出 | UDPブロードキャストbeacon(LocalSendと同様)。ノード起動後に同一セグメントの他ノードを自動検出 |
被制御機能 | 任意ノードからの |
遠隔制御機能 | 検出した任意ノードに対して「このPCでコマンド実行」を指示し、実行結果を取得 |
状態可視性 | トレイアイコンの色が変化(ノードオンライン=緑、なし=灰)、タイトルに検出ノード数をリアルタイム表示 |
ノード命名 | デフォルトはhostname。Webパネルでいつでも改名可能、人間が覚えやすいように |
ノード間ファイル送受信 |
|
内蔵MCP Server | 標準MCPツール10個。Claude Desktop / Cursor などのAIクライアントが接続可能 |
中心役割(hub) | 追加でMQTT broker + Webパネル + ファイルサービスを起動し、チームの中心となる |
ポートフォールバック | MQTT / HTTP / 検出ポートにそれぞれ予備ポートプールを用意。占有時は自動的にフォールバック |
二、利用シーン
複数マシン・複数エージェント協働:1つのAIクライアントがMCP経由で複数PCの機能をツールとしてカプセル化し、マシンを跨いでスケジューリング。
LAN内リモート運用 / デバッグ:任意ノードから他ノードへコマンドを送信し、結果を取得。
マシン間ファイル転送:単一ファイル / ディレクトリ(自動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+(全マシン)
LAN内の通信が可能 + ファイアウォールで許可(hub側の受信):
TCP
1883(MQTT、ポートプールで1884/1885/8883/18830にフォールバックする場合あり)TCP
8000(HTTPパネル/ファイル、プールで8001/8002/8010/8088にフォールバック)UDP
41830(検出ブロードキャスト)
4.2 hub マスター機(1台)
完全なプロジェクトディレクトリ + 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 その他のマシン(複数台)
最小限のサブセットのみでOK: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.pybrokerアドレスの設定不要:workerは
--broker-host指定なしの場合、LAN内のis_masterノードを自動スキャンして実際のアドレスを取得(host / MQTTポート / HTTPポートの3点すべて)。中心を手動指定(異なるセグメント / 自動検出失敗時):
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八、セキュリティモデル
本プロジェクトは信頼できるLANを前提としている: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