mcpField
W
weeek-mcp

weeek-mcp

本地服务
github.com/YOLKINS生产力010 周前更新

关于 weeek-mcp

weeek-mcp 是通过 stdio 将 AI 客户端连接到 Weeek 工作区的本地 MCP 服务。它默认仅提供读取能力,并可通过配置选择性启用任务写入工具。

主要功能

  1. 01读取项目、任务、成员和标签
  2. 02查看看板及其列
  3. 03默认隐藏写入工具
  4. 04按名称允许特定工具
  5. 05限制响应长度

适用场景

  1. 01检查 Weeek 工作区中的任务和项目
  2. 02在只读模式下查询看板数据
  3. 03按需启用任务创建或更新

MCP 相关

该 MCP 服务通过 stdio 为 AI 客户端提供 Weeek 查询与任务管理工具。默认注册 10 个读取工具;设置 READ_ONLY=false 后,最多开放 5 个写入工具。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"yolkins-weeek": {
"command": "npx",
"args": [
"-y",
"weeek-mcp"
],
"env": {
"WEEEK_ACCESS_TOKEN": "<WEEEK_ACCESS_TOKEN>",
"READ_ONLY": "<READ_ONLY>",
"ENABLED_TOOLS": "<ENABLED_TOOLS>",
"WEEEK_BASE_URL": "<WEEEK_BASE_URL>",
"WEEEK_TIMEOUT_MS": "<WEEEK_TIMEOUT_MS>",
"MAX_RESPONSE_CHARS": "<MAX_RESPONSE_CHARS>"
}
}
}
}
启动命令npx -y weeek-mcp
需要配置的环境变量
WEEEK_ACCESS_TOKEN密钥Weeek Public API v1 access token. Required — the server refuses to start without it.
READ_ONLYGate for the write tools. Defaults to 'true': a fresh install exposes only the ten read tools. Set to 'false' to additionally expose the five write tools (create/update/move/complete a task, set an MR link) — an explicit operator opt-in, never the default.
ENABLED_TOOLSOptional comma-separated allowlist of tool names to register (still subject to READ_ONLY). Pair with READ_ONLY=false for a granular write rollout, e.g. 'weeek_complete_task'.
WEEEK_BASE_URLOverride the Weeek API base URL. Defaults to the public v1 endpoint.
WEEEK_TIMEOUT_MSPer-request timeout in milliseconds.
MAX_RESPONSE_CHARSUpper bound on the JSON length of a single tool response, protecting the agent's context window from unbounded list/detail payloads.

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

安装包
npmweeek-mcp1.0.1

工具

还没有获取到工具列表

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

详细介绍

weeek-mcp

用于 Weeek 的本地 MCP 服务,默认只读,可选择启用写入工具。

npm version npm downloads CI License: MIT MCP

README 俄语版

weeek-mcp 通过 stdio 将 AI 客户端(Claude Desktop、Claude Code、Cursor、MCP Inspector)连接到你的 Weeek 工作区。它默认只读——默认安装只能列出项目、任务、看板、成员和标签,不能进行任何修改——只有在你选择启用 READ_ONLY=false 时,才会提供五个写入工具。 支持 Node ≥ 20;使用 npx 安装,无需克隆或构建。

为什么选择它

  • 已发布到 npm。 现在就能运行 npx -y weeek-mcp——无需克隆、构建或使用绝对路径。
  • 默认只读,可组合配置限制。 只有选择启用后才会注册写入工具;ENABLED_TOOLS 可将工具限制在指定子集,MAX_RESPONSE_CHARS 可限制每个负载的大小。限制由服务端执行,而非依赖客户端约定。
  • 双语支持。 EN ↔ RU 文档内容完整对应。
  • 细粒度错误模型。 提供九种不同的错误代码和 Agent 可读的消息,让模型无需解析说明文字,就能判断应重试还是放弃。

快速开始

推荐使用 npx 安装——无需克隆或构建。将 examples/claude_desktop.mcp.json 放入你的 MCP 客户端配置中,将 YOUR_WEEEK_TOKEN_HERE 替换为从 https://app.weeek.net/ws/_/settings/apps/api 获取的真实令牌,然后重启客户端:

{
  "mcpServers": {
    "weeek": {
      "command": "npx",
      "args": ["-y", "weeek-mcp"],
      "env": {
        "WEEEK_ACCESS_TOKEN": "YOUR_WEEEK_TOKEN_HERE"
      }
    }
  }
}

