basecamp-automation
npx machina-cli add skill davepoon/buildwithclaude/basecamp-automation --openclawBasecamp 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
RUBE_MANAGE_CONNECTIONSwith toolkitbasecamp - Always call
RUBE_SEARCH_TOOLSfirst 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
RUBE_SEARCH_TOOLSresponds - Call
RUBE_MANAGE_CONNECTIONSwith toolkitbasecamp - 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:
BASECAMP_GET_PROJECTS- 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]BASECAMP_CREATE_TODO- 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:
bucket_id: Integer project/bucket ID (from GET_PROJECTS)todoset_id: Integer to-do set ID (from GET_BUCKETS_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 IDtodolist_id: Integer to-do list IDcontent: What the to-do is for (required)description: HTML details about the to-doassignee_ids: Array of integer person IDsdue_on: Due date inYYYY-MM-DDformatstarts_on: Start date inYYYY-MM-DDformatnotify: 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
todoset_idcreates 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:
BASECAMP_GET_PROJECTS- Find the target project and bucket_id [Prerequisite]BASECAMP_GET_MESSAGE_BOARD- Get the message board ID for the project [Prerequisite]BASECAMP_CREATE_MESSAGE- Create a new message on the board [Required]BASECAMP_POST_BUCKETS_MESSAGE_BOARDS_MESSAGES- Alternative message creation tool [Fallback]BASECAMP_GET_MESSAGE- Read a specific message by ID [Optional]BASECAMP_PUT_BUCKETS_MESSAGES- Update an existing message [Optional]
Key parameters:
bucket_id: Integer project/bucket IDmessage_board_id: Integer message board ID (from GET_MESSAGE_BOARD)subject: Message title (required)content: HTML body of the messagestatus: Set to"active"to publish immediatelycategory_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; usestatus="active"as the reliable optionbucket_idandmessage_board_idmust belong to the same project; mismatches fail or misroute- Message content supports HTML tags only; not Markdown
- Updates via
PUT_BUCKETS_MESSAGESreplace the entire body -- include the full corrected content, not just a diff - Prefer
app_urlfrom the response for user-facing confirmation links - Both
CREATE_MESSAGEandPOST_BUCKETS_MESSAGE_BOARDS_MESSAGESdo 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:
BASECAMP_GET_PEOPLE- List all people visible to the current user [Required]BASECAMP_GET_PROJECTS- 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:
project_id: Integer project IDgrant: Array of integer person IDs to add to the projectrevoke: Array of integer person IDs to remove from the projectcreate: Array of objects withname,email_address, and optionalcompany_name,titlefor new users- At least one of
grant,revoke, orcreatemust be provided
Pitfalls:
- Person IDs are integers; always resolve names to IDs via GET_PEOPLE first
project_idfor people management is the same asbucket_idfor other operationsLIST_PROJECT_PEOPLEandGET_PROJECTS_PEOPLEare near-identical; use either- Creating users via
createalso 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:
BASECAMP_GET_PROJECTS- 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:
bucket_id: Integer project/bucket IDtodolist_id: Integer to-do list IDname: Group title (required)color: Visual color identifier -- one of:white,red,orange,yellow,green,blue,aqua,purple,gray,pink,brownstatus: Filter for listing --"archived"or"trashed"(omit for active groups)
Pitfalls:
POST_BUCKETS_TODOLISTS_GROUPSandCREATE_TODOLIST_GROUPare 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:
BASECAMP_GET_PROJECTS- List all active projects [Required]BASECAMP_GET_PROJECT- Get comprehensive details for a specific project [Optional]BASECAMP_GET_PROJECTS_BY_PROJECT_ID- Alternative project detail retrieval [Alternative]
Key parameters:
status: Filter by"archived"or"trashed"; omit for active projectsproject_id: Integer project ID for detailed retrieval
Pitfalls:
- Projects are sorted by most recently created first
- The response includes a
dockarray 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 (bucket_id):
BASECAMP_GET_PROJECTS-- find by name, capture theid - 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):
BASECAMP_GET_PEOPLEorBASECAMP_LIST_PROJECT_PEOPLE - Note:
bucket_idandproject_idrefer 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_PROJECTS,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:
<div><strong>Important:</strong> Complete by Friday</div>
Known Pitfalls
ID Formats
- All Basecamp IDs are integers, not strings or UUIDs
bucket_id=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
dockarray - Person IDs are integers; resolve names via
GET_PEOPLEbefore operations
Status Field
status="draft"for messages can cause HTTP 400; always usestatus="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_urlfrom API responses for user-facing links - Do not reconstruct Basecamp URLs manually from IDs
Quick Reference
| Task | Tool Slug | Key Params |
|---|---|---|
| List projects | BASECAMP_GET_PROJECTS | status |
| 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 |
Powered by Composio
Source
git clone https://github.com/davepoon/buildwithclaude/blob/main/plugins/all-skills/skills/basecamp-automation/SKILL.mdView on GitHub Overview
Automates Basecamp operations including project management, to-do lists and tasks, message board posts, people management, and organized to-do groups, leveraging Composio's Basecamp toolkit via Rube MCP. Always fetch current tool schemas first to stay in sync.
How This Skill Works
Connect to Basecamp through Rube MCP, use RUBE_SEARCH_TOOLS to fetch current schemas, then RUBE_MANAGE_CONNECTIONS to authorize the basecamp toolkit. Core workflows drive to-do creation and task management (BASECAMP_GET_PROJECTS, BASECAMP_GET_BUCKETS_TODOSETS, BASECAMP_POST_BUCKETS_TODOLISTS, BASECAMP_POST_BUCKETS_TODOLISTS_TODOS), as well as message posting (BASECAMP_CREATE_MESSAGE, BASECAMP_GET_MESSAGE).
When to Use It
- Create new to-do lists or tasks within a Basecamp project and organize them into appropriate to-do sets
- Post new updates or announcements to a project's message board
- Manage project members and assign tasks to people (assignees) with due dates
- Organize to-dos into groups to avoid duplicates and improve navigation
- Execute end-to-end Basecamp workflows across multiple projects with current tool schemas
Quick Start
- Step 1: Add Rube MCP as an MCP server (https://rube.app/mcp) and verify RUBE_SEARCH_TOOLS responds
- Step 2: Call RUBE_MANAGE_CONNECTIONS with toolkit 'basecamp' and complete OAuth if prompted
- Step 3: Use core tools (e.g., BASECAMP_GET_PROJECTS, BASECAMP_POST_BUCKETS_TODOSETS_TODOLISTS, BASECAMP_POST_BUCKETS_TODOLISTS_TODOS, BASECAMP_CREATE_MESSAGE) to initialize and automate workflows
Best Practices
- Always call RUBE_SEARCH_TOOLS first to get current schemas
- Ensure RUBE_MANAGE_CONNECTIONS shows an ACTIVE status for the Basecamp toolkit
- Treat IDs (bucket_id, todoset_id, todolist_id) as integers, not strings
- Check existing to-do lists before creating new ones to avoid near-duplicates
- Prefer returning app_url or app_todos_url from success payloads over raw IDs
Example Use Cases
- Create a new to-do list in a project’s to-do set and add assigned tasks with due dates
- Post a status update to a project's message board to inform teammates
- Update multiple task assignees and due dates for a sprint backlog
- Organize related tasks into grouped to-dos to simplify tracking
- Add or update project members and their roles across Basecamp projects
Frequently Asked Questions
Related Skills
github-initiative-pulse
athola/claude-night-market
'Outputs markdown digests and CSV exports for GitHub issues and PRs.
clickup-automation
davepoon/buildwithclaude
Automate ClickUp project management including tasks, spaces, folders, lists, comments, and team operations via Rube MCP (Composio). Always search tools first for current schemas.
coda-automation
davepoon/buildwithclaude
Automate Coda tasks via Rube MCP (Composio): manage docs, pages, tables, rows, formulas, permissions, and publishing. Always search tools first for current schemas.
jira-automation
davepoon/buildwithclaude
Automate Jira tasks via Rube MCP (Composio): issues, projects, sprints, boards, comments, users. Always search tools first for current schemas.
linear-automation
davepoon/buildwithclaude
Automate Linear tasks via Rube MCP (Composio): issues, projects, cycles, teams, labels. Always search tools first for current schemas.
monday-automation
davepoon/buildwithclaude
Automate Monday.com work management including boards, items, columns, groups, subitems, and updates via Rube MCP (Composio). Always search tools first for current schemas.