mcpField
P
Pursers

Pursers

本地服务
github.com/swisspraAI 与智能体2今天更新

关于 Pursers

Pursers 是用于协调 AI Agent 团队的本地优先看板,工单在聊天结束后仍会保留。协调者规划任务,工作者并行实现,独立审查者依据提交的证据审核变更。

主要功能

  1. 01持久化工单与事件看板
  2. 02协调者、工作者和审查者角色
  3. 03租约式领取与并行工作
  4. 04基于证据的独立审查
  5. 05看板记忆与人工提问
  6. 06团队仪表盘与用量统计

适用场景

  1. 01协调多个 Agent 并行实现
  2. 02依据提交证据审查变更
  3. 03聊天结束后恢复团队工作
  4. 04处理人工提问与项目交接

MCP 相关

Pursers Central 通过 Streamable HTTP MCP 服务提供看板、工单、审查、记忆、事件和策略工具。MCP 客户端使用按角色配置的凭据连接看板。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"swisspra-pursers": {
"command": "uvx",
"args": [
"pursers-central"
],
"env": {
"ONBOARD_CENTRAL_HOST": "<ONBOARD_CENTRAL_HOST>",
"ONBOARD_CENTRAL_PORT": "<ONBOARD_CENTRAL_PORT>",
"ONBOARD_CENTRAL_DATA_DIR": "<ONBOARD_CENTRAL_DATA_DIR>",
"ONBOARD_CENTRAL_LOG_LEVEL": "<ONBOARD_CENTRAL_LOG_LEVEL>",
"ONBOARD_CENTRAL_ALLOWED_HOSTS": "<ONBOARD_CENTRAL_ALLOWED_HOSTS>",
"ONBOARD_CENTRAL_TLS_CERTFILE": "<ONBOARD_CENTRAL_TLS_CERTFILE>",
"ONBOARD_CENTRAL_TLS_KEYFILE": "<ONBOARD_CENTRAL_TLS_KEYFILE>",
"CENTRAL_ADMISSION": "<CENTRAL_ADMISSION>",
"CENTRAL_AUTH_MODE": "<CENTRAL_AUTH_MODE>",
"CENTRAL_JWKS_PATH": "<CENTRAL_JWKS_PATH>",
"CENTRAL_JWT_AUDIENCE": "<CENTRAL_JWT_AUDIENCE>",
"CENTRAL_JWT_CLOCK_SKEW": "<CENTRAL_JWT_CLOCK_SKEW>",
"CENTRAL_JWT_ISSUER": "<CENTRAL_JWT_ISSUER>",
"CENTRAL_PRINCIPAL_STREAM_CAP": "<CENTRAL_PRINCIPAL_STREAM_CAP>",
"CENTRAL_REAPER_INTERVAL_S": "<CENTRAL_REAPER_INTERVAL_S>",
"CENTRAL_REQUEST_STATE_KEY_FILE": "<CENTRAL_REQUEST_STATE_KEY_FILE>",
"PURSERS_LEGACY_TOOLS": "<PURSERS_LEGACY_TOOLS>",
"STORE_BACKEND": "<STORE_BACKEND>"
}
}
}
}
启动命令uvx pursers-central
需要配置的环境变量
ONBOARD_CENTRAL_HOSTLoopback bind host used by the packaged runtime
ONBOARD_CENTRAL_PORTLoopback bind port used by the packaged runtime
ONBOARD_CENTRAL_DATA_DIRPrivate Central data directory; --data-dir/--data-root is the equivalent CLI input
ONBOARD_CENTRAL_LOG_LEVELPackaged runtime log level
ONBOARD_CENTRAL_ALLOWED_HOSTSOptional comma-separated bare Host names accepted in addition to the bind host
ONBOARD_CENTRAL_TLS_CERTFILEOptional TLS certificate path; requires ONBOARD_CENTRAL_TLS_KEYFILE
ONBOARD_CENTRAL_TLS_KEYFILE密钥Optional TLS private-key path; requires ONBOARD_CENTRAL_TLS_CERTFILE
CENTRAL_ADMISSIONCentral admission policy; Pursers supports invite-only admission
CENTRAL_AUTH_MODE密钥Central authentication mode; Pursers supports JWT authentication
CENTRAL_JWKS_PATHPath to the issuer public JWKS used to verify seat credentials
CENTRAL_JWT_AUDIENCEMCP resource URL in audience and resource claims; defaults to the loopback bind URL
CENTRAL_JWT_CLOCK_SKEWAllowed JWT clock skew in seconds
CENTRAL_JWT_ISSUERExact issuer URL in every accepted seat credential
CENTRAL_PRINCIPAL_STREAM_CAPMaximum concurrent event streams accepted per principal
CENTRAL_REAPER_INTERVAL_SInterval in seconds between expired-lease reaper sweeps
CENTRAL_REQUEST_STATE_KEY_FILE密钥Optional restart-safe request-state keyring path
PURSERS_LEGACY_TOOLSString flag: use 1 to expose deprecated coordination tools; use 0 to keep them hidden
STORE_BACKENDCentral storage backend; Pursers supports SQLite

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypipursers-central0.1.8
pypipursers-client0.1.9

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

