Basecamp Automation via Rube MCP
Selective Reading Rule
Start with:
references/senior-master-standard.md
references/usage-routing.md
references/quality-checklist.md
Then load only the inherited docs, scripts, assets, or examples that match the user's actual task.
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
RUBE_MANAGE_CONNECTIONS with toolkit basecamp
- Always call
RUBE_SEARCH_TOOLS 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
RUBE_SEARCH_TOOLS responds
- Call
RUBE_MANAGE_CONNECTIONS 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:
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 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)
completion_subscriber_ids: 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 (
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 ID
message_board_id: Integer message board ID (from GET_MESSAGE_BOARD)
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
bucket_id and message_board_id must belong to the same project; mismatches fail or misroute
- Message content supports HTML tags only; not Markdown
- Updates via
PUT_BUCKETS_MESSAGES 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
CREATE_MESSAGE 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:
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 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, email_address, and optional company_name, 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
project_id for people management is the same as bucket_id for other operations
LIST_PROJECT_PEOPLE and GET_PROJECTS_PEOPLE 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:
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 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:
POST_BUCKETS_TODOLISTS_GROUPS and CREATE_TODOLIST_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:
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 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
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 the id
- 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_PEOPLE or BASECAMP_LIST_PROJECT_PEOPLE
- Note:
bucket_id and project_id 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_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
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
- 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 |
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.
1---2name: basecamp-automation3description: ALWAYS use this when the request matches Basecamp Automation: Automate Basecamp project management, to-dos, messages, people, and to-do list organization via Rube MCP (Composio).4---56# Basecamp Automation via Rube MCP78## Selective Reading Rule910Start with:1112- `references/senior-master-standard.md`13- `references/usage-routing.md`14- `references/quality-checklist.md`1516Then load only the inherited docs, scripts, assets, or examples that match the user's actual task.1718Automate 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.1920## Prerequisites2122- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)23- Active Basecamp connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `basecamp`24- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas2526## Setup2728**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.29301. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds312. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `basecamp`323. If connection is not ACTIVE, follow the returned auth link to complete Basecamp OAuth334. Confirm connection status shows ACTIVE before running any workflows3435## Core Workflows3637### 1. Manage To-Do Lists and Tasks3839**When to use**: User wants to create to-do lists, add tasks, or organize work within a Basecamp project4041**Tool sequence**:421. `BASECAMP_GET_PROJECTS` - List projects to find the target bucket_id [Prerequisite]432. `BASECAMP_GET_BUCKETS_TODOSETS` - Get the to-do set within a project [Prerequisite]443. `BASECAMP_GET_BUCKETS_TODOSETS_TODOLISTS` - List existing to-do lists to avoid duplicates [Optional]454. `BASECAMP_POST_BUCKETS_TODOSETS_TODOLISTS` - Create a new to-do list in a to-do set [Required for list creation]465. `BASECAMP_GET_BUCKETS_TODOLISTS` - Get details of a specific to-do list [Optional]476. `BASECAMP_POST_BUCKETS_TODOLISTS_TODOS` - Create a to-do item in a to-do list [Required for task creation]487. `BASECAMP_CREATE_TODO` - Alternative tool for creating individual to-dos [Alternative]498. `BASECAMP_GET_BUCKETS_TODOLISTS_TODOS` - List to-dos within a to-do list [Optional]5051**Key parameters for creating to-do lists**:52- `bucket_id`: Integer project/bucket ID (from GET_PROJECTS)53- `todoset_id`: Integer to-do set ID (from GET_BUCKETS_TODOSETS)54- `name`: Title of the to-do list (required)55- `description`: HTML-formatted description (supports Rich text)5657**Key parameters for creating to-dos**:58- `bucket_id`: Integer project/bucket ID59- `todolist_id`: Integer to-do list ID60- `content`: What the to-do is for (required)61- `description`: HTML details about the to-do62- `assignee_ids`: Array of integer person IDs63- `due_on`: Due date in `YYYY-MM-DD` format64- `starts_on`: Start date in `YYYY-MM-DD` format65- `notify`: Boolean to notify assignees (defaults to false)66- `completion_subscriber_ids`: Person IDs notified upon completion6768**Pitfalls**:69- A project (bucket) can contain multiple to-do sets; selecting the wrong `todoset_id` creates lists in the wrong section70- Always check existing to-do lists before creating to avoid near-duplicate names71- Success payloads include user-facing URLs (`app_url`, `app_todos_url`); prefer returning these over raw IDs72- All IDs (`bucket_id`, `todoset_id`, `todolist_id`) are integers, not strings73- Descriptions support HTML formatting only, not Markdown7475### 2. Post and Manage Messages7677**When to use**: User wants to post messages to a project message board or update existing messages7879**Tool sequence**:801. `BASECAMP_GET_PROJECTS` - Find the target project and bucket_id [Prerequisite]812. `BASECAMP_GET_MESSAGE_BOARD` - Get the message board ID for the project [Prerequisite]823. `BASECAMP_CREATE_MESSAGE` - Create a new message on the board [Required]834. `BASECAMP_POST_BUCKETS_MESSAGE_BOARDS_MESSAGES` - Alternative message creation tool [Fallback]845. `BASECAMP_GET_MESSAGE` - Read a specific message by ID [Optional]856. `BASECAMP_PUT_BUCKETS_MESSAGES` - Update an existing message [Optional]8687**Key parameters**:88- `bucket_id`: Integer project/bucket ID89- `message_board_id`: Integer message board ID (from GET_MESSAGE_BOARD)90- `subject`: Message title (required)91- `content`: HTML body of the message92- `status`: Set to `"active"` to publish immediately93- `category_id`: Message type classification (optional)94- `subscriptions`: Array of person IDs to notify; omit to notify all project members9596**Pitfalls**:97- `status="draft"` can produce HTTP 400; use `status="active"` as the reliable option98- `bucket_id` and `message_board_id` must belong to the same project; mismatches fail or misroute99- Message content supports HTML tags only; not Markdown100- Updates via `PUT_BUCKETS_MESSAGES` replace the entire body -- include the full corrected content, not just a diff101- Prefer `app_url` from the response for user-facing confirmation links102- Both `CREATE_MESSAGE` and `POST_BUCKETS_MESSAGE_BOARDS_MESSAGES` do the same thing; use CREATE_MESSAGE first and fall back to POST if it fails103104### 3. Manage People and Access105106**When to use**: User wants to list people, manage project access, or add new users107108**Tool sequence**:1091. `BASECAMP_GET_PEOPLE` - List all people visible to the current user [Required]1102. `BASECAMP_GET_PROJECTS` - Find the target project [Prerequisite]1113. `BASECAMP_LIST_PROJECT_PEOPLE` - List people on a specific project [Required]1124. `BASECAMP_GET_PROJECTS_PEOPLE` - Alternative to list project members [Alternative]1135. `BASECAMP_PUT_PROJECTS_PEOPLE_USERS` - Grant or revoke project access [Required for access changes]114115**Key parameters for PUT_PROJECTS_PEOPLE_USERS**:116- `project_id`: Integer project ID117- `grant`: Array of integer person IDs to add to the project118- `revoke`: Array of integer person IDs to remove from the project119- `create`: Array of objects with `name`, `email_address`, and optional `company_name`, `title` for new users120- At least one of `grant`, `revoke`, or `create` must be provided121122**Pitfalls**:123- Person IDs are integers; always resolve names to IDs via GET_PEOPLE first124- `project_id` for people management is the same as `bucket_id` for other operations125- `LIST_PROJECT_PEOPLE` and `GET_PROJECTS_PEOPLE` are near-identical; use either126- Creating users via `create` also grants them project access in one step127128### 4. Organize To-Dos with Groups129130**When to use**: User wants to organize to-dos within a list into color-coded groups131132**Tool sequence**:1331. `BASECAMP_GET_PROJECTS` - Find the target project [Prerequisite]1342. `BASECAMP_GET_BUCKETS_TODOLISTS` - Get the to-do list details [Prerequisite]1353. `BASECAMP_GET_TODOLIST_GROUPS` - List existing groups in a to-do list [Optional]1364. `BASECAMP_GET_BUCKETS_TODOLISTS_GROUPS` - Alternative group listing [Alternative]1375. `BASECAMP_POST_BUCKETS_TODOLISTS_GROUPS` - Create a new group in a to-do list [Required]1386. `BASECAMP_CREATE_TODOLIST_GROUP` - Alternative group creation tool [Alternative]139140**Key parameters**:141- `bucket_id`: Integer project/bucket ID142- `todolist_id`: Integer to-do list ID143- `name`: Group title (required)144- `color`: Visual color identifier -- one of: `white`, `red`, `orange`, `yellow`, `green`, `blue`, `aqua`, `purple`, `gray`, `pink`, `brown`145- `status`: Filter for listing -- `"archived"` or `"trashed"` (omit for active groups)146147**Pitfalls**:148- `POST_BUCKETS_TODOLISTS_GROUPS` and `CREATE_TODOLIST_GROUP` are near-identical; use either149- Color values must be from the fixed palette; arbitrary hex/rgb values are not supported150- Groups are sub-sections within a to-do list, not standalone entities151152### 5. Browse and Inspect Projects153154**When to use**: User wants to list projects, get project details, or explore project structure155156**Tool sequence**:1571. `BASECAMP_GET_PROJECTS` - List all active projects [Required]1582. `BASECAMP_GET_PROJECT` - Get comprehensive details for a specific project [Optional]1593. `BASECAMP_GET_PROJECTS_BY_PROJECT_ID` - Alternative project detail retrieval [Alternative]160161**Key parameters**:162- `status`: Filter by `"archived"` or `"trashed"`; omit for active projects163- `project_id`: Integer project ID for detailed retrieval164165**Pitfalls**:166- Projects are sorted by most recently created first167- The response includes a `dock` array with tools (todoset, message_board, etc.) and their IDs168- Use the dock tool IDs to find `todoset_id`, `message_board_id`, etc. for downstream operations169170## Common Patterns171172### ID Resolution173Basecamp uses a hierarchical ID structure. Always resolve top-down:174- **Project (bucket_id)**: `BASECAMP_GET_PROJECTS` -- find by name, capture the `id`175- **To-do set (todoset_id)**: Found in project dock or via `BASECAMP_GET_BUCKETS_TODOSETS`176- **Message board (message_board_id)**: Found in project dock or via `BASECAMP_GET_MESSAGE_BOARD`177- **To-do list (todolist_id)**: `BASECAMP_GET_BUCKETS_TODOSETS_TODOLISTS`178- **People (person_id)**: `BASECAMP_GET_PEOPLE` or `BASECAMP_LIST_PROJECT_PEOPLE`179- Note: `bucket_id` and `project_id` refer to the same entity in different contexts180181### Pagination182Basecamp uses page-based pagination on list endpoints:183- Response headers or body may indicate more pages available184- `GET_PROJECTS`, `GET_BUCKETS_TODOSETS_TODOLISTS`, and list endpoints return paginated results185- Continue fetching until no more results are returned186187### Content Formatting188- All rich text fields use HTML, not Markdown189- Wrap content in `<div>` tags; use `<strong>`, `<em>`, `<ul>`, `<ol>`, `<li>`, `<a>` etc.190- Example: `<div><strong>Important:</strong> Complete by Friday</div>`191192## Known Pitfalls193194### ID Formats195- All Basecamp IDs are integers, not strings or UUIDs196- `bucket_id` = `project_id` (same entity, different parameter names across tools)197- To-do set IDs, to-do list IDs, and message board IDs are found in the project's `dock` array198- Person IDs are integers; resolve names via `GET_PEOPLE` before operations199200### Status Field201- `status="draft"` for messages can cause HTTP 400; always use `status="active"`202- Project/to-do list status filters: `"archived"`, `"trashed"`, or omit for active203204### Content Format205- HTML only, never Markdown206- Updates replace the entire body, not a partial diff207- Invalid HTML tags may be silently stripped208209### Rate Limits210- Basecamp API has rate limits; space out rapid sequential requests211- Large projects with many to-dos should be paginated carefully212213### URL Handling214- Prefer `app_url` from API responses for user-facing links215- Do not reconstruct Basecamp URLs manually from IDs216217## Quick Reference218219| Task | Tool Slug | Key Params |220|------|-----------|------------|221| List projects | `BASECAMP_GET_PROJECTS` | `status` |222| Get project | `BASECAMP_GET_PROJECT` | `project_id` |223| Get project detail | `BASECAMP_GET_PROJECTS_BY_PROJECT_ID` | `project_id` |224| Get to-do set | `BASECAMP_GET_BUCKETS_TODOSETS` | `bucket_id`, `todoset_id` |225| List to-do lists | `BASECAMP_GET_BUCKETS_TODOSETS_TODOLISTS` | `bucket_id`, `todoset_id` |226| Get to-do list | `BASECAMP_GET_BUCKETS_TODOLISTS` | `bucket_id`, `todolist_id` |227| Create to-do list | `BASECAMP_POST_BUCKETS_TODOSETS_TODOLISTS` | `bucket_id`, `todoset_id`, `name` |228| Create to-do | `BASECAMP_POST_BUCKETS_TODOLISTS_TODOS` | `bucket_id`, `todolist_id`, `content` |229| Create to-do (alt) | `BASECAMP_CREATE_TODO` | `bucket_id`, `todolist_id`, `content` |230| List to-dos | `BASECAMP_GET_BUCKETS_TODOLISTS_TODOS` | `bucket_id`, `todolist_id` |231| List to-do groups | `BASECAMP_GET_TODOLIST_GROUPS` | `bucket_id`, `todolist_id` |232| Create to-do group | `BASECAMP_POST_BUCKETS_TODOLISTS_GROUPS` | `bucket_id`, `todolist_id`, `name`, `color` |233| Create to-do group (alt) | `BASECAMP_CREATE_TODOLIST_GROUP` | `bucket_id`, `todolist_id`, `name` |234| Get message board | `BASECAMP_GET_MESSAGE_BOARD` | `bucket_id`, `message_board_id` |235| Create message | `BASECAMP_CREATE_MESSAGE` | `bucket_id`, `message_board_id`, `subject`, `status` |236| Create message (alt) | `BASECAMP_POST_BUCKETS_MESSAGE_BOARDS_MESSAGES` | `bucket_id`, `message_board_id`, `subject` |237| Get message | `BASECAMP_GET_MESSAGE` | `bucket_id`, `message_id` |238| Update message | `BASECAMP_PUT_BUCKETS_MESSAGES` | `bucket_id`, `message_id` |239| List all people | `BASECAMP_GET_PEOPLE` | (none) |240| List project people | `BASECAMP_LIST_PROJECT_PEOPLE` | `project_id` |241| Manage access | `BASECAMP_PUT_PROJECTS_PEOPLE_USERS` | `project_id`, `grant`, `revoke`, `create` |242243## When to Use244This skill is applicable to execute the workflow or actions described in the overview.245246## Limitations247- Use this skill only when the task clearly matches the scope described above.248- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.249- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.