mcpField
B
basecamp-automation

basecamp-automation

github.com/davepoon生产力3.7k117 次安装今天更新
代码仓库

关于 basecamp-automation

通过 Rube MCP 和 Composio Basecamp 工具包自动化项目管理操作,适合在 Basecamp 中维护任务、消息和成员的团队。支持项目结构浏览及多类创建、更新和访问管理。

主要功能

  1. 01浏览项目及其结构
  2. 02创建待办清单和任务
  3. 03发布或更新项目消息
  4. 04列出人员并管理项目访问权限
  5. 05按颜色分组整理待办事项

适用场景

  1. 01为项目创建待办清单并分配任务
  2. 02向项目消息板发布更新
  3. 03添加或移除项目成员
  4. 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 密钥,只需添加端点即可使用。

  1. 确认 RUBE_SEARCH_TOOLS 有响应,以验证 Rube MCP 是否可用
  2. 使用工具包 basecamp 调用 RUBE_MANAGE_CONNECTIONS
  3. 如果连接状态不是 ACTIVE,请访问返回的授权链接,完成 Basecamp OAuth
  4. 运行任何工作流前,确认连接状态显示为 ACTIVE

核心工作流

1. 管理待办事项列表和任务

适用场景:用户希望在 Basecamp 项目中创建待办事项列表、添加任务或整理工作

工具调用顺序:

  1. BASECAMP_GET_PROJECTS - 列出项目,查找目标 bucket_id [前置步骤]
  2. BASECAMP_GET_BUCKETS_TODOSETS - 获取项目中的待办事项集 [前置步骤]
  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:整数类型的项目/bucket ID(来自 GET_PROJECTS)
  • todoset_id:整数类型的待办事项集 ID(来自 GET_BUCKETS_TODOSETS)
  • name:待办事项列表的标题(必填)
  • description:HTML 格式的描述(支持富文本)

创建待办事项的关键参数:

  • bucket_id:整数类型的项目/bucket 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 会导致列表创建在错误的分区中
  • 创建前始终检查现有待办事项列表,避免名称过于相似
  • 成功响应中包含面向用户的 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 几乎相同,可任选其一
  • 颜色值必须来自固定调色板;不支持任意十六进制/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 字段
  • 对消息使用 status="draft" 可能导致 HTTP 400;请始终使用 status="active"
  • 项目/待办列表的状态筛选条件:"archived"、"trashed",或省略以表示活跃项
内容格式
  • 仅限 HTML,切勿使用 Markdown
  • 更新会替换整个正文,而非应用部分差异
  • 无效的 HTML 标签可能会被静默移除
速率限制
  • Basecamp API 有速率限制;请拉开连续快速请求之间的间隔
  • 包含大量待办事项的大型项目需要谨慎分页
URL 处理
  • 面向用户的链接优先使用 API 响应中的 app_url
  • 不要根据 ID 手动拼接 Basecamp URL

快速参考

任务工具标识关键参数
列出项目BASECAMP_GET_PROJECTSstatus
获取项目BASECAMP_GET_PROJECTproject_id
获取项目详情BASECAMP_GET_PROJECTS_BY_PROJECT_IDproject_id
获取待办事项集BASECAMP_GET_BUCKETS_TODOSETSbucket_id、todoset_id
列出待办事项列表BASECAMP_GET_BUCKETS_TODOSETS_TODOLISTSbucket_id、todoset_id
获取待办事项列表BASECAMP_GET_BUCKETS_TODOLISTSbucket_id、todolist_id
创建待办事项列表BASECAMP_POST_BUCKETS_TODOSETS_TODOLISTSbucket_id、todoset_id、name
创建待办事项BASECAMP_POST_BUCKETS_TODOLISTS_TODOSbucket_id、todolist_id、content
创建待办事项(替代工具)BASECAMP_CREATE_TODObucket_id、todolist_id、content
列出待办事项BASECAMP_GET_BUCKETS_TODOLISTS_TODOSbucket_id、todolist_id
列出待办事项分组BASECAMP_GET_TODOLIST_GROUPSbucket_id、todolist_id
创建待办事项分组BASECAMP_POST_BUCKETS_TODOLISTS_GROUPSbucket_id、todolist_id、name、color
创建待办事项分组(替代工具)BASECAMP_CREATE_TODOLIST_GROUPbucket_id、todolist_id、name
获取消息板BASECAMP_GET_MESSAGE_BOARDbucket_id、message_board_id
创建消息BASECAMP_CREATE_MESSAGEbucket_id、message_board_id、subject、status
创建消息(替代工具)BASECAMP_POST_BUCKETS_MESSAGE_BOARDS_MESSAGESbucket_id、message_board_id、subject
获取消息BASECAMP_GET_MESSAGEbucket_id、message_id
更新消息BASECAMP_PUT_BUCKETS_MESSAGESbucket_id、message_id
列出所有人员BASECAMP_GET_PEOPLE(无)
列出项目成员BASECAMP_LIST_PROJECT_PEOPLEproject_id
管理访问权限BASECAMP_PUT_PROJECTS_PEOPLE_USERSproject_id、grant、revoke、create

由 Composio 提供支持

评论

支持 Markdown