Productboard API服务

一个轻量级的MCP服务器,为Claude和任何MCP客户端提供对Productboard API v2的完全访问权限。

  • by darkspock
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 darkspock/ProductBoardMCP

使用说明

产品板MCP服务器

轻量级 主控程序 允许Claude(和任何MCP客户端)完全访问 产品板API v2 (迁移指南).建于 FastMCP.

立即尝试(公共测试服务器)

这是一个仅用于评估目的的共享测试服务器。 没有令牌存储在服务器端-您的API令牌直接代理到Productboard。对于生产环境,部署您自己的实例(见下文)。

  1. 从获取您的Productboard API令牌 设置>集成>API密钥 在您的工作空间中(https://<your-workspace>.productboard.com/settings/integrations/api-keys)

  2. 在Claude Code中运行此操作(将令牌粘贴到 单行,无断线):

claude mcp add --transport http productboard "https://productboardmcp.thebrokentelephone.com/mcp" --header "Authorization: Bearer YOUR_PRODUCTBOARD_TOKEN"
  1. 重新启动Claude Code并开始使用28 Productboard工具。

工具(28)

完整列表: CLAUDE.md

类别 计数 关键工具
实体 (统一:功能/产品等) 8 list_entities(entity_type="feature"), create_entity, search_entities, entity_configurations
备注 7 list_notes, create_note, search_notes(link_ids), update_note/delete_note
团队 9 list_teams, get_team, create_team, update_team, delete_team, get_team_members, add_team_member, delete_team_member, search_teams
成员 4 list_members, search_members, get_member, get_member_teams

统一实体API

v2实体API将功能、产品、组件、目标、计划、关键结果、发布和发布组统一到一组工具下。而不是分开 list_features, list_objectives等等,你使用 list_entities(entity_type="feature") 或 list_entities(entity_type="objective").

支持的实体类型: feature, subfeature, product, component, objective, initiative, keyResult, release, releaseGroup.

高级搜索笔记

search_notes 支持通过链接功能进行过滤 link_ids,使提取特定功能的所有客户反馈变得容易:

1. search_entities(entity_type="subfeature", name="My Feature")
   → Returns feature UUID

2. search_notes(link_ids="<feature-uuid>", verbose="true")
   → Returns all feedback notes linked to that feature with full content

所有权的成员UUID

Productboard现在使用成员UUID owner 在编写实体和注释时使用字段。使用 list_members 或 search_members 要找到正确的成员UUID,请将其作为 owner_id 到 create_entity, update_entity, create_note,或 update_note.

分页

Productboard后面有列表和搜索工具 pageCursor 分页直到筋疲力尽。在固定页数后,结果不再被自动截断。

客户

克劳德代码/桌面

claude mcp add productboard -- uv run python -m src  # Local stdio
# or
claude mcp add --transport http productboard "http://localhost:3000/mcp" --header "Authorization: Bearer $PRODUCTBOARD_API_TOKEN"

Cursor(克劳德集成)

  1. 设置>克劳德>添加MCP服务器
  2. 网址: http://localhost:3000/mcp
  3. 标题: Authorization: Bearer YOUR_TOKEN

Opencode CLI(此工具)

在您的项目中:

git clone https://github.com/darkspock/ProductBoardMCP.git .
uv sync
PRODUCTBOARD_API_TOKEN=your-token uv run python -m src

本地MCP服务器就绪。

快速开始

先决条件

  • Python 3.13+
  • 紫外线 (推荐)或pip
  • Productboard API令牌-在 设置>集成>API密钥 在您的Productboard工作区中(https://<your-workspace>.productboard.com/settings/integrations/api-keys)

安装

git clone https://github.com/darkspock/ProductBoardMCP.git
cd ProductBoardMCP
uv sync

运行(stdio——本地使用Claude Desktop)

PRODUCTBOARD_API_TOKEN=your-token uv run python -m src

或者创建一个 .env 文件:

PRODUCTBOARD_API_TOKEN=your-token
uv run python -m src

运行(HTTP——Claude自定义连接器的远程部署)

MCP_TRANSPORT=httpStream PORT=3000 uv run python -m src

服务器将监听 http://0.0.0.0:3000/mcp.

添加到克劳德代码(一个命令)

claude mcp add --transport http productboard "https://your-host.com/mcp" \
  --header "Authorization: Bearer YOUR_PRODUCTBOARD_TOKEN"

每个用户都使用自己的Productboard API令牌运行一次。服务器将其代理到Productboard API-服务器端不存储令牌。

重要提示: 令牌和整个 --header 值必须位于 单行 没有换行符或额外空格。Productboard API令牌是长JWT——当从终端或密码管理器进行复制时,通常会无声地引入换行符。如果 claude mcp list 显示 Failed to connect,删除并重新添加服务器,其中一行包含令牌:

claude mcp remove productboard
claude mcp add --transport http productboard "https://your-host.com/mcp" --header "Authorization: Bearer eyJ0eXAi...full_token_here"

添加到克劳德桌面

添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "productboard": {
      "url": "https://your-host.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_PRODUCTBOARD_TOKEN"
      }
    }
  }
}

本地模式(stdio)

如果您更喜欢在本地运行而不是连接到远程服务器:

claude mcp add productboard -- uv run python -m src

集 PRODUCTBOARD_API_TOKEN 在你的 .env 文件。

配置

变量 必填 默认 描述
PRODUCTBOARD_API_TOKEN 是 -- 来自Productboard的承载令牌
MCP_TRANSPORT 没有 stdio stdio 或 httpStream
PORT 没有 3000 HTTP端口(仅在httpStream模式下)
PRODUCTBOARD_API_BASE_URL 没有 https://api.productboard.com/v2 API基本URL

部署为Claude自定义连接器

使用Docker

docker build -t productboard-mcp .
docker run -p 3000:3000 productboard-mcp

服务器上不需要API令牌-每个用户通过 Authorization Claude配置中的头部。

在任何主机上

  1. 使用部署 MCP_TRANSPORT=httpStream 任何HTTPS主机(Railway、Render、Fly.io、AWS等)
  2. 在克劳德,去 组织设置>连接器
  3. 点击 “添加自定义连接器”
  4. 输入服务器URL(例如。, https://your-host.com/mcp)
  5. 点击 “添加”

然后,团队成员可以通过以下方式连接 设置>连接器>产品板>连接.

计划限制

某些Productboard功能仅在某些计划中可用。如果一个工具访问了您工作区中未启用的功能,它将返回一条明确的错误消息,而不是默默地失败:

  • 举措 --可能并非所有计划都有。
  • 关键结果 --可能并非所有计划都有。

使用 entity_configurations(entity_type="...") 发现工作区中可用的实体类型和字段。

致谢

这个项目的灵感来自 环境/产品板mcp 通过 斯坦尼斯拉夫·希曼斯基最初的TypeScript实现(MIT License,v0.2.1)证明了用于Productboard的MCP服务器是可行的,并提供了最初的灵感。谢谢你铺平了道路!

许可证

麻省理工学院