Skip to content

MCP 服务器

ADHDev 提供了一个 MCP stdio 服务器,让外部 MCP 客户端可以把 ADHDev 会话当作工具使用。该服务器以 @adhdev/mcp-server 发布,也被主云 CLI 包装为 adhdev mcp

当你想让诸如 Claude Desktop 之类的 MCP 客户端列出活动的 ADHDev 会话、读取聊天历史、发送消息或批准一个等待中的提示时,请使用它。在 mesh 模式下,它会成为完整的 Repo Mesh 协调者工具界面。

模式

模式MCP 服务器使用的传输工具
本地 standalonehttp://localhost:3847 standalone API基础 15 个工具 + screenshot + 3 个 mesh 引导工具(共 19 个)
IPClocalhost:19222 处的云守护进程本地 IPC相同的基础 15 个工具 + 3 个 mesh 引导工具,不含 screenshot(共 18 个)
Mesh本地或 IPC + --repo-mesh <id>协调者范围的工具集 — 见下方 Mesh 工具

本地模式是 OSS/自托管界面的一部分。有关 standalone 设置和认证详情,请使用 OSS 文档:

启动服务器

bash
# 本地模式:需要一个正在运行的 standalone 守护进程
adhdev mcp
adhdev mcp --port 4000
adhdev mcp --password my-standalone-password

你也可以直接运行 OSS 包:

bash
npx @adhdev/mcp-server
npx @adhdev/mcp-server --mode ipc --repo-mesh mesh_abc123

也支持环境变量:

bash
ADHDEV_PASSWORD=my-standalone-password adhdev mcp
ADHDEV_MESH_ID=mesh_abc123 adhdev mcp

Claude Desktop 配置

json
{
  "mcpServers": {
    "adhdev": {
      "command": "adhdev",
      "args": ["mcp"]
    }
  }
}

Mesh 模式(协调者范围工具):

json
{
  "mcpServers": {
    "adhdev-mesh": {
      "command": "adhdev",
      "args": ["mcp", "--mode", "ipc", "--repo-mesh", "mesh_abc123"]
    }
  }
}

Hermes Agent mesh 配置

Hermes Agent 不会自动导入仓库本地的 .mcp.json。要在 Hermes 中使用 Repo Mesh 工具,请在 Hermes YAML 配置的 mcp_servers 下添加 mesh 服务器,然后启动一个全新的 Hermes 会话。

查找 Hermes 配置文件:

bash
hermes config path

添加一个 mesh 服务器条目:

yaml
mcp_servers:
  adhdev-mesh:
    command: adhdev
    args:
      - mcp
      - --mode
      - ipc
      - --repo-mesh
      - mesh_abc123
    enabled: true

保存配置后,退出并重新启动 Hermes。MCP 工具在 Hermes 会话启动时被发现,因此一个已在运行的会话可能看不到新的 mesh 服务器。

标准模式工具

标准模式(不带 --repo-mesh)在直接会话控制界面之外,还额外暴露三个 mesh 引导工具,让纯 MCP 代理能够在 mesh 尚不存在时先创建一个。

会话与守护进程

  • list_daemons —— 报告已连接守护进程的身份。
  • list_sessions —— 发现某个守护进程上可用的会话。
  • launch_session / stop_session —— 管理 CLI/IDE 代理生命周期。
  • check_pending —— 列出等待批准的会话。

聊天与批准

  • read_chat —— 读取所选会话的最近聊天。
  • read_chat_debug —— 所选会话聊天状态的有界调试包。
  • spec_debug —— 供应商 spec 解析调试辅助工具。
  • send_chat —— 向所选会话发送消息。
  • approve —— 批准或拒绝一个批准提示。

Git

  • git_statusgit_diffgit_loggit_checkpointgit_push —— 管理工作区 git 操作。

仅限本地

  • screenshot —— 通过守护进程捕获当前 IDE 窗口。需要 P2P/本地守护进程访问,因此只在本地模式下可用,IPC 模式不可用。

