Skip to main content
Glama
atristannewman

AgentRadio MCP

AgentRadio MCP (Python)

一个 Python MCP 服务器,为 Cursor 代理提供 AgentRadio 原语 — create_threadsend_messagewait_for_mention — 让不同工作区中的代理能够通过共享的无线电信道处理同一个问题。

这是 Coral-Protocol/AgentRadio论文)通信层的 Python 移植版。它运行 Java coral-server.jar 或 Harbor 实验框架。它在每个 Cursor 工作区都能看到的共享 SQLite 存储上实现了同样的三个原语,外加 join/list/read。

为什么存在

AgentRadio 的核心理念是:代理应该在监听的同时继续工作。原论文使用的是后台 wait_for_mention 进程。Cursor 无法以相同方式暴露该监视器,因此该服务器:

  1. 将这些原语公开为 Cursor 代理可以调用的 MCP 工具。

  2. 跨工作区共享状态(一个 SQLite 文件,或一个 HTTP hub)。

  3. 通过 MCP 指令告诉每个代理在工作步骤之间轮询 wait_for_mention

两个 Cursor 窗口 — 例如 frontendbackend — 加入同一频道,打开一个规划线程,并在继续编码的同时传递发现。

安装

cd agentradio-mcp
python3 -m pip install -e .

需要 Python 3.10+ 和 mcp 1.21–1.x。

共享频道的两种方式

A. 同一台机器,多个工作区(最简单)

每个工作区运行自己的 stdio MCP 进程。它们都打开 ~/.agentradio/radio.db,因此能看到相同的线程。

在每个工作区的 .cursor/mcp.json 中放入不同AGENTRADIO_AGENT_ID

{
  "mcpServers": {
    "agentradio": {
      "command": "python3",
      "args": ["-m", "agentradio_mcp"],
      "env": {
        "AGENTRADIO_AGENT_ID": "frontend",
        "AGENTRADIO_CHANNEL": "my-app",
        "AGENTRADIO_WORKSPACE": "web"
      }
    }
  }
}

在另一个工作区中,使用 "backend" / "api"。保持 AGENTRADIO_CHANNEL 相同。

cursor-rules/agentradio.mdc 复制到每个工作区,命名为 .cursor/rules/agentradio.mdc,这样代理才会真正使用无线电。

B. 一个 HTTP hub(当多个工作区共享一个配置时最佳)

启动单个进程:

python3 -m agentradio_mcp --http --host 127.0.0.1 --port 8765

examples/start-hub.sh

然后每个工作区(或你的用户级 ~/.cursor/mcp.json)都可以使用相同的配置:

{
  "mcpServers": {
    "agentradio": {
      "url": "http://127.0.0.1:8765/mcp"
    }
  }
}

每个代理使用自己的 agent_id 调用 join_radio。这就是一个共享的 MCP URL 仍然具有不同身份的方式。

Cursor 设置 → MCP → 添加服务器,然后重新加载 MCP。

工具

工具

功能

join_radio(agent_id, workspace?)

在频道上注册此工作区。如果未设置 AGENTRADIO_AGENT_ID,请先调用此工具。

list_agents

谁在频道上(以及谁已过期)。

create_thread(name, participants?)

打开一个命名的会话。参与者为空 = 当前已加入的所有人。

send_message(thread_id, content, mentions?)

附加一条消息并立即返回。文本中的 @handles 算作提及。提及某人会将其加入线程。

wait_for_mention(timeout_ms=15000)

阻塞直到你被提及、出现任何新的可见消息或超时。始终返回完整的状态转储。

read_state

你可以看到的代理、线程和消息的快照。

leave_radio

将此代理标记为已断开连接。历史记录保留。

资源:agentradio://stateagentradio://protocol

代理应如何工作

  1. frontend / backend / agent-1 / … 身份调用 join_radio

  2. list_agents — 等待同伴,或启动一个他们会加入的线程。

  3. 继续工作。在步骤之间,调用 wait_for_mention(8–15 秒)或 timeout_ms=0

  4. 随时分享。以 FYI:(无需回复)、URGENT:(立即处理)开头。

  5. 在长上下文之后,使用 read_state 并从真实消息中复制证据。

可选的五阶段协议(来自论文)包含在 MCP 指令中:探索 → 分工直至 APPROVE → 使用工作日志执行 → 审查 → 汇编者仅在一致 APPROVE 后提交。

CLI

python3 -m agentradio_mcp                  # stdio (what Cursor launches)
python3 -m agentradio_mcp --http           # hub at http://127.0.0.1:8765/mcp
python3 -m agentradio_mcp --dump-state frontend

环境变量 / 标志

默认值

含义

AGENTRADIO_DB_PATH / --db

~/.agentradio/radio.db

共享的 SQLite 文件

AGENTRADIO_CHANNEL / --channel

default

房间名称(隔离团队)

AGENTRADIO_AGENT_ID

未设置

在首次调用工具时自动加入此 id

AGENTRADIO_WORKSPACE

cwd 基名

显示在 list_agents 中的标签

AGENTRADIO_HOST / --host

127.0.0.1

HTTP 绑定地址

AGENTRADIO_PORT / --port

8765

HTTP 端口

测试

python3 -m pip install -e ".[dev]"
python3 -m pytest

这不是什么

  • 不是 SWE-Atlas / Harbor 四代理实验运行器。

  • 不是 Coral Code(该产品)。

  • 不是让隔离的云 VM 相互通信的方式,除非它们能访问同一个 HTTP hub 或 SQLite 路径。对于云代理,请在一个它们都能访问的主机上运行 hub,并将每个代理的 MCP url 指向它。

许可证

Apache-2.0。参见 LICENSENOTICE

-
license - not tested
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • Remote MCP server for The Colony — a social network for AI agents (posts, DMs, search, marketplace).

  • MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.

  • Agent-native collaboration network: orchestrate a team of long-running agents from any MCP client.

View all MCP Connectors

Latest Blog Posts

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/atristannewman/agentradio-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server