basecamp-automation
Original:🇺🇸 English
Not Translated
Automate Basecamp project management, to-dos, messages, people, and to-do list organization via Rube MCP (Composio). Always search tools first for current schemas.
1installs
Sourcedavepoon/buildwithclaude
Added on
NPX Install
npx skill4agent add davepoon/buildwithclaude basecamp-automationSKILL.md Content
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.
Toolkit docs: composio.dev/toolkits/basecamp
Prerequisites
- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- Active Basecamp connection via with toolkit
RUBE_MANAGE_CONNECTIONSbasecamp - Always call first to get current tool schemas
RUBE_SEARCH_TOOLS
Setup
Get Rube MCP: Add as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
https://rube.app/mcp- Verify Rube MCP is available by confirming responds
RUBE_SEARCH_TOOLS - Call with toolkit
RUBE_MANAGE_CONNECTIONSbasecamp - 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_PROJECTS - - Get the to-do set within a project [Prerequisite]
BASECAMP_GET_BUCKETS_TODOSETS - - List existing to-do lists to avoid duplicates [Optional]
BASECAMP_GET_BUCKETS_TODOSETS_TODOLISTS - - Create a new to-do list in a to-do set [Required for list creation]
BASECAMP_POST_BUCKETS_TODOSETS_TODOLISTS - - Get details of a specific to-do list [Optional]
BASECAMP_GET_BUCKETS_TODOLISTS - - Create a to-do item in a to-do list [Required for task creation]
BASECAMP_POST_BUCKETS_TODOLISTS_TODOS - - Alternative tool for creating individual to-dos [Alternative]
BASECAMP_CREATE_TODO - - List to-dos within a to-do list [Optional]
BASECAMP_GET_BUCKETS_TODOLISTS_TODOS
Key parameters for creating to-do lists:
- : Integer project/bucket ID (from GET_PROJECTS)
bucket_id - : Integer to-do set ID (from GET_BUCKETS_TODOSETS)
todoset_id - : Title of the to-do list (required)
name - : HTML-formatted description (supports Rich text)
description
Key parameters for creating to-dos:
- : Integer project/bucket ID
bucket_id - : Integer to-do list ID
todolist_id - : What the to-do is for (required)
content - : HTML details about the to-do
description - : Array of integer person IDs
assignee_ids - : Due date in
due_onformatYYYY-MM-DD - : Start date in
starts_onformatYYYY-MM-DD - : Boolean to notify assignees (defaults to false)
notify - : Person IDs notified upon completion
completion_subscriber_ids
Pitfalls:
- A project (bucket) can contain multiple to-do sets; selecting the wrong creates lists in the wrong section
todoset_id - Always check existing to-do lists before creating to avoid near-duplicate names
- Success payloads include user-facing URLs (,
app_url); prefer returning these over raw IDsapp_todos_url - All IDs (,
bucket_id,todoset_id) are integers, not stringstodolist_id - 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_PROJECTS - - Get the message board ID for the project [Prerequisite]
BASECAMP_GET_MESSAGE_BOARD - - Create a new message on the board [Required]
BASECAMP_CREATE_MESSAGE - - Alternative message creation tool [Fallback]
BASECAMP_POST_BUCKETS_MESSAGE_BOARDS_MESSAGES - - Read a specific message by ID [Optional]
BASECAMP_GET_MESSAGE - - Update an existing message [Optional]
BASECAMP_PUT_BUCKETS_MESSAGES
Key parameters:
- : Integer project/bucket ID
bucket_id - : Integer message board ID (from GET_MESSAGE_BOARD)
message_board_id - : Message title (required)
subject - : HTML body of the message
content - : Set to
statusto publish immediately"active" - : Message type classification (optional)
category_id - : Array of person IDs to notify; omit to notify all project members
subscriptions
Pitfalls:
- can produce HTTP 400; use
status="draft"as the reliable optionstatus="active" - and
bucket_idmust belong to the same project; mismatches fail or misroutemessage_board_id - Message content supports HTML tags only; not Markdown
- Updates via replace the entire body -- include the full corrected content, not just a diff
PUT_BUCKETS_MESSAGES - Prefer from the response for user-facing confirmation links
app_url - Both and
CREATE_MESSAGEdo the same thing; use CREATE_MESSAGE first and fall back to POST if it failsPOST_BUCKETS_MESSAGE_BOARDS_MESSAGES
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]
BASECAMP_GET_PEOPLE - - Find the target project [Prerequisite]
BASECAMP_GET_PROJECTS - - List people on a specific project [Required]
BASECAMP_LIST_PROJECT_PEOPLE - - Alternative to list project members [Alternative]
BASECAMP_GET_PROJECTS_PEOPLE - - Grant or revoke project access [Required for access changes]
BASECAMP_PUT_PROJECTS_PEOPLE_USERS
Key parameters for PUT_PROJECTS_PEOPLE_USERS:
- : Integer project ID
project_id - : Array of integer person IDs to add to the project
grant - : Array of integer person IDs to remove from the project
revoke - : Array of objects with
create,name, and optionalemail_address,company_namefor new userstitle - At least one of ,
grant, orrevokemust be providedcreate
Pitfalls:
- Person IDs are integers; always resolve names to IDs via GET_PEOPLE first
- for people management is the same as
project_idfor other operationsbucket_id - and
LIST_PROJECT_PEOPLEare near-identical; use eitherGET_PROJECTS_PEOPLE - Creating users via also grants them project access in one step
create
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_PROJECTS - - Get the to-do list details [Prerequisite]
BASECAMP_GET_BUCKETS_TODOLISTS - - List existing groups in a to-do list [Optional]
BASECAMP_GET_TODOLIST_GROUPS - - Alternative group listing [Alternative]
BASECAMP_GET_BUCKETS_TODOLISTS_GROUPS - - Create a new group in a to-do list [Required]
BASECAMP_POST_BUCKETS_TODOLISTS_GROUPS - - Alternative group creation tool [Alternative]
BASECAMP_CREATE_TODOLIST_GROUP
Key parameters:
- : Integer project/bucket ID
bucket_id - : Integer to-do list ID
todolist_id - : Group title (required)
name - : Visual color identifier -- one of:
color,white,red,orange,yellow,green,blue,aqua,purple,gray,pinkbrown - : Filter for listing --
statusor"archived"(omit for active groups)"trashed"
Pitfalls:
- and
POST_BUCKETS_TODOLISTS_GROUPSare near-identical; use eitherCREATE_TODOLIST_GROUP - 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]
BASECAMP_GET_PROJECTS - - Get comprehensive details for a specific project [Optional]
BASECAMP_GET_PROJECT - - Alternative project detail retrieval [Alternative]
BASECAMP_GET_PROJECTS_BY_PROJECT_ID
Key parameters:
- : Filter by
statusor"archived"; omit for active projects"trashed" - : Integer project ID for detailed retrieval
project_id
Pitfalls:
- Projects are sorted by most recently created first
- The response includes a array with tools (todoset, message_board, etc.) and their IDs
dock - Use the dock tool IDs to find ,
todoset_id, etc. for downstream operationsmessage_board_id
Common Patterns
ID Resolution
Basecamp uses a hierarchical ID structure. Always resolve top-down:
- Project (bucket_id): -- find by name, capture the
BASECAMP_GET_PROJECTSid - 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_GET_PEOPLEBASECAMP_LIST_PROJECT_PEOPLE - Note: and
bucket_idrefer to the same entity in different contextsproject_id
Pagination
Basecamp uses page-based pagination on list endpoints:
- Response headers or body may indicate more pages available
- ,
GET_PROJECTS, and list endpoints return paginated resultsGET_BUCKETS_TODOSETS_TODOLISTS - Continue fetching until no more results are returned
Content Formatting
- All rich text fields use HTML, not Markdown
- Wrap content in tags; use
<div>,<strong>,<em>,<ul>,<ol>,<li>etc.<a> - Example:
<div><strong>Important:</strong> Complete by Friday</div>
Known Pitfalls
ID Formats
- All Basecamp IDs are integers, not strings or UUIDs
- =
bucket_id(same entity, different parameter names across tools)project_id - To-do set IDs, to-do list IDs, and message board IDs are found in the project's array
dock - Person IDs are integers; resolve names via before operations
GET_PEOPLE
Status Field
- for messages can cause HTTP 400; always use
status="draft"status="active" - Project/to-do list status filters: ,
"archived", or omit for active"trashed"
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
app_url - Do not reconstruct Basecamp URLs manually from IDs
Quick Reference
| Task | Tool Slug | Key Params |
|---|---|---|
| List projects | | |
| Get project | | |
| Get project detail | | |
| Get to-do set | | |
| List to-do lists | | |
| Get to-do list | | |
| Create to-do list | | |
| Create to-do | | |
| Create to-do (alt) | | |
| List to-dos | | |
| List to-do groups | | |
| Create to-do group | | |
| Create to-do group (alt) | | |
| Get message board | | |
| Create message | | |
| Create message (alt) | | |
| Get message | | |
| Update message | | |
| List all people | | (none) |
| List project people | | |
| Manage access | | |
Powered by Composio