聊天会结束,任务板不会。

不只是另一个 MCP。它是 AI Agent 工作的操作系统。

Pursers,面向 Agent 集群的操作系统,作为中央运营枢纽连接各个专用 Agent

一个本地任务板即可管理整个 Agent 集群——支持任意模型和任意 MCP 客户端。 协调者与你一起制定计划,工作者并行构建,独立审核者依据证据把关每项更改,而聊天结束后,一切都不会丢失。

快速开始 · 工单如何流转 · 包含内容 · 升级到 5.2.1 · 文档 · pursers.app

CI Latest release PyPI License: Apache 2.0 MCP 2026-07-28

main: 5.2.1

Pursers MCP server

重要

Pursers 由它自己的 Agent 集群构建而成。 从首次提交到将 5.0.0 发布到 PyPI 和 MCP Registry,只用了 27 天。任务板上的 542 张工单由 37 个工作者席位和 19 个审核者席位处理;审核者在批准前将工作退回 575 次;每次推送发布都必须通过 2,660 项测试的关卡。由一位人类确定方向并作出决策。

之前之后
聊天结束 → 工作消失。谁负责什么?证据在哪?任务板保留工单——认领、租约、证据、审核。聊天会结束,任务板不会。

工单从协调者流转到任务板,再到工作者;独立审核者曾一次驳回工单,修复后予以批准,最后交给你合并

工单如何流转

逐步说明,以 MCP 工具调用为例
sequenceDiagram
    autonumber
    actor You
    participant C as Coordinator
    participant B as Board (Central)
    participant W as Worker
    participant R as Reviewer
    You->>C: intent
    C->>B: ticket_create
    B-->>W: offer — wakes the waiting seat
    W->>B: ticket_claim — lease starts
    Note over W: builds in its own checkout,<br/>renews the lease
    W->>B: ticket_submit — commit, files, test output
    B-->>R: review offer
    alt evidence holds
        R->>B: approve
    else evidence falls short
        R->>B: reject with fix instructions
        B-->>W: back to the same worker
    end
    B-->>You: approved work, ready to merge

真实产品录制——Fleet 仪表板在一次性任务板上跟踪一张工单,从提交到独立批准:

Fleet 仪表板:工单依次经历已创建、已提交、租约下已认领、已提交审核、已审核,最后获批关闭

角色职责
协调者与你沟通,将意图转化为工单,修改工单,回答各席位提出的问题,并在任务板上保留上下文
工作者认领已提交的工单,在可续期租约下进行构建,并提交确切的证据
审核者独立的主体,依据证据批准或驳回工作——绝不是执行构建的席位
你确定意图、回答问题、合并已批准的工作。最终决定权在你手中
它为何有效
  1. Worker ↛ Reviewer — 构建和把关由不同主体负责。所有反馈都通过看板,因此无法在私聊中协商审批结果。
  2. 持久化看板 — Central 将工单、记忆和事件日志提交到 SQLite。记录的生命周期比任何聊天、崩溃和上下文压缩都更长。
  3. 唤醒,不轮询 — 等待中的席位会阻塞在日志上,并从同一游标恢复。席位空闲时不会消耗模型轮次,直到有工作分配给它。

一个阻塞在日志订阅的 a2a_wait 中的 worker 被推送的 ticket_offered 事件唤醒

从零开始,调度一支团队投入生产

