MCP工作板CrunchTools
用于WorkBoard OKR和战略执行平台的安全MCP(模型上下文协议)服务器。
概述
此MCP服务器设计用于:
- 缺省安全 -全面的威胁建模、输入验证和令牌保护
- 无第三方服务 -通过stdio本地运行,您的API令牌永远不会离开您的机器
- 跨平台 -适用于Linux、macOS和Windows
- 自动更新 -GitHub Actions监控CVE和更新依赖关系
- 容器化 -可在
quay.io/crunchtools/mcp-workboard建立在 蜂鸟Python 基础镜像
命名规范
| 组件 | 名称 |
|---|---|
| GitHub仓库 | crunchtools/mcp工作板 |
| 集装箱 | quay.io/crunchtools/mcp-workboard |
| Python包(PyPI) | mcp-workboard-crunchtools |
| CLI命令 | mcp-workboard-crunchtools |
| 模块导入 | mcp_workboard_crunchtools |
为什么蜂鸟?
- CVE暴露最小 -采用最小的软件包集构建,大大减少了攻击面
- 定期更新 -及时应用安全补丁
- 针对Python进行了优化 -预配置uv包管理器
- 生产就绪 -正确的信号处理和非root用户默认值
特性
用户管理(4个工具)
workboard_get_user-通过ID或当前经过身份验证的用户获取用户workboard_list_users-列出所有用户(需要数据管理员角色)workboard_create_user-创建新用户(需要数据管理员角色)workboard_update_user-更新现有用户
目标管理(4个工具)
workboard_get_objectives-获取与用户相关的目标(API上限为15)workboard_get_objective_details-获取具有关键结果的特定目标的详细信息workboard_get_my_objectives-按ID获取当前用户拥有的目标(推荐)workboard_create_objective-创建一个包含关键结果的新目标(需要数据管理员)
关键成果管理(2个工具)
workboard_get_my_key_results-列出当前用户的关键结果,包括指标ID和进度workboard_update_key_result-更新每周OKR签到的关键结果进度
工作流管理(5个工具)
workboard_get_workstreams-使经过身份验证的用户可以访问团队工作流workboard_get_workstream_activities-获取所有操作项的工作流详细信息workboard_get_team_workstreams-获取属于特定团队的所有工作流workboard_create_workstream-为团队创建新工作流workboard_update_workstream-更新工作流属性(名称、日期、速度、运行状况、优先级)
安装
带uvx(推荐)
uvx mcp-workboard-crunchtools使用pip
pip install mcp-workboard-crunchtools带集装箱
podman run -e WORKBOARD_API_TOKEN=your_token \
quay.io/crunchtools/mcp-workboard配置
获取WorkBoard API令牌
- 登录您的WorkBoard实例
- 导航到“管理设置”>“API配置”
- 生成JWT API令牌
- 立即复制令牌-安全存储
添加到克劳德代码
claude mcp add mcp-workboard \
--env WORKBOARD_API_TOKEN=your_token_here \
-- uvx mcp-workboard-crunchtools或者对于容器版本:
claude mcp add mcp-workboard \
--env WORKBOARD_API_TOKEN=your_token_here \
-- podman run -i --rm -e WORKBOARD_API_TOKEN quay.io/crunchtools/mcp-workboard用法示例
获取当前用户
User: Who am I in WorkBoard?
Assistant: [calls workboard_get_user with no args]列出所有用户
User: List all WorkBoard users
Assistant: [calls workboard_list_users]获取用户目标
User: Show me objectives for user 12345
Assistant: [calls workboard_get_objectives with user_id=12345]获取目标详细信息
User: Get details on objective 67890 for user 12345
Assistant: [calls workboard_get_objective_details with user_id=12345, objective_id=67890]获取我的目标
User: Show me my objectives (IDs: 2900058, 2900075, 2901770)
Assistant: [calls workboard_get_my_objectives with objective_ids=[2900058, 2900075, 2901770]]列出我的主要结果
User: Show me my key results
Assistant: [calls workboard_get_my_key_results]更新关键结果进度
User: Update key result 12345 to 75
Assistant: [calls workboard_update_key_result with metric_id=12345, value="75"]创建目标
User: Create an objective called "Increase retention" owned by user@example.com
Assistant: [calls workboard_create_objective with name, owner, dates, and optional key_results]列出工作流
User: Show me my workstreams
Assistant: [calls workboard_get_workstreams]获取工作流操作项
User: Show me the agenda for workstream 4130463
Assistant: [calls workboard_get_workstream_activities with ws_id=4130463]安全
此服务器的设计将安全性作为首要考虑因素。看 安全.md 用于:
- 威胁模型和攻击媒介
- 纵深防御架构
- 代币处理最佳实践
- 输入验证规则
关键安全功能
- 令牌保护
- 存储为SecretStr(从未意外记录) - 仅环境变量(从不在文件或参数中) - Sanitized清除所有错误信息
- 输入验证
- 所有输入的Pydantic模型 - ID的正整数验证 - 用户创建的电子邮件验证
- API硬化
- 硬编码API基础URL(防止SSRF) - TLS证书验证 - 请求超时 - 响应大小限制
- 自动CVE扫描
- GitHub Actions每周扫描依赖项 - 安全更新的自动问题 - 启用Dependabot警报
发展
设置
git clone https://github.com/crunchtools/mcp-workboard.git
cd mcp-workboard
uv sync运行测试
uv run pytest棉绒和类型检查
uv run ruff check src tests
uv run mypy src构建容器
podman build -t mcp-workboard .许可证
AGPL-3.0或更高版本
贡献
欢迎投稿!在提交与安全相关的更改之前,请阅读SECURITY.md。
