Basecamp MCP Integration
@georgeantonopoulos
MCP server for Basecamp 3 with OAuth, FastMCP, and 75 tools for projects, todos, messages, card tables, docs, uploads, and search.
Overview
What is Basecamp MCP Integration?
Basecamp MCP Integration is an MCP server for Basecamp 3 that enables MCP-capable clients such as Codex, Cursor, and Claude Desktop to read and manage Basecamp projects through OAuth-authenticated Basecamp API calls. It exposes 79 tools covering projects, todos, message boards, campfires, card tables, inbox forwards, documents, uploads, comments, events, webhooks, and search.
How to use Basecamp MCP Integration?
Clone the repository, install dependencies (using uv or python setup.py), create a .env file with your Basecamp OAuth client ID, secret, account ID, and user agent, then run python oauth_app.py and complete the OAuth flow at http://localhost:8000. After authentication, generate your MCP client configuration with generate_codex_config.py, generate_cursor_config.py, or generate_claude_desktop_config.py, then restart your client. Verify the server by running printf commands through python basecamp_fastmcp.py.
Key features of Basecamp MCP Integration
- Browse and search Basecamp projects, todos, messages, and more.
- Read and manage todolists, todos, and completion states.
- Create and read messages, drafts, and campfire lines.
- Work with card tables, columns, cards, and card steps.
- Upload attachments, download uploads and inline attachments.
- List events and manage webhooks.
Use cases of Basecamp MCP Integration
- Show all Basecamp projects and their details.
- Search across projects, todos, messages, and uploads.
- Create and manage todos, todolists, and card table cards.
- Post announcements or draft messages to project message boards.
- Download attachments from comments or vault uploads for model analysis.
FAQ from Basecamp MCP Integration
What are the runtime requirements?
Python 3.10+ and a Basecamp 3 account. You also need a Basecamp OAuth application from https://launchpad.37signals.com/integrations and an MCP client that can run local servers, such as Codex, Cursor, or Claude Desktop.
How do I authenticate?
Create an OAuth app, fill in .env with your client ID, secret, account ID, and user agent, then run python oauth_app.py and complete the browser flow at http://localhost:8000. Tokens are stored locally in oauth_tokens.json by default.
Where are OAuth tokens stored and can I change the path?
By default, tokens are stored in <project>/oauth_tokens.json. To use a different path, set the BASECAMP_MCP_TOKEN_FILE environment variable. The server expands ~ and environment variables in that path and attempts to set file permissions to 0o600.
Which MCP clients support the download tools?
download_upload and download_attachment return MCP content blocks. As of June 2026, Claude Code (CLI) fully supports all binary blob resources. Claude Desktop and claude.ai web support image content blocks but reject non-image EmbeddedResource blocks like PDFs.
How should I secure this server?
Do not commit .env or oauth_tokens.json. Use a descriptive USER_AGENT with contact information. Keep token files on local or appropriately permissioned storage. This server is designed for local MCP client use; review code before exposing it on a network.