> This page is for Workforce.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.merge.dev/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.merge.dev/_mcp/server.

# Basecamp

**Authentication:** OAuth. See [Magic Link](/merge-agent-handler/features/magic-link) for the runtime auth flow, or [Application credentials](/merge-agent-handler/admin-setup/add-oauth-credentials) to bring your own OAuth app.

## Sample use cases

* List every to-do assigned to me across all Basecamp projects, sorted by due date.
* Post the standup summary from this morning's huddle to the `Engineering Internal` campfire.
* Find every overdue task in the `Q2 Launch` project and ping the owner.

## Available Tools

#### list_comments

List all comments on a recording (todo, message, etc.). Returns paginated list of active comments.

#### get_comment

Get a specific comment by ID with full details including content and creator.

#### create_comment

Create a new comment on a recording (todo, message, etc.). Content must be HTML formatted.

#### update_comment

Update an existing comment's content. Content must be HTML formatted.

#### list_people

List all people visible to the current user in the Basecamp account.

#### get_person

Get a specific person by ID with full profile details.

#### get_current_user

Get the current authenticated user's profile.

#### get_project_people

Get all active people on a specific project.

#### list_projects

List all projects accessible to the user. Returns active projects by default. Use status to filter.

#### get_project

Get a specific project by ID with full details including dock items and tools.

#### create_project

Create a new project. Requires a name. Optional: description.

#### update_project

Update a project's name and/or description.

#### list_schedule_entries

List all schedule entries in a schedule. Returns active entries by default. Use status to filter.

#### get_schedule_entry

Get a specific schedule entry by ID with full details including participants and recurrence.

#### create_schedule_entry

Create a new schedule entry. Requires summary, starts_at, and ends_at. Optional: description, participants.

#### update_schedule_entry

Update a schedule entry. All fields are optional - only provided fields will be updated.

#### list_todos

List todos in a todolist. Returns active pending todos by default. Use status/completed params to filter.

#### get_todo

Get a specific todo by ID with full details including assignees, dates, and completion status.

#### create_todo

Create a new todo in a todolist. Requires content (title). Optional: description, assignees, due date.

#### update_todo

Update a todo. Content is always required. Pass all fields you want to keep; omitted fields may be cleared.

#### complete_todo

Mark a todo as completed.

#### uncomplete_todo

Mark a completed todo as incomplete/pending again.

#### list_todolists

List all todolists in a todoset/project. Returns active lists by default. Use status to filter.

#### get_todolist

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_todolist

Create a new todolist in a todoset.

#### update_todolist

Update a todolist name and description. Name is required and cannot be blank.