basecamp-mcp-server
Provides tools for managing Basecamp projects, messages, to-dos, recordings, and Card Tables, including reading and writing capabilities with safety controls.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@basecamp-mcp-serverList all projects in my Basecamp account."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Basecamp MCP Server
An open-source Model Context Protocol server for Basecamp projects, messages, to-dos, recordings, and Card Tables. It was designed for operational workflows where an AI assistant needs to find work items, preview updates, and write back only after explicit approval.
This is an independent community project. It is not affiliated with, sponsored by, or endorsed by 37signals or Basecamp.
Highlights
Discover projects and enabled project tools.
Search to-dos and Card Table cards by title or assignee.
Follow Basecamp pagination automatically.
Preview Card Table comments before writing.
Add comments, investigation reports, and due dates to existing cards.
Create messages and to-dos when write tools are explicitly enabled.
Refuse ambiguous title-based writes when multiple items match.
Keep every mutation tool disabled by default.
Related MCP server: Basecamp MCP Server
Requirements
Python 3.11 or newer.
A Basecamp OAuth application.
An MCP-compatible client such as Kiro, Claude Desktop, or another stdio host.
Install from GitHub
uv tool install git+https://github.com/thiagorchaves/basecamp-mcp-server.gitFor development:
git clone https://github.com/thiagorchaves/basecamp-mcp-server.git
cd basecamp-mcp-server
uv sync --extra devConfigure Basecamp OAuth
Register an application in the 37signals integrations console and use this redirect URI:
http://localhost:8000/callbackCreate your local environment file:
cp .env.example .env
chmod 600 .envSet at least:
BASECAMP_CLIENT_ID=your_oauth_client_id
BASECAMP_CLIENT_SECRET=your_oauth_client_secret
BASECAMP_REDIRECT_URI=http://localhost:8000/callback
BASECAMP_USER_AGENT=Basecamp MCP Server (you@example.com)Authorize the application:
basecamp-oauthThe command stores the access token, refresh token, expiration timestamp, and,
when only one Basecamp account is available, the account ID in .env.
Refresh an expired access token with:
basecamp-oauth --refreshTest the connection:
basecamp-testWrite safety
Mutation tools are not registered unless this variable is enabled:
BASECAMP_ENABLE_WRITE_TOOLS=trueKeep it false for read-only usage. Even when writes are enabled, do not add
mutation tools to an MCP client's automatic approval list.
Kiro configuration
{
"mcpServers": {
"basecamp": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/thiagorchaves/basecamp-mcp-server.git",
"basecamp-mcp"
],
"env": {
"BASECAMP_ACCOUNT_ID": "${BASECAMP_ACCOUNT_ID}",
"BASECAMP_ACCESS_TOKEN": "${BASECAMP_ACCESS_TOKEN}",
"BASECAMP_USER_AGENT": "${BASECAMP_USER_AGENT}",
"BASECAMP_ENABLE_WRITE_TOOLS": "false"
},
"autoApprove": []
}
}
}Change BASECAMP_ENABLE_WRITE_TOOLS to true only for sessions that need to
modify Basecamp.
Tools
Read-only
healthchecklist_projects,find_projects,find_project_by_name,get_projectget_project_toolslist_messageslist_todolists,list_project_todolists,list_todoslist_project_todos,find_todos_by_titleget_recordinglist_project_card_tables,get_card_table,list_cardsfind_cards_by_title,find_cards_by_assignee,get_my_cardspreview_card_update
Write-enabled
create_message,create_project_messagecreate_project_message_from_markdowncreate_todo,create_todo_from_markdownadd_comment,comment_recording_from_markdown,comment_cardupdate_card_by_title,update_card_table_card_by_titleadd_card_update,add_investigation_report_to_cardupdate_card_due_date
Recommended agent workflow
Find the project and target card.
Display its title, column, URL, and current due date.
Call
preview_card_update.Ask the user for explicit confirmation.
Perform the write.
Read the resource again and report the final state.
Development
uv sync --extra dev
uv run ruff format --check .
uv run ruff check .
uv run mypy basecamp_mcp
uv run pytestSecurity
Never commit .env, OAuth tokens, account IDs from private environments, or
real API responses containing people and project data. See SECURITY.md
for vulnerability reporting.
License
MIT. See LICENSE.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/thiagorchaves/basecamp-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server