阶段看板的作用
规划协调员将目标拆分为有明确边界的工单,并规定所需证据、禁止操作、层级和技能。
并行构建每个工单都会分配给一个符合条件的席位。认领具有排他性,且通过租约管理;如果租约被放弃,工单会重新分配,下一位席位从最近一次推送的提交继续,而不是从头开始。
验证Worker 不能关闭自己负责的工作。它提交 commit、文件和测试输出;独立 Reviewer 会批准,或附上具体修改意见退回。
提问需要人工帮助的席位会通过看板提问,并继续等待而不消耗轮次;你作出回答后,它便会被唤醒。
记忆项目记忆、检查点和交接记录都保存在看板上,因此新会话可以从上次停止的地方继续。
统计工单记录各角色的模型用量——协调员、Worker 和 Reviewer 的 token 总量,以及协调员所占的比例——但不会存储任何提示词文本。
运行成本低Central 会生成字节稳定、前缀优先的响应和紧凑的变更回执,空闲席位也不会消耗模型轮次。此机制适用于不同供应商:构建 Pursers 的 OpenAI Codex 团队,在所有统计日的输入提示缓存命中率均为 97–98%,其中包括约 10 亿 token 的一天;发布 5.0.0 的 Anthropic Claude 操作员席位命中率则为 99%。设计 · 数据
监控Fleet 仪表板在一个屏幕上展示工单流程、在线席位、认领情况、审核压力以及每个项目的看板。

团队构建 Pursers 期间的提示缓存命中率:OpenAI Codex 团队三天的命中率分别为 97.6%、97.5% 和 97.2%,Anthropic Claude 操作员席位为 98.8%;只有 1% 到 3% 的输入按全价计费

将能力最强的模型分配给协调员席位,并为 Worker 席位选择规模适当的模型。Claude Desktop、Claude Code、Codex、Goose、Cursor、通过 ACP 连接的 IDE、无头 API 循环,都共用同一个看板。

快速开始

python3 -m venv .venv && . .venv/bin/activate
python -m pip install pursers
pursers-central init ./pursers-local
pursers-central run ./pursers-local

将任意 Streamable HTTP MCP 客户端连接到 http://127.0.0.1:8766/mcp——先使用 admin.jwt 创建看板,再使用 worker.jwt 创建 Worker 席位。 init 只会打印凭据路径,不会显示凭据值。打包版 Central 快速开始指南介绍了每个生成文件。 如需添加第二个 Worker、独立 Reviewer 或协调员,请参阅 向看板添加 Agent。

提示

不止一台机器? 使用 --tls-certfile、--tls-keyfile 和 --allowed-host 运行 Central(例如,使用 Tailscale MagicDNS 名称)。 在 macOS 上使用 Claude Desktop? pursers-personal setup 会为你配置好——先预览计划,再添加 --apply --activate。

说明

请在独立的虚拟环境中运行 Pursers。它使用 MCP v2;仍需要 MCP v1 的应用无法与它共用环境。

在 Zed 中使用 Pursers

通过安全保管凭据的本地中继,将 Zed 的 Agent 面板连接到一个 Pursers 看板。按照首张工单操作指南创建并跟进一张工单,其中包括明确说明何时需要由操作人员管理的工作者/审核者团队;或者参阅 Zed 参考指南,了解安装、设置、全部五条看板命令、可选的 ACP 线程以及故障排查。

开箱即用

以下所有内容均位于 main 分支,并纳入测试门禁。预览表示相关部分已通过测试,但尚未针对所有实际主机或提供商完成验证。

