Token导航 LogoToken导航TokenDH.com
stringwork (Jaakkos) logo
开发工具未说明官方级别未说明来源级核验

stringwork (Jaakkos)

MCP Server

Stringwork是一个用于协调多个AI编码代理(如Cursor、Claude Code、Codex等)的MCP服务器,提供任务管理、消息传递、进度监控等功能,通过单一Go二进制实现。

工具数

23

提示词数

0

GitHub Stars

0

资源数

0
GoClaude开发工具ClaudeCursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

jaakkos

提供方

jaakkos

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

Stringwork

An MCP server for orchestrating AI coding agents. One driver (e.g. Cursor) directs multiple workers (Claude Code, Codex, Gemini CLI) through shared tasks, messaging, plans, and progress monitoring — all from a single Go binary.

安装

curl -fsSL https://raw.githubusercontent.com/jaakkos/stringwork/main/scripts/install.sh | sh

支持macOS(arm64、amd64)和Linux(amd64、arm64)。通过 --version v0.1.0 对于特定的发布或 --dir /usr/local/bin 更改安装位置。

或者从源代码构建:

go build -o mcp-stringwork ./cmd/mcp-server

运作原理

Stringwork使用 司机/工人 型号:

  Driver (Cursor)
       |
       |-- creates tasks, monitors progress, cancels stuck workers
       |
       +-- Worker 1 (Claude Code)  -- claims tasks, reports progress, sends findings
       +-- Worker 2 (Codex)        -- claims tasks, reports progress, sends findings
       +-- Worker 3 (Gemini CLI)   -- claims tasks, reports progress, sends findings
       +-- Worker N (any agent)    -- ...
  • 驾驶员 创建任务(使用 assigned_to='any' 用于自动分配),通过以下方式监控员工 worker_status,并取消卡住的代理 cancel_agent.
  • 工人 当有待处理的工作时,服务器会自动生成。它们会声明任务,每2-3分钟报告一次进度,并通过消息将结果传达回来。
  • 所有代理通过单个SQLite文件共享状态(~/.config/stringwork/state.sqlite).

服务器仅提供协调工具。每个代理都使用自己的本地功能进行文件编辑、搜索、git和终端。

特性

  • 驾驶员/工人协调 --一个驱动程序,N个具有自动生成、SLA监控和取消功能的工作人员
  • 任务管理 --创建、分配、跟踪和自动通知任务生命周期事件
  • 消息传递 --具有紧急性的代理间消息,在每次工具调用时附带通知
  • 共享规划 --包含项目、验收标准和进度跟踪的协作计划
  • 进度监控 --强制性心跳和进度报告;升级警报(3分钟警告,5分钟严重,10分钟自动恢复)
  • 会话继续 --工作人员通过心跳报告CLI会话ID;重新启动的工作人员会自动恢复之前的CLI对话上下文
  • 文件锁 --防止跨代理同时进行编辑
  • Web仪表板 --任务、工作人员、消息和计划的实时视图(启动时记录的URL)
  • 自动响应 --服务器在代理有未读消息时生成代理,不需要外部守护进程
  • Git工作树隔离 --可选的每个工作人员签出,以防止文件冲突
  • 动态工作空间 --在运行时通过以下方式切换项目 set_presence workspace='...'
  • 自定义代理 --通过以下方式将任何MCP客户端注册为参与者 register_agent
  • 宪法 --为每个worker添加分层、文件支持的提示;支持每用户规则、团队配置文件和 git-支持的共享规则包(请参见 docs/CONSTITUTION.md)

快速开始

1.配置光标

添加 .cursor/mcp.json 在您的项目中:

{
  "mcpServers": {
    "stringwork": {
      "command": "mcp-stringwork",
      "env": { "MCP_CONFIG": "/path/to/config.yaml" }
    }
  }
}

游标通过stdio将服务器作为子进程生成。启用守护程序模式(推荐)后,第一个Cursor窗口将启动一个后台守护程序,后续窗口将自动共享它。

2.创建配置文件

复制 mcp/config.yaml 并可定制。最小示例:

workspace_root: "/path/to/your/project"
enabled_tools: ["*"]

# Daemon mode: multiple Cursor windows share one server.
daemon:
  enabled: true

# Fixed port for a stable dashboard URL. Use 0 for auto-assign.
http_port: 8943

