workbuddy-mcp
workbuddy-mcp
Позвольте любому AI-агенту использовать WorkBuddy как субагента — установка одной командой, работает с четырьмя клиентами.
让任意 AI 编程助手(Claude Code / Codex / Cursor / OpenCode)把 WorkBuddy 当「子 Agent」调用——一条命令装好,四大客户端通吃。
Русский · 简体中文
Что это делает / 它做什么
workbuddy-mcp — это крошечный MCP-сервер (Model Context Protocol), который оборачивает официальный WorkBuddy CLI (codebuddy). Он предоставляет один инструмент — run_workbuddy_task — так что любой агент, поддерживающий MCP, может делегировать реальную работу WorkBuddy без копирования и вставки между приложениями.
workbuddy-mcp 是一个极小的 MCP(模型上下文协议)服务器,封装了官方的 WorkBuddy 命令行(codebuddy)。它只暴露一个工具 run_workbuddy_task,让任何支持 MCP 的 Agent 都能把真实任务委托给 WorkBuddy,不必在多个应用之间来回复制粘贴。
Вам не нужно разбираться в MCP, чтобы использовать его: npx -y workbuddy-mcp --install автоматически обнаружит установленных агентов и зарегистрирует сервер за вас.
你不需要懂 MCP 就能用:一条 npx -y workbuddy-mcp --install 会自动检测你装了的 Agent 并注册好。
Related MCP server: all-agents-mcp
Оглавление / 目录
Архитектура / 架构
Your agent (Claude Code / Codex / Cursor / OpenCode)
│ calls MCP tool: run_workbuddy_task(prompt)
▼
workbuddy-mcp (this server, stdio MCP)
│ shells out:
▼
codebuddy -p "<prompt>" --dangerously-skip-permissions
│
▼
WorkBuddy (does the actual work, returns text)Возможности / 特性
Возможность | Почему это важно |
Установка одной командой |
|
Один сервер, четыре клиента | Claude Code, Codex, Cursor, OpenCode используют один и тот же инструмент. |
Обёртка официального CLI | Использует |
Контроль | Каждый вызов может указывать рабочую директорию, чтобы WorkBuddy записывал файлы именно туда, куда нужно. |
Настраиваемость | Переменные окружения |
Ноль шагов сборки | Чистый ESM JavaScript, Node 18+. Без компиляции TypeScript. |
特性 | 价值 |
一条命令安装 |
|
一个 Server,四个客户端 | Claude Code、Codex、Cursor、OpenCode 共用同一个工具。 |
封装官方 CLI | 用 |
可控的工作目录 | 每次调用可指定 |
可配置 |
|
零构建 | 纯 ESM JavaScript,Node 18+,无需编译 TypeScript。 |
Быстрый старт / 快速开始
Предварительное требование: установите и войдите в WorkBuddy CLI один раз (в интерактивном режиме). 前置:先装好并登录一次 WorkBuddy 命令行(仅需一次,会打开登录流程)。
# 1. Install & log in the WorkBuddy CLI
npm install -g @tencent-ai/codebuddy-code
codebuddy -p "hello" --dangerously-skip-permissions # first run opens a login flow
# 2. Install the MCP server into every agent you have
npx -y workbuddy-mcp --installЗатем в любом агенте просто скажите, например: "используй workbuddy, чтобы прочитать data.csv и составить еженедельный отчёт" — агент вызовет run_workbuddy_task за вас.
然后,在任意 Agent 里说「让 workbuddy 读取 data.csv 写一份周报」即可——Agent 会自动调用 run_workbuddy_task。
Установка / 安装
Вариант A — одна команда (рекомендуется)
npx -y workbuddy-mcp --installОбнаруживает Claude Code / Codex / Cursor / OpenCode на вашем компьютере и регистрирует сервер. Повторно запустите после установки нового агента.
Вариант B — из npm, затем установка
npm install -g workbuddy-mcp
workbuddy-mcp --installВариант C — вручную (любой MCP-клиент)
Укажите вашему клиенту node <path>/server.js. Примеры:
Claude Code
claude mcp add -s user workbuddy -- node /abs/path/to/workbuddy-mcp/server.jsCodex
codex mcp add workbuddy -- node /abs/path/to/workbuddy-mcp/server.jsCursor — запишите в ~/.cursor/mcp.json:
{ "mcpServers": { "workbuddy": { "command": "node", "args": ["/abs/path/to/workbuddy-mcp/server.js"] } } }OpenCode — запишите в opencode.json (в корне проекта или в ~/.config/opencode/opencode.json):
{ "mcp": { "workbuddy": { "type": "local", "command": ["node", "/abs/path/to/workbuddy-mcp/server.js"], "enabled": true } } }См. opencode.json.example — готовый шаблон с подключёнными cwd / WB_* переменными.
Использование / 用法
Сервер предоставляет один инструмент. Ваш агент вызывает его за вас; вы также можете вызывать его напрямую.
// Tool: run_workbuddy_task
{
prompt: "读取 ./reports 下的 CSV,生成一份中文月度总结", // required 必填
cwd: "/path/to/your/project", // optional 可选: where WorkBuddy reads/writes files
model: "sonnet", // optional 可选: model alias
json: true // optional 可选: request --output-format json
}Что можно поручить вашему агенту:
"让 workbuddy 在我仓库根目录跑测试,把失败日志整理成 Markdown"
"используй workbuddy, чтобы отрефакторить src/utils.ts и объясни изменения"
Куда попадают файлы? Текстовые ответы возвращаются в чат. Файлы, которые WorkBuddy записывает, попадают в его
cwd(из вызоваcwd→ иначеWB_CWD→ иначе рабочая папка агента). Они не добавляются автоматически в контекст вашего агента — читайте их с диска.
Конфигурация / 配置
Вся настройка через переменные окружения — задайте их в блоке environment конфигурации MCP вашего агента.
Переменная | По умолчанию | Значение |
|
| CLI для запуска. Если |
|
|
|
|
| Таймаут задачи в мс (10 минут). Задачи, превышающие его, завершаются. |
| (не задано) | Стандартная рабочая директория, используемая, когда вызов не передаёт |
| (не задано) | Модель по умолчанию, используемая, когда вызов не передаёт |
| (не задано) | Модель для автоматического переключения, когда основная перегружена/ограничена по частоте (соответствует |
Переключение моделей / 切换模型
CLI codebuddy предоставляет --model <id> и --fallback-model <id> (последний действует только при --print, который этот сервер всегда использует). Этот сервер предоставляет оба:
Для каждого вызова — передайте
modelи/илиfallbackModelвrun_workbuddy_task.Глобально — задайте
WB_MODELи/илиWB_FALLBACK_MODELв блокеenvironmentMCP агента; они применяются, когда вызов их не передаёт.
Доступные модели (из codebuddy --help): auto, hy3, hy3-x, glm-5.3, glm-5.2, glm-5.1, glm-5v-turbo, minimax-m3, kimi-k3-1, kimi-k2.7, kimi-k2.6, deepseek-v4-flash, deepseek-v4-pro.
Ограничение по частоте на бесплатной модели? Не переключайтесь жёстко — добавьте запасной вариант, чтобы hy3 оставался основным, но автоматически восстанавливался при перегрузке:
// opencode.json / claude mcp config environment
{
"WB_MODEL": "hy3",
"WB_FALLBACK_MODEL": "deepseek-v4-flash"
}Или для каждого вызова: run_workbuddy_task({ prompt: "...", fallbackModel: "deepseek-v4-flash" }).
切换模型 / 模型切换
codebuddy 自带 --model <id> 与 --fallback-model <id>(--fallback-model 仅在 --print 下生效,而本服务始终用 -p,所以可用)。本服务把两者都暴露出来:
单次调用:给
run_workbuddy_task传model和/或fallbackModel。全局默认:在 Agent 的 MCP
environment里设WB_MODEL/WB_FALLBACK_MODEL,调用未传时使用。
免费模型被限流时,建议不要硬性切走,而是加一个回退:hy3 仍是首选,过载时自动切到 deepseek-v4-flash 等,等限流恢复又自动用回 hy3。
Замечание о безопасности / 安全提示
По умолчанию WB_SKIP_PERMISSIONS=true, что заставляет codebuddy работать без интерактивных запросов разрешений. Именно это позволяет агенту управлять им без присмотра — но также означает, что всё, что запрашивает агент, выполняется автоматически. Для личной доверенной автоматизации это нормально; если вы предпочитаете сохранить участие человека, установите WB_SKIP_PERMISSIONS=false в конфигурации MCP.
默认 WB_SKIP_PERMISSIONS=true,即 codebuddy 会跳过交互式授权自动执行。这正是「让 Agent 无人值守地驱动它」所必需的;但也意味着 Agent 请求的任何操作都会自动执行。个人可信自动化场景下没问题;若你想保留人工确认,把 WB_SKIP_PERMISSIONS 设为 false。
Зачем / 为什么做这个
WorkBuddy — способный агент, но каждый продукт (Claude Code, Codex, Cursor, OpenCode…) живёт в своей песочнице. Нет официального «обратного MCP», который позволил бы этим продуктам использовать WorkBuddy как субагента. Этот проект — тонкий клей: он упаковывает собственный CLI WorkBuddy за стандартный MCP-инструмент, так что четыре самых популярных агента программирования могут использовать одного WorkBuddy.
WorkBuddy 本身能力很强,但 Claude Code、Codex、Cursor、OpenCode 各成孤岛,官方并没有提供「反向 MCP」让这些产品把 WorkBuddy 当子 Agent 调用。本项目就是那层薄胶水:把 WorkBuddy 自己的命令行封装成一个标准 MCP 工具,让最主流的几个编程 Agent 共用同一个 WorkBuddy。
FAQ
Нужно ли запущенное десктопное приложение WorkBuddy?
Нет. Он управляет CLI codebuddy, который является автономным (тот же движок, терминальная форма). Достаточно одного входа в десктоп.
Работает ли это офлайн?
MCP-сервер локальный; вызовы codebuddy обращаются к сервису WorkBuddy, поэтому для фактической задачи требуется интернет-соединение.
Будут ли мои чаты в десктопном WorkBuddy показывать, что запросил агент?
codebuddy работает в собственной сессии; разговоры могут не появляться в истории десктопного приложения. Это ожидаемо.
Дорожная карта / 路线图
Автоустановка для Claude Code / Codex / Cursor / OpenCode
Потоковый вывод (показывать прогресс вместо ожидания полного результата)
Опциональный разбор структурированного JSON-результата
codebuddyне найден → подсказка по установке
Вклад / 贡献
PR и идеи приветствуются! Задачи с меткой good first issue — хорошее место для начала. См. CONTRIBUTING.md.
Каждый push / PR запускает смоук-тест (.github/workflows/smoke.yml), который проверяет синтаксис на Node 18/20/22 и проверяет, что сервер завершает рукопожатие MCP initialize → tools/list. Для локального запуска:
每提交 / 开 PR 都会跑一个冒烟测试(.github/workflows/smoke.yml),在 Node 18/20/22 上检查语法并验证 Server 能完成 MCP initialize → tools/list 握手。本地自测:
npm install
node test/smoke.mjs欢迎 PR 和想法!可以从 good first issue 标签的议题入手。
Лицензия / 许可证
MIT © LinHaiJ. Подробности см. в LICENSE.
Available Tools
1 toolrun_workbuddy_taskA
委托 WorkBuddy(codebuddy CLI)以非交互方式执行一个任务,返回结果文本。
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | 可选:codebuddy 的工作目录(它在此目录读写文件)。不传则用 WB_CWD 或当前目录 | |
| json | No | 可选:true 时追加 --output-format json(取决于 codebuddy 版本是否支持) | |
| model | No | 可选:指定本次会话模型,如 hy3 / hy3-x / deepseek-v4-flash / glm-5.3 / kimi-k3-1 / auto。不传则用 WB_MODEL 或 codebuddy 默认 | |
| prompt | Yes | 交给 WorkBuddy 执行的任务描述 / 提示词。可包含多行内容(通过 stdin 传递,不会被截断) | |
| timeoutMs | No | 可选:本次调用的超时毫秒数。不传则用 WB_TIMEOUT(当前 900000ms)。长调研任务建议 1800000(30 分钟) | |
| fallbackModel | No | 可选:过载/限流时自动回退的模型(接到 --fallback-model,仅 --print 生效)。不传则用 WB_FALLBACK_MODEL |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
无注解,描述需承担行为披露。描述说明任务以非交互方式执行、返回结果文本,并通过 schema 提及 stdin 传 prompt 不会截断,但这些细节主要来自 schema 而非描述本身。缺少如权限、副作用、失败模式等行为信息。
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
描述只有一句话,直接说明工具做什么、如何调用(非交互)以及输出类型。信息密度高,无冗余。
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
无输出 schema,描述只提到返回结果文本,未说明返回格式/错误结构。但 6 个参数都在 schema 中充分解释了,整体对调用而言基本足够。缺少返回值细节和退出码/错误提示。
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
schema 覆盖 100%,每个参数在 schema 中已有详细中文说明,描述本身无需补充参数含义。描述未重复 schema,因此可以给予基线 3。
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
描述包含明确的动词“委托/执行”和资源“WorkBuddy(codebuddy CLI)”,并指出返回结果文本。虽然无兄弟工具,但“以非交互方式”等限定语使其与其他可能的 CLI 工具区分开。
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
描述隐含了使用场景(委托 WorkBuddy 非交互执行任务),但没有明确说明何时不使用它,也没有指出替代工具或前置条件。无兄弟工具且参数如 cwd/model/timeout 提供了运行时选择上下文。
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v0.2.0- First observed
run_workbuddy_task
TDQS
Scored across 1 tool
With only one tool, there is no possibility of overlapping purposes. The single action is clearly scoped to running a WorkBuddy task and cannot be confused with anything else.
The tool name follows a clear verb_noun convention: run_workbuddy_task. It accurately describes the action and is easily predictable.
A single tool is functional but feels thin for a server, even though it directly covers its stated purpose. There is no secondary surface for configuration, status, or task management, placing it at the borderline of acceptable scope.
The server covers its core workflow: executing a non-interactive WorkBuddy task and returning result text. It lacks lifecycle or management operations, but for a one-shot CLI delegation tool these are not necessarily required, so only minor gaps exist.
Maintenance
Related MCP Connectors
Talk to your public-facing AI from any MCP client — Claude, ChatGPT, Cursor, Cline, Windsurf.
One MCP endpoint for Claude, GPT & Gemini: 100+ tools + no-code connectors + agent workers.
Zero-setup MCP gateway securely connecting AI to your tools with authentication and workflows
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables the creation and execution of task-specific AI sub-agents defined in markdown across any MCP-compatible tool like Cursor or Claude Desktop. It integrates with execution engines such as Claude Code, Cursor CLI, and Gemini CLI to provide portable and reusable specialized agent workflows.1377 npmMIT
- AlicenseBqualityFmaintenanceEnables orchestrating multiple AI CLI agents (Claude Code, Codex, Gemini CLI, Copilot CLI) through a unified MCP interface for task delegation, cross-agent comparison, and specialized tools like code review and debugging.149 npm14MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI chat clients to delegate self-contained coding tasks to opencode's free-tier models as a one-shot subagent through a native MCP tool, without requiring shell commands or API keys.MIT
- FlicenseNot gradedqualityBmaintenanceEnables MCP clients like Claude Code to delegate coding tasks to a local model through a configurable coding-agent CLI backed by any OpenAI-compatible endpoint, with tools for health checks, task execution, and context-aware file modifications.-