Basecamp 自动化
通过 Rube MCP 实现 Basecamp 自动化
通过 Composio 的 Basecamp 工具集,自动化执行 Basecamp 操作,包括项目管理、待办列表创建、任务管理、消息板发布、人员管理以及待办组组织。
前置条件
- 必须连接 Rube MCP(可用
RUBE_SEARCH_TOOLS)
- 通过
RUBE_MANAGE_CONNECTIONS且工具集为basecamp的活跃 Basecamp 连接
- 始终先调用
RUBE_SEARCH_TOOLS以获取当前的工具 Schema
安装配置
获取 Rube MCP:在客户端配置中将 https://rube.app/mcp 添加为 MCP 服务器。无需 API 密钥 —— 只需添加端点即可运行。
1. 通过确认 RUBE_SEARCH_TOOLS 有响应来验证 Rube MCP 是否可用
2. 调用 RUBE_MANAGE_CONNECTIONS 并指定工具集 basecamp
3. 如果连接状态不是 ACTIVE,请点击返回的认证链接完成 Basecamp OAuth 授权
4. 在运行任何工作流之前,确认连接状态显示为 ACTIVE
核心工作流
1. 管理待办列表与任务
使用场景:用户希望在 Basecamp 项目中创建待办列表、添加任务或组织工作
工具调用顺序:
1. BASECAMP_GET_PROJECTS - 列出项目以查找目标 bucket_id [前置步骤]
2. BASECAMP_GET_BUCKETS_TODOSETS - 获取项目内的待办集 (to-do set) [前置步骤]
3. BASECAMP_GET_BUCKETS_TODOSETS_TODOLISTS - 列出现有待办列表以避免重复 [可选]
4. BASECAMP_POST_BUCKETS_TODOSETS_TODOLISTS - 在待办集中创建新待办列表 [创建列表必选]
5. BASECAMP_GET_BUCKETS_TODOLISTS - 获取特定待办列表的详情 [可选]
6. BASECAMP_POST_BUCKETS_TODOLISTS_TODOS - 在待办列表中创建待办项 [创建任务必选]
7. BASECAMP_CREATE_TODO - 创建单个待办项的替代工具 [替代方案]
8. BASECAMP_GET_BUCKETS_TODOLISTS_TODOS - 列出待办列表中的待办项 [可选]
创建待办列表的关键参数:
bucket_id: 整数类型的项目/存储桶 ID(来自 GET_PROJECTS)
todoset_id: 整数类型的待办集 ID(来自 GET_BUCKETS_TODOSETS)
name: 待办列表标题(必填)
description: HTML 格式的描述(支持富文本)
创建待办项的关键参数:
bucket_id: 整数类型的项目/存储桶 ID
todolist_id: 整数类型的待办列表 ID
content: 待办事项内容(必填)
description: 关于待办事项的 HTML 详情
assignee_ids: 整数类型人员 ID 数组
due_on: 截止日期,格式为YYYY-MM-DD
starts_on: 开始日期,格式为YYYY-MM-DD
notify: 是否通知负责人(布尔值,默认为 false)
completion_subscriber_ids: 完成后需通知的人员 ID
注意事项:
- 一个项目 (bucket) 可能包含多个待办集;选择错误的
todoset_id会导致列表创建在错误的区域
- 创建前请务必检查现有待办列表,以避免名称近乎重复
- 成功响应的 Payload 包含面向用户的 URL (
app_url,app_todos_url);建议返回这些 URL 而非原始 ID
- 所有 ID (
bucket_id,todoset_id,todolist_id) 均为整数,而非字符串
- 描述仅支持 HTML 格式,不支持 Markdown
2. 发布与管理消息
使用场景:用户希望在项目消息板上发布消息或更新现有消息
工具序列:
1. BASECAMP_GET_PROJECTS - 查找目标项目和 bucket_id [前提条件]
2. BASECAMP_GET_MESSAGE_BOARD - 获取项目的留言板 ID [前提条件]
3. BASECAMP_CREATE_MESSAGE - 在留言板上创建新消息 [必需]
4. BASECAMP_POST_BUCKETS_MESSAGE_BOARDS_MESSAGES - 备用消息创建工具 [回退方案]
5. BASECAMP_GET_MESSAGE - 通过 ID 读取特定消息 [可选]
6. BASECAMP_PUT_BUCKETS_MESSAGES - 更新现有消息 [可选]
关键参数:
bucket_id:整数类型的项目/bucket ID
message_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. 管理人员与权限
适用场景:用户想要列出人员、管理项目访问权限或添加新用户
工具序列:
1. BASECAMP_GET_PEOPLE - 列出当前用户可见的所有人员 [必需]
2. BASECAMP_GET_PROJECTS - 查找目标项目 [前提条件]
3. BASECAMP_LIST_PROJECT_PEOPLE - 列出特定项目中的人员 [必需]
4. BASECAMP_GET_PROJECTS_PEOPLE - 列出项目成员的备选方案 [替代方案]
5. BASECAMP_PUT_PROJECTS_PEOPLE_USERS - 授予或撤销项目访问权限 [权限变更必需]
PUT_PROJECTS_PEOPLE_USERS 的关键参数:
project_id:整数类型的项目 ID
grant:要添加到项目的整数人员 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. 使用分组组织待办事项
适用场景:用户想要将列表中的待办事项组织到带有颜色标记的分组中
工具序列:
1. BASECAMP_GET_PROJECTS - 查找目标项目 [前提条件]
2. BASECAMP_GET_BUCKETS_TODOLISTS - 获取待办事项列表详情 [前提条件]
3. BASECAMP_GET_TODOLIST_GROUPS - 列出待办事项列表中的现有分组 [可选]
4. BASECAMP_GET_BUCKETS_TODOLISTS_GROUPS - 备用分组列出工具 [替代方案]
5. BASECAMP_POST_BUCKETS_TODOLISTS_GROUPS - 在待办事项列表中创建新分组 [必需]
6. BASECAMP_CREATE_TODOLIST_GROUP - 备用分组创建工具 [替代方案]
关键参数:
bucket_id:整数类型的项目/bucket ID
todolist_id:
待办事项列表 ID(整数)
name: 分组标题(必填)
color: 视觉颜色标识 —— 可选值:white,red,orange,yellow,green,blue,aqua,purple,gray,pink,brown
status: 列表筛选条件 ——"archived"(已归档)或"trashed"(已删除)(活跃分组请省略)
注意事项:
POST_BUCKETS_TODOLISTS_GROUPS和CREATE_TODOLIST_GROUP几乎相同;使用其中任意一个即可
- 颜色值必须来自固定调色板;不支持任意的 hex/rgb 值
- 分组是待办事项列表中的子部分,而非独立实体
5. 浏览与检查项目
使用场景:用户想要列出项目、获取项目详情或探索项目结构
工具序列:
1. BASECAMP_GET_PROJECTS - 列出所有活跃项目 [必选]
2. BASECAMP_GET_PROJECT - 获取特定项目的详细信息 [可选]
3. 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 Field)
- 消息使用
status="draft"可能会导致 HTTP 400 错误;请始终使用status="active"
- 项目/待办列表状态筛选:
"archived","trashed",或省略以表示活跃状态
内容格式
- 仅限 HTML,绝不要使用 Markdown
- 更新操作会替换整个正文,而非部分差异更新 (diff)
- 无效的 HTML 标签可能会被静默删除
速率限制
- Basecamp API 设有速率限制;请在快速连续请求之间留出间隔
- 包含大量待办事项的大型项目应谨慎进行分页处理
URL 处理
- 对于面向用户的链接,优先使用 API 响应中的
app_url
- 不要尝试根据 ID 手动构建 Basecamp URL
快速参考
| 任务 | 工具 Slug | 关键... |
| 功能 | 参数 |
|------|-----------|------------|
| 列出项目 | 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 |
使用场景
本技能适用于执行概览中所描述的工作流或操作。局限性
- 仅在任务明确符合上述范围时使用此技能。
- 不要将输出结果视为针对特定环境的验证、测试或专家评审的替代方案。
- 如果缺少必要的输入、权限、安全边界或成功标准,请停止操作并请求澄清。