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.
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)
Project layout
Quick start
Environment variables
Add your required values in a 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:
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):
or natural language
Resolve to‑do set and lists:
Natural language example
Create a to‑do:
Natural language example
Messages (rendered content):
or
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.