orchestration:
  driver: cursor
  workers:
    - type: claude-code
      instances: 1
      command: ["claude", "-p", "You are claude-code. Steps: 1) set_presence 2) read_messages 3) list_tasks 4) Do the work 5) report_progress 6) send_message with findings.", "--dangerously-skip-permissions"]
      timeout_seconds: 600

3.开始工作

打开游标——服务器自动启动。创建任务时,工人会被生成:

# Driver (Cursor) creates a task
create_task title='Add auth middleware' assigned_to='any' created_by='cursor'

# Server spawns a worker, which claims and works on it
# Driver monitors via:
worker_status

守护程序模式(推荐)

启用守护进程模式,以便多个Cursor窗口共享单个服务器进程:

daemon:
  enabled: true
  grace_period_seconds: 10

第一个Cursor窗口启动后台守护进程。后续窗口作为轻量级代理连接到它。Workers、notifier和看门狗只运行一次,没有重复。HTTP端口和仪表板URL在重新连接时保持稳定。当最后一个窗口关闭时,守护进程会等待宽限期,然后关闭。

使用 --standalone 绕过守护进程模式。

多个游标窗口(无守护进程)

如果没有守护进程模式,每个Cursor窗口都会生成自己的服务器。随着 http_port: 0 (默认),每个端口都有一个自动分配的端口,这样它们就不会冲突。所有实例共享相同的SQLite状态文件,因此任务和消息在所有窗口中都是可见的。

配置

编排

orchestration:
  driver: cursor                          # which agent is the driver
  assignment_strategy: least_loaded       # or capability_match
  heartbeat_interval_seconds: 30
  worker_timeout_seconds: 120
  worktrees:
    enabled: false                        # git worktree isolation per worker
  workers:
    - type: claude-code
      instances: 2                        # run up to 2 Claude Code workers
      command: ["claude", "-p", "...", "--dangerously-skip-permissions"]
      cooldown_seconds: 30
      timeout_seconds: 600
      max_retries: 2
      env:
        GH_TOKEN: "${GH_TOKEN}"           # ${VAR} expands from server env
        SSH_AUTH_SOCK: "${SSH_AUTH_SOCK}"
      # inherit_env: ["HOME", "PATH", "GH_*", "SSH_*"]  # restrict inherited env
    - type: codex
      instances: 1
      command: ["codex", "exec", "--sandbox", "danger-full-access", "--skip-git-repo-check", "..."]
    - type: gemini
      instances: 1
      command: ["gemini", "--yolo", "--prompt", "..."]
      env:
        GOOGLE_API_KEY: "${GOOGLE_API_KEY}"

mcp/config.yaml 对于一个完全注释的示例。

可用工具(23)

会话

工具说明
get_session_context完整的会话上下文(消息、任务、状态、计划)
set_presence更新状态和工作空间;动态更改服务器的项目上下文
append_session_note添加共享笔记或决定

沟通

工具说明
send_message向代理发送消息(可选标题、紧急程度)
read_messages读取消息并将其标记为已读

任务

工具说明
create_task使用可选的工作上下文(相关文件、背景、约束)创建任务
list_tasks使用筛选器列出任务
update_task更新状态、分配、优先级;完成时自动通知

规划

工具说明
create_plan创建共享计划
get_plan查看平面图;省略ID以列出所有
update_plan添加或更新具有验收标准的计划项

工作流程

工具说明
handoff移交工作,包括总结和下一步行动
claim_next声明下一个任务(dry_run查看)
request_review向代理请求代码审查

编排(司机/工人)

工具说明
worker_status工作人员实时视图:进度、SLA状态、流程活动
heartbeat每60-90秒发出一次信号,显示进度信息。包含 session_id 在重新启动时首次呼叫会话恢复
report_progress结构化进度:描述、完成百分比、预计到达时间
cancel_agent取消工人的任务,发送STOP信号,终止进程
get_work_context获取任务上下文(文件、背景、约束、注释)
update_work_context将共享笔记添加到任务的工作上下文中

基础设施

工具说明
lock_file锁定、解锁、检查或列出文件锁
register_agent注册自定义代理以进行协作
list_agents列出所有可用的代理(内置和注册)

克劳德代码挂钩

克劳德代码 CLAUDE.md 指令被包裹在“可能相关也可能不相关”的框架中,削弱了合规性。绕过此限制的架线船吊钩:

