关于 basecamp-automation
通过 Rube MCP 和 Composio Basecamp 工具包自动化项目管理操作,适合在 Basecamp 中维护任务、消息和成员的团队。支持项目结构浏览及多类创建、更新和访问管理。
主要功能
- 01浏览项目及其结构
- 02创建待办清单和任务
- 03发布或更新项目消息
- 04列出人员并管理项目访问权限
- 05按颜色分组整理待办事项
适用场景
- 01为项目创建待办清单并分配任务
- 02向项目消息板发布更新
- 03添加或移除项目成员
- 04按主题整理待办任务
MCP 相关
通过 Rube MCP 使用 Basecamp 工具。需先连接 Basecamp,并通过 RUBE_SEARCH_TOOLS 查询当前可用工具架构。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ davepoon/ buildwithclaude --skill basecamp-automation安装后在 Claude Code 中输入/basecamp-automation确认已加载。
详细介绍
通过 Rube MCP 自动化 Basecamp
通过 Composio 的 Basecamp 工具包,自动执行 Basecamp 操作,包括项目管理、创建待办事项列表、任务管理、在留言板发帖、人员管理以及整理待办事项组。
工具包文档:composio.dev/toolkits/basecamp
前提条件
- 必须已连接 Rube MCP(可用
RUBE_SEARCH_TOOLS) - 通过
RUBE_MANAGE_CONNECTIONS建立有效的 Basecamp 连接,并使用工具包basecamp - 始终先调用
RUBE_SEARCH_TOOLS,以获取当前工具架构
设置
获取 Rube MCP:在客户端配置中将 https://rube.app/mcp 添加为 MCP 服务。无需 API 密钥,只需添加端点即可使用。
- 确认
RUBE_SEARCH_TOOLS有响应,以验证 Rube MCP 是否可用 - 使用工具包
basecamp调用RUBE_MANAGE_CONNECTIONS - 如果连接状态不是 ACTIVE,请访问返回的授权链接,完成 Basecamp OAuth
- 运行任何工作流前,确认连接状态显示为 ACTIVE
核心工作流
1. 管理待办事项列表和任务
适用场景:用户希望在 Basecamp 项目中创建待办事项列表、添加任务或整理工作
工具调用顺序:
BASECAMP_GET_PROJECTS- 列出项目,查找目标bucket_id[前置步骤]BASECAMP_GET_BUCKETS_TODOSETS- 获取项目中的待办事项集 [前置步骤]BASECAMP_GET_BUCKETS_TODOSETS_TODOLISTS- 列出现有待办事项列表,避免重复 [可选]BASECAMP_POST_BUCKETS_TODOSETS_TODOLISTS- 在待办事项集中创建新的待办事项列表 [创建列表时必需]BASECAMP_GET_BUCKETS_TODOLISTS- 获取特定待办事项列表的详情 [可选]BASECAMP_POST_BUCKETS_TODOLISTS_TODOS- 在待办事项列表中创建待办事项 [创建任务时必需]BASECAMP_CREATE_TODO- 创建单个待办事项的替代工具 [替代方案]BASECAMP_GET_BUCKETS_TODOLISTS_TODOS- 列出待办事项列表中的待办事项 [可选]
创建待办事项列表的关键参数:
bucket_id:整数类型的项目/bucket ID(来自 GET_PROJECTS)todoset_id:整数类型的待办事项集 ID(来自 GET_BUCKETS_TODOSETS)name:待办事项列表的标题(必填)description:HTML 格式的描述(支持富文本)
创建待办事项的关键参数:
bucket_id:整数类型的项目/bucket IDtodolist_id:整数类型的待办事项列表 IDcontent:待办事项的内容(必填)description:待办事项的 HTML 详情assignee_ids:整数类型的人员 ID 数组due_on:截止日期,格式为YYYY-MM-DDstarts_on:开始日期,格式为YYYY-MM-DDnotify:是否通知受派人,默认为 falsecompletion_subscriber_ids:完成时接收通知的人员 ID
注意事项:
- 一个项目(bucket)可以包含多个待办事项集;选错
todoset_id会导致列表创建在错误的分区中 - 创建前始终检查现有待办事项列表,避免名称过于相似
- 成功响应中包含面向用户的 URL(
app_url、app_todos_url);优先返回这些 URL,而不是原始 ID - 所有 ID(
bucket_id、todoset_id、todolist_id)均为整数,而非字符串 - 描述仅支持 HTML 格式,不支持 Markdown
2. 发布和管理消息
使用场景:用户想在项目消息板上发布消息,或更新现有消息
工具调用顺序:
BASECAMP_GET_PROJECTS- 查找目标项目和 bucket_id【前置条件】BASECAMP_GET_MESSAGE_BOARD- 获取项目的消息板 ID【前置条件】BASECAMP_CREATE_MESSAGE- 在消息板上创建新消息【必需】BASECAMP_POST_BUCKETS_MESSAGE_BOARDS_MESSAGES- 可替代的消息创建工具【备用】BASECAMP_GET_MESSAGE- 按 ID 读取特定消息【可选】BASECAMP_PUT_BUCKETS_MESSAGES- 更新现有消息【可选】
关键参数:
bucket_id:整数形式的项目/bucket IDmessage_board_id:整数形式的消息板 ID(来自 GET_MESSAGE_BOARD)subject:消息标题(必需)content:消息的 HTML 正文status:设为"active"可立即发布category_id:消息类型分类(可选)subscriptions:要通知的人员 ID 数组;省略则通知所有项目成员
注意事项:
status="draft"可能导致 HTTP 400;建议使用可靠的选项status="active"bucket_id和message_board_id必须属于同一个项目;不匹配会导致失败或路由错误- 消息内容仅支持 HTML 标签,不支持 Markdown
- 通过
PUT_BUCKETS_MESSAGES更新时会替换整个正文——请提供完整的修正内容,而不只是差异 - 面向用户的确认链接优先使用响应中的
app_url CREATE_MESSAGE和POST_BUCKETS_MESSAGE_BOARDS_MESSAGES的功能相同;优先使用 CREATE_MESSAGE,失败时再使用 POST
3. 管理人员和访问权限
使用场景:用户想列出人员、管理项目访问权限或添加新用户
工具调用顺序:
BASECAMP_GET_PEOPLE- 列出当前用户可见的所有人员【必需】BASECAMP_GET_PROJECTS- 查找目标项目【前置条件】BASECAMP_LIST_PROJECT_PEOPLE- 列出特定项目中的人员【必需】BASECAMP_GET_PROJECTS_PEOPLE- 列出项目成员的替代工具【替代】BASECAMP_PUT_PROJECTS_PEOPLE_USERS- 授予或撤销项目访问权限【更改访问权限时必需】
PUT_PROJECTS_PEOPLE_USERS 的关键参数:
project_id:整数形式的项目 IDgrant:要添加到项目的人员 ID 整数数组revoke:要从项目中移除的人员 ID 整数数组create:对象数组,包含新用户的name、email_address,以及可选的company_name、title- 必须至少提供
grant、revoke或create中的一项
注意事项:
- 人员 ID 为整数;始终先通过 GET_PEOPLE 将姓名解析为 ID
- 人员管理中的
project_id与其他操作中的bucket_id相同 LIST_PROJECT_PEOPLE和GET_PROJECTS_PEOPLE几乎完全相同;任选其一即可- 通过
create创建用户时,也会一步授予其项目访问权限
4. 使用分组整理待办事项
适用场景:用户想在列表中使用不同颜色的分组整理待办事项
工具调用顺序:
BASECAMP_GET_PROJECTS- 查找目标项目 [前置条件]BASECAMP_GET_BUCKETS_TODOLISTS- 获取待办列表详情 [前置条件]BASECAMP_GET_TODOLIST_GROUPS- 列出待办列表中的现有分组 [可选]BASECAMP_GET_BUCKETS_TODOLISTS_GROUPS- 另一种分组列表查询方式 [替代方案]BASECAMP_POST_BUCKETS_TODOLISTS_GROUPS- 在待办列表中创建新分组 [必需]BASECAMP_CREATE_TODOLIST_GROUP- 另一种分组创建工具 [替代方案]
关键参数:
bucket_id:项目/bucket 的整数 IDtodolist_id:待办列表的整数 IDname:分组标题(必需)color:用于显示的颜色标识,以下选一:white、red、orange、yellow、green、blue、aqua、purple、gray、pink、brownstatus:列表筛选条件——"archived"或"trashed"(省略则表示活跃分组)
注意事项:
POST_BUCKETS_TODOLISTS_GROUPS和CREATE_TODOLIST_GROUP几乎相同,可任选其一- 颜色值必须来自固定调色板;不支持任意十六进制/RGB 值
- 分组是待办列表中的子分区,并非独立实体
5. 浏览和检查项目
适用场景:用户想列出项目、获取项目详情或查看项目结构
工具调用顺序:
BASECAMP_GET_PROJECTS- 列出所有活跃项目 [必需]BASECAMP_GET_PROJECT- 获取特定项目的详细信息 [可选]BASECAMP_GET_PROJECTS_BY_PROJECT_ID- 另一种项目详情查询方式 [替代方案]
关键参数:
status:按"archived"或"trashed"筛选;省略则表示活跃项目project_id:用于查询详情的整数项目 ID
注意事项:
- 项目按创建时间从近到远排序
- 响应包含一个
dock数组,其中列有工具(todoset、message_board 等)及其 ID - 使用 dock 工具的 ID 查找下游操作所需的
todoset_id、message_board_id等
常见模式
ID 解析
Basecamp 使用分层 ID 结构。始终按从上到下的顺序解析:
- 项目(bucket_id):
BASECAMP_GET_PROJECTS——按名称查找,并记录id - 待办事项集(todoset_id):在项目 dock 中查找,或通过
BASECAMP_GET_BUCKETS_TODOSETS获取 - 消息公告板(message_board_id):在项目 dock 中查找,或通过
BASECAMP_GET_MESSAGE_BOARD获取 - 待办列表(todolist_id):
BASECAMP_GET_BUCKETS_TODOSETS_TODOLISTS - 人员(person_id):
BASECAMP_GET_PEOPLE或BASECAMP_LIST_PROJECT_PEOPLE - 注意:
bucket_id和project_id在不同上下文中指向同一实体
分页
Basecamp 在列表端点中使用基于页码的分页:
- 响应头或响应正文可能会提示是否还有更多页
GET_PROJECTS、GET_BUCKETS_TODOSETS_TODOLISTS和列表端点会返回分页结果- 持续获取,直到没有更多结果
内容格式
- 所有富文本字段均使用 HTML,而非 Markdown
- 将内容包在
<div>标签中;使用<strong>、<em>、<ul>、<ol>、<li>、<a>等标签 - 示例:
<div><strong>重要:</strong>请在周五前完成</div>
已知注意事项
ID 格式
- 所有 Basecamp ID 均为整数,而非字符串或 UUID
bucket_id=project_id(同一实体,不同工具使用不同参数名称)- 待办事项集 ID、待办列表 ID 和消息公告板 ID 均可在项目的
dock数组中找到 - 人员 ID 为整数;操作前通过
GET_PEOPLE解析姓名
Status 字段
- 对消息使用
status="draft"可能导致 HTTP 400;请始终使用status="active" - 项目/待办列表的状态筛选条件:
"archived"、"trashed",或省略以表示活跃项
内容格式
- 仅限 HTML,切勿使用 Markdown
- 更新会替换整个正文,而非应用部分差异
- 无效的 HTML 标签可能会被静默移除
速率限制
- Basecamp API 有速率限制;请拉开连续快速请求之间的间隔
- 包含大量待办事项的大型项目需要谨慎分页
URL 处理
- 面向用户的链接优先使用 API 响应中的
app_url - 不要根据 ID 手动拼接 Basecamp URL
快速参考
| 任务 | 工具标识 | 关键参数 |
|---|---|---|
| 列出项目 | BASECAMP_GET_PROJECTS | status |
| 获取项目 | BASECAMP_GET_PROJECT | project_id |
| 获取项目详情 | BASECAMP_GET_PROJECTS_BY_PROJECT_ID | project_id |
| 获取待办事项集 | BASECAMP_GET_BUCKETS_TODOSETS | bucket_id、todoset_id |
| 列出待办事项列表 | BASECAMP_GET_BUCKETS_TODOSETS_TODOLISTS | bucket_id、todoset_id |
| 获取待办事项列表 | BASECAMP_GET_BUCKETS_TODOLISTS | bucket_id、todolist_id |
| 创建待办事项列表 | BASECAMP_POST_BUCKETS_TODOSETS_TODOLISTS | bucket_id、todoset_id、name |
| 创建待办事项 | BASECAMP_POST_BUCKETS_TODOLISTS_TODOS | bucket_id、todolist_id、content |
| 创建待办事项(替代工具) | BASECAMP_CREATE_TODO | bucket_id、todolist_id、content |
| 列出待办事项 | BASECAMP_GET_BUCKETS_TODOLISTS_TODOS | bucket_id、todolist_id |
| 列出待办事项分组 | BASECAMP_GET_TODOLIST_GROUPS | bucket_id、todolist_id |
| 创建待办事项分组 | BASECAMP_POST_BUCKETS_TODOLISTS_GROUPS | bucket_id、todolist_id、name、color |
| 创建待办事项分组(替代工具) | BASECAMP_CREATE_TODOLIST_GROUP | bucket_id、todolist_id、name |
| 获取消息板 | BASECAMP_GET_MESSAGE_BOARD | bucket_id、message_board_id |
| 创建消息 | BASECAMP_CREATE_MESSAGE | bucket_id、message_board_id、subject、status |
| 创建消息(替代工具) | BASECAMP_POST_BUCKETS_MESSAGE_BOARDS_MESSAGES | bucket_id、message_board_id、subject |
| 获取消息 | BASECAMP_GET_MESSAGE | bucket_id、message_id |
| 更新消息 | BASECAMP_PUT_BUCKETS_MESSAGES | bucket_id、message_id |
| 列出所有人员 | BASECAMP_GET_PEOPLE | (无) |
| 列出项目成员 | BASECAMP_LIST_PROJECT_PEOPLE | project_id |
| 管理访问权限 | BASECAMP_PUT_PROJECTS_PEOPLE_USERS | project_id、grant、revoke、create |
由 Composio 提供支持