Mesh 引导(本地和 IPC 标准模式下均可用 —— 这是尚无 mesh 时的路径)

  • mesh_plan_onboarding —— 只读 dry-run:仅提议创建/加入 mesh 会做什么,不写入任何内容。
  • mesh_create —— 创建一个新 mesh,可选地将当前工作区注册为其第一个节点。
  • mesh_add_node —— 将一个已存在的工作区注册为某个已存在 mesh 的节点。

一旦 mesh 存在,用 --repo-mesh <mesh_id> 重新注册 MCP 服务器即可切换到 mesh 模式,解锁下方完整的协调者工具集 —— mesh 模式是完全替换工具界面,而不是在其基础上追加。

Mesh 工具

Mesh 工具仅在 mesh 模式(--repo-mesh)中可用。它们用一套协调者范围的工具集替换标准工具。

名称与数量的权威来源

本页按工具族分组介绍,用于导览。准确的名称、当前数量及完整的输入 schema 的权威列表,是 oss/packages/mcp-server/src/tools/mesh-tool-schemas.ts 中的 ALL_MESH_TOOLS。如果下方列表与代码有出入,以代码为准 —— 这份列表过去曾经过时。

状态与检查

  • mesh_status —— 聚合快照:所有节点的健康状况、git 状态、活动会话、恢复提示,以及按守护进程的构建/陈旧信息。
  • mesh_list_nodes —— 列出带工作区路径和能力的节点。
  • mesh_read_chat —— 读取某个被委派代理的聊天历史。
  • mesh_read_debug —— 某个被委派会话的有界调试包。
  • mesh_read_terminal —— 读取某个被委派会话当前的原始 PTY 视口(人类此刻在屏幕上会看到的内容)。
  • mesh_git_status —— 获取某个节点工作区的 git 状态。
  • mesh_read_node_logs —— 对某个节点的守护进程日志文件做 grep(整个文件,而非仅末尾)。
  • mesh_task_history —— 整个 mesh 中任务的紧凑历史。
  • mesh_ledger_query —— 沿 kind/时间/节点这几个轴的只读账本查询(对以任务轴为中心的 mesh_task_history 的补充)。
  • mesh_review_inbox —— 等待协调者的待审查/待批准项。
  • mesh_list_pending_approvals —— 整个 mesh 中当前等待批准决定的所有会话列表。

分派、会话与控制

  • mesh_send_task —— 直接向某个被委派代理会话发送自然语言任务。
  • mesh_launch_session —— 在某个 mesh 节点上启动新的代理会话。
  • mesh_send_keys —— 向某个被委派的工作者会话注入结构化的按键序列。
  • mesh_restart_daemon —— 重启某个 mesh 节点的守护进程。
  • mesh_approve —— 批准/拒绝某个被委派代理上的待处理操作。
  • mesh_answer_question —— 回答某个被委派会话正在等待的多选问题(AskUserQuestion)。
  • mesh_checkpoint —— 在某个节点工作区上创建 git 检查点。
  • mesh_cleanup_sessions —— 停止/清理陈旧或孤立的被委派会话。
  • mesh_prune_stale_direct —— 修剪陈旧的直接分派记录。

工作队列与任务群

  • mesh_enqueue_task —— 把一个由空闲节点自主认领的任务入队(支持 target_node_id / prefer_worktree 路由、task_modemission_iddepends_on)。
  • mesh_view_queue —— 当前活动工作的权威来源(pending/assigned/terminal)。
  • mesh_queue_cancel / mesh_queue_requeue —— 取消或重新入队一个已排队的任务。
  • mesh_mission_upsert —— 创建/更新一个任务群(目标分组 + 生命周期状态)。
  • mesh_mission_list —— 列出任务群及其目标、状态和实时任务进度(总数/待处理/已分配/已完成/失败)。
  • mesh_reconcile_ledger —— 根据对等方的有界切片对齐本地账本。
  • mesh_requeue_held_events —— 将可恢复的被搁置的协调者事件恢复回待处理队列。
  • mesh_record_note / mesh_forget_note —— 记录或撤回一条未来协调者会继承的持久运营笔记。

