Basecamp MCP服务器
一个MCP(模型上下文协议)服务器,为Claude Code提供Basecamp 4 API的完整访问。
特性
- 32工具 涵盖整个Basecamp 4 API:
- 项目(列表、获取、创建、更新、回收) - 待办事项列表和待办事项(CRUD,完成/不完成) - 消息(列表、获取、创建、更新) - 评论(列表、创建、更新) - 人员(列表、获取当前用户、项目成员) - 计划条目(列表、获取、创建、更新) - 文档(列表、获取、创建、更新)
- OAuth 2.0身份验证 具有自动令牌刷新功能
- 速率限制 使用重试指导进行处理
先决条件
- Node.js 18+
- Basecamp 4帐户
- 来自Basecamp的OAuth应用程序凭据
设置
1.注册Basecamp OAuth应用程序
- 首选 https://launchpad.37signals.com/integrations
- 点击“注册您的申请”
- 填写详细信息:
- 名字:Claude Code MCP(或您喜欢的任何名称) - 网站:您的网站或 http://localhost - 重定向URI: http://localhost:9876/callback
- 保存并记录您的 客户端ID 和 客户端密钥
2.查找您的帐户ID
您的Basecamp帐户ID位于Basecamp URL中:
https://3.basecamp.com/YOUR_ACCOUNT_ID/...3.设置环境变量
将这些添加到您的shell配置文件中(.bashrc, .zshrc等等):
export BASECAMP_CLIENT_ID="your-client-id"
export BASECAMP_CLIENT_SECRET="your-client-secret"
export BASECAMP_ACCOUNT_ID="your-account-id"4.构建MCP服务器
cd basecamp-mcp
npm install
npm run build5.配置克劳德代码
将MCP服务器添加到您的Claude Code配置中。创建或编辑 .mcp.json 在项目根目录中:
{
"basecamp": {
"command": "node",
"args": ["/path/to/basecamp-mcp/dist/index.js"],
"env": {
"BASECAMP_CLIENT_ID": "${BASECAMP_CLIENT_ID}",
"BASECAMP_CLIENT_SECRET": "${BASECAMP_CLIENT_SECRET}",
"BASECAMP_ACCOUNT_ID": "${BASECAMP_ACCOUNT_ID}"
}
}
}6.添加权限(可选)
要自动批准Basecamp工具,请添加到 .claude/settings.json:
{
"allow": [
"mcp__basecamp__*"
]
}首次运行
首次使用时,MCP服务器将:
- 打开浏览器进入Basecamp的授权页面
- 授权后,重定向到
localhost:9876/callback - 将代币存储在
~/.basecamp-mcp/tokens.json
后续运行将使用存储的令牌(自动刷新)。
可用工具
项目
| 工具 | 说明 |
|---|---|
basecamp_list_projects | 列出所有项目(可选择按状态筛选) |
basecamp_get_project | 获取项目详细信息,包括dock工具 |
basecamp_create_project | 创建新项目 |
basecamp_update_project | 更新项目名称/描述 |
basecamp_trash_project | 将项目移至垃圾箱 |
大惊小怪
| 工具 | 说明 |
|---|---|
basecamp_list_todolists | 列出项目中的待办事项列表 |
basecamp_get_todolist | 获取待办事项列表详细信息 |
basecamp_create_todolist | 创建新的待办事项列表 |
basecamp_list_todos | 在列表中列出待办事项 |
basecamp_get_todo | 获取待办事项详细信息 |
basecamp_create_todo | 与指定人员一起创建待办事项,截止日期 |
basecamp_update_todo | 更新待办事项 |
basecamp_complete_todo | 将待办事项标记为已完成 |
basecamp_uncomplete_todo | 将待办事项标记为未完成 |
消息
| 工具 | 说明 |
|---|---|
basecamp_list_messages | 在公告板上列出消息 |
basecamp_get_message | 获取消息详细信息 |
basecamp_create_message | 发布新消息 |
basecamp_update_message | 更新消息 |
评论
| 工具 | 说明 |
|---|---|
basecamp_list_comments | 列出对任何项目的评论 |
basecamp_create_comment | 添加评论 |
basecamp_update_comment | 更新评论 |
人们
| 工具 | 说明 |
|---|---|
basecamp_list_people | 列出帐户中的所有人 |
basecamp_get_person | 获取人员详细信息 |
basecamp_get_me | 获取当前用户的个人资料 |
basecamp_list_project_people | 列出项目成员 |
日程表
| 工具 | 说明 |
|---|---|
basecamp_list_schedule_entries | 列出日历事件 |
basecamp_get_schedule_entry | 获取活动详细信息 |
basecamp_create_schedule_entry | 创建日历事件 |
basecamp_update_schedule_entry | 更新日历事件 |
文件
| 工具 | 说明 |
|---|---|
basecamp_list_documents | 列出vault中的文档 |
basecamp_get_document | 获取文档内容 |
basecamp_create_document | 创建新文档 |
basecamp_update_document | 更新文档 |
使用示例
# List all projects
basecamp_list_projects
# Get project details (includes dock IDs for other tools)
basecamp_get_project project_id:12345
# Create a to-do
basecamp_create_todo project_id:12345 todolist_id:67890 content:"Review PR #123" due_on:"2024-01-20"
# Post a message
basecamp_create_message project_id:12345 message_board_id:11111 subject:"Sprint Update" content:"
All tasks completed!
"故障排除
“缺少BASECAMP_CLIENT_ID或BASECAMP_LIENT_SECRET”
确保在shell中设置并导出环境变量。
“缺少BASECAMP_ACCOUNT_ID”
在Basecamp URL中查找您的帐户ID(后面的数字 3.basecamp.com/).
OAuth流程未完成
- 确保端口9876可用
- 检查Basecamp应用程序中的重定向URI是否完全匹配:
http://localhost:9876/callback
速率限制(429个错误)
服务器将报告 Retry-After 价值。请稍候,然后重试。
令牌存储
OAuth令牌存储在 ~/.basecamp-mcp/tokens.json 具有受限权限(600)。要重新进行身份验证,请删除此文件并重新启动Claude Code。
API 参考
基于 Basecamp 4 API.
