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 (RUBE_SEARCH_TOOLS available)
- Active Basecamp connection via with toolkit
- Always call first to get current tool schemas
Setup
Get Rube MCP: Add
as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
- Verify Rube MCP is available by confirming responds
- Call with toolkit
- 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:
- - List projects to find the target bucket_id [Prerequisite]
BASECAMP_GET_BUCKETS_TODOSETS
- Get the to-do set within a project [Prerequisite]
BASECAMP_GET_BUCKETS_TODOSETS_TODOLISTS
- List existing to-do lists to avoid duplicates [Optional]
BASECAMP_POST_BUCKETS_TODOSETS_TODOLISTS
- Create a new to-do list in a to-do set [Required for list creation]
BASECAMP_GET_BUCKETS_TODOLISTS
- Get details of a specific to-do list [Optional]
BASECAMP_POST_BUCKETS_TODOLISTS_TODOS
- Create a to-do item in a to-do list [Required for task creation]
- - Alternative tool for creating individual to-dos [Alternative]
BASECAMP_GET_BUCKETS_TODOLISTS_TODOS
- List to-dos within a to-do list [Optional]
Key parameters for creating to-do lists:
- : Integer project/bucket ID (from GET_PROJECTS)
- : Integer to-do set ID (from GET_BUCKETS_TODOSETS)
- : Title of the to-do list (required)
- : HTML-formatted description (supports Rich text)
Key parameters for creating to-dos:
- : Integer project/bucket ID
- : Integer to-do list ID
- : What the to-do is for (required)
- : HTML details about the to-do
- : Array of integer person IDs
- : Due date in format
- : Start date in format
- : Boolean to notify assignees (defaults to false)
completion_subscriber_ids
: Person IDs notified upon completion
Pitfalls:
- A project (bucket) can contain multiple to-do sets; selecting the wrong 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 (, ); prefer returning these over raw IDs
- All IDs (, , ) 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:
- - Find the target project and bucket_id [Prerequisite]
BASECAMP_GET_MESSAGE_BOARD
- Get the message board ID for the project [Prerequisite]
- - Create a new message on the board [Required]
BASECAMP_POST_BUCKETS_MESSAGE_BOARDS_MESSAGES
- Alternative message creation tool [Fallback]
- - Read a specific message by ID [Optional]
BASECAMP_PUT_BUCKETS_MESSAGES
- Update an existing message [Optional]
Key parameters:
- : Integer project/bucket ID
- : Integer message board ID (from GET_MESSAGE_BOARD)
- : Message title (required)
- : HTML body of the message
- : Set to to publish immediately
- : Message type classification (optional)
- : Array of person IDs to notify; omit to notify all project members
Pitfalls:
- can produce HTTP 400; use as the reliable option
- and must belong to the same project; mismatches fail or misroute
- Message content supports HTML tags only; not Markdown
- Updates via replace the entire body -- include the full corrected content, not just a diff
- Prefer from the response for user-facing confirmation links
- Both 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:
- - List all people visible to the current user [Required]
- - Find the target project [Prerequisite]
BASECAMP_LIST_PROJECT_PEOPLE
- List people on a specific project [Required]
BASECAMP_GET_PROJECTS_PEOPLE
- Alternative to list project members [Alternative]
BASECAMP_PUT_PROJECTS_PEOPLE_USERS
- Grant or revoke project access [Required for access changes]
Key parameters for PUT_PROJECTS_PEOPLE_USERS:
- : Integer project ID
- : Array of integer person IDs to add to the project
- : Array of integer person IDs to remove from the project
- : Array of objects with , , and optional , for new users
- At least one of , , or must be provided
Pitfalls:
- Person IDs are integers; always resolve names to IDs via GET_PEOPLE first
- for people management is the same as for other operations
- and are near-identical; use either
- Creating users via 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:
- - Find the target project [Prerequisite]
BASECAMP_GET_BUCKETS_TODOLISTS
- Get the to-do list details [Prerequisite]
BASECAMP_GET_TODOLIST_GROUPS
- List existing groups in a to-do list [Optional]
BASECAMP_GET_BUCKETS_TODOLISTS_GROUPS
- Alternative group listing [Alternative]
BASECAMP_POST_BUCKETS_TODOLISTS_GROUPS
- Create a new group in a to-do list [Required]
BASECAMP_CREATE_TODOLIST_GROUP
- Alternative group creation tool [Alternative]
Key parameters:
- : Integer project/bucket ID
- : Integer to-do list ID
- : Group title (required)
- : Visual color identifier -- one of: , , , , , , , , , ,
- : Filter for listing -- or (omit for active groups)
Pitfalls:
POST_BUCKETS_TODOLISTS_GROUPS
and 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:
- - List all active projects [Required]
- - Get comprehensive details for a specific project [Optional]
BASECAMP_GET_PROJECTS_BY_PROJECT_ID
- Alternative project detail retrieval [Alternative]
Key parameters:
- : Filter by or ; omit for active projects
- : Integer project ID for detailed retrieval
Pitfalls:
- Projects are sorted by most recently created first
- The response includes a array with tools (todoset, message_board, etc.) and their IDs
- Use the dock tool IDs to find , , etc. for downstream operations
Common Patterns
ID Resolution
Basecamp uses a hierarchical ID structure. Always resolve top-down:
- Project (bucket_id): -- find by name, capture the
- To-do set (todoset_id): Found in project dock or via
BASECAMP_GET_BUCKETS_TODOSETS
- Message board (message_board_id): Found in project dock or via
BASECAMP_GET_MESSAGE_BOARD
- To-do list (todolist_id):
BASECAMP_GET_BUCKETS_TODOSETS_TODOLISTS
- People (person_id): or
BASECAMP_LIST_PROJECT_PEOPLE
- Note: and 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
- ,
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 tags; use , , , , , etc.
- Example:
<div><strong>Important:</strong> Complete by Friday</div>
Known Pitfalls
ID Formats
- All Basecamp IDs are integers, not strings or UUIDs
- = (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 array
- Person IDs are integers; resolve names via before operations
Status Field
- for messages can cause HTTP 400; always use
- Project/to-do list status filters: , , 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 from API responses for user-facing links
- Do not reconstruct Basecamp URLs manually from IDs
Quick Reference
| Task | Tool Slug | Key Params |
|---|
| List projects | | |
| Get project | | |
| Get project detail | BASECAMP_GET_PROJECTS_BY_PROJECT_ID
| |
| Get to-do set | BASECAMP_GET_BUCKETS_TODOSETS
| , |
| List to-do lists | BASECAMP_GET_BUCKETS_TODOSETS_TODOLISTS
| , |
| Get to-do list | BASECAMP_GET_BUCKETS_TODOLISTS
| , |
| Create to-do list | BASECAMP_POST_BUCKETS_TODOSETS_TODOLISTS
| , , |
| Create to-do | BASECAMP_POST_BUCKETS_TODOLISTS_TODOS
| , , |
| Create to-do (alt) | | , , |
| List to-dos | BASECAMP_GET_BUCKETS_TODOLISTS_TODOS
| , |
| List to-do groups | BASECAMP_GET_TODOLIST_GROUPS
| , |
| Create to-do group | BASECAMP_POST_BUCKETS_TODOLISTS_GROUPS
| , , , |
| Create to-do group (alt) | BASECAMP_CREATE_TODOLIST_GROUP
| , , |
| Get message board | BASECAMP_GET_MESSAGE_BOARD
| , |
| Create message | | , , , |
| Create message (alt) | BASECAMP_POST_BUCKETS_MESSAGE_BOARDS_MESSAGES
| , , |
| Get message | | , |
| Update message | BASECAMP_PUT_BUCKETS_MESSAGES
| , |
| List all people | | (none) |
| List project people | BASECAMP_LIST_PROJECT_PEOPLE
| |
| Manage access | BASECAMP_PUT_PROJECTS_PEOPLE_USERS
| , , , |