Basecamp

Provides MCP access to Basecamp 3 data and actions via 46 tools (projects, todos, campfires, documents, cards) using FastMCP.
  • 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
Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational