- name:
- basecamp-automation
- description:
- Automate Basecamp project management, to-dos, messages, people, and to-do list organization via Rube MCP (Composio). Always search tools first for current schemas.
- risk:
- critical
- source:
- community
- date_added:
- 2026-02-27
@ 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 RUBEMANAGECONNECTIONS with toolkit basecamp
- Always call RUBESEARCHTOOLS 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.
- Verify Rube MCP is available by confirming RUBESEARCHTOOLS responds
- Call RUBEMANAGECONNECTIONS with toolkit basecamp
- 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:
- BASECAMPGETPROJECTS - List projects to find the target bucket_id [Prerequisite]
- BASECAMPGETBUCKETS_TODOSETS - Get the to-do set within a project [Prerequisite]
- BASECAMPGETBUCKETSTODOSETSTODOLISTS - List existing to-do lists to avoid duplicates [Optional]
- BASECAMPPOSTBUCKETSTODOSETSTODOLISTS - Create a new to-do list in a to-do set [Required for list creation]
- BASECAMPGETBUCKETS_TODOLISTS - Get details of a specific to-do list [Optional]
- BASECAMPPOSTBUCKETSTODOLISTSTODOS - Create a to-do item in a to-do list [Required for task creation]
- BASECAMPCREATETODO - Alternative tool for creating individual to-dos [Alternative]
- BASECAMPGETBUCKETSTODOLISTSTODOS - List to-dos within a to-do list [Optional]
Key parameters for creating to-do lists:
- bucketid: Integer project/bucket ID (from GETPROJECTS)
- todosetid: Integer to-do set ID (from GETBUCKETS_TODOSETS)
- name: Title of the to-do list (required)
- description: HTML-formatted description (supports Rich text)
Key parameters for creating to-dos:
- bucket_id: Integer project/bucket ID
- todolist_id: Integer to-do list ID
- content: What the to-do is for (required)
- description: HTML details about the to-do
- assignee_ids: Array of integer person IDs
- due_on: Due date in YYYY-MM-DD format
- starts_on: Start date in YYYY-MM-DD format
- notify: Boolean to notify assignees (defaults to false)
- completionsubscriberids: 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 (appurl, apptodos_url); prefer returning these over raw IDs
- All IDs (bucketid, todosetid, 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:
- BASECAMPGETPROJECTS - Find the target project and bucket_id [Prerequisite]
- BASECAMPGETMESSAGE_BOARD - Get the message board ID for the project [Prerequisite]
- BASECAMPCREATEMESSAGE - Create a new message on the board [Required]
- BASECAMPPOSTBUCKETSMESSAGEBOARDS_MESSAGES - Alternative message creation tool [Fallback]
- BASECAMPGETMESSAGE - Read a specific message by ID [Optional]
- BASECAMPPUTBUCKETS_MESSAGES - Update an existing message [Optional]
Key parameters:
- bucket_id: Integer project/bucket ID
- messageboardid: Integer message board ID (from GETMESSAGEBOARD)
- subject: Message title (required)
- content: HTML body of the message
- status: Set to "active" to publish immediately
- category_id: Message type classification (optional)
- subscriptions: 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
- bucketid and messageboard_id must belong to the same project; mismatches fail or misroute
- Message content supports HTML tags only; not Markdown
- Updates via PUTBUCKETSMESSAGES 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 CREATEMESSAGE and POSTBUCKETSMESSAGEBOARDSMESSAGES do the same thing; use CREATEMESSAGE 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:
- BASECAMPGETPEOPLE - List all people visible to the current user [Required]
- BASECAMPGETPROJECTS - Find the target project [Prerequisite]
- BASECAMPLISTPROJECT_PEOPLE - List people on a specific project [Required]
- BASECAMPGETPROJECTS_PEOPLE - Alternative to list project members [Alternative]
- BASECAMPPUTPROJECTSPEOPLEUSERS - Grant or revoke project access [Required for access changes]
Key parameters for PUTPROJECTSPEOPLE_USERS:
- project_id: Integer project ID
- grant: Array of integer person IDs to add to the project
- revoke: Array of integer person IDs to remove from the project
- create: Array of objects with name, emailaddress, and optional companyname, 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
- projectid for people management is the same as bucketid for other operations
- LISTPROJECTPEOPLE and GETPROJECTSPEOPLE 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:
- BASECAMPGETPROJECTS - Find the target project [Prerequisite]
- BASECAMPGETBUCKETS_TODOLISTS - Get the to-do list details [Prerequisite]
- BASECAMPGETTODOLIST_GROUPS - List existing groups in a to-do list [Optional]
- BASECAMPGETBUCKETSTODOLISTSGROUPS - Alternative group listing [Alternative]
- BASECAMPPOSTBUCKETSTODOLISTSGROUPS - Create a new group in a to-do list [Required]
- BASECAMPCREATETODOLIST_GROUP - Alternative group creation tool [Alternative]
Key parameters:
- bucket_id: Integer project/bucket ID
- todolist_id: Integer to-do list ID
- name: Group title (required)
- color: Visual color identifier -- one of: white, red, orange, yellow, green, blue, aqua, purple, gray, pink, brown
- status: Filter for listing -- "archived" or "trashed" (omit for active groups)
Pitfalls:
- POSTBUCKETSTODOLISTSGROUPS and CREATETODOLIST_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:
- BASECAMPGETPROJECTS - List all active projects [Required]
- BASECAMPGETPROJECT - Get comprehensive details for a specific project [Optional]
- BASECAMPGETPROJECTSBYPROJECT_ID - Alternative project detail retrieval [Alternative]
Key parameters:
- status: Filter by "archived" or "trashed"; omit for active projects
- project_id: 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 todosetid, messageboard_id, etc. for downstream operations
@ Common Patterns
@ ID Resolution
Basecamp uses a hierarchical ID structure. Always resolve top-down:
- Project (bucketid): BASECAMPGET_PROJECTS -- find by name, capture the id
- To-do set (todosetid): Found in project dock or via BASECAMPGETBUCKETSTODOSETS
- Message board (messageboardid): Found in project dock or via BASECAMPGETMESSAGE_BOARD
- To-do list (todolistid): BASECAMPGETBUCKETSTODOSETS_TODOLISTS
- People (personid): BASECAMPGETPEOPLE or BASECAMPLISTPROJECTPEOPLE
- Note: bucketid and projectid 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
- GETPROJECTS, GETBUCKETSTODOSETSTODOLISTS, 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: <div><strong>Important: </strong> Complete by Friday</div>
@ Known Pitfalls
@ ID Formats
- All Basecamp IDs are integers, not strings or UUIDs
- bucketid = projectid (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 status="active"
- 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
- never reconstruct Basecamp URLs manually from IDs
@ Quick Reference
Task; Tool Slug; Key Params
List projects; BASECAMPGETPROJECTS; status
Get project; BASECAMPGETPROJECT; project_id
Get project detail; BASECAMPGETPROJECTSBYPROJECTID; projectid
Get to-do set; BASECAMPGETBUCKETSTODOSETS; bucketid, todoset_id
List to-do lists; BASECAMPGETBUCKETSTODOSETSTODOLISTS; bucketid, todosetid
Get to-do list; BASECAMPGETBUCKETSTODOLISTS; bucketid, todolist_id
Create to-do list; BASECAMPPOSTBUCKETSTODOSETSTODOLISTS; bucketid, todosetid, name
Create to-do; BASECAMPPOSTBUCKETSTODOLISTSTODOS; bucketid, todolistid, content
Create to-do (alt); BASECAMPCREATETODO; bucketid, todolistid, content
List to-dos; BASECAMPGETBUCKETSTODOLISTSTODOS; bucketid, todolistid
List to-do groups; BASECAMPGETTODOLISTGROUPS; bucketid, todolist_id
Create to-do group; BASECAMPPOSTBUCKETSTODOLISTSGROUPS; bucketid, todolistid, name, color
Create to-do group (alt); BASECAMPCREATETODOLISTGROUP; bucketid, todolist_id, name
Get message board; BASECAMPGETMESSAGEBOARD; bucketid, messageboardid
Create message; BASECAMPCREATEMESSAGE; bucketid, messageboard_id, subject, status
Create message (alt); BASECAMPPOSTBUCKETSMESSAGEBOARDSMESSAGES; bucketid, messageboardid, subject
Get message; BASECAMPGETMESSAGE; bucketid, messageid
Update message; BASECAMPPUTBUCKETSMESSAGES; bucketid, message_id
List all people; BASECAMPGETPEOPLE; (none)
List project people; BASECAMPLISTPROJECTPEOPLE; projectid
Manage access; BASECAMPPUTPROJECTSPEOPLEUSERS; project_id, grant, revoke, create
@ When to Use
This skill is applicable to execute the workflow or actions described in the overview.
@ Limitations
- Use this skill only when the task clearly matches the scope described above.
- never treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.