./scripts/install-claude-hooks.sh    # install hooks
./scripts/uninstall-claude-hooks.sh  # clean removal

挂钩安装在用户级别(~/.claude/settings.json)所以他们在所有项目中工作。它们将进度报告规则作为干净的系统提醒消息注入——没有免责声明,在上下文压缩后仍然有效。脚本有一个保护,在非Stringwork项目中什么也不做。

Claude代码配置 了解详情。

命令行界面

mcp-stringwork                          # start server (auto-detects daemon/proxy/standalone)
mcp-stringwork --daemon                 # force daemon mode
mcp-stringwork --standalone             # force standalone mode (no daemon)
mcp-stringwork --version                # print version
mcp-stringwork status claude-code       # check unread/pending counts for an agent
mcp-stringwork constitution init        # scaffold the per-user constitution dir
mcp-stringwork constitution show        # preview the resolved constitution preamble
mcp-stringwork constitution sync        # pull every configured 'git' constitution source
mcp-stringwork constitution doctor      # validate every configured constitution source

运营

当员工池卡住时(僵尸员工、过时的存在行、膨胀 AgentInstance 计数),使用 admin 子命令而不是编辑 state.sqlite 用手。它们直接在SQLite存储上运行,因此可以工作 守护进程是否正在运行。

# Inspect pool: total/active/offline counts, oldest stale rows, in-flight tasks.
mcp-stringwork admin pool-status

# Garbage-collect both presence and instance rows using policy defaults.
mcp-stringwork admin prune

# Preview what `admin prune` would remove without writing.
mcp-stringwork admin prune --dry-run

# Just presence rows, with an explicit retention window.
mcp-stringwork admin prune --presence --older-than 3d

# Aggressively clean up task-bound worker rows (e.g. after a server crash
# left zombies behind) without touching the static pool.
mcp-stringwork admin prune --instances --task-bound-older-than 1h

作为看门狗的一部分,相同的修剪在守护进程内持续运行 环路;CLI存在,因此您不需要它运行来从错误中恢复 国家。违约来自 config.yaml (presence_retention_days, instance_retention_days, task_bound_instance_retention_hours).

仪表板操作