引导与配置(mesh 模式;与上方标准模式的三件套引导工具不同)

  • mesh_init —— 面向已有 git 项目的一键引导:检测已安装的 CLI 供应商,并提议仓库的三类 .adhdev/* 配置(Refinery、worktree bootstrap、change-impact)。默认是预览;write: true 时才会应用。
  • mesh_reinit —— 与 mesh_init 相同,但用于已经初始化过的仓库,overwrite 默认改为 true,并返回当前值与建议值的差异对比。
  • mesh_write_mesh_json_config —— 根据机器本地的 mesh 条目,写入需提交到仓库的 .adhdev/mesh.json
  • mesh_refine_config —— 统一的只读 Refinery 配置辅助工具;用 mode 参数(schema / validate / suggest)选择操作。取代了曾经独立的 mesh_refine_config_schema / mesh_validate_refine_config / mesh_suggest_refine_config —— 见下方已弃用别名说明。
  • mesh_change_impact_config —— 面向 change-impact 配置的同一种统一模式(modeschema / validate / suggest)。取代了曾经独立的 mesh_change_impact_config_schema / mesh_validate_change_impact_config / mesh_suggest_change_impact_config

节点

  • mesh_clone_node —— 把一个节点克隆为一个隔离的 git 工作树节点。
  • mesh_remove_node —— 移除一个(工作树)节点,可选地清理会话。
  • mesh_cleanup_worktree_nodes —— 对已证明分支已合并/已推送、且通过所有安全排除条件的、已收敛的本地工作树节点,规划(默认 dry-run)或执行安全移除。
  • mesh_fast_forward_node —— 默认安全地 dry-run,或显式执行一次明确的干净 fast-forward,而不启动代理会话;仅使用 fetch/recheck、merge --ff-only、可选的子模块更新和后续状态验证。

Refinery(工作树 → 基线收敛)

  • mesh_refine_node / mesh_refine_batch —— 把一个或多个工作树分支收敛回基线(验证 → 合并 → 推送 → 清理)。
  • mesh_refine_plan —— 在不执行的情况下预览收敛计划。

MAGI(多代理交叉验证)

  • mesh_magi_review —— 不派发单个工作者,而是在一组独立 mesh 代理构成的常设面板上交叉验证一次只读调查。
  • mesh_magi_collect —— 按共识组 id 收集并综合此前派发的 MAGI 扇出(mesh_magi_review({ wait:false }) 的异步搭档)。
  • mesh_magi_kind_panel_set / mesh_magi_kind_panel_list —— 为此 mesh 按任务类型绑定或列出配置的 MAGI 面板槽位。

节点槽位(供应商/模型/思考级别路由)

  • mesh_node_slots_set —— 提议(dry-run)或应用某个节点的槽位列表,把供应商/模型/思考级别绑定到难度类别。
  • mesh_node_slots_list —— 列出某个节点当前的槽位。

已弃用别名

mesh_refine_config_schemamesh_suggest_refine_configmesh_validate_refine_config,以及它们对应的 change-impact 版本(mesh_change_impact_config_schemamesh_suggest_change_impact_configmesh_validate_change_impact_config)已分别整合进 mesh_refine_configmesh_change_impact_config,通过 mode 参数选择。这六个旧名称不再由 tools/list 列出——不会出现在客户端的工具选择列表中——但服务器在一个发布周期内仍会继续派发它们,作为兼容层转发到对应 mode 的统一处理函数。新的调用方应直接使用 mesh_refine_config / mesh_change_impact_config

相关参考

托管云端文档在此。开源与自托管文档位于 OSS 仓库。