
List all comments on a recording (todo, message, etc.). Returns paginated list of active comments.
Get a specific comment by ID with full details including content and creator.
Create a new comment on a recording (todo, message, etc.). Content must be HTML formatted.
Update an existing comment's content. Content must be HTML formatted.
List all people visible to the current user in the Basecamp account.
Get a specific person by ID with full profile details.
Get the current authenticated user's profile.
Get all active people on a specific project.
List all projects accessible to the user. Returns active projects by default. Use status to filter.
Get a specific project by ID with full details including dock items and tools.
Create a new project. Requires a name. Optional: description.
Update a project's name and/or description.
List all schedule entries in a schedule. Returns active entries by default. Use status to filter.
Get a specific schedule entry by ID with full details including participants and recurrence.
Create a new schedule entry. Requires summary, startsat, and endsat. Optional: description, participants.
Update a schedule entry. All fields are optional - only provided fields will be updated.
List todos in a todolist. Returns active pending todos by default. Use status/completed params to filter.
Get a specific todo by ID with full details including assignees, dates, and completion status.
Create a new todo in a todolist. Requires content (title). Optional: description, assignees, due date.
Update a todo. Content is always required. Pass all fields you want to keep; omitted fields may be cleared.
Mark a todo as completed.
Mark a completed todo as incomplete/pending again.
List all todolists in a todoset/project. Returns active lists by default. Use status to filter.
Get a specific todolist by ID with details including completion ratio and todo count. Optionally provide the 'url' field from list_todolists response for direct access.
Create a new todolist in a todoset. Requires a name. Optional: HTML description. If the standard endpoint returns 404, provide the 'url' parameter with the todolists_url from the todoset (get it via GET /buckets/{id}/todosets/{id}.json).
Update a todolist name and description. Name is required and cannot be blank.
Validate Basecamp credentials. Verifies credentials during setup.

In an mcp.json file, add the configuration below, and restart Cursor.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "url": "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
5 "headers": {
6 "Authorization": "Bearer yMt*****"
7 }
8 }
9 }
10}
11Open your Claude Desktop configuration file and add the server configuration below. You'll also need to restart the application for the changes to take effect.
Make sure Claude is using the Node v20+.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "yMt*****"
14 }
15 }
16 }
17}Open your Windsurf MCP configuration file and add the server configuration below.
Click on the refresh button in the top right of the Manage MCP server page or in the top right of the chat box in the box icon.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api.merge.dev/api/v1/tool-packs/<tool-pack-id>/registered-users/<registered-user-id>/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "<ah-production-access-key>"
14 }
15 }
16 }
17 }In Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows), run "MCP: Open User Configuration".
You can then add the configuration below and press "start" right under servers. Enter the auth token when prompted.
Learn more in the official documentation ↗
1{
2 "inputs": [
3 {
4 "type": "promptString",
5 "id": "agent-handler-auth",
6 "description": "Agent Handler AUTH_TOKEN", // "yMt*****" when prompt
7 "password": true
8 }
9 ],
10 "servers": {
11 "agent-handler": {
12 "type": "stdio",
13 "command": "npx",
14 "args": [
15 "-y",
16 "mcp-remote@latest",
17 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
18 "--header",
19 "Authorization: Bearer ${input:agent-handler-auth}"
20 ]
21 }
22 }
23}It’s an MCP server that exposes data and functionality from an instance of Basecamp via tools. Your agents can call these tools to perform a wide range of tasks, from create a to-do task to updating a project’s name.
Here are just a few use cases (these also apply to other project management MCP servers):
Here are a few tools across data types:
Comments
Projects
To-dos
Merge Agent Handler’s Basecamp MCP server offers more robust, enterprise-grade platform capabilities:
Yes. Merge Agent Handler includes a security gateway with Data Loss Protection (DLP) that allows default and custom rules to scan tool inputs and outputs and take actions such as blocking or redacting sensitive data.
Here are some examples:
You can take these steps:
1. Sign up for Merge Agent Handler (create a free account).
2. Create a Tool Pack (this is where you bundle the tools you want your agent to have).
3. Add the Basecamp connector to that Tool Pack.
4. Create a Registered User (this represents the identity that will authenticate and perform Basecamp actions through your agent).
5. Authenticate Basecamp for that Registered User (so tool calls have the right permissions).
6. Save the Tool Pack, then copy the MCP server URL from the Tool Pack setup for that Registered User.
7. Paste that MCP server URL into your agent client or IDE MCP configuration (for example, Cursor, Windsurf, or Claude Desktop), then refresh/restart the client.
8. Run a simple test prompt to confirm the Basecamp tools are available and generating logs (check the Logs page to verify tool calls are being captured).
Yes, Agent Handler for Employees lets your employees connect Claude, ChatGPT, Microsoft Copilot, Cursor, and other MCP-compatible AI tools to Basecamp without bypassing IT governance.
Instead of setting up direct connections with personal credentials that IT can't monitor or revoke, each employee authenticates through Agent Handler and gets individual credentials tied to their identity.
IT also provisions access by role or group via SCIM. A project manager, for example, gets Basecamp access to track milestones and to-dos, Slack to coordinate with the team, and Google Drive to manage project assets; while a software engineer gets Basecamp access to monitor task assignments, GitHub to link code changes to project discussions, and Jira to track bugs alongside Basecamp deliverables.
Every tool call an employee's AI makes to Basecamp is also inspected against your DLP rules and logged to a searchable audit trail, giving security teams full visibility into what data was accessed and by whom.
Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now