web仪表板上提供了相同的管理操作 (http://localhost:/)所以,当一个 工人行为不端。每个POST都是JSON;CORS是允许的,所以你也可以 直接从 curl/fetch.

方法路径目的
POST/api/cancel-agent取消卡住的工人。主体: {agent, cancelled_by, reason}。如果满足以下条件,则返回合成恢复消息 cancel_agent 发射了一个。
POST/api/prune包装材料 admin prune.车身: {presence?, instances?, older_than?, task_bound_older_than?, dry_run?}默认为模拟运行;翻转 dry_run:false 承诺。
GET/api/pool-status有效载荷与 mcp-stringwork admin pool-status 呈现为JSON格式。
POST/api/send-message驾驶员专用逃生舱。主体: {from, to, content}from 必须等于配置的驱动程序,以防止UI端工作程序模拟。

仪表板以每个工人的身份显示这些信息 Cancel… 菜单,a Prune… 模态在 工具栏,自动轮询 Pool status 面板,以及a Send Message 形成 信息卡。

项目结构

.
├── cmd/mcp-server/          # Server entrypoint, daemon, proxy, CLI
├── internal/
│   ├── domain/              # Core entities (Message, Task, Plan, AgentInstance, ...)
│   ├── app/                 # Application services (CollabService, WorkerManager, Watchdog, Orchestrator)
│   ├── repository/sqlite/   # State persistence (SQLite)
│   ├── policy/              # Workspace validation, config, safety policy
│   ├── dashboard/           # Web dashboard (HTML + REST API)
│   ├── worktree/            # Git worktree manager for worker isolation
│   └── tools/collab/        # 23 MCP tool handlers
├── chrome-extension/         # Chrome extension for toolbar monitoring (alpha)
├── cursor-plugin/           # Cursor IDE plugin (rules, skills, agents, commands, hooks)
├── mcp/                     # Configuration files
├── scripts/                 # Install, dev-install, hook install/uninstall scripts
├── docs/                    # Documentation
├── .github/workflows/       # CI and release automation
├── AGENTS.md                # Cursor agent instructions
└── CLAUDE.md                # Claude Code agent instructions

光标插件

架线作业船a 光标插件 为驱动程序角色提供工作流规则、技能、代理和命令。插件结构位于 游标插件/ 并准备好 市场提交 到时候。

从Git安装

  1. 安装二进制文件 (必填):
curl -fsSL https://raw.githubusercontent.com/jaakkos/stringwork/main/scripts/install.sh | sh
  1. 添加MCP服务器 到游标--单击深度链接或手动添加:

安装Stringwork MCP服务器

或添加到您的项目 .cursor/mcp.json:

{
  "mcpServers": {
    "stringwork": {
      "command": "mcp-stringwork"
    }
  }
}
  1. 安装插件 (规则、技能、代理、命令)——全球适用于所有项目:
git clone https://github.com/jaakkos/stringwork.git /tmp/stringwork
/tmp/stringwork/scripts/install-cursor-plugin.sh

要卸载,请执行以下操作: ./scripts/uninstall-cursor-plugin.sh

对于项目范围的安装而不是全局安装,请将插件目录复制到您的项目中:

cp -r /tmp/stringwork/.cursor-plugin /tmp/stringwork/cursor-plugin your-project/
  1. 配置编排 (可选——适用于产卵工蚁):
mkdir -p ~/.config/stringwork
cp /tmp/stringwork/mcp/config.yaml ~/.config/stringwork/config.yaml
# Edit workers section, then start with: MCP_CONFIG=~/.config/stringwork/config.yaml

插件提供了什么

组件描述
MCP服务器自动配置 mcp-stringwork 连接
规则 (4)驾驶员工作流程、进度报告、停止信号、工人沟通
技能 (4)设置指南、代码审查、任务创建、worker配置
代理 (2)结对编程驱动程序、代码审查协调员
命令 (1)/pair-respond 用于处理工作人员消息
钩子 (1)会话启动时的二进制存在检查

该插件纯粹是可添加的,它不会修改任何现有的项目文件。

Chrome扩展程序(alpha)

一个浏览器扩展,将Stringwork监控带到您的工具栏上——查看工作状态、任务进度,并在不切换到仪表板的情况下接收桌面通知。

它的作用:

  • 徽章计数器 工具栏图标上显示需要注意的项目(被阻止的任务、脱机工作人员、SLA违规、未读消息)
  • 弹出式仪表板 具有实时工作人员状态、带进度条的活动任务和最近的消息——打开时每5秒轮询一次
  • 桌面提醒 当工作人员脱机时,任务会被阻止,超出SLA,或进度停滞
  • 快捷操作 --重启workers(确认后)并跳转到完整的仪表板

架构: 该扩展基于Manifest V3构建,具有一个轮询的服务工作器 /api/state.所有API访问都集中在服务工作者中;弹出窗口使用 chrome.runtime.connect 对于实时状态推送(在端口打开时,服务工作者在每次轮询时推送一个新的快照),并回退到一个快照 chrome.runtime.sendMessage 电话(getState, restartWorkers, openDashboard, settingsUpdated)对于其他一切。国家坚持 chrome.storage.local 以在MV3服务工作者终止后存活。后台轮询使用 chrome.alarms (最少1分钟);以5秒为间隔的主动轮询仅在弹出窗口打开时运行。

破坏性操作(取消worker、修剪状态、作为驱动程序发送消息)存在于 网络仪表盘,而不是扩展名——请参阅 仪表板操作。该扩展故意是一个被动监视器。

安装(解压缩,开发人员模式):

  1. 在配置中设置一个固定的HTTP端口(必需--重新启动时自动分配的端口会更改):
   # ~/.config/stringwork/config.yaml
   http_port: 8943
  1. 在Chrome中加载扩展程序:

- 导航至 chrome://extensions/ - 启用 开发者模式 (在右上角切换) - 点击 加载未打包的 并选择 chrome-extension/ 此仓库中的目录

  1. 单击工具栏中的Stringwork图标。如果需要,在扩展选项中配置服务器URL(默认值: http://localhost:8943).
注: 这是阿尔法软件。该扩展程序功能正常,但尚未发布到Chrome网上应用商店。在拉取代码更改后,从以下位置重新加载扩展 chrome://extensions/ 把它们捡起来。

文档

目录标签

目录标签

GoClaude开发工具AI编码本地部署任务协调代理协作进度监控

支持客户端

ClaudeCursor

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

23

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP