- Home
- MCP servers
- Basecamp
Basecamp
- python
42
GitHub Stars
python
Language
6 months ago
First Indexed
2 months ago
Catalog Refreshed
Documentation & install
Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.
Installation
Add the following to your MCP client configuration file.
Configuration
View docs{
"mcpServers": {
"georgeantonopoulos-basecamp-mcp-server": {
"command": "/path/to/your/project/venv/bin/python",
"args": [
"/path/to/your/project/basecamp_fastmcp.py"
],
"env": {
"PYTHONPATH": "/path/to/your/project",
"USER_AGENT": "Your App Name (your@email.com)",
"VIRTUAL_ENV": "/path/to/your/project/venv",
"BASECAMP_CLIENT_ID": "your_client_id_here",
"BASECAMP_ACCOUNT_ID": "your_account_id",
"BASECAMP_CLIENT_SECRET": "your_client_secret_here"
}
}
}
}You can integrate Basecamp 3 with MCP to control Basecamp resources directly from Cursor or Claude Desktop. This MCP server uses the official FastMCP framework to provide 46 tools for complete Basecamp management, including projects, todos, campfires, documents, and card tables, with production-ready protocol compliance.
How to use
After you have the MCP server running, you connect your MCP client (Cursor or Claude Desktop) to the local MCP process. You will enable the basecamp MCP server in the client’s MCP configuration and then you can start using the 46 available tools to interact with Basecamp data. Practical workflows include listing projects, reading todo lists, creating cards in a column, uploading attachments, and querying messages across projects.
How to install
Prerequisites: Python 3.8 or newer, a Basecamp 3 account, and a Basecamp OAuth application.
# 1) Clone the project and install dependencies
git clone <repository-url>
cd basecamp-mcp
python setup.py
# 2) Configure OAuth credentials
# This will generate a .env template and secure storage for tokens
Configure the environment with your Basecamp OAuth credentials and account ID.
BASECAMP_CLIENT_ID=your_client_id_here
BASECAMP_CLIENT_SECRET=your_client_secret_here
BASECAMP_ACCOUNT_ID=your_account_id_here
USER_AGENT="Your App Name (your@email.com)"
Authenticate with Basecamp to establish a working session. You will authorize the app in a local web UI.
python oauth_app.py
Visit http://localhost:8000 and complete the OAuth flow.
Start the MCP server script that exposes the Basecamp tools through MCP.
python basecamp_fastmcp.py
Optionally generate client configurations for Cursor or Claude Desktop, then restart your MCP client to pick up the new server.
## Additional configuration and security notes
The server stores OAuth tokens locally for security. Keep the .env file secure and do not commit it to version control. The OAuth tokens are stored in oauth\_tokens.json.
For Claude Desktop integration, you can generate the configuration so Claude Desktop can connect to the local MCP server. The config typically resides under your user profile’s Claude configuration directory and references the local start command and environment.
## Troubleshooting
If you see that tools are not available, ensure the virtual environment contains the MCP packages and that you restarted the client completely after starting the MCP server.
Check the OAuth flow if authentication fails. Re-run the authentication step and verify that the local OAuth flow completes successfully.
## Available tools
### get\_projects
Fetch all Basecamp projects with details and metadata
### get\_project
Fetch details for a specific Basecamp project by ID
### get\_todolists
Retrieve todo lists within a given project
### get\_todos
Retrieve todos from a todo list, with Basecamp pagination handled transparently
### search\_basecamp
Search across projects, todos, and messages for a query string
### get\_comments
Get comments for a Basecamp item (card, message, file)
### create\_comment
Create a new comment on a Basecamp item
### get\_campfire\_lines
Get recent messages from a Basecamp campfire
### get\_daily\_check\_ins
Get daily check-in questions for a project
### get\_question\_answers
Get answers to daily check-in questions
### create\_attachment
Upload a file as an attachment to a Basecamp item
### get\_events
Get events for a recording
### get\_webhooks
List webhooks for a project
### create\_webhook
Create a webhook for a project
### delete\_webhook
Delete a webhook
### get\_documents
List documents in a vault
### get\_document
Get a single document by ID
### create\_document
Create a new document in a vault
### update\_document
Update an existing document
### trash\_document
Move a document to trash
### get\_card\_table
Get the card table details for a project
### get\_columns
List all columns in a card table
### get\_column
Get details for a specific column
### create\_column
Create a new column in a card table
### update\_column
Update a column title
### move\_column
Move a column to a new position
### update\_column\_color
Update a column color
### put\_column\_on\_hold
Put a column on hold (freeze work)
### remove\_column\_hold
Remove hold from a column
### watch\_column
Subscribe to notifications for changes in a column
### unwatch\_column
Unsubscribe from notifications for a column
### get\_cards
Get all cards in a column
### get\_card
Get details for a specific card
### create\_card
Create a new card in a column
### update\_card
Update a card
### move\_card
Move a card to a new column
### complete\_card
Mark a card as complete
### uncomplete\_card
Mark a card as incomplete
### get\_card\_steps
Get all steps for a card
### create\_card\_step
Create a new step for a card
### get\_card\_step
Get details for a specific card step
### update\_card\_step
Update a card step
### delete\_card\_step
Delete a card step
### complete\_card\_step
Mark a card step as complete
### uncomplete\_card\_step
Mark a card step as incomplete