docs(tasks): switch to full-scope token and document agent MCP setup

窄权限 token 实测无法移动 kanban bucket(POST /projects/{p}/views/{v}/
buckets/{b}/tasks 返回 401,bucket 操作需要 project 级权限),导致
TODO / DOING / BLOCKED 的状态流转 agent 无法驱动。权衡后改用全量 token,
代价已在 T-008 方案第 5 节写明:任何配置此 MCP 的 agent 都持有该实例的
完整读写权,且 apiurl 走 http 公网 DDNS,token 明文过网。

AGENTS.md 增加各家 agent 的 MCP 配置片段(Claude Code 的 .mcp.json 与
Codex CLI 的 ~/.codex/config.toml),统一指向 scripts/vikunja-mcp.sh,
并明确任何配置文件内不得内联凭据——token 只存在于 vikunja.env。

看板卡片已归位:Doing #15,Done #12/#13/#14。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
QiuSW
2026-08-03 17:14:00 +08:00
co-authored by Claude Opus 5
parent 9198134d0b
commit ed489bd13e
2 changed files with 22 additions and 4 deletions
+18 -1
View File
@@ -89,7 +89,24 @@ cmbuyer 是一个自动化采购系统:**采购服务**(网页端,`admin/`
在 diff 里只呈现为「导出内容更新」,审计链就断了。
只读任务内容不需要接入 Vikunja——导出产物就在仓库里,`git clone` 即可。只有写状态和
执行记录才需要配置 MCP(`.mcp.json` → `scripts/vikunja-mcp.sh`,凭据见 `vikunja.env.example`)。
执行记录才需要配置 MCP。
各家 agent 指向**同一个包装脚本**,不要各写各的:
```jsonc
// Claude Code:仓库内 .mcp.json(已配置,无需重复)
{ "mcpServers": { "vikunja": { "type": "stdio", "command": "./scripts/vikunja-mcp.sh" } } }
```
```toml
# Codex CLI:~/.codex/config.toml
[mcp_servers.vikunja]
command = "/mnt/d/chengma/cmbuyer/scripts/vikunja-mcp.sh"
```
**任何配置都不得内联凭据。** 脚本自己按 `$VIKUNJA_ENV_FILE` → 仓库根 `vikunja.env` →
家目录的顺序读取,token 只存在于 `vikunja.env`(已 gitignore,样例见 `vikunja.env.example`)。
把 token 写进 agent 配置文件等于把它复制到一个没人在看的地方。
Vikunja 不可达时按 `degraded_mode` 处理:继续手头任务,不领新任务,不写远端。