basecamp-mcp
MCP server for Basecamp 3 with OAuth, TypeScript, and 47 tools for projects, messages, todos, comments, people, kanban boards, docs & files, and check-ins
Install / Use
claude mcp add stefanoverna -- npx -y github:stefanoverna/basecamp-mcpIf the server publishes to npm under a different name, use that package instead — check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
AI & Machine LearningSupported Platforms
Tags
Skill content
View source on GitHubBasecamp MCP Server
Model Context Protocol (MCP) server for Basecamp. Gives LLMs tools for projects, messages, todos, comments, people, kanban boards, docs & files, check-ins, and campfire chat.
47 tools, published on npm and installable with one npx command: no cloning, no virtualenv, no manual OAuth script to run.
Why this server
- Zero-install setup:
npx basecamp-mcp@latestruns the server directly from npm. Authentication is one MCP tool call (basecamp_login) that opens a browser; there's no separate script to clone and run by hand. - Full Docs & Files support: read and write vaults (folders), documents, and uploads, and download inline
<bc-attachment>blobs embedded in rich text. Images come back inline, text files as text, everything else saved to disk. - Check-ins (Q&A) support: list automatic check-in questions and their answers, or post new answers programmatically.
- Granular content editing: messages, comments, documents, and kanban cards all support append, prepend, and search-replace operations, not just full-text replacement, so an LLM can make a small edit without resending the whole document.
- Cross-project activity feed:
basecamp_list_recordingssearches across every project by type, person, date range, and free text in one call, with automatic response-size management and pagination. - Type-safe end to end: written in TypeScript with Zod schemas validating every tool input.
- Tested against the real API: the test suite exercises every tool category (messages, todos, kanban, comments, docs/files, check-ins, campfires, activity) against a live Basecamp account, not mocks.
Getting Started
The Basecamp MCP server requires Node.js 18+ and works with various MCP clients including Claude Code CLI, Claude Desktop, Cursor, VS Code, and others.
Prerequisites
You need a Basecamp OAuth app. Register one at 37signals Launchpad with the redirect URI set to http://localhost:7652/callback.
Installation
Add the MCP server to your client with your OAuth credentials:
{
"mcpServers": {
"basecamp": {
"command": "npx",
"args": ["-y", "basecamp-mcp@latest"],
"env": {
"BASECAMP_CLIENT_ID": "your_client_id",
"BASECAMP_CLIENT_SECRET": "your_client_secret"
}
}
}
}
Claude Code CLI:
claude mcp add basecamp npx basecamp-mcp@latest \
-e BASECAMP_CLIENT_ID=your_client_id \
-e BASECAMP_CLIENT_SECRET=your_client_secret
Claude Desktop: Follow the MCP install guide using the JSON config above.
Cursor: Add configuration through Settings → Tools & Integrations → New MCP Server.
VS Code:
code --add-mcp '{"name":"basecamp","command":"npx","args":["-y", "basecamp-mcp@latest"]}'
Authentication
Once the MCP server is running, authenticate using the built-in login tool:
- Call
basecamp_loginto open a browser window for Basecamp authorization - Authorize the app in your browser
- If you have multiple Basecamp accounts, call
basecamp_loginagain with the desiredaccount_id - Done! Credentials are saved to
~/.config/basecamp-mcp/credentials.json
Use basecamp_whoami to check who you're logged in as, and basecamp_logout to remove stored credentials.
Configuration
The server requires these environment variables:
BASECAMP_CLIENT_ID— Your Basecamp OAuth client IDBASECAMP_CLIENT_SECRET— Your Basecamp OAuth client secret
Available Tools
Authentication
basecamp_login- Authenticate with Basecamp via OAuth browser flowbasecamp_logout- Remove stored credentialsbasecamp_whoami- Show the currently authenticated user
Projects
basecamp_list_projects- List all accessible projects with optional filteringbasecamp_get_project- Get detailed project information including dock configuration
Messages
basecamp_list_messages- List messages in a message board with optional filteringbasecamp_list_message_types- List available message types/categories for a projectbasecamp_get_message- Get single message detailsbasecamp_create_message- Create new message with optional category and draft statusbasecamp_update_message- Update message with advanced content editing (supports full replacement, append, prepend, search/replace)
TODOs
basecamp_get_todoset- Get todo set container with all todo listsbasecamp_list_todos- List todos in a list with status filtering (active/archived)basecamp_create_todo- Create new todo with optional descriptionbasecamp_update_todo- Update a todo's title, description, due date, or assigneesbasecamp_complete_todo- Mark todo as completebasecamp_uncomplete_todo- Mark todo as incomplete
Comments
basecamp_list_comments- List comments on any resource (works universally on all recording types)basecamp_create_comment- Add comment to any resourcebasecamp_update_comment- Update comment with advanced content editing (supports full replacement, append, prepend, search/replace)
People
basecamp_get_me- Get personal information for the authenticated userbasecamp_list_people- List all people with optional filtering by name, email, or titlebasecamp_get_person- Get person details
Kanban
basecamp_list_kanban_columns- List all columns in a kanban boardbasecamp_list_kanban_cards- List cards in a column with steps and assigneesbasecamp_get_kanban_card- Get complete details of a specific cardbasecamp_create_kanban_card- Create new card with title, content, and optional checklist stepsbasecamp_update_kanban_card- Update card with advanced content editing (supports full replacement, append, prepend, search/replace, plus title, due date, assignees, notifications, and complete step array management)basecamp_move_kanban_card- Move a card to a different column and/or position
Activity
basecamp_list_recordings- Browse recent activity globally or across specific projects, with filtering by type, date range, person, and text search. All filters support multiple values for OR-matching (e.g., multiple project IDs, person IDs, types, or search terms)basecamp_list_campfire_messages- Browse chat messages from Campfires with filtering by campfire, person, text content, and date range. All filters support multiple values for OR-matching
Docs & Files
basecamp_list_vaults- List sub-vaults (folders) under a parent vaultbasecamp_get_vault- Get a vault's details, including document/upload/sub-vault countsbasecamp_create_vault- Create a new vault (folder)basecamp_update_vault- Rename a vaultbasecamp_list_documents- List documents in a vault, with optional title/content filteringbasecamp_get_document- Get a document's full HTML contentbasecamp_create_document- Create a new document (active or draft)basecamp_update_document- Update a document with advanced content editing (supports full replacement, append, prepend, search/replace)basecamp_list_uploads- List files uploaded to a vaultbasecamp_get_upload- Retrieve an uploaded file: images are returned inline, text files as text, other binary formats saved to diskbasecamp_download_blob- Download an inline<bc-attachment>attachment referenced in document/message/comment HTML content
Check-ins (Q&A)
basecamp_get_questionnaire- Get a project's check-ins containerbasecamp_list_questions- List automatic check-in questions with schedule and answer countsbasecamp_get_question- Get a single check-in questionbasecamp_list_answers- List answers to a check-in questionbasecamp_get_answer- Get a single check-in answerbasecamp_create_answer- Post a new answer to a check-in question
Development
# Install dependencies
npm install
# Run type checking
npx tsc --noEmit
# Build
npm run build
# Run the live test suite (requires a real, authenticated Basecamp account)
npm test
# Clean build artifacts
npm run clean
License
MIT
Related Skills
claude-mem
93.3kPersistent Context Across Sessions for Every Agent – Captures everything your agent does during sessions, compresses it with AI, and injects relevant context back into future sessions. Works with Claude Code, OpenClaw, Codex, Gemini, Hermes, Copilot, OpenCode + More
Understand-Anything
81.6kGraphs that teach > graphs that impress. Turn any code into an interactive knowledge graph you can explore, search, and ask questions about. Works with Claude Code, Codex, Cursor, Copilot, Gemini CLI, and more.
Agent-Reach
78.4kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
ruflo
70.9k🌊 The original agent meta-harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adaptive memory, self-learning intelligence, RAG integration, and native Claude Code / Codex / Hermes and many more Integrated
