Basecamp MCP Server
Provides tools for managing Basecamp projects, including listing projects with detailed information, managing to-do sets and lists, accessing message boards with rendered content, and creating new to-dos with optional due dates.
Click on "Deploy 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 Server list my recent projects with their current status"
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 (TypeScript)
A Model Context Protocol (MCP) server that exposes Basecamp tools to AI assistants (e.g., VS Code Chat in Agent mode).
Supports projects, to‑do sets/lists, messages (with rendered content), and creating to‑dos.
Features
Projects
list_projects— rich listing (status, timestamps, purpose, client flags, bookmarks, enabled dock tools)Pagination via HTTP
Linkheader (exposesnextPage)Optional raw dock objects
To‑do sets / lists
Resolves a project’s to‑do set from the project dock
get_todoset— returns to‑do set id/url; optional listslist_todolists— lists to‑do lists for a project’s to‑do set
Messages
list_messages— resolves the project Message Board from dock, lists messages with paginationOptional full content rendering (
markdown/html/text)get_message— fetch a single message (rendered or raw JSON)
To‑dos
create_todo— create a to‑do in a list (title, description, optionaldue_on)
Related MCP server: Basecamp MCP Server
Project layout
src/
├─ lib/
│ └─ basecamp.ts # Basecamp client (auth refresh, requests, pagination)
├─ tools/
│ ├─ projects.ts # list_projects
│ ├─ todosets.ts # get_todoset, list_todolists
│ ├─ messages.ts # list_messages, get_message
│ └─ todos.ts # create_todo
└─ basecamp-mcp.ts # entrypoint (register tools, start stdio server)Quick start
# 1) Install dependencies
npm install
# 2) Build
npm run build
# 3) (Optional) sanity check
node build/basecamp-mcp.js
# (MCP servers sit and wait on stdio; no output is expected here)Environment variables
Add your required values in a .env file at the project root.
This file is referenced by the MCP server configuration below.
Do not commit your
.envfile to version control.
Configure in VS Code (MCP)
Create .vscode/mcp.json in this project:
{
"servers": {
"basecamp": {
"type": "stdio",
"command": "node",
"args": ["${workspaceFolder}/build/basecamp-mcp.js"],
"envFile": "${workspaceFolder}/.env"
}
}
}Now restart the server from VS Code:
Command Palette → “MCP: List Servers” → basecamp → Start/Restart
Open Chat, switch to Agent, enable the basecamp tools.
Example tool calls (Agent mode)
Projects (JSON with dock):
Run basecamp.list_projects with { "format": "json", "dock_detail": true, "limit": 5 }or natural language
retrieve all project informationResolve to‑do set and lists:
Run basecamp.get_todoset with { "project_id": 123456789 }
Run basecamp.list_todolists with { "project_id": 123456789 }Natural language example
show todo sets and lists for project "{{prpjectName / Id}}"Create a to‑do:
Run basecamp.create_todo with { "project_id": 123456789, "todolist_id": 222222222, "content": "Kickoff", "due_on": "2025-09-30" }Natural language example
create a to-do in the "{to do list name}", titled "Update README.md"Messages (rendered content):
Run basecamp.list_messages with { "project_id": 123456789, "page": 1, "format": "markdown", "include_body": true }
Run basecamp.get_message with { "project_id": 123456789, "message_id": 987654321, "render": "markdown" }or
get all messages from TestMCP projectget content for this message "{messageId / title"Pagination: responses include
nextPagefrom the RFC5988Linkheader. Call again with{ "page": <nextPage> }.
Troubleshooting (quick)
ESM import errors: make sure your project is configured for ESM/NodeNext (standard TS/Node setup).
401/429 from API: verify tokens and reduce request volume; the client retries once on
429usingRetry-After.No to‑do set / message board: that project may not have those tools enabled in its dock.
License
Acknowledgments
Available Tools
6 toolscreate_todoCreate a to-doC
Create a new to-do in the given list.
Inputs: project_id (required), todolist_id (required), content (required), description, +1 more.
get_messageGet a messageB
Fetch a single message by ID; render body as markdown/html/text, or return raw JSON.
Inputs: project_id (required), message_id (required), render.
get_todosetGet a project's to-do set (via dock)C
Resolves the project's to-do set by reading the dock; can include lists.
Inputs: project_id (required), include_lists.
list_messagesList messagesC
Resolves the project's message board from the dock, then lists messages with pagination. Optionally include full content.
Inputs: project_id (required), page, limit, format, +2 more.
list_projectsList Basecamp projects (rich)B
Returns id, name, status, timestamps, purpose, clients_enabled, bookmarked, and enabled dock tools. Supports pagination and JSON output.
Inputs: limit, page, include_archived, include_dock, +2 more.
list_todolistsList to-do lists for a projectC
Resolves the project's to-do set from dock, then lists its to-do lists.
Inputs: project_id (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 6 tools
The tools are mostly distinct, with clear separation between to-do, message, and project operations. However, 'get_todoset' and 'list_todolists' could be slightly confusing as both relate to to-do lists, though 'get_todoset' focuses on resolving the set while 'list_todolists' lists the lists within it, which helps mitigate overlap.
All tool names follow a consistent verb_noun pattern (e.g., create_todo, get_message, list_projects), using snake_case throughout. This predictability makes it easy for agents to understand and navigate the tool set without confusion.
With 6 tools, the count is reasonable for a Basecamp server, covering core operations like creating to-dos and listing projects. It's slightly lean but well-scoped, though it could benefit from additional tools for updates or deletions to enhance completeness.
The tools cover basic read and create operations for to-dos, messages, and projects, but there are notable gaps. For example, there are no update or delete tools for to-dos or messages, and operations like creating messages or projects are missing, which could limit agent workflows in a CRUD context.
Maintenance
Related MCP Connectors
Manage Redbooth tasks, task lists, comments, tags and files from Claude and other AI assistants.
Create and manage MeisterTask projects, tasks, and notes from your AI assistant.
Manage tasks, Focus Zone, notes, projects, and task history from compatible AI assistants.
Manage projects, tasks, time tracking, and team collaboration through natural language.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables seamless integration with Basecamp 3 through 46 comprehensive API tools, allowing users to manage projects, todos, card tables, documents, campfire messages, and other Basecamp features through natural language interactions in Claude Desktop and Cursor IDE.335MIT
- AlicenseBqualityDmaintenanceConnects Basecamp workspaces to AI tools, enabling management of projects, messages, todos, and schedules through natural language interactions. Features persistent caching and supports both reading workspace data and performing actions like creating messages and updating todos.10MIT
- AlicenseAqualityBmaintenanceEnables LLMs to interact with Basecamp projects, managing messages, todos, comments, people, and kanban boards through natural language. Supports comprehensive Basecamp operations including creating, reading, updating content with flexible output formats and URL parsing capabilities.5795 npm2MIT
- AlicenseCqualityCmaintenanceEnables AI assistants to automate Basecamp operations including project management, cards, todos, comments, and people via MCP tools.92GPL 2.0