首次启动时,npx 会下载 weeek-mcp 并将其缓存。Cursor 和 Cline 使用 相同的 mcpServers 格式——参见 examples/cursor.mcp.json 和 examples/cline.mcp.json。其他环境变量均有安全的 默认值;只覆盖你需要的配置(参见配置)。如果 npx 找不到 node(使用 nvm 时很常见),请参阅 故障排除;如需零依赖冒烟测试,请参阅 docs/smoke.md。

examples/ 仅托管在 GitHub 上——npm 压缩包仅包含 dist/ + README.md + README.ru.md + LICENSE。

工具

默认提供十个读取工具。只有在 READ_ONLY=false 时才会提供全部十五个工具(参见启用写入工具)。

读取工具返回内容
pingpong: <msg> — 传输健康检查,不调用 API,也不需要令牌
weeek_get_me已通过身份验证的用户(id、email、name)——用于确认令牌有效
weeek_list_projects令牌可访问的所有项目
weeek_get_project按 id 获取单个项目,包括其 description
weeek_list_tasks一页任务(筛选条件 + offset/per_page 分页)
weeek_get_task按 id 获取单个任务,包含多位受指派人字段
weeek_list_members工作区中的所有成员
weeek_list_tags所有标签
weeek_list_boards项目中的所有看板
weeek_list_board_columns看板中的所有列,按排序顺序排列
写入工具(READ_ONLY=false)功能
weeek_complete_task切换完成状态;completed: false 可重新打开任务
weeek_move_task将任务移至看板列(列即状态)
weeek_create_task创建新任务并返回任务及其新 id
weeek_update_task编辑标题 / 优先级 / 类型 / 截止日期
weeek_set_task_mr_link将合并请求 / 拉取请求 URL 记录到自定义字段中

完整的字段级参考(输入、输出、边缘情况、截断、多位受指派人)→ docs/tools.md。

启用写入工具

默认安装无法更改工作区中的任何内容。 所有五个变更工具都由 READ_ONLY(默认为 true)隐藏——不会注册,因此不会出现在 tools/list 中。将 READ_ONLY=false 设置后,tools/list 中的工具会从十个增加到十五个,并允许 Agent 在令牌可访问的工作区中创建、编辑、移动和完成任务。服务端没有确认步骤——annotations 只是提示,MCP 客户端可以忽略。请将令牌指向一个你愿意让其内容发生变化的工作区。

"env": {
  "WEEEK_ACCESS_TOKEN": "YOUR_WEEEK_TOKEN_HERE",
  "READ_ONLY": "false"
}

从一个工具开始,而不是五个。 将 READ_ONLY=false 与 ENABLED_TOOLS 配合使用,即可启用写入,但只开放你指定的那个工具:

"env": {
  "WEEEK_ACCESS_TOKEN": "YOUR_WEEEK_TOKEN_HERE",
  "READ_ONLY": "false",
  "ENABLED_TOOLS": "weeek_complete_task"
}

READ_ONLY 是外层门槛:仅在 ENABLED_TOOLS 中列出写入工具,并不会自动启用写入。允许列表不会自动包含其他工具,因此还要一并列出所需的读取工具——examples/claude_desktop.write.mcp.json 是一个可直接编辑的配置,已经按此设置。

每个写入工具能做什么,不能做什么
工具更改内容撤销方式destructiveHintidempotentHint
weeek_complete_task一个完成标记再次调用并设置 completed: falsefalsetrue
weeek_set_task_mr_link一个自定义字段的值重新设置该字段falsetrue
weeek_move_task任务的看板列(以及看板)将其移回——前提是你知道原位置truefalse
weeek_update_task标题 / 优先级 / 类型 / 到期日期重新设置每个字段——前提是你知道旧值truefalse
weeek_create_task创建一个新任务删除该任务,但此服务不支持删除truefalse

三个值为 true 的行都标记为“值得由人工确认”,因为Agent 从未看到旧值,也无法将其恢复;尤其要留意 weeek_create_task——无法通过此服务撤销其效果,而且重试创建会再创建一个新任务。除非传入 custom_field_id / custom_field_name,否则 weeek_set_task_mr_link 会按名称解析自定义字段——匹配名称和歧义处理规则见docs/tools.md。

配置

启动时从环境中读取配置,并使用 zod 进行验证;无效值会使启动中止,并在 stderr 中返回非零退出码。服务本身不会读取 .env 文件——请通过 MCP 客户端的 env 块或 shell 传入变量。

