关于 Planka V2
Planka V2 是面向 Planka v2.x 的 MCP 服务,让 AI Agent 通过自然语言管理项目、看板、卡片和任务。它还支持评论、标签、成员分配与卡片计时,并兼容自托管和云端 Planka。
主要功能
- 01管理项目、看板与列表
- 02创建、移动和管理卡片
- 03管理任务清单与任务
- 04处理评论、标签和成员分配
- 05跟踪卡片耗时并生成摘要
适用场景
- 01创建项目并设置看板流程
- 02为卡片建立任务清单并批量添加任务
- 03查找逾期卡片并移动到指定列表
- 04查看项目或看板摘要
MCP 相关
该 MCP 服务将 Planka v2 API 的项目、看板、卡片等功能以工具形式提供给 MCP 客户端。它是标准 stdio MCP 服务,可连接自托管或云端 Planka。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
10收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| action | enum | 是 | 要执行的操作get_projects | create_project | get_project | update_project | delete_project | get_boards | create_board | get_board | update_board | delete_board | get_board_summary | get_project_summary |
| id | string | 否 | 项目或看板的 ID |
| projectId | string | 否 | 项目 ID |
| name | string | 否 | 项目或看板的名称 |
| description | string | 否 | 项目描述 |
| position | number | 否 | 看板的位置 |
| type | string | 否 | 项目(private/shared)或看板的类型 |
| backgroundType | enum | 否 | update_project 的背景类型gradient | image |
| backgroundGradient | string | 否 | update_project 的背景渐变 |
| page | number | 否 | 分页的页码(从 1 开始) |
| perPage | number | 否 | 每页的项目数 |
| boardId | string | 否 | 要获取摘要的看板 ID |
| includeTaskDetails | boolean | 否 | 是否包含每张卡片的详细任务信息 |
| includeComments | boolean | 否 | 是否包含每张卡片的评论 |
详细介绍
Planka v2.x MCP
将 Claude、Cursor、Codex 和其他 MCP 客户端直接连接到你的 Planka v2.x 看板。
通过模型上下文协议(MCP),让你的 AI Agent 能够以结构化且安全的方式访问项目、看板、卡片、任务、评论、标签和工作流。
重要
专为 Planka v2.x 构建。此 MCP 与 Planka v1.x 不兼容。
为什么选择 Planka MCP?
Planka 为人类用户提供了出色的 Web 界面。然而,AI Agent 需要以结构化方式访问项目、看板、卡片、任务、评论和工作流。
此 MCP 服务通过模型上下文协议(MCP)开放 Planka v2 API,让 Claude、Cursor、Codex 和其他 AI Agent 能够使用自然语言与 Planka 交互。
支持的 Planka 版本
| Planka 版本 | 状态 |
|---|---|
| 2.0.0-rc.2 | ✅ 已测试 |
| 2.1.1 | ✅ 已测试 |
| 2.2.1 | ✅ 已测试 |
| 更新的 2.x | ⚠️ 预计可用 |
功能
- 完整的项目和看板管理
- 完整的卡片生命周期管理
- 支持任务列表和任务
- 评论、标签和分配
- 卡片时间跟踪
- 项目和看板摘要
- 原生 MCP 工具接口
- 支持主流 MCP 客户端
- 支持可自托管和云端 Planka
对话示例
项目设置
用户
创建一个名为 "Website Redesign" 的项目,并创建名为 "Backlog"、"In Progress" 和 "Done" 的看板。
助手
✓ Created project "Website Redesign"
✓ Created board "Backlog"
✓ Created board "In Progress"
✓ Created board "Done"
Project setup completed successfully.
创建任务
用户
在 Backlog 看板中创建一张名为 "Implement authentication" 的卡片,并添加以下任务:
- 设计登录流程
- 实现 JWT 身份验证
- 添加密码重置功能
- 编写测试
助手
✓ Created card "Implement authentication"
✓ Created task list
✓ Added 4 tasks
工作流自动化
用户
找出分配给我的所有逾期卡片,将它们移至 "Blocked",添加一条说明原因的评论,并生成项目摘要。
助手
✓ Found 7 overdue cards
✓ Moved cards to "Blocked"
✓ Added explanatory comments
✓ Generated updated project summary
可用工具
| 工具名称 | 操作 | 说明 | | ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------- | | `project_board_manager` | `get_projects` · `create_project` · `get_project` · `update_project` · `delete_project` · `get_boards` · `create_board` · `get_board` · `update_board` · `delete_board` · `get_board_summary` · `get_project_summary` | 项目和看板,包括汇总统计 | | `list_manager` | `get_all` · `create` · `get_one` · `update` · `delete` | 看板中的看板列表 | | `card_manager` | `get_all` · `create` · `get_one` · `update` · `move` · `duplicate` · `delete` · `create_with_tasks` · `get_details` | 卡片,包括一次性创建并附带任务清单 | | `stopwatch` | `start` · `stop` · `get` · `reset` | 卡片上的时间跟踪 | | `label_manager` | `get_all` · `create` · `update` · `delete` · `add_to_card` · `remove_from_card` | 看板标签及其在卡片上的分配 | | `task_list_manager` | `get_all` · `create` · `get_one` · `update` · `delete` | 卡片中的任务列表(Planka v2.0 实体) | | `task_manager` | `get_all` · `create` · `batch_create` · `get_one` · `update` · `delete` · `complete_task` | 单个任务,包括批量创建 | | `comment_manager` | `get_all` · `create` · `get_one` · `update` · `delete` | 卡片上的评论 | | `membership_manager` | `get_all` · `create` · `get_one` · `update` · `delete` | 看板级成员资格和角色(`editor` / `viewer`) | | `card_membership_manager` | `get_all` · `get_users` · `create` · `delete` | 按 **ID、电子邮件或用户名** 分配/移除卡片成员 |card_manager 使用 action: "get_details" 时,会包含一个 attachments 数组,其中包含只读元数据:附件和卡片 ID、创建者用户 ID、名称、类型、MIME 类型、大小、下载或链接 URL,以及时间戳。它不会下载或返回附件内容。
快速开始
要求
- 正在运行的 Planka v2.x 实例
- 为你的 AI Agent 准备的专用 Planka 用户账户
- Node.js 18+(如果在本地运行)
重要
创建 MCP 账户后,请使用该账户登录 Planka Web 界面 并接受服务条款,然后再配置或启动 MCP 服务。每个新账户都必须完成此操作。
配置 MCP 客户端
所有兼容 MCP 的客户端都使用相同的底层命令,只有配置文件的位置(有时还有 JSON 包装格式)不同。请参阅下方的客户端配置示例,查看适用于你的工具的配置。
核心配置块始终如下:
{
"command": "npx",
"args": ["-y", "@goldpulpy/planka-v2-mcp@latest"],
"env": {
"PLANKA_BASE_URL": "https://your-planka-instance.com",
"PLANKA_AGENT_EMAIL": "[email protected]",
"PLANKA_AGENT_PASSWORD": "your-secure-password",
"PLANKA_IGNORE_SSL": "true"
}
}
替代方案:从本地构建版本运行
{
"command": "node",
"args": ["/absolute/path/to/planka-v2-mcp/dist/index.js"],
"env": {
"PLANKA_BASE_URL": "https://your-planka-instance.com",
"PLANKA_AGENT_EMAIL": "[email protected]",
"PLANKA_AGENT_PASSWORD": "your-secure-password",
"PLANKA_IGNORE_SSL": "true"
}
}
适用于为服务本身做贡献,或需要固定版本的离线构建的情况。
提示
仅在受信任的本地环境中使用自签名证书时,才将
PLANKA_IGNORE_SSL设为"true";在生产环境中请保持未设置状态。
验证连接
先让你的 Agent 执行只读操作,例如 “列出我的 Planka 项目。” 如果收到真实响应,说明连接配置正确。
客户端配置示例
大多数 MCP 客户端使用完全相同的 mcpServers JSON 结构,区别仅在于配置文件位置。格式不同的客户端(Codex、Continue、Zed)会在下方单独列出。
标准 mcpServers 客户端 — Claude Desktop、Claude Code、Cursor、Windsurf、Cline、Antigravity
{
"mcpServers": {
"planka-mcp": {
"command": "npx",
"args": ["-y", "@goldpulpy/planka-v2-mcp@latest"],
"env": {
"PLANKA_BASE_URL": "https://your-planka-instance.com",
"PLANKA_AGENT_EMAIL": "[email protected]",
"PLANKA_AGENT_PASSWORD": "your-secure-password",
"PLANKA_IGNORE_SSL": "true"
}
}
}
}
将此代码块添加到相应的配置文件中:
| 客户端 | 配置文件 |
|---|---|
| Claude Desktop | macOS:~/Library/Application Support/Claude/claude_desktop_config.json · Windows:%APPDATA%\Claude\claude_desktop_config.json |
| Claude Code (CLI) | 项目根目录下的 .mcp.json(或使用 claude mcp add,见下文) |
| Cursor | ~/.cursor/mcp.json(全局)或 .cursor/mcp.json(项目级) |
| Windsurf | ~/.codeium/windsurf/mcp_config.json |
| Cline(VS Code) | cline_mcp_settings.json,通过 Cline → MCP Servers → Configure MCP Servers 配置(在服务条目中添加 "disabled": false, "autoApprove": []) |
| Antigravity | 通过 Settings → MCP Servers → Add Server 添加,或直接编辑其配置文件 |
说明
Claude Code 还支持通过一行命令添加服务,无需手动编辑 JSON:
claude mcp add planka-mcp \ --env PLANKA_BASE_URL=https://your-planka-instance.com \ --env [email protected] \ --env PLANKA_AGENT_PASSWORD=your-secure-password \ --env PLANKA_IGNORE_SSL=true \ -- npx -y @goldpulpy/planka-v2-mcp@latest
保存后重启客户端。
Codex CLI
编辑 ~/.codex/config.toml:
[mcp_servers.planka-mcp]
command = "npx"
args = ["-y", "@goldpulpy/planka-v2-mcp@latest"]
[mcp_servers.planka-mcp.env]
PLANKA_BASE_URL = "https://your-planka-instance.com"
PLANKA_AGENT_EMAIL = "[email protected]"
PLANKA_AGENT_PASSWORD = "your-secure-password"
PLANKA_IGNORE_SSL = "true"
或使用一行命令添加:
codex mcp add planka-mcp -- npx -y @goldpulpy/planka-v2-mcp@latest
然后在生成的 [mcp_servers.planka-mcp.env] 区块中设置 PLANKA_* 变量。
Continue(VS Code / JetBrains 扩展)
添加到 ~/.continue/config.yaml:
mcpServers:
- name: planka-mcp
command: npx
args:
- -y
- "@goldpulpy/planka-v2-mcp@latest"
env:
PLANKA_BASE_URL: https://your-planka-instance.com
PLANKA_AGENT_EMAIL: [email protected]
PLANKA_AGENT_PASSWORD: your-secure-password
PLANKA_IGNORE_SSL: "true"
Zed
编辑 ~/.config/zed/settings.json(macOS/Linux)或 %APPDATA%\Zed\settings.json(Windows),也可通过 Cmd+Shift+P → "zed: open settings" 打开:
{
"context_servers": {
"planka-mcp": {
"source": "custom",
"command": "npx",
"args": ["-y", "@goldpulpy/planka-v2-mcp@latest"],
"env": {
"PLANKA_BASE_URL": "https://your-planka-instance.com",
"PLANKA_AGENT_EMAIL": "[email protected]",
"PLANKA_AGENT_PASSWORD": "your-secure-password",
"PLANKA_IGNORE_SSL": "true"
}
}
}
}
手动添加的服务(而非通过 Zed 扩展安装的服务)必须设置 "source": "custom"。保存后,Zed 会自动重新加载服务,无需重启编辑器。
其他任何兼容 MCP 的客户端
此服务是标准的 stdio MCP 服务,任何支持 command / args / env 结构的客户端都可以使用。将其指向:
npx -y @goldpulpy/planka-v2-mcp@latest
并按上文所示设置四个 PLANKA_* 环境变量。
| 变量 | 必需 | 默认值 | 描述 |
|---|---|---|---|
PLANKA_BASE_URL | ✅ | - | Planka 实例的完整 URL |
PLANKA_AGENT_EMAIL | ✅ | - | 专用 Agent 用户的登录邮箱 |
PLANKA_AGENT_PASSWORD | ✅ | - | Agent 用户的密码 |
PLANKA_IGNORE_SSL | ❌ | false | 跳过 SSL 验证——仅适用于自签名/本地证书 |
安全
- 使用专用的 Planka 用户账户进行身份验证。
- 仅通过环境变量提供凭据。
- MCP 服务不会在运行进程之外持久化看板数据。
- 默认启用 SSL 证书验证。
PLANKA_IGNORE_SSL=true仅应在可信的本地或可自托管环境中使用。
故障排除
客户端看不到任何工具 / 连接静默失败
- 确认
PLANKA_BASE_URL末尾没有斜杠,并且运行 MCP 服务的机器可以访问该地址(不只是浏览器可以访问)。 - 检查 Agent 用户能否通过 Planka 的常规 Web 界面使用完全相同的凭据登录,并且已接受服务条款。
SSL / 证书错误
- 如果你的实例使用自签名证书,请设置
"PLANKA_IGNORE_SSL": "true"。请勿在生产环境中这样做——应改用有效证书。
已创建卡片,但未显示检查清单/子任务
- 确保卡片类型为
"project"(默认值)。创建为"story"类型的卡片不会以相同方式显示任务列表。
开发
# Install dependencies
npm install
# Configure environment variables
cp .env.example .env
# Start the bundled Planka development instance
npm run planka:up
# Build the project
npm run build
# Run @modelcontextprotocol/inspector
npm run inspector
开发实例需要 Docker Compose,可通过
http://localhost:3000 访问(登录信息:[email protected] / admin)。本地使用时,请用该 URL 和登录信息更新 .env。与任何新建的 MCP 账户一样,请先通过浏览器登录并接受服务条款,然后再将该账户用于 MCP 服务。使用 npm run planka:down 停止实例并保留数据,或使用 npm run planka:clear 停止实例并删除其卷。
创建演示看板
仅用于开发的种子命令会创建一个具有代表性的看板,用于本地测试和演示。运行命令前,请安装项目依赖,并在 .env 中配置一个可访问的 Planka v2 实例,以及有效的 PLANKA_BASE_URL、PLANKA_AGENT_EMAIL 和 PLANKA_AGENT_PASSWORD 值。
# Reuse or create the private "Demo Project", then create "Demo Board"
npm run seed
# Seed an existing project
npm run seed -- --project-id <project-id>
# Choose a different board name
npm run seed -- --project-id <project-id> --board-name "My Demo Board"
# Show all options
npm run seed -- --help
看板包含默认工作流列表中的卡片、描述、相对截止日期、用作标签的 Planka 标签、任务列表、已完成和未完成的任务,以及评论。命令成功后会输出项目 ID、看板 ID、看板名称和资源数量。
如果某个项目中已包含名称与指定名称完全一致的看板,种子命令会拒绝修改该项目;请使用 --board-name 选择其他名称。如果创建看板后发生错误,命令会报告失败阶段和看板 ID,并保留未完全填充的看板以供检查。使用相同名称重试前,请先在 Planka 中删除该看板。
种子源文件及其单独编译的 .seed-dist/ 输出仅用于开发,不包含在 MCP 服务构建或发布包中。
贡献
欢迎贡献。详情请参阅 CONTRIBUTING.md。
致谢
本项目由 Navya-Tecnologia/planka-v2-mcp 分叉而来,该项目基于 bradrisse/kanban-mcp 构建。感谢 @virapa 和 @bradrisse 为此代码库奠定基础。
许可证
本项目采用 MIT 许可证。详情请参阅 LICENSE。
本项目仅专注于 MCP 接口。有关 Planka 服务的设置,请参阅Planka 官方文档。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。