Antigravity-awesome-skills basecamp-automation
Automate Basecamp project management, to-dos, messages, people, and to-do list organization via Rube MCP (Composio). Always search tools first for current schemas.
git clone https://github.com/sickn33/antigravity-awesome-skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/sickn33/antigravity-awesome-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/antigravity-awesome-skills/skills/basecamp-automation" ~/.claude/skills/sickn33-antigravity-awesome-skills-basecamp-automation-72be18 && rm -rf "$T"
plugins/antigravity-awesome-skills/skills/basecamp-automation/SKILL.md- dumps environment variables
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 toolkitRUBE_MANAGE_CONNECTIONSbasecamp - Always call
first to get current tool schemasRUBE_SEARCH_TOOLS
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
respondsRUBE_SEARCH_TOOLS - Call
with toolkitRUBE_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 IDbucket_id
: Integer to-do list IDtodolist_id
: What the to-do is for (required)content
: HTML details about the to-dodescription
: Array of integer person IDsassignee_ids
: Due date indue_on
formatYYYY-MM-DD
: Start date instarts_on
formatYYYY-MM-DD
: Boolean to notify assignees (defaults to false)notify
: Person IDs notified upon completioncompletion_subscriber_ids
Pitfalls:
- A project (bucket) can contain multiple to-do sets; selecting the wrong
creates lists in the wrong sectiontodoset_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 IDbucket_id
: Integer message board ID (from GET_MESSAGE_BOARD)message_board_id
: Message title (required)subject
: HTML body of the messagecontent
: Set tostatus
to publish immediately"active"
: Message type classification (optional)category_id
: Array of person IDs to notify; omit to notify all project memberssubscriptions
Pitfalls:
can produce HTTP 400; usestatus="draft"
as the reliable optionstatus="active"
andbucket_id
must 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 diffPUT_BUCKETS_MESSAGES - Prefer
from the response for user-facing confirmation linksapp_url - Both
andCREATE_MESSAGE
do 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 IDproject_id
: Array of integer person IDs to add to the projectgrant
: Array of integer person IDs to remove from the projectrevoke
: Array of objects withcreate
,name
, and optionalemail_address
,company_name
for new userstitle- At least one of
,grant
, orrevoke
must be providedcreate
Pitfalls:
- Person IDs are integers; always resolve names to IDs via GET_PEOPLE first
for people management is the same asproject_id
for other operationsbucket_id
andLIST_PROJECT_PEOPLE
are near-identical; use eitherGET_PROJECTS_PEOPLE- Creating users via
also grants them project access in one stepcreate
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 IDbucket_id
: Integer to-do list IDtodolist_id
: Group title (required)name
: Visual color identifier -- one of:color
,white
,red
,orange
,yellow
,green
,blue
,aqua
,purple
,gray
,pinkbrown
: Filter for listing --status
or"archived"
(omit for active groups)"trashed"
Pitfalls:
andPOST_BUCKETS_TODOLISTS_GROUPS
are 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 bystatus
or"archived"
; omit for active projects"trashed"
: Integer project ID for detailed retrievalproject_id
Pitfalls:
- Projects are sorted by most recently created first
- The response includes a
array with tools (todoset, message_board, etc.) and their IDsdock - 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 theBASECAMP_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):
orBASECAMP_GET_PEOPLEBASECAMP_LIST_PROJECT_PEOPLE - Note:
andbucket_id
refer 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
arraydock - Person IDs are integers; resolve names via
before operationsGET_PEOPLE
Status Field
for messages can cause HTTP 400; always usestatus="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 linksapp_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 | | , , , |
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.
- Do not 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.