关于 Productplan Mcp Server
Productplan Mcp Server 让 AI 助手通过自然语言查询和管理 ProductPlan 路线图、想法、OKR 与发布计划。产品经理和团队负责人可通过本地进程访问真实数据,并执行经过验证的批量条目修改。
主要功能
- 01查询路线图及路线图条目
- 02创建、编辑和删除条目
- 03管理想法、机会与 OKR
- 04查看和管理发布计划及任务
- 05支持带验证的批量条目修改
适用场景
- 01准备站会,汇总路线图近期变更
- 02查看目标进度并整理利益相关方更新
- 03筛选待评估的客户想法
- 04检查发布计划中的未完成任务
MCP 相关
该本地 MCP 服务将客户端请求转换为 ProductPlan API 调用,并向 AI 助手提供路线图、想法、OKR、发布计划等数据的查询和管理工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
ghcr.io/olgasafonova/productplan-mcp-server:6.0.0stdio工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
ProductPlan MCP 服务
通过 AI 与路线图对话。 使用自然语言与 Claude、Cursor 或其他 AI 助手交流,提出问题、创建创意、查看 OKR 进度并管理发布。
你可以用它做什么?
无需在 ProductPlan 界面中逐页点击,只需提问:
“我们的 Q1 路线图上有什么?”
“显示所有进度落后的目标”
“为移动应用改进创建一个新创意”
“本月有哪些发布计划?”
“列出所有带有 ‘customer-request’ 标签的创意”
“为每个 eFormidling 条形项应用 Customer satisfaction 图例颜色”
“将这十个条形项移到 Platform 泳道,并添加 Q3 标签”
AI 会获取你在 ProductPlan 中的真实数据,并在几秒钟内作出回应。批量修改条形项会通过一次经过验证的调用完成:写入任何内容之前,系统都会检查每个条形项;你也可以先请求试运行。
适用人群
- 产品经理:希望更快访问路线图数据
- 团队负责人:需要快速查看状态,无需切换上下文
- 所有使用 AI 助手的人(Claude、Cursor 等):希望将 ProductPlan 集成到工作流中
无需编写代码。你只需复制一个文件并粘贴一些设置。
快速开始(5 分钟)
步骤 1:获取 ProductPlan API 令牌
- 登录 ProductPlan
- 前往 Settings → API(或直接访问此链接)
- 复制 API 令牌
步骤 2:下载应用
前往 Releases 页面,下载适用于你电脑的文件:
| 你的电脑 | 下载此文件 |
|---|---|
| Mac(M1、M2、M3、M4) | productplan-darwin-arm64 |
| Mac(Intel) | productplan-darwin-amd64 |
| Windows | productplan-windows-amd64.exe |
| Linux | productplan-linux-amd64 |
在 Mac/Linux 上,打开终端并运行以下两条命令(将文件名替换为你下载的文件名):
chmod +x ~/Downloads/productplan-darwin-arm64
sudo mv ~/Downloads/productplan-darwin-arm64 /usr/local/bin/productplan
系统会提示你输入密码,这是正常的。
在 Windows 上:
-
为二进制文件创建一个文件夹(如果该文件夹尚不存在):
mkdir C:\Tools -
将下载的
.exe移到该文件夹,并重命名:move %USERPROFILE%\Downloads\productplan-windows-amd64.exe C:\Tools\productplan.exe -
在 AI 助手配置中使用完整路径
C:\Tools\productplan.exe(见步骤 3)
注意:你可以跳过将其添加到 PATH 的步骤。在配置中使用完整文件路径即可。
第 3 步:连接到 AI 助手
选择你使用的工具:
Claude Desktop(点击展开)
-
找到配置文件:
- Mac:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- Mac:
-
用任意文本编辑器打开文件并添加以下内容(将
your-token替换为你的实际 API 令牌):
Mac/Linux:
{
"mcpServers": {
"productplan": {
"command": "/usr/local/bin/productplan",
"env": {
"PRODUCTPLAN_API_TOKEN": "your-token"
}
}
}
}
Windows:
{
"mcpServers": {
"productplan": {
"command": "C:\\Tools\\productplan.exe",
"env": {
"PRODUCTPLAN_API_TOKEN": "your-token"
}
}
}
}
- 重启 Claude Desktop
Claude Code (Terminal)
添加到配置文件:
- Mac/Linux:
~/.claude.json - Windows:
%USERPROFILE%\.claude.json
Mac/Linux:
{
"mcpServers": {
"productplan": {
"command": "/usr/local/bin/productplan",
"env": {
"PRODUCTPLAN_API_TOKEN": "your-token"
}
}
}
}
Windows:
{
"mcpServers": {
"productplan": {
"command": "C:\\Tools\\productplan.exe",
"env": {
"PRODUCTPLAN_API_TOKEN": "your-token"
}
}
}
}
Cursor
- 打开 Cursor
- 转到 设置 → MCP 服务
- 添加以下配置:
Mac/Linux:
{
"productplan": {
"command": "/usr/local/bin/productplan",
"env": {
"PRODUCTPLAN_API_TOKEN": "your-token"
}
}
}
Windows:
{
"productplan": {
"command": "C:\\Tools\\productplan.exe",
"env": {
"PRODUCTPLAN_API_TOKEN": "your-token"
}
}
}
Windows 用户:路径中使用双反斜杠(
\\)。这是必需的,因为在 JSON 中,反斜杠是转义字符。
VS Code + Cline
- 安装 Cline 扩展
- 打开 VS Code 设置(JSON)并添加:
Mac/Linux:
{
"cline.mcpServers": {
"productplan": {
"command": "/usr/local/bin/productplan",
"env": {
"PRODUCTPLAN_API_TOKEN": "your-token"
}
}
}
}
Windows:
{
"cline.mcpServers": {
"productplan": {
"command": "C:\\Tools\\productplan.exe",
"env": {
"PRODUCTPLAN_API_TOKEN": "your-token"
}
}
}
}
VS Code + Continue
- 安装 Continue 扩展
- 添加到配置文件:
- Mac/Linux:
~/.continue/config.json - Windows:
%USERPROFILE%\.continue\config.json
- Mac/Linux:
Mac/Linux:
{
"mcpServers": [
{
"name": "productplan",
"command": "/usr/local/bin/productplan",
"env": {
"PRODUCTPLAN_API_TOKEN": "your-token"
}
}
]
}
Windows:
{
"mcpServers": [
{
"name": "productplan",
"command": "C:\\Tools\\productplan.exe",
"env": {
"PRODUCTPLAN_API_TOKEN": "your-token"
}
}
]
}
n8n(工作流自动化)
- 在 n8n 实例上设置环境变量:
N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true - 在工作流中添加一个 MCP 客户端节点
- 配置:
- 命令:
- Mac/Linux:
/usr/local/bin/productplan - Windows:
C:\Tools\productplan.exe
- Mac/Linux:
- 环境变量:
PRODUCTPLAN_API_TOKEN=your-token
- 命令:
- 连接到 AI Agent 节点
工作流示例:Slack Trigger → AI Agent (with MCP Client) → Slack Response
第 4 步:开始提问
打开 AI 助手并尝试询问:
- “列出我的 ProductPlan 路线图”
- “路线图 [name] 上有哪些条目?”
- “显示我们的 OKR”
- “探索阶段有哪些想法?”
实际应用场景
每日站会准备
“总结一下上周我们的 Product Roadmap 有哪些变化”
利益相关方更新
“列出所有 Q1 目标及其进展”
想法筛选
“显示所有带有 ‘enterprise’ 标签但尚未设置优先级的想法”
发布协调
“1 月发布还有哪些任务未完成?”
快速查询
“‘Mobile App v2’ 计划何时开始?”
可以访问哪些 ProductPlan 数据?
| 功能 | 查看 | 创建 | 编辑 | 删除 |
|---|---|---|---|---|
| 路线图 | 是 | - | - | - |
| 路线图评论 | 是 | - | - | - |
| 条目(路线图项目) | 是 | 是 | 是 | 是 |
| 批量编辑条目(每次最多 100 个) | - | 是 | 是 | 是 |
| 条目评论 | 是 | - | - | - |
| 条目关联 | 是 | 是 | - | 是 |
| 条目链接 | 是 | 是 | - | 是 |
| 泳道(类别) | 是 | 是 | 是 | 是 |
| 图例(条目颜色) | 是 | - | 分配给条目 | - |
| 里程碑 | 是 | 是 | 是 | 是 |
| 创意(Discovery) | 是 | 是 | 是 | - |
| 创意客户 | 是 | - | - | - |
| 创意标签 | 是 | - | - | - |
| 机会 | 是 | 是 | 是 | - |
| 创意表单 | 是 | - | - | - |
| 目标(OKR) | 是 | 是 | 是 | 是 |
| 关键结果 | 是 | 是 | 是 | 是 |
| 发布 | 是 | 是 | 是 | 是 |
| 发布分区 | 是 | 是 | 是 | 是 |
| 发布任务 | 是 | 是 | 是 | 是 |
| 用户 | 是 | - | - | - |
| 团队 | 是 | - | - | - |
列表工具支持筛选条件,因此你可以精准获取所需内容:按名称、日期、泳道、图例或标签筛选条目,按名称或状态筛选创意、机会、发布和路线图。
ProductPlan API 本身不支持某些操作,因此没有任何工具可以执行:创建图例、设置泳道颜色、撰写评论、在条目嵌套后将其从容器中移除,以及创建 Azure DevOps 或 Jira 集成链接(通过 API 创建的链接只是普通网页链接)。
工作原理
┌─────────────────┐ spawns ┌─────────────────┐ API calls ┌─────────────────┐
│ AI Assistant │ ───────────────── │ MCP Server │ ─────────────────▶ │ ProductPlan │
│ (Claude, Cursor)│ ◀───────────────▶ │ (this binary) │ ◀───────────────── │ API │
└─────────────────┘ stdin/stdout └─────────────────┘ JSON data └─────────────────┘
your computer your computer cloud
为什么必须在你的电脑上运行?
MCP(Model Context Protocol)通过子进程模型运行。你的 AI 助手不会连接到远程服务;它会将二进制文件作为本地进程启动,并通过 stdin/stdout 与其通信。这种架构意味着:
- 二进制文件必须存在于本地,因为你的 AI 助手会将其作为子进程运行
- 你的 API 令牌保留在你的电脑上,绝不会经过第三方服务
- 实时同步通信,AI 与 MCP 服务之间没有网络延迟
- 缓存数据可离线使用(但调用 ProductPlan API 仍需要联网)
当你询问“我们的 Q1 路线图上有什么?”时,会发生以下情况:
- 你的 AI 助手识别出需要 ProductPlan 数据
- 它向 MCP 服务进程发送结构化请求
- 二进制文件将其转换为 ProductPlan API 调用
- ProductPlan 返回 JSON 数据
- 二进制文件整理结果并返回给你的 AI
- 你的 AI 用自然语言呈现答案
Agent 技能
预先构建的工作流指南,帮助 AI 助手掌握如何有效使用 ProductPlan 工具。每项技能都面向特定角色,并提供量身定制的工作流。
| 技能 | 适用对象 | 重点 |
|---|---|---|
| productplan-workflows | 通用 | 核心模式和工具参考 |
| productplan-pm | 产品经理 | 全套工具:路线图、OKR、创意、发布 |
| productplan-leadership | 高管 | 产品组合健康状况、跨路线图视图 |
| productplan-customer-facing | 销售和 CS | 面向客户的路线图时间线 |
共享原则
所有技能都遵循以下输出规范:
- 不输出原始 JSON - 将回复格式化为易读的文本和表格
- 使用易读的日期 - 使用“March 2025”或“Q1 2025”,而不是“2025-03-15”
- 概述较长的列表 - 不要用 50 个条目让人应接不暇;可以提出展开说明
不同角色的专属差异:
- PM 会为后续操作包含
bar_id - 领导层 会先给出执行摘要,隐藏实现细节
- 面向客户 的内容完全省略内部 ID、泳道名称和 OKR
使用技能的方法:将 SKILL.md 文件复制到你的 Claude Code 技能目录:
# Copy a skill (example: PM skill)
cp skills/productplan-pm/SKILL.md ~/.claude/skills/productplan-pm.md
或者在提示词中直接引用技能:
“使用 productplan-pm 工作流向我展示我们的 Q1 路线图”
故障排查
“Command not found”或“spawn ENOENT”
AI 助手找不到二进制文件。这意味着:
- Mac/Linux:文件不在
/usr/local/bin/productplan,或者你忘记运行chmod +x - Windows:配置中的路径与保存
.exe文件的位置不一致
解决方法:确认二进制文件位于配置指定的路径。运行 ls -la /usr/local/bin/productplan(Mac/Linux),或检查 C:\Tools\productplan.exe 是否存在(Windows)。
Windows 路径问题
Windows 上的常见错误:
| 错误 | 正确 |
|---|---|
/usr/local/bin/productplan | C:\\Tools\\productplan.exe |
C:\Tools\productplan.exe(JSON 中使用单反斜杠) | C:\\Tools\\productplan.exe |
productplan(没有路径) | C:\\Tools\\productplan.exe |
缺少 .exe 扩展名 | 在路径中包含 .exe |
Windows 使用反斜杠(\)表示路径,但 JSON 会将反斜杠视为转义字符。你必须在配置文件中将反斜杠加倍(\\)。
“Invalid API token”
请在 ProductPlan Settings → API 中仔细检查你的令牌。令牌可能已过期或重新生成。确保复制了完整令牌,且没有多余空格。
“No roadmaps found”
你的 API 令牌只能访问你在 ProductPlan 中有权限查看的数据。请确认你的账户有权访问你要查找的路线图。
AI 助手看不到 ProductPlan 工具
MCP 服务会在 AI 助手启动时加载,而不是在配置更改时加载。编辑配置文件后,请完全退出并重启应用程序。在 Mac 上,请使用 Cmd+Q(不要只关闭窗口)。
泳道颜色未更改
颜色由图例 名称(例如“Committed”)设置,而不是由 ID 设置。请让助手先列出路线图的图例。6.0.0 之前的版本会发送 legend_id,ProductPlan 会将其视为“移除颜色”;如果颜色持续消失,请升级。
“unknown argument”错误
从 6.0.0 起,服务会拒绝工具不支持的参数,并建议最接近的有效参数(“你是不是想用 legend?”)。这通常意味着助手猜错了参数名称;它可以根据建议重试。
Mac/Linux 上出现“Permission denied”
二进制文件需要执行权限。运行:
chmod +x /usr/local/bin/productplan
命令行(可选)
你也可以在终端中直接使用此工具,无需 AI 助手:
# First, set your token
export PRODUCTPLAN_API_TOKEN="your-token"
# Then run commands
productplan status # Check connection
productplan roadmaps # List all roadmaps
productplan bars 12345 # List bars in roadmap #12345
productplan objectives # List all OKRs
productplan ideas # List all ideas
productplan opportunities # List all opportunities
productplan launches # List all launches
可选设置: PRODUCTPLAN_CACHE_TTL 控制读取结果在内存中的缓存时长(默认值为 60s;设置为 0 可关闭缓存)。通过服务进行的任何更改都会立即清除缓存。
背景信息
什么是 MCP?
Model Context Protocol (MCP) 是一项开放标准,可让 AI 助手连接外部工具。该协议由 Anthropic 创建,其他 AI 提供商也正在采用。此服务实现了 MCP,因此 AI 助手可以读取和写入 ProductPlan 数据。
什么是 ProductPlan?
ProductPlan 是一款路线图软件,供 4,000 多个产品团队使用。它可用于管理路线图、OKR、创意探索和发布协调。
面向开发者
项目结构
productplan-mcp-server/
├── cmd/productplan/main.go # Entry point: token check, then MCP server or CLI
├── internal/
│ ├── api/ # ProductPlan API client
│ │ ├── client.go # HTTP client: auth, rate limiting, error wrapping
│ │ ├── transport.go # Tuned HTTP transport
│ │ ├── cache.go # In-process TTL read cache (singleflight, write invalidation)
│ │ ├── list.go # Paged collection GETs and Ransack query encoding
│ │ ├── ids.go # Typed resource IDs (BarID, RoadmapID, ...), each validated into a path segment
│ │ ├── path.go # Routes and request paths built only from typed IDs
│ │ ├── safeseg.go # Path-segment validation for user-supplied IDs
│ │ ├── endpoints*.go # Endpoint methods (roadmaps, bars, ideas, launches, OKRs)
│ │ ├── bars_read.go # Roadmap bars with lane enrichment and client-side filters
│ │ ├── bar_schema.go # Roadmap legends/lanes/custom fields for bar writes
│ │ └── formatters.go # Response projection for AI
│ ├── mcp/ # MCP wiring over the official go-sdk
│ │ ├── sdk_server.go # Serves the registry via go-sdk (stdio)
│ │ ├── sdk.go # Converts local Tool -> SDK tool
│ │ ├── handler.go # Registry: dispatch and panic recovery
│ │ ├── argkeys.go # Rejects undeclared argument keys (did-you-mean)
│ │ ├── editdistance.go # Levenshtein distance for suggestions
│ │ └── types.go # Tool-authoring types
│ ├── tools/ # Tool definitions and handlers
│ │ ├── registry.go # Tool registration (name -> handler)
│ │ ├── definitions*.go # Tool schemas and descriptions
│ │ ├── helpers.go # typedHandler, manage-action dispatch
│ │ ├── filters.go # List-tool filters -> Ransack predicates
│ │ ├── formatter.go # List/item/action response summaries
│ │ ├── item_type.go # Item nouns for summaries
│ │ ├── bar_planner.go # Validates bar writes against the roadmap
│ │ ├── bar_names.go # Legend/lane/custom field name resolution
│ │ ├── bulk_bars.go # bulk_update/create/delete_bars
│ │ ├── roadmaps.go, bars.go, ideas.go, objectives.go, launches.go, utility.go # handlers
│ │ └── types*.go # Typed argument structs for handlers
│ ├── cli/ # CLI commands (status, roadmaps, etc.)
│ │ └── cli.go
│ └── logging/ # slog JSON handler setup (ts/level/msg)
│ └── logger.go
├── pkg/productplan/ # Reusable utilities
│ ├── retry.go # Exponential backoff with jitter
│ ├── ratelimit.go # Adaptive rate limiting
│ ├── batch.go # Batched operations
│ ├── health.go # Health reporting
│ ├── requestid.go # Request tracing
│ ├── validation.go # ID validation (Field.RequireID)
│ └── errors.go # APIError and error suggestions
└── evals/ # LLM evaluation test suite
├── runner.go, types.go
├── tool_selection.json
├── confusion_pairs.json
└── argument_correctness.json
从源代码构建
需要 Go 1.26 或更高版本。
git clone https://github.com/olgasafonova/productplan-mcp-server.git
cd productplan-mcp-server
go build -o productplan ./cmd/productplan
为所有平台构建:
# macOS Apple Silicon
GOOS=darwin GOARCH=arm64 go build -o dist/productplan-darwin-arm64 ./cmd/productplan
# macOS Intel
GOOS=darwin GOARCH=amd64 go build -o dist/productplan-darwin-amd64 ./cmd/productplan
# Linux
GOOS=linux GOARCH=amd64 go build -o dist/productplan-linux-amd64 ./cmd/productplan
# Windows
GOOS=windows GOARCH=amd64 go build -o dist/productplan-windows-amd64.exe ./cmd/productplan
测试
运行所有测试:
go test ./...
运行并生成覆盖率报告:
go test ./... -cover
运行基准测试:
go test ./internal/... -bench=. -benchmem
运行评估套件:
./scripts/run-evals.sh
覆盖率(于 24-09-2026 测量,go test ./... -cover):
| 包 | 覆盖率 |
|---|---|
| internal/logging | 100% |
| pkg/productplan | 94.5% |
| internal/mcp | 92.5% |
| internal/cli | 92.3% |
| evals | 89.5% |
| internal/api | 87.4% |
| internal/tools | 82.3% |
| cmd/productplan | 34.9% |
所有生产文件在 CodeScene Code Health 中均获得 10.0 分(其中两个仅包含类型的文件无法评分)。
MCP 工具参考
共有 50 个工具可用:35 个读取工具和 15 个写入工具(12 个基于操作的 manage_* 工具,以及 3 个 bulk_* 进度条工具):
读取工具:
- 路线图:
list_roadmaps、get_roadmap、get_roadmap_bars、get_roadmap_lanes、get_roadmap_milestones、get_roadmap_legends、get_roadmap_comments、get_roadmap_complete - 进度条:
get_bar、get_bar_children、get_bar_comments、get_bar_connections、get_bar_links - OKR:
list_objectives、get_objective、list_key_results、get_key_result - 发现:
list_ideas、get_idea、list_all_customers、list_all_tags、list_opportunities、get_opportunity、list_idea_forms、get_idea_form - 发布:
list_launches、get_launch、get_launch_sections、get_launch_section、get_launch_tasks、get_launch_task - 管理:
check_status、health_check、list_users、list_teams
写入工具:
- 路线图:
manage_bar、manage_lane、manage_milestone - 进度条关系:
manage_bar_connection、manage_bar_link - 批量进度条:
bulk_update_bars、bulk_create_bars、bulk_delete_bars(每次调用最多 100 个进度条,会预先验证,支持dry_run) - OKR:
manage_objective、manage_key_result - 发现:
manage_idea、manage_opportunity - 发布:
manage_launch、manage_launch_section、manage_launch_task
示例:
{"tool": "list_roadmaps", "arguments": {}}
{"tool": "manage_bar", "arguments": {"action": "create", "roadmap_id": "123", "lane": "Backend", "name": "New feature", "legend": "Committed"}}
{"tool": "bulk_update_bars", "arguments": {"set": {"legend": "Committed"}, "items": [{"bar_id": "901"}, {"bar_id": "902"}], "dry_run": true}}
{"tool": "manage_idea", "arguments": {"action": "create", "name": "Mobile app improvements"}}
架构
该服务采用清晰的分层架构:
┌──────────────────────────────────────────────────────────────┐
│ cmd/productplan │
│ (entry point, DI) │
└──────────────────────────────────────────────────────────────┘
│
┌─────────────────────┼─────────────────────┐
▼ ▼ ▼
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
│ internal/cli │ │ internal/mcp │ │internal/tools │
│ (CLI cmds) │ │ (MCP / SDK) │ │ (handlers) │
└───────────────┘ └───────────────┘ └───────────────┘
│ │
└──────────┬──────────┘
▼
┌───────────────────┐
│ internal/api │
│ (HTTP client) │
└───────────────────┘
│
▼
┌───────────────────┐
│ ProductPlan API │
└───────────────────┘
关键接口:
// Tool handler interface (internal/mcp)
type Handler interface {
Handle(ctx context.Context, args map[string]any) (json.RawMessage, error)
}
// Logging (internal/logging): a *slog.Logger with a JSON handler on stderr
logger := logging.New(slog.LevelInfo)
日志格式:
{"ts":"2026-09-24T10:30:00.123456789Z","level":"debug","msg":"API response","endpoint":"/roadmaps/5","status_code":200,"dur_ms":245}
更新日志
请参阅 CHANGELOG.md,了解版本发布历史和详细变更。
喜欢这个项目吗?
如果这个服务为你节省了时间,不妨在 GitHub 上点个 ⭐。这有助于其他人发现这个项目。
更多 MCP 服务
看看我的其他 MCP 服务:
| 服务 | 描述 | Stars |
|---|---|---|
| gleif-mcp-server | 访问 GLEIF LEI 数据库。查询企业身份并验证法人实体。 | |
| mediawiki-mcp-server | 将 AI 连接到任何 MediaWiki wiki。搜索、阅读和编辑 wiki 内容。 | |
| miro-mcp-server | 使用 AI 控制 Miro 白板。创建看板、图表、思维导图等。 | |
| nordic-registry-mcp-server | 访问北欧商业登记信息。查询挪威、丹麦、芬兰和瑞典的企业。 | |
| tilbudstrolden-mcp | 搜寻北欧超市优惠。查找特价、规划膳食并追踪支出。 |
License
MIT License - see LICENSE
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。