变量必填默认值用途
WEEEK_ACCESS_TOKEN是—个人 Weeek API 令牌(至少 20 个字符;不接受占位符和带有首尾空白的值)。
WEEEK_BASE_URL否https://api.weeek.net/public/v1Weeek HTTP 客户端的基础 URL。可覆盖此值以使用可自托管的代理。
WEEEK_TIMEOUT_MS否30000每次请求的超时时间(毫秒)。必须为正整数。
READ_ONLY否true隐藏写入工具。为 true 时,不会注册任何 readOnlyHint !== true 的工具。接受 true/false/1/0。
ENABLED_TOOLS否(未设置 = 全部)以逗号分隔的工具名称允许列表,仍会与 READ_ONLY 取交集。未知名称会发出 WARN;结果为空则启动中止。
MAX_RESPONSE_CHARS否65536每个响应的字节数上限;超出上限的负载会被截断,并标记 truncated: true。最小值 1024,最大值 1000000。
LOG_LEVEL否info日志记录器阈值:debug、info、warn、error。未知值会回退为 info。

两道门槛都在服务端执行:隐藏的工具不会注册,因此 Agent 无法调用它。READ_ONLY 至关重要——除非你打算让 Agent 更改工作区,否则请保留默认值。可查看 .env.example 获取可直接复制粘贴的模板。

故障排查

症状可能原因解决方法
客户端中未显示服务command 指向客户端无法找到的 node,或 dist/index.js 缺失/不可执行运行 npm run build;确认 ls -la dist/index.js 显示 0755。使用 which node 得到的绝对路径(见下文 NVM 说明)。
MCP server failed to start 立即出现原因同上,且缺少 node_modules在仓库根目录运行 npm install && npm run build。
stderr 中出现 invalid env: WEEEK_ACCESS_TOKEN: ...令牌包含空格/控制字符,或使用的是占位符在 https://app.weeek.net/ws/_/settings/apps/api 生成真实令牌,并粘贴时不要带前后空格或换行符。
出现 invalid env: WEEEK_BASE_URL: ...URL 使用了非 http(s) 协议,或包含 user:pass@使用纯 https://api.weeek.net/public/v1;通过 WEEEK_ACCESS_TOKEN 传递凭据。
启动 dist/index.js 时出现 EACCESpostbuild 跳过了 chmod运行 chmod +x dist/index.js。
npm start 可以运行,但客户端失败客户端启动时使用的 PATH 与 shell 不同请参阅下文的 NVM 解决方法。
NVM 解决方法 — spawn npx ENOENT / spawn node ENOENT

Claude Desktop 和 Cursor 会在非交互式 shell 中启动 MCP 子进程, 该 shell 不会加载 ~/.nvm/nvm.sh,因此如果通过 nvm 安装 Node,裸写 "command": "npx" 会悄无声息地失败。你可以硬编码绝对路径 ——运行 which npx,并将结果粘贴为 command(切换 nvm 版本时需更新);首次运行时仍会下载并缓存该包:

{ "command": "/Users/<you>/.nvm/versions/node/v20.18.0/bin/npx", "args": ["-y", "weeek-mcp"] }

——或者将 command 指向一个小型包装脚本,由它先加载 ~/.nvm/nvm.sh 再执行 exec npx "$@",这样切换 nvm 版本后仍可正常使用。

错误

每个 Weeek 工具都会以相同方式失败:isError: true,并附带单行 <tool> failed (<weeek_code>): <one English sentence>。weeek_<code> 标记 是稳定且便于机器检索的约定;句子则为自我纠正提供指引。 九种代码涵盖未授权/禁止/未找到/验证/速率限制/服务/网络/超时/无效响应,每种代码均附有重试指导。

weeek_get_task failed (weeek_not_found): Weeek returned 404 for this resource. Verify the id exists in the configured workspace and was not deleted.
weeek_list_tasks failed (weeek_rate_limited): Weeek rate-limited the request (HTTP 429). Retry after a brief delay or reduce the call frequency.

包含重试语义的完整表格 → docs/errors.md。

贡献 · 安全 · 许可证

  • 贡献——欢迎提交问题和功能请求;提交拉取请求前须事先达成一致 (此仓库采用严格的线性增量流程)。 请参阅 CONTRIBUTING.md。
  • 安全——如果发现了泄露令牌或 stdout 中字节的方法,请勿公开提交问题;关于私密渠道和 威胁模型,请参阅 SECURITY.md。
  • 许可证——MIT。
  • 面向 AI 编码 Agent——入口点约定(不变量、固定依赖、合并前检查清单)位于 CLAUDE.md。

CONTRIBUTING.md、SECURITY.md 和 CLAUDE.md 仅托管在 GitHub 上——与 examples/ 一样,它们不包含在 npm 压缩包中。LICENSE 是例外:它包含在 软件包内。

评论

支持 Markdown

第一次接触 MCP?

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

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