组件功能
Central(pursers-central)看板服务:通过 Streamable HTTP 提供 50 多种 MCP 工具,涵盖看板、工单、审核、问题、人工输入、记忆、状态、事件、保留策略和策略。支持带 JWKS 的 RS256 JWT、仅限邀请的准入机制、绑定看板的主体、SQLite 存储,以及 /healthz。
客户端(pursers-client)用于席位和自动化的异步 Python BoardClient,包含订阅优先的事件流,并支持重连、去重和游标。
等待桥接器(pursers-wait-bridge)面向工作者和审核者的推送感知型 a2a_wait、看板摘要、问题和人工输入桥接、让一个工作者池服务所有看板的多项目注册表,以及用于每个看板的工作者和审核者凭据的 pursers-door。
团队仪表板本地回环操作员界面:团队首页、看板、Agent、操作,以及每个看板的工单、时间线、变更、流程和路由。还提供席位设置向导(规划 → 应用 → 诊断),适用于 Claude Code、Codex、Goose 和 Claude Desktop;支持门禁、项目接入、人工请求处理以及精确 SHA 升级。
协调器守护进程接收任务、分析调度、提供活动提示、生成有界调查结果,并附带确定性回放模拟器。
席位工具包生成特定主机的席位配置,以及现成的工作者和审核者 CLI(列出、认领、续租、提交、等待、批准、拒绝)。
Pursers Personal(pursers-personal)面向 macOS 上 Claude Desktop 的单所有者看板,提供只读 MCP Apps 仪表板(首页、项目、工作、团队、审批、活动、设置),以及完整的设置、诊断、轮换、回滚和卸载生命周期。
个人版导入(pursers-personal-import)从 On Board v4 单向导入,可供审核,并支持重试和回滚。
ACP Agent(pursers-acp)面向 Zed 等 ACP IDE 主机的看板助手:查看你的工单和任务邀请、看板状态,获得权限后创建和批注,并实时监看。预览。
无头工作者运行时面向任何兼容 OpenAI 的端点的 API 驱动型工作者和独立审核者,支持受限工具、每张工单独立的工作树、租约续订和用量核算。预览。
看板管家刷新协调器调查结果,并为协调器问题起草有证据支持的回复。单独授权的主动模式可执行两项范围有限的安全操作。预览。
连接器Azure DevOps 拉取请求连接器和 AionUi 主机扩展。预览。
看板迁移在不同 Central 实例之间导出和导入看板。
Board Butler 的作用

Board Butler 是协调器侧的观察者,只有两项范围有限的安全操作;它不是自主舰队操作员。

  • **监控:**每次进行有界刷新时,它都会为 project_registry 中的每个活跃看板运行真实的协调器推导流程,并刷新该看板的发现结果。它会忽略非活跃的注册表项目(实现中的 CentralBackend.refresh_registry_findings,并在测试中通过两个看板进行验证)。
  • **起草并升级处理:**它通过日志推送流监听协调器问题,检查当前产品或代码库证据,并存储受频率限制的草稿、持久化挂起记录和评估记录。审批或决策问题、范围变更、关卡豁免、发布操作、成员资格或注册表变更,以及不完整的证据,都由人工处理。Butler 会记录升级处理的原因,但不会发送答复(实现中的 process_question 和 classify_question,以及测试对升级处理情形和不提供答复路径的强制验证)。
  • **影子模式与主动模式:**影子模式是默认模式,不执行任何票据操作。主动模式还要求单独提供由当前用户拥有、模式为 0600 的授权,至少指定一个 --act-on-board,目标看板在注册表中处于活跃状态,操作类别已启用,并且存在尚未被否决、且将在到期时失效的持久化挂起记录。只有满足这些条件后,它才可以在连续多个周期出现 no_live_candidates 且不存在 can_work=true 的活跃席位时,将开放票据搁置;也可以在提议的升级处理目标缺失或无法工作的情况下,添加拒绝注释。它既不会取消票据,也不会指派目标(实现中的 plan_mechanical_actions 和 refresh_registry_findings,由机械操作测试覆盖)。
  • **绝不执行:**它不会合并或推送 main、标记或发布版本、变更成员资格或项目注册表、认领/指派/提交工作,也不会回答受阻席位的问题。这些是操作员或协调器的职责;测试套件明确拒绝认领、指派、提交和回答问题的路径(测试)。

**过期日志发现:**报告中提到的 butler.out.log 过期,是旧文件名不匹配,而非存活状态缺陷。当前启动任务和已签入的服务模板都会将两个输出流写入 board-butler.log;在 2026-09-22,这个配置的日志文件和 runtime.json 同步更新,而 butler.out.log 没有更新。在将旧文件名视为服务状态依据之前,请检查已安装任务的 StandardOutPath。runtime.json 会报告 PID、模式、启动时间和最近活动;如Board Butler 运行手册所述,Fleet 还会验证 pidfile 锁和进程是否正在运行。

