Basecamp CLI
Full-featured CLI and MCP server for Basecamp 4 API.
Features
- 21 CLI command groups covering all Basecamp 4 domains
- 76 MCP tools for AI assistant integration
- Automatic pagination and retry with exponential backoff
- OAuth 2.0 authentication with PKCE
Installation
npm install -g @drkraft/basecamp-cli
Requirements
Authentication Setup
- Create an OAuth app at https://launchpad.37signals.com/integrations
- Set redirect URI to
http://localhost:9292/callback
- Configure credentials:
basecamp auth configure --client-id <your-client-id>
export BASECAMP_CLIENT_SECRET="<your-client-secret>"
export BASECAMP_CLIENT_ID="<your-client-id>"
- Login:
basecamp auth login
MCP Server Configuration
Add to your MCP config (e.g., ~/.config/claude/claude_desktop_config.json):
{
"mcpServers": {
"basecamp": {
"command": "basecamp-mcp",
"env": {
"BASECAMP_CLIENT_ID": "<your-client-id>",
"BASECAMP_CLIENT_SECRET": "<your-client-secret>"
}
}
}
}
Available MCP Tools (76)
| Category |
Tools |
| Projects |
basecamp_list_projects, basecamp_get_project, basecamp_create_project, basecamp_archive_project |
| Todo Lists |
basecamp_list_todolists, basecamp_get_todolist, basecamp_create_todolist, basecamp_delete_todolist |
| Todo Groups |
basecamp_list_todolist_groups, basecamp_create_todolist_group |
| Todos |
basecamp_list_todos, basecamp_get_todo, basecamp_create_todo, basecamp_update_todo, basecamp_complete_todo, basecamp_uncomplete_todo, basecamp_delete_todo, basecamp_move_todo |
| Messages |
basecamp_list_messages, basecamp_get_message, basecamp_create_message |
| People |
basecamp_list_people, basecamp_get_person, basecamp_get_me |
| Comments |
basecamp_list_comments, basecamp_get_comment, basecamp_create_comment, basecamp_update_comment, basecamp_delete_comment |
| Vaults |
basecamp_list_vaults, basecamp_get_vault, basecamp_create_vault, basecamp_update_vault |
| Documents |
basecamp_list_documents, basecamp_get_document, basecamp_create_document, basecamp_update_document |
| Uploads |
basecamp_list_uploads, basecamp_get_upload, basecamp_create_upload, basecamp_update_upload |
| Schedules |
basecamp_get_schedule, basecamp_list_schedule_entries, basecamp_get_schedule_entry, basecamp_create_schedule_entry, basecamp_update_schedule_entry, basecamp_delete_schedule_entry |
| Card Tables |
basecamp_get_card_table, basecamp_get_column, basecamp_create_column, basecamp_update_column, basecamp_delete_column, basecamp_list_cards, basecamp_get_card, basecamp_create_card, basecamp_update_card, basecamp_move_card, basecamp_delete_card |
| Search |
basecamp_search |
| Recordings |
basecamp_list_recordings, basecamp_archive_recording, basecamp_restore_recording, basecamp_trash_recording |
| Subscriptions |
basecamp_list_subscriptions, basecamp_subscribe, basecamp_unsubscribe |
| Webhooks |
basecamp_list_webhooks, basecamp_get_webhook, basecamp_create_webhook, basecamp_update_webhook, basecamp_delete_webhook, basecamp_test_webhook |
| Events |
basecamp_list_events |
| Campfires |
basecamp_list_campfires, basecamp_get_campfire_lines, basecamp_send_campfire_line |
CLI Quick Reference
# Projects
basecamp projects list
basecamp projects get <id>
# Todos
basecamp todolists list --project <id>
basecamp todos list --project <id> --list <list-id>
basecamp todos create --project <id> --list <list-id> --content "Task"
basecamp todos complete <id> --project <id>
basecamp todos delete <id> --project <id>
basecamp todos move <id> --project <id> --list <target-list-id>
# Messages
basecamp messages list --project <id>
basecamp messages create --project <id> --subject "Title" --content "<p>Body</p>"
# Kanban
basecamp cardtables get --project <id>
basecamp cardtables cards --project <id> --column <col-id>
basecamp cardtables create-card --project <id> --column <col-id> --title "Card"
# Search
basecamp search "keyword"
basecamp search "keyword" --type Todo --project <id>
All commands support --format json for JSON output.
Links
1---2name: basecamp-cli-23description: CLI and MCP server for Basecamp 4. Use when you need to interact with Basecamp projects, todos, messages, schedules, kanban cards, documents, or campfires. Provides 76 MCP tools for AI-driven project management workflows.4---56# Basecamp CLI78Full-featured CLI and MCP server for Basecamp 4 API.910## Features1112- **21 CLI command groups** covering all Basecamp 4 domains13- **76 MCP tools** for AI assistant integration14- Automatic pagination and retry with exponential backoff15- OAuth 2.0 authentication with PKCE1617## Installation1819```bash20npm install -g @drkraft/basecamp-cli21```2223## Requirements2425- Node.js >= 202627## Authentication Setup28291. Create an OAuth app at https://launchpad.37signals.com/integrations30 - Set redirect URI to `http://localhost:9292/callback`312. Configure credentials:32```bash33basecamp auth configure --client-id <your-client-id>34export BASECAMP_CLIENT_SECRET="<your-client-secret>"35export BASECAMP_CLIENT_ID="<your-client-id>"36```373. Login:38```bash39basecamp auth login40```4142## MCP Server Configuration4344Add to your MCP config (e.g., `~/.config/claude/claude_desktop_config.json`):4546```json47{48 "mcpServers": {49 "basecamp": {50 "command": "basecamp-mcp",51 "env": {52 "BASECAMP_CLIENT_ID": "<your-client-id>",53 "BASECAMP_CLIENT_SECRET": "<your-client-secret>"54 }55 }56 }57}58```5960## Available MCP Tools (76)6162| Category | Tools |63|----------|-------|64| Projects | `basecamp_list_projects`, `basecamp_get_project`, `basecamp_create_project`, `basecamp_archive_project` |65| Todo Lists | `basecamp_list_todolists`, `basecamp_get_todolist`, `basecamp_create_todolist`, `basecamp_delete_todolist` |66| Todo Groups | `basecamp_list_todolist_groups`, `basecamp_create_todolist_group` |67| Todos | `basecamp_list_todos`, `basecamp_get_todo`, `basecamp_create_todo`, `basecamp_update_todo`, `basecamp_complete_todo`, `basecamp_uncomplete_todo`, `basecamp_delete_todo`, `basecamp_move_todo` |68| Messages | `basecamp_list_messages`, `basecamp_get_message`, `basecamp_create_message` |69| People | `basecamp_list_people`, `basecamp_get_person`, `basecamp_get_me` |70| Comments | `basecamp_list_comments`, `basecamp_get_comment`, `basecamp_create_comment`, `basecamp_update_comment`, `basecamp_delete_comment` |71| Vaults | `basecamp_list_vaults`, `basecamp_get_vault`, `basecamp_create_vault`, `basecamp_update_vault` |72| Documents | `basecamp_list_documents`, `basecamp_get_document`, `basecamp_create_document`, `basecamp_update_document` |73| Uploads | `basecamp_list_uploads`, `basecamp_get_upload`, `basecamp_create_upload`, `basecamp_update_upload` |74| Schedules | `basecamp_get_schedule`, `basecamp_list_schedule_entries`, `basecamp_get_schedule_entry`, `basecamp_create_schedule_entry`, `basecamp_update_schedule_entry`, `basecamp_delete_schedule_entry` |75| Card Tables | `basecamp_get_card_table`, `basecamp_get_column`, `basecamp_create_column`, `basecamp_update_column`, `basecamp_delete_column`, `basecamp_list_cards`, `basecamp_get_card`, `basecamp_create_card`, `basecamp_update_card`, `basecamp_move_card`, `basecamp_delete_card` |76| Search | `basecamp_search` |77| Recordings | `basecamp_list_recordings`, `basecamp_archive_recording`, `basecamp_restore_recording`, `basecamp_trash_recording` |78| Subscriptions | `basecamp_list_subscriptions`, `basecamp_subscribe`, `basecamp_unsubscribe` |79| Webhooks | `basecamp_list_webhooks`, `basecamp_get_webhook`, `basecamp_create_webhook`, `basecamp_update_webhook`, `basecamp_delete_webhook`, `basecamp_test_webhook` |80| Events | `basecamp_list_events` |81| Campfires | `basecamp_list_campfires`, `basecamp_get_campfire_lines`, `basecamp_send_campfire_line` |8283## CLI Quick Reference8485```bash86# Projects87basecamp projects list88basecamp projects get <id>8990# Todos91basecamp todolists list --project <id>92basecamp todos list --project <id> --list <list-id>93basecamp todos create --project <id> --list <list-id> --content "Task"94basecamp todos complete <id> --project <id>95basecamp todos delete <id> --project <id>96basecamp todos move <id> --project <id> --list <target-list-id>9798# Messages99basecamp messages list --project <id>100basecamp messages create --project <id> --subject "Title" --content "<p>Body</p>"101102# Kanban103basecamp cardtables get --project <id>104basecamp cardtables cards --project <id> --column <col-id>105basecamp cardtables create-card --project <id> --column <col-id> --title "Card"106107# Search108basecamp search "keyword"109basecamp search "keyword" --type Todo --project <id>110```111112All commands support `--format json` for JSON output.113114## Links115116- [Full Documentation](https://github.com/drkraft/basecamp-cli)117- [npm Package](https://www.npmjs.com/package/@drkraft/basecamp-cli)118- [Basecamp API Reference](https://github.com/basecamp/bc3-api)