Basecamp MCP Server for Cloudflare Workers
Test Basecamp tools directly in your browser. Select a tool and provide inputs to see the results.
Create a free account to test Basecamp tools interactively. No credit card required.
basecamp_trash_projectMove a Basecamp project to trash. Args: - projectId: Project ID to trash Returns: Confirmation of deletion.
basecamp_uncomplete_todoMark a to-do as incomplete. Args: - projectId: The project ID - todoId: The to-do ID Returns: Confirmation.
basecamp_list_campfiresList all Campfires visible to the current user. Returns: Paginated list of all Campfires across projects.
basecamp_get_campfireGet a Campfire by ID. Args: - projectId: The project ID - campfireId: The Campfire ID - format: Response format Returns: The Campfire with topic and lines URL.
basecamp_list_campfire_linesList chat messages in a Campfire. Args: - projectId: The project ID - campfireId: The Campfire ID - format: Response format Returns: Paginated list of chat lines/messages.
basecamp_get_campfire_lineGet a single Campfire chat message. Args: - projectId: The project ID - lineId: The line/message ID - format: Response format Returns: The chat message with content and creator.
basecamp_create_campfire_linePost a new message to a Campfire. Args: - projectId: The project ID - campfireId: The Campfire ID - content: The message content (plain text) Returns: The created chat message.
basecamp_delete_campfire_lineDelete a Campfire chat message. Args: - projectId: The project ID - lineId: The line/message ID to delete Returns: Confirmation of deletion.
basecamp_get_card_tableGet a card table (Kanban board). Get the card table ID from the project's dock items. Args: - projectId: The project ID - cardTableId: The card table ID - format: Response format Returns: The card table with all columns and their card counts.
basecamp_list_cardsList all cards in a card table column. Args: - projectId: The project ID - columnId: The column ID - format: Response format Returns: Paginated list of cards in the column.
basecamp_get_cardGet a single card. Args: - projectId: The project ID - cardId: The card ID - format: Response format Returns: The card with title, content, assignees, and due date.
basecamp_list_commentsList all comments on a recording (message, todo, document, etc.). Args: - projectId: The project ID - recordingId: The recording ID (message, todo, document, etc.) - format: Response format Returns: Paginated list of comments.
basecamp_get_commentGet a single comment. Args: - projectId: The project ID - commentId: The comment ID - format: Response format Returns: The comment with content and creator.
basecamp_create_commentAdd a comment to a recording (message, todo, document, etc.). Args: - projectId: The project ID - recordingId: The recording ID to comment on - content: HTML content of the comment Returns: The created comment.
basecamp_update_commentUpdate an existing comment. Args: - projectId: The project ID - commentId: The comment ID - content: New HTML content Returns: The updated comment.
basecamp_get_vaultGet a vault (folder) for documents and files. The vault is the container for all documents and uploads in a project. Get the root vault ID from the project's dock items. Args: - projectId: The project ID - vaultId: The vault ID - format: Response format Returns: The vault with document/upload counts and nested vault links.
basecamp_list_vaultsList nested vaults (subfolders) within a vault. Args: - projectId: The project ID - vaultId: The parent vault ID - format: Response format Returns: Paginated list of nested vaults.
basecamp_create_vaultCreate a new vault (folder) nested under a parent vault. Args: - projectId: The project ID - vaultId: The parent vault ID - title: Vault/folder name (required) Returns: The created vault.
basecamp_update_vaultUpdate a vault's title. Args: - projectId: The project ID - vaultId: The vault ID - title: New vault name (required) Returns: The updated vault.
basecamp_list_documentsList all documents in a vault. Args: - projectId: The project ID - vaultId: The vault ID - status: Filter by status ('active', 'archived', 'trashed') - format: Response format Returns: Paginated list of documents.
basecamp_get_documentGet a single document. Args: - projectId: The project ID - documentId: The document ID - format: Response format Returns: The document with title and content.
basecamp_create_documentCreate a new document in a vault. Args: - projectId: The project ID - vaultId: The vault ID - title: Document title (required) - content: HTML content (required) - status: 'active' to publish, 'draft' to save as draft Returns: The created document.
basecamp_update_documentUpdate an existing document. Args: - projectId: The project ID - documentId: The document ID - title: New document title - content: New HTML content Returns: The updated document.
basecamp_list_uploadsList all file uploads in a vault. Args: - projectId: The project ID - vaultId: The vault ID - status: Filter by status ('active', 'archived', 'trashed') - format: Response format Returns: Paginated list of uploads with download URLs.
basecamp_get_uploadGet a single file upload. Args: - projectId: The project ID - uploadId: The upload ID - format: Response format Returns: The upload with filename, size, and download URL.
basecamp_create_uploadCreate a new file upload in a vault. Note: First use basecamp_create_attachment to upload the file and get an attachable_sgid, then use this tool to add it to a vault. Args: - projectId: The project ID - vaultId: The vault ID - attachableSgid: The attachment SGID from basecamp_create_attachment - description: HTML description - baseName: Custom filename (without extension) Returns: The created upload.
basecamp_update_uploadUpdate an existing upload's description or filename. Args: - projectId: The project ID - uploadId: The upload ID - description: New HTML description - baseName: New filename (without extension) Returns: The updated upload.
basecamp_list_webhooksList all webhooks for a project. Args: - projectId: The project ID - format: Response format Returns: Paginated list of webhooks.
basecamp_get_message_boardGet the message board for a project. The message board is the container for all messages in a project. Get the message board ID from the project's dock items. Args: - projectId: The project ID - messageBoardId: The message board ID - format: Response format Returns: The message board with message count and messages URL.
basecamp_list_messagesList all messages in a message board. Args: - projectId: The project ID - messageBoardId: The message board ID - status: Filter by status ('active', 'archived', 'trashed') - format: Response format Returns: Paginated list of messages.
basecamp_get_messageGet a single message. Args: - projectId: The project ID - messageId: The message ID - format: Response format Returns: The message with subject, content, and creator.
basecamp_create_messageCreate a new message on a message board. Args: - projectId: The project ID - messageBoardId: The message board ID - subject: Message subject (required) - content: HTML content - status: 'active' to publish immediately, 'draft' to save as draft - categoryId: Message type/category ID Returns: The created message.
basecamp_update_messageUpdate an existing message. Args: - projectId: The project ID - messageId: The message ID - subject: New subject - content: New HTML content - categoryId: New category ID Returns: The updated message.
basecamp_test_connectionTest the connection to Basecamp API. Verifies that the OAuth token and account ID are valid. Returns: Connection status and current user info.
basecamp_get_my_profileGet the current user's profile. Returns: The authenticated user's profile information.
basecamp_list_peopleList all people visible to the current user. Returns: Paginated list of all people in the account.
basecamp_list_project_peopleList all people assigned to a project. Args: - projectId: The project ID - format: Response format Returns: Paginated list of people in the project.
basecamp_get_personGet a person by ID. Args: - personId: The person ID - format: Response format Returns: The person's profile information.
basecamp_list_projectsList all Basecamp projects. Returns a paginated list of projects visible to the current user. Args: - status: Filter by status ('active', 'archived', 'trashed'). Default: 'active' - format: Response format ('json' or 'markdown') Returns: List of projects with their names, descriptions, and dock items.
basecamp_get_projectGet a single Basecamp project by ID. Args: - projectId: The project ID - format: Response format ('json' or 'markdown') Returns: The project with its dock items (message board, todoset, schedule, vault, etc.)
basecamp_create_projectCreate a new Basecamp project. Args: - name: Project name (required) - description: Project description Returns: The created project.
basecamp_update_projectUpdate an existing Basecamp project. Args: - projectId: Project ID to update - name: New project name - description: New project description Returns: The updated project.
basecamp_list_recordingsList recordings across projects. Recordings represent all content types in Basecamp. Use this to find items across multiple projects or to list archived/trashed items. Args: - type: Recording type (required). One of: Comment, Document, Message, Todo, Todolist, Upload, Vault, Schedule::Entry, Question::Answer, Kanban::Card, Kanban::Step - bucketIds: Array of project IDs to filter by - status: Filter by status ('active', 'archived', 'trashed'). Default: 'active' - sort: Sort by 'created_at' or 'updated_at'. Default: 'created_at' - direction: Sort direction ('asc' or 'desc'). Default: 'desc' - format: Response format Returns: Paginated list of recordings.
basecamp_trash_recordingMove a recording to trash. Use this to delete any content type (message, todo, document, etc.). Args: - projectId: The project ID - recordingId: The recording ID to trash Returns: Confirmation of deletion.
basecamp_archive_recordingArchive a recording. Use this to archive any content type (message, todo, document, etc.). Args: - projectId: The project ID - recordingId: The recording ID to archive Returns: Confirmation of archival.
basecamp_unarchive_recordingRestore an archived recording to active status. Args: - projectId: The project ID - recordingId: The recording ID to unarchive Returns: Confirmation of restoration.
basecamp_get_scheduleGet the schedule for a project. The schedule is the container for all calendar events. Get the schedule ID from the project's dock items. Args: - projectId: The project ID - scheduleId: The schedule ID - format: Response format Returns: The schedule with entry count and entries URL.
basecamp_list_schedule_entriesList all schedule entries (events) in a schedule. Args: - projectId: The project ID - scheduleId: The schedule ID - status: Filter by status ('active', 'archived', 'trashed') - format: Response format Returns: Paginated list of schedule entries.
basecamp_get_schedule_entryGet a single schedule entry (event). Args: - projectId: The project ID - entryId: The schedule entry ID - format: Response format Returns: The schedule entry with dates, participants, and description.
basecamp_create_schedule_entryCreate a new schedule entry (event). Args: - projectId: The project ID - scheduleId: The schedule ID - summary: Event title (required) - startsAt: Start date/time in ISO 8601 format (required) - endsAt: End date/time in ISO 8601 format (required) - description: HTML description - participantIds: Array of person IDs to invite - allDay: Whether this is an all-day event - notify: Whether to notify participants Returns: The created schedule entry.
basecamp_update_todoUpdate an existing to-do. Args: - projectId: The project ID - todoId: The to-do ID - content: New to-do content/title - description: New HTML description - assigneeIds: New array of person IDs to assign - dueOn: New due date (YYYY-MM-DD format) - startsOn: New start date (YYYY-MM-DD format) Returns: The updated to-do.
basecamp_update_schedule_entryUpdate an existing schedule entry (event). Args: - projectId: The project ID - entryId: The schedule entry ID - summary: New event title - startsAt: New start date/time (ISO 8601) - endsAt: New end date/time (ISO 8601) - description: New HTML description - participantIds: New array of person IDs - allDay: Whether this is an all-day event - notify: Whether to notify participants Returns: The updated schedule entry.
basecamp_get_todosetGet a to-do set for a project. The todoset is the container for all to-do lists in a project. Get the todoset ID from the project's dock items. Args: - projectId: The project ID (bucket ID) - todosetId: The todoset ID Returns: The todoset with completion stats and link to todolists.
basecamp_list_todolistsList all to-do lists in a todoset. Args: - projectId: The project ID - todosetId: The todoset ID - status: Filter by status ('active', 'archived', 'trashed') - format: Response format Returns: Paginated list of to-do lists.
basecamp_get_todolistGet a single to-do list. Args: - projectId: The project ID - todolistId: The to-do list ID - format: Response format Returns: The to-do list with completion stats.
basecamp_create_todolistCreate a new to-do list in a todoset. Args: - projectId: The project ID - todosetId: The todoset ID - name: Name of the to-do list (required) - description: HTML description Returns: The created to-do list.
basecamp_update_todolistUpdate an existing to-do list. Args: - projectId: The project ID - todolistId: The to-do list ID - name: New name (required) - description: New HTML description Returns: The updated to-do list.
basecamp_list_todosList all to-dos in a to-do list. Args: - projectId: The project ID - todolistId: The to-do list ID - status: Filter by status ('active', 'archived', 'trashed') - completed: Filter by completion (true = completed only, false = pending only) - format: Response format Returns: Paginated list of to-dos.
basecamp_get_todoGet a single to-do. Args: - projectId: The project ID - todoId: The to-do ID - format: Response format Returns: The to-do with assignees, due date, and description.
basecamp_create_todoCreate a new to-do in a to-do list. Args: - projectId: The project ID - todolistId: The to-do list ID - content: The to-do content/title (required) - description: HTML description - assigneeIds: Array of person IDs to assign - dueOn: Due date (YYYY-MM-DD format) - startsOn: Start date (YYYY-MM-DD format) - notify: Whether to notify assignees Returns: The created to-do.
basecamp_complete_todoMark a to-do as complete. Args: - projectId: The project ID - todoId: The to-do ID Returns: Confirmation of completion.
basecamp_get_webhookGet a single webhook with delivery history. Args: - projectId: The project ID - webhookId: The webhook ID - format: Response format Returns: The webhook with its configuration.
basecamp_create_webhookCreate a new webhook for a project. Args: - projectId: The project ID - payloadUrl: HTTPS URL to receive webhook payloads (required) - types: Array of event types to subscribe to, or ['all'] for all events Supported event types: Comment, Document, Message, Todo, Todolist, Upload, Vault, Schedule::Entry, Question, Question::Answer, Kanban::Card, Kanban::Step, CloudFile, GoogleDocument, Client::Approval::Response, Client::Forward, Client::Reply, Inbox::Forward Returns: The created webhook.
basecamp_update_webhookUpdate an existing webhook. Args: - projectId: The project ID - webhookId: The webhook ID - payloadUrl: New HTTPS payload URL - types: New array of event types - active: Enable/disable the webhook Returns: The updated webhook.
basecamp_delete_webhookDelete a webhook. Args: - projectId: The project ID - webhookId: The webhook ID Returns: Confirmation of deletion.
basecamp_trash_project{
"projectId": 10
}basecamp_uncomplete_todo{
"todoId": 10,
"projectId": 10
}basecamp_list_campfires{
"format": "example_format"
}