Board Butler 行为检查清单
  1. **过时问题协调:**在影子模式和主动模式下,若后续决策明确提及某个未解决的协调员问题,则报告该问题以供协调员协调。按时间顺序出现但未关联的决策会报告缺失的关联信息,而不会被臆测为答案。管家不会回答或关闭该问题。
  2. **暂缓决策的传递:**在两种模式下,若有一项具有约束力的决策,随后又出现工作邀约或广播,则会在其他席位重新推导门槛之前将其呈现出来。管家不会认领、分配或释放工作。
  3. **常设规则的再次出现:**在两种模式下,多个席位提出的问题若重复使用同一个在看板上可见的标识符,就会关联到该常设决策。管家不会根据自由文本相似度推断匹配,也不会在席位上强制执行该决策。
  4. **决策范围偏移:**在两种模式下,若某项决策要求更改的文件超出工单声明的相关文件范围,则会报告该情况以供预检协调。管家不会修改工单范围或代码库。
  5. **范围受限,故障时默认拒绝:**优先显示关键协调员警报;当前观察结果只会在 50 行、4,800 个字符的限制内取代较旧的非关键行。问题或工单投影不完整时会发出覆盖范围警告,绝不会报告为没有问题。
  6. **不增加权限:**在影子模式和主动模式下,所有观察器均为只读。主动模式仍仅增加上述两项分别授权的安全操作。管家绝不会删除文件或看板数据、调度清理任务、合并或推送 main、打标签或发布、更改成员资格或注册表,也不会代替操作者行事。
软件包
软件包用途
pursers==5.2.1安装 Central、客户端、Personal 和导入器
pursers-central==0.1.8看板服务
pursers-client==0.1.9异步 Python 客户端
pursers-personal==5.2.1单所有者看板和 MCP App 仪表板
pursers-personal-import==5.0.0从 On Board v4 导入的导入器
pursers-wait-bridge==0.1.7面向席位的等待桥接和门控工具
pursers-acp==0.1.9面向 IDE 的 ACP 看板助手

源代码树中协调发布的各个组件目前绑定到 pursers==5.2.1、pursers-personal==5.2.1、 pursers-personal-import==5.0.0、pursers-central==0.1.8、 pursers-client==0.1.9、pursers-wait-bridge==0.1.7 和 pursers-acp==0.1.9。

架构

flowchart LR
    subgraph Seats
      C[Coordinator]
      W1[Worker]
      W2[Worker]
      R[Reviewer]
    end
    C & W1 & W2 & R -- "MCP + JWT" --> Central[("Central<br/>SQLite board + journal")]
    Bridge[Wait bridge] -- "subscriptions/listen" --> Central
    W1 & W2 & R -. "block until offered" .-> Bridge
    Central --> Dash[Fleet dashboard]
    Central --> Personal[Personal MCP App]
    W1 & W2 -- "commits" --> Git[(Git)]
    R -- "verifies" --> Git

Central 是事实来源。席位通过 MCP 使用签名 JWT 连接到 Central;等待桥接会跟踪其日志,让席位休眠直至收到邀约;Fleet 仪表板和 Personal 应用会呈现相同状态;Git 仍是经过审查的交付边界。完整的组件、信任、传输和生命周期图,请参阅架构。

截图

Fleet 概览

临时 Central 上的 Fleet 概览:看板运行状况、Agent 可用性、工单总数和待处理事项。

Personal 今日视图

Pursers Personal 今日:运行状况、进行中的工作、Agent、连续性、置顶上下文和近期活动(合成演示数据)。

邀约与认领

来自临时 Central 的实时邀约,以及精确身份认领。

查看完整的已验证展示。

## 文档

当前限制

Central 默认通过回环地址绑定纯 HTTP。远程使用时,操作人员需要自行提供 TLS 和允许的主机。存储使用 SQLite,看板通过邀请接纳 Agent。此版本已在 macOS 上测试;Central、Client 和 Wait Bridge 也会在 CI 中于 Linux 上运行测试套件,而 Personal 仅支持在 macOS 上设置。主机集成仍需针对其确切主机构建版本进行验收。Pursers Personal 仪表板为只读,其应用标题为 Pursers Personal。

Pursers 是 On Board v4(onboard-memory-mcp 4.0.4)的后继版本。它是独立的软件包,不会修改 v4 安装;迁移需要显式执行单向导入,而非自动同步。

许可证

Apache License 2.0

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。