Basecamp Automation via Rube MCP
Automate Basecamp operations including project management, to-do list creation, task management, message board posting, people management, and to-do group organization through Composio's Basecamp toolkit.
Prerequisites
- - Rube MCP must be connected (RUBESEARCHTOOLS available)
- Active Basecamp connection via
RUBE_MANAGE_CONNECTIONS with toolkit INLINECODE1 - Always call
RUBE_SEARCH_TOOLS first to get current tool schemas
Setup
Get Rube MCP: Add https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
- 1. Verify Rube MCP is available by confirming
RUBE_SEARCH_TOOLS responds - Call
RUBE_MANAGE_CONNECTIONS with toolkit INLINECODE6 - If connection is not ACTIVE, follow the returned auth link to complete Basecamp OAuth
- Confirm connection status shows ACTIVE before running any workflows
Core Workflows
1. Manage To-Do Lists and Tasks
When to use: User wants to create to-do lists, add tasks, or organize work within a Basecamp project
Tool sequence:
- 1.
BASECAMP_GET_PROJECTS - List projects to find the target bucket_id [Prerequisite] - INLINECODE8 - Get the to-do set within a project [Prerequisite]
- INLINECODE9 - List existing to-do lists to avoid duplicates [Optional]
- INLINECODE10 - Create a new to-do list in a to-do set [Required for list creation]
- INLINECODE11 - Get details of a specific to-do list [Optional]
- INLINECODE12 - Create a to-do item in a to-do list [Required for task creation]
- INLINECODE13 - Alternative tool for creating individual to-dos [Alternative]
- INLINECODE14 - List to-dos within a to-do list [Optional]
Key parameters for creating to-do lists:
- -
bucket_id: Integer project/bucket ID (from GETPROJECTS) - INLINECODE16 : Integer to-do set ID (from GETBUCKETS_TODOSETS)
- INLINECODE17 : Title of the to-do list (required)
- INLINECODE18 : HTML-formatted description (supports Rich text)
Key parameters for creating to-dos:
- -
bucket_id: Integer project/bucket ID - INLINECODE20 : Integer to-do list ID
- INLINECODE21 : What the to-do is for (required)
- INLINECODE22 : HTML details about the to-do
- INLINECODE23 : Array of integer person IDs
- INLINECODE24 : Due date in
YYYY-MM-DD format - INLINECODE26 : Start date in
YYYY-MM-DD format - INLINECODE28 : Boolean to notify assignees (defaults to false)
- INLINECODE29 : Person IDs notified upon completion
Pitfalls:
- - A project (bucket) can contain multiple to-do sets; selecting the wrong
todoset_id creates lists in the wrong section - Always check existing to-do lists before creating to avoid near-duplicate names
- Success payloads include user-facing URLs (
app_url, app_todos_url); prefer returning these over raw IDs - All IDs (
bucket_id, todoset_id, todolist_id) are integers, not strings - Descriptions support HTML formatting only, not Markdown
2. Post and Manage Messages
When to use: User wants to post messages to a project message board or update existing messages
Tool sequence:
- 1.
BASECAMP_GET_PROJECTS - Find the target project and bucket_id [Prerequisite] - INLINECODE37 - Get the message board ID for the project [Prerequisite]
- INLINECODE38 - Create a new message on the board [Required]
- INLINECODE39 - Alternative message creation tool [Fallback]
- INLINECODE40 - Read a specific message by ID [Optional]
- INLINECODE41 - Update an existing message [Optional]
Key parameters:
- -
bucket_id: Integer project/bucket ID - INLINECODE43 : Integer message board ID (from GETMESSAGEBOARD)
- INLINECODE44 : Message title (required)
- INLINECODE45 : HTML body of the message
- INLINECODE46 : Set to
"active" to publish immediately - INLINECODE48 : Message type classification (optional)
- INLINECODE49 : Array of person IDs to notify; omit to notify all project members
Pitfalls:
- -
status="draft" can produce HTTP 400; use status="active" as the reliable option - INLINECODE52 and
message_board_id must belong to the same project; mismatches fail or misroute - Message content supports HTML tags only; not Markdown
- Updates via
PUT_BUCKETS_MESSAGES replace the entire body -- include the full corrected content, not just a diff - Prefer
app_url from the response for user-facing confirmation links - Both
CREATE_MESSAGE and POST_BUCKETS_MESSAGE_BOARDS_MESSAGES do the same thing; use CREATE_MESSAGE first and fall back to POST if it fails
3. Manage People and Access
When to use: User wants to list people, manage project access, or add new users
Tool sequence:
- 1.
BASECAMP_GET_PEOPLE - List all people visible to the current user [Required] - INLINECODE59 - Find the target project [Prerequisite]
- INLINECODE60 - List people on a specific project [Required]
- INLINECODE61 - Alternative to list project members [Alternative]
- INLINECODE62 - Grant or revoke project access [Required for access changes]
Key parameters for PUTPROJECTSPEOPLE_USERS:
- -
project_id: Integer project ID - INLINECODE64 : Array of integer person IDs to add to the project
- INLINECODE65 : Array of integer person IDs to remove from the project
- INLINECODE66 : Array of objects with
name, email_address, and optional company_name, title for new users - At least one of
grant, revoke, or create must be provided
Pitfalls:
- - Person IDs are integers; always resolve names to IDs via GET_PEOPLE first
- INLINECODE74 for people management is the same as
bucket_id for other operations - INLINECODE76 and
GET_PROJECTS_PEOPLE are near-identical; use either - Creating users via
create also grants them project access in one step
4. Organize To-Dos with Groups
When to use: User wants to organize to-dos within a list into color-coded groups
Tool sequence:
- 1.
BASECAMP_GET_PROJECTS - Find the target project [Prerequisite] - INLINECODE80 - Get the to-do list details [Prerequisite]
- INLINECODE81 - List existing groups in a to-do list [Optional]
- INLINECODE82 - Alternative group listing [Alternative]
- INLINECODE83 - Create a new group in a to-do list [Required]
- INLINECODE84 - Alternative group creation tool [Alternative]
Key parameters:
- -
bucket_id: Integer project/bucket ID - INLINECODE86 : Integer to-do list ID
- INLINECODE87 : Group title (required)
- INLINECODE88 : Visual color identifier -- one of:
white, red, orange, yellow, green, blue, aqua, purple, gray, pink, INLINECODE99 - INLINECODE100 : Filter for listing --
"archived" or "trashed" (omit for active groups)
Pitfalls:
- -
POST_BUCKETS_TODOLISTS_GROUPS and CREATE_TODOLIST_GROUP are near-identical; use either - Color values must be from the fixed palette; arbitrary hex/rgb values are not supported
- Groups are sub-sections within a to-do list, not standalone entities
5. Browse and Inspect Projects
When to use: User wants to list projects, get project details, or explore project structure
Tool sequence:
- 1.
BASECAMP_GET_PROJECTS - List all active projects [Required] - INLINECODE106 - Get comprehensive details for a specific project [Optional]
- INLINECODE107 - Alternative project detail retrieval [Alternative]
Key parameters:
- -
status: Filter by "archived" or "trashed"; omit for active projects - INLINECODE111 : Integer project ID for detailed retrieval
Pitfalls:
- - Projects are sorted by most recently created first
- The response includes a
dock array with tools (todoset, message_board, etc.) and their IDs - Use the dock tool IDs to find
todoset_id, message_board_id, etc. for downstream operations
Common Patterns
ID Resolution
Basecamp uses a hierarchical ID structure. Always resolve top-down:
- - Project (bucketid):
BASECAMP_GET_PROJECTS -- find by name, capture the INLINECODE116 - To-do set (todosetid): Found in project dock or via INLINECODE117
- Message board (messageboardid): Found in project dock or via INLINECODE118
- To-do list (todolistid): INLINECODE119
- People (personid):
BASECAMP_GET_PEOPLE or INLINECODE121 - Note:
bucket_id and project_id refer to the same entity in different contexts
Pagination
Basecamp uses page-based pagination on list endpoints:
- - Response headers or body may indicate more pages available
- INLINECODE124 ,
GET_BUCKETS_TODOSETS_TODOLISTS, and list endpoints return paginated results - Continue fetching until no more results are returned
Content Formatting
- - All rich text fields use HTML, not Markdown
- Wrap content in
<div> tags; use <strong>, <em>, <ul>, <ol>, <li>, <a> etc. - Example: INLINECODE133
Known Pitfalls
ID Formats
- - All Basecamp IDs are integers, not strings or UUIDs
- INLINECODE134 =
project_id (same entity, different parameter names across tools) - To-do set IDs, to-do list IDs, and message board IDs are found in the project's
dock array - Person IDs are integers; resolve names via
GET_PEOPLE before operations
Status Field
- -
status="draft" for messages can cause HTTP 400; always use INLINECODE139 - Project/to-do list status filters:
"archived", "trashed", or omit for active
Content Format
- - HTML only, never Markdown
- Updates replace the entire body, not a partial diff
- Invalid HTML tags may be silently stripped
Rate Limits
- - Basecamp API has rate limits; space out rapid sequential requests
- Large projects with many to-dos should be paginated carefully
URL Handling
- - Prefer
app_url from API responses for user-facing links - Do not reconstruct Basecamp URLs manually from IDs
Quick Reference
| Task | Tool Slug | Key Params |
|---|
| List projects | INLINECODE143 | INLINECODE144 |
| Get project |
BASECAMP_GET_PROJECT |
project_id |
| Get project detail |
BASECAMP_GET_PROJECTS_BY_PROJECT_ID |
project_id |
| Get to-do set |
BASECAMP_GET_BUCKETS_TODOSETS |
bucket_id,
todoset_id |
| List to-do lists |
BASECAMP_GET_BUCKETS_TODOSETS_TODOLISTS |
bucket_id,
todoset_id |
| Get to-do list |
BASECAMP_GET_BUCKETS_TODOLISTS |
bucket_id,
todolist_id |
| Create to-do list |
BASECAMP_POST_BUCKETS_TODOSETS_TODOLISTS |
bucket_id,
todoset_id,
name |
| Create to-do |
BASECAMP_POST_BUCKETS_TODOLISTS_TODOS |
bucket_id,
todolist_id,
content |
| Create to-do (alt) |
BASECAMP_CREATE_TODO |
bucket_id,
todolist_id,
content |
| List to-dos |
BASECAMP_GET_BUCKETS_TODOLISTS_TODOS |
bucket_id,
todolist_id |
| List to-do groups |
BASECAMP_GET_TODOLIST_GROUPS |
bucket_id,
todolist_id |
| Create to-do group |
BASECAMP_POST_BUCKETS_TODOLISTS_GROUPS |
bucket_id,
todolist_id,
name,
color |
| Create to-do group (alt) |
BASECAMP_CREATE_TODOLIST_GROUP |
bucket_id,
todolist_id,
name |
| Get message board |
BASECAMP_GET_MESSAGE_BOARD |
bucket_id,
message_board_id |
| Create message |
BASECAMP_CREATE_MESSAGE |
bucket_id,
message_board_id,
subject,
status |
| Create message (alt) |
BASECAMP_POST_BUCKETS_MESSAGE_BOARDS_MESSAGES |
bucket_id,
message_board_id,
subject |
| Get message |
BASECAMP_GET_MESSAGE |
bucket_id,
message_id |
| Update message |
BASECAMP_PUT_BUCKETS_MESSAGES |
bucket_id,
message_id |
| List all people |
BASECAMP_GET_PEOPLE | (none) |
| List project people |
BASECAMP_LIST_PROJECT_PEOPLE |
project_id |
| Manage access |
BASECAMP_PUT_PROJECTS_PEOPLE_USERS |
project_id,
grant,
revoke,
create |
通过 Rube MCP 实现 Basecamp 自动化
通过 Composio 的 Basecamp 工具包,自动化 Basecamp 操作,包括项目管理、待办事项列表创建、任务管理、留言板发帖、人员管理和待办事项分组组织。
前提条件
- - 必须连接 Rube MCP(RUBESEARCHTOOLS 可用)
- 通过 RUBEMANAGECONNECTIONS 使用 basecamp 工具包建立活跃的 Basecamp 连接
- 始终先调用 RUBESEARCHTOOLS 获取当前工具架构
设置
获取 Rube MCP:在客户端配置中将 https://rube.app/mcp 添加为 MCP 服务器。无需 API 密钥——只需添加端点即可使用。
- 1. 通过确认 RUBESEARCHTOOLS 有响应来验证 Rube MCP 可用
- 使用 basecamp 工具包调用 RUBEMANAGECONNECTIONS
- 如果连接未处于 ACTIVE 状态,请按照返回的认证链接完成 Basecamp OAuth
- 在运行任何工作流之前,确认连接状态显示为 ACTIVE
核心工作流
1. 管理待办事项列表和任务
使用时机:用户想要创建待办事项列表、添加任务或在 Basecamp 项目中组织工作
工具序列:
- 1. BASECAMPGETPROJECTS - 列出项目以查找目标 bucketid [前提条件]
- BASECAMPGETBUCKETSTODOSETS - 获取项目中的待办事项集 [前提条件]
- BASECAMPGETBUCKETSTODOSETSTODOLISTS - 列出已有待办事项列表以避免重复 [可选]
- BASECAMPPOSTBUCKETSTODOSETSTODOLISTS - 在待办事项集中创建新的待办事项列表 [创建列表必需]
- BASECAMPGETBUCKETSTODOLISTS - 获取特定待办事项列表的详细信息 [可选]
- BASECAMPPOSTBUCKETSTODOLISTSTODOS - 在待办事项列表中创建待办事项 [创建任务必需]
- BASECAMPCREATETODO - 创建单个待办事项的替代工具 [替代方案]
- BASECAMPGETBUCKETSTODOLISTS_TODOS - 列出待办事项列表中的待办事项 [可选]
创建待办事项列表的关键参数:
- - bucketid:整数项目/存储桶 ID(来自 GETPROJECTS)
- todosetid:整数待办事项集 ID(来自 GETBUCKETS_TODOSETS)
- name:待办事项列表的标题(必需)
- description:HTML 格式的描述(支持富文本)
创建待办事项的关键参数:
- - bucketid:整数项目/存储桶 ID
- todolistid:整数待办事项列表 ID
- content:待办事项的内容(必需)
- description:关于待办事项的 HTML 详细信息
- assigneeids:整数人员 ID 数组
- dueon:截止日期,格式为 YYYY-MM-DD
- startson:开始日期,格式为 YYYY-MM-DD
- notify:布尔值,是否通知负责人(默认为 false)
- completionsubscriber_ids:完成后通知的人员 ID
注意事项:
- - 一个项目(存储桶)可以包含多个待办事项集;选择错误的 todosetid 会在错误的部分创建列表
- 在创建之前始终检查已有的待办事项列表,以避免名称近似重复
- 成功响应包含面向用户的 URL(appurl、apptodosurl);优先返回这些而不是原始 ID
- 所有 ID(bucketid、todosetid、todolist_id)都是整数,不是字符串
- 描述仅支持 HTML 格式,不支持 Markdown
2. 发布和管理消息
使用时机:用户想要向项目留言板发布消息或更新现有消息
工具序列:
- 1. BASECAMPGETPROJECTS - 查找目标项目和 bucketid [前提条件]
- BASECAMPGETMESSAGEBOARD - 获取项目的留言板 ID [前提条件]
- BASECAMPCREATEMESSAGE - 在留言板上创建新消息 [必需]
- BASECAMPPOSTBUCKETSMESSAGEBOARDSMESSAGES - 替代的消息创建工具 [备用方案]
- BASECAMPGETMESSAGE - 按 ID 读取特定消息 [可选]
- BASECAMPPUTBUCKETSMESSAGES - 更新现有消息 [可选]
关键参数:
- - bucketid:整数项目/存储桶 ID
- messageboardid:整数留言板 ID(来自 GETMESSAGEBOARD)
- subject:消息标题(必需)
- content:消息的 HTML 正文
- status:设置为 active 以立即发布
- categoryid:消息类型分类(可选)
- subscriptions:要通知的人员 ID 数组;省略则通知所有项目成员
注意事项:
- - status=draft 可能产生 HTTP 400;使用 status=active 作为可靠选项
- bucketid 和 messageboardid 必须属于同一项目;不匹配会导致失败或路由错误
- 消息内容仅支持 HTML 标签;不支持 Markdown
- 通过 PUTBUCKETSMESSAGES 更新会替换整个正文——需包含完整的更正内容,而不仅仅是差异
- 优先使用响应中的 appurl 作为面向用户的确认链接
- CREATEMESSAGE 和 POSTBUCKETSMESSAGEBOARDSMESSAGES 功能相同;优先使用 CREATEMESSAGE,失败时回退到 POST
3. 管理人员和访问权限
使用时机:用户想要列出人员、管理项目访问权限或添加新用户
工具序列:
- 1. BASECAMPGETPEOPLE - 列出当前用户可见的所有人员 [必需]
- BASECAMPGETPROJECTS - 查找目标项目 [前提条件]
- BASECAMPLISTPROJECTPEOPLE - 列出特定项目上的人员 [必需]
- BASECAMPGETPROJECTSPEOPLE - 列出项目成员的替代方案 [替代方案]
- BASECAMPPUTPROJECTSPEOPLEUSERS - 授予或撤销项目访问权限 [更改访问权限必需]
PUTPROJECTSPEOPLE_USERS 的关键参数:
- - projectid:整数项目 ID
- grant:要添加到项目中的整数人员 ID 数组
- revoke:要从项目中移除的整数人员 ID 数组
- create:对象数组,包含新用户的 name、emailaddress 以及可选的 company_name、title
- 必须至少提供 grant、revoke 或 create 中的一个
注意事项:
- - 人员 ID 是整数;始终先通过 GETPEOPLE 将名称解析为 ID
- 用于人员管理的 projectid 与用于其他操作的 bucketid 相同
- LISTPROJECTPEOPLE 和 GETPROJECTS_PEOPLE 几乎相同;使用任一即可
- 通过 create 创建用户也会一步到位授予他们项目访问权限
4. 使用分组组织待办事项
使用时机:用户想要将列表中的待办事项组织成彩色分组
工具序列:
- 1. BASECAMPGETPROJECTS - 查找目标项目 [前提条件]
- BASECAMPGETBUCKETSTODOLISTS - 获取待办事项列表详情 [前提条件]
- BASECAMPGETTODOLISTGROUPS - 列出待办事项列表中的现有分组 [可选]
- BASECAMPGETBUCKETSTODOLISTSGROUPS - 替代的分组列表工具 [替代方案]
- BASECAMPPOSTBUCKETSTODOLISTSGROUPS - 在待办事项列表中创建新分组 [必需]
- BASECAMPCREATETODOLIST_GROUP - 替代的分组创建工具 [替代方案]
关键参数:
- - bucketid:整数项目/存储桶 ID
- todolistid:整数待办事项列表 ID
- name:分组标题(必需)
- color:视觉颜色标识——可选值:white、red、orange、yellow、green、blue、aqua、purple、gray