Basecamp MCP Server for Cloudflare Workers
65 tools available in the Basecamp MCP server. Each tool can be called by AI assistants to perform specific actions.
basecamp_trash_projectMove a Basecamp project to trash.
Args:
Returns: Confirmation of deletion.
{
"type": "object",
"required": [
"projectId"
],
"properties": {
"projectId": {
"type": "number",
"description": "Project ID to trash"
}
}
}basecamp_uncomplete_todoMark a to-do as incomplete.
Args:
Returns: Confirmation.
{
"type": "object",
"required": [
"projectId",
"todoId"
],
"properties": {
"todoId": {
"type": "number",
"description": "Todo ID"
},
"projectId": {
"type": "number",
"description": "Project ID"
}
}
}basecamp_list_campfiresList all Campfires visible to the current user.
Returns: Paginated list of all Campfires across projects.
{
"type": "object",
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "json",
"description": "Response format"
}
}
}basecamp_get_campfireGet a Campfire by ID.
Args:
Returns: The Campfire with topic and lines URL.
{
"type": "object",
"required": [
"projectId",
"campfireId"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"projectId": {
"type": "number",
"description": "Project ID"
},
"campfireId": {
"type": "number",
"description": "Campfire ID"
}
}
}basecamp_list_campfire_linesList chat messages in a Campfire.
Args:
Returns: Paginated list of chat lines/messages.
{
"type": "object",
"required": [
"projectId",
"campfireId"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"projectId": {
"type": "number",
"description": "Project ID"
},
"campfireId": {
"type": "number",
"description": "Campfire ID"
}
}
}basecamp_get_campfire_lineGet a single Campfire chat message.
Args:
Returns: The chat message with content and creator.
{
"type": "object",
"required": [
"projectId",
"lineId"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"lineId": {
"type": "number",
"description": "Line ID"
},
"projectId": {
"type": "number",
"description": "Project ID"
}
}
}basecamp_create_campfire_linePost a new message to a Campfire.
Args:
Returns: The created chat message.
{
"type": "object",
"required": [
"projectId",
"campfireId",
"content"
],
"properties": {
"content": {
"type": "string",
"description": "Message content"
},
"projectId": {
"type": "number",
"description": "Project ID"
},
"campfireId": {
"type": "number",
"description": "Campfire ID"
}
}
}basecamp_delete_campfire_lineDelete a Campfire chat message.
Args:
Returns: Confirmation of deletion.
{
"type": "object",
"required": [
"projectId",
"lineId"
],
"properties": {
"lineId": {
"type": "number",
"description": "Line ID to delete"
},
"projectId": {
"type": "number",
"description": "Project ID"
}
}
}basecamp_get_card_tableGet a card table (Kanban board).
Get the card table ID from the project's dock items.
Args:
Returns: The card table with all columns and their card counts.
{
"type": "object",
"required": [
"projectId",
"cardTableId"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"projectId": {
"type": "number",
"description": "Project ID"
},
"cardTableId": {
"type": "number",
"description": "Card table ID"
}
}
}basecamp_list_cardsList all cards in a card table column.
Args:
Returns: Paginated list of cards in the column.
{
"type": "object",
"required": [
"projectId",
"columnId"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"columnId": {
"type": "number",
"description": "Column ID"
},
"projectId": {
"type": "number",
"description": "Project ID"
}
}
}basecamp_get_cardGet a single card.
Args:
Returns: The card with title, content, assignees, and due date.
{
"type": "object",
"required": [
"projectId",
"cardId"
],
"properties": {
"cardId": {
"type": "number",
"description": "Card ID"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"projectId": {
"type": "number",
"description": "Project ID"
}
}
}basecamp_list_commentsList all comments on a recording (message, todo, document, etc.).
Args:
Returns: Paginated list of comments.
{
"type": "object",
"required": [
"projectId",
"recordingId"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"projectId": {
"type": "number",
"description": "Project ID"
},
"recordingId": {
"type": "number",
"description": "Recording ID"
}
}
}basecamp_get_commentGet a single comment.
Args:
Returns: The comment with content and creator.
{
"type": "object",
"required": [
"projectId",
"commentId"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"commentId": {
"type": "number",
"description": "Comment ID"
},
"projectId": {
"type": "number",
"description": "Project ID"
}
}
}basecamp_create_commentAdd a comment to a recording (message, todo, document, etc.).
Args:
Returns: The created comment.
{
"type": "object",
"required": [
"projectId",
"recordingId",
"content"
],
"properties": {
"content": {
"type": "string",
"description": "HTML content"
},
"projectId": {
"type": "number",
"description": "Project ID"
},
"recordingId": {
"type": "number",
"description": "Recording ID"
}
}
}basecamp_update_commentUpdate an existing comment.
Args:
Returns: The updated comment.
{
"type": "object",
"required": [
"projectId",
"commentId",
"content"
],
"properties": {
"content": {
"type": "string",
"description": "New HTML content"
},
"commentId": {
"type": "number",
"description": "Comment ID"
},
"projectId": {
"type": "number",
"description": "Project ID"
}
}
}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:
Returns: The vault with document/upload counts and nested vault links.
{
"type": "object",
"required": [
"projectId",
"vaultId"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"vaultId": {
"type": "number",
"description": "Vault ID"
},
"projectId": {
"type": "number",
"description": "Project ID"
}
}
}basecamp_list_vaultsList nested vaults (subfolders) within a vault.
Args:
Returns: Paginated list of nested vaults.
{
"type": "object",
"required": [
"projectId",
"vaultId"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"vaultId": {
"type": "number",
"description": "Parent vault ID"
},
"projectId": {
"type": "number",
"description": "Project ID"
}
}
}basecamp_create_vaultCreate a new vault (folder) nested under a parent vault.
Args:
Returns: The created vault.
{
"type": "object",
"required": [
"projectId",
"vaultId",
"title"
],
"properties": {
"title": {
"type": "string",
"description": "Vault name"
},
"vaultId": {
"type": "number",
"description": "Parent vault ID"
},
"projectId": {
"type": "number",
"description": "Project ID"
}
}
}basecamp_update_vaultUpdate a vault's title.
Args:
Returns: The updated vault.
{
"type": "object",
"required": [
"projectId",
"vaultId",
"title"
],
"properties": {
"title": {
"type": "string",
"description": "New vault name"
},
"vaultId": {
"type": "number",
"description": "Vault ID"
},
"projectId": {
"type": "number",
"description": "Project ID"
}
}
}basecamp_list_documentsList all documents in a vault.
Args:
Returns: Paginated list of documents.
{
"type": "object",
"required": [
"projectId",
"vaultId"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"status": {
"enum": [
"active",
"archived",
"trashed"
],
"type": "string",
"description": "Filter by status"
},
"vaultId": {
"type": "number",
"description": "Vault ID"
},
"projectId": {
"type": "number",
"description": "Project ID"
}
}
}basecamp_get_documentGet a single document.
Args:
Returns: The document with title and content.
{
"type": "object",
"required": [
"projectId",
"documentId"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"projectId": {
"type": "number",
"description": "Project ID"
},
"documentId": {
"type": "number",
"description": "Document ID"
}
}
}basecamp_create_documentCreate a new document in a vault.
Args:
Returns: The created document.
{
"type": "object",
"required": [
"projectId",
"vaultId",
"title",
"content"
],
"properties": {
"title": {
"type": "string",
"description": "Document title"
},
"status": {
"enum": [
"active",
"draft"
],
"type": "string",
"default": "active",
"description": "Publish status"
},
"content": {
"type": "string",
"description": "HTML content"
},
"vaultId": {
"type": "number",
"description": "Vault ID"
},
"projectId": {
"type": "number",
"description": "Project ID"
}
}
}basecamp_update_documentUpdate an existing document.
Args:
Returns: The updated document.
{
"type": "object",
"required": [
"projectId",
"documentId"
],
"properties": {
"title": {
"type": "string",
"description": "New document title"
},
"content": {
"type": "string",
"description": "New HTML content"
},
"projectId": {
"type": "number",
"description": "Project ID"
},
"documentId": {
"type": "number",
"description": "Document ID"
}
}
}basecamp_list_uploadsList all file uploads in a vault.
Args:
Returns: Paginated list of uploads with download URLs.
{
"type": "object",
"required": [
"projectId",
"vaultId"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"status": {
"enum": [
"active",
"archived",
"trashed"
],
"type": "string",
"description": "Filter by status"
},
"vaultId": {
"type": "number",
"description": "Vault ID"
},
"projectId": {
"type": "number",
"description": "Project ID"
}
}
}basecamp_get_uploadGet a single file upload.
Args:
Returns: The upload with filename, size, and download URL.
{
"type": "object",
"required": [
"projectId",
"uploadId"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"uploadId": {
"type": "number",
"description": "Upload ID"
},
"projectId": {
"type": "number",
"description": "Project ID"
}
}
}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:
Returns: The created upload.
{
"type": "object",
"required": [
"projectId",
"vaultId",
"attachableSgid"
],
"properties": {
"vaultId": {
"type": "number",
"description": "Vault ID"
},
"baseName": {
"type": "string",
"description": "Custom filename"
},
"projectId": {
"type": "number",
"description": "Project ID"
},
"description": {
"type": "string",
"description": "HTML description"
},
"attachableSgid": {
"type": "string",
"description": "Attachment SGID"
}
}
}basecamp_update_uploadUpdate an existing upload's description or filename.
Args:
Returns: The updated upload.
{
"type": "object",
"required": [
"projectId",
"uploadId"
],
"properties": {
"baseName": {
"type": "string",
"description": "New filename"
},
"uploadId": {
"type": "number",
"description": "Upload ID"
},
"projectId": {
"type": "number",
"description": "Project ID"
},
"description": {
"type": "string",
"description": "New HTML description"
}
}
}basecamp_list_webhooksList all webhooks for a project.
Args:
Returns: Paginated list of webhooks.
{
"type": "object",
"required": [
"projectId"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"projectId": {
"type": "number",
"description": "Project ID"
}
}
}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:
Returns: The message board with message count and messages URL.
{
"type": "object",
"required": [
"projectId",
"messageBoardId"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"projectId": {
"type": "number",
"description": "Project ID"
},
"messageBoardId": {
"type": "number",
"description": "Message board ID"
}
}
}basecamp_list_messagesList all messages in a message board.
Args:
Returns: Paginated list of messages.
{
"type": "object",
"required": [
"projectId",
"messageBoardId"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"status": {
"enum": [
"active",
"archived",
"trashed"
],
"type": "string",
"description": "Filter by status"
},
"projectId": {
"type": "number",
"description": "Project ID"
},
"messageBoardId": {
"type": "number",
"description": "Message board ID"
}
}
}basecamp_get_messageGet a single message.
Args:
Returns: The message with subject, content, and creator.
{
"type": "object",
"required": [
"projectId",
"messageId"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"messageId": {
"type": "number",
"description": "Message ID"
},
"projectId": {
"type": "number",
"description": "Project ID"
}
}
}basecamp_create_messageCreate a new message on a message board.
Args:
Returns: The created message.
{
"type": "object",
"required": [
"projectId",
"messageBoardId",
"subject"
],
"properties": {
"status": {
"enum": [
"active",
"draft"
],
"type": "string",
"default": "active",
"description": "Publish status"
},
"content": {
"type": "string",
"description": "HTML content"
},
"subject": {
"type": "string",
"description": "Message subject"
},
"projectId": {
"type": "number",
"description": "Project ID"
},
"categoryId": {
"type": "number",
"description": "Message category ID"
},
"messageBoardId": {
"type": "number",
"description": "Message board ID"
}
}
}basecamp_update_messageUpdate an existing message.
Args:
Returns: The updated message.
{
"type": "object",
"required": [
"projectId",
"messageId"
],
"properties": {
"content": {
"type": "string",
"description": "New HTML content"
},
"subject": {
"type": "string",
"description": "New subject"
},
"messageId": {
"type": "number",
"description": "Message ID"
},
"projectId": {
"type": "number",
"description": "Project ID"
},
"categoryId": {
"type": "number",
"description": "New category ID"
}
}
}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.
{
"type": "object",
"properties": {}
}basecamp_get_my_profileGet the current user's profile.
Returns: The authenticated user's profile information.
{
"type": "object",
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "json",
"description": "Response format"
}
}
}basecamp_list_peopleList all people visible to the current user.
Returns: Paginated list of all people in the account.
{
"type": "object",
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "json",
"description": "Response format"
}
}
}basecamp_list_project_peopleList all people assigned to a project.
Args:
Returns: Paginated list of people in the project.
{
"type": "object",
"required": [
"projectId"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"projectId": {
"type": "number",
"description": "Project ID"
}
}
}basecamp_get_personGet a person by ID.
Args:
Returns: The person's profile information.
{
"type": "object",
"required": [
"personId"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"personId": {
"type": "number",
"description": "Person ID"
}
}
}basecamp_list_projectsList all Basecamp projects.
Returns a paginated list of projects visible to the current user.
Args:
Returns: List of projects with their names, descriptions, and dock items.
{
"type": "object",
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "json",
"description": "Response format"
}
}
}basecamp_get_projectGet a single Basecamp project by ID.
Args:
Returns: The project with its dock items (message board, todoset, schedule, vault, etc.)
{
"type": "object",
"required": [
"projectId"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"projectId": {
"type": "number",
"description": "Project ID"
}
}
}basecamp_create_projectCreate a new Basecamp project.
Args:
Returns: The created project.
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Project name"
},
"description": {
"type": "string",
"description": "Project description"
}
}
}basecamp_update_projectUpdate an existing Basecamp project.
Args:
Returns: The updated project.
{
"type": "object",
"required": [
"projectId"
],
"properties": {
"name": {
"type": "string",
"description": "New project name"
},
"projectId": {
"type": "number",
"description": "Project ID to update"
},
"description": {
"type": "string",
"description": "New project description"
}
}
}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:
Returns: Paginated list of recordings.
{
"type": "object",
"required": [
"type"
],
"properties": {
"sort": {
"enum": [
"created_at",
"updated_at"
],
"type": "string",
"default": "created_at",
"description": "Sort field"
},
"type": {
"type": "string",
"description": "Recording type (e.g., Todo, Message, Document)"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"status": {
"enum": [
"active",
"archived",
"trashed"
],
"type": "string",
"default": "active",
"description": "Filter by status"
},
"bucketIds": {
"type": "array",
"items": {
"type": "number"
},
"description": "Project IDs to filter by"
},
"direction": {
"enum": [
"asc",
"desc"
],
"type": "string",
"default": "desc",
"description": "Sort direction"
}
}
}basecamp_trash_recordingMove a recording to trash.
Use this to delete any content type (message, todo, document, etc.).
Args:
Returns: Confirmation of deletion.
{
"type": "object",
"required": [
"projectId",
"recordingId"
],
"properties": {
"projectId": {
"type": "number",
"description": "Project ID"
},
"recordingId": {
"type": "number",
"description": "Recording ID to trash"
}
}
}basecamp_archive_recordingArchive a recording.
Use this to archive any content type (message, todo, document, etc.).
Args:
Returns: Confirmation of archival.
{
"type": "object",
"required": [
"projectId",
"recordingId"
],
"properties": {
"projectId": {
"type": "number",
"description": "Project ID"
},
"recordingId": {
"type": "number",
"description": "Recording ID to archive"
}
}
}basecamp_unarchive_recordingRestore an archived recording to active status.
Args:
Returns: Confirmation of restoration.
{
"type": "object",
"required": [
"projectId",
"recordingId"
],
"properties": {
"projectId": {
"type": "number",
"description": "Project ID"
},
"recordingId": {
"type": "number",
"description": "Recording ID to unarchive"
}
}
}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:
Returns: The schedule with entry count and entries URL.
{
"type": "object",
"required": [
"projectId",
"scheduleId"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"projectId": {
"type": "number",
"description": "Project ID"
},
"scheduleId": {
"type": "number",
"description": "Schedule ID"
}
}
}basecamp_list_schedule_entriesList all schedule entries (events) in a schedule.
Args:
Returns: Paginated list of schedule entries.
{
"type": "object",
"required": [
"projectId",
"scheduleId"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"status": {
"enum": [
"active",
"archived",
"trashed"
],
"type": "string",
"description": "Filter by status"
},
"projectId": {
"type": "number",
"description": "Project ID"
},
"scheduleId": {
"type": "number",
"description": "Schedule ID"
}
}
}basecamp_get_schedule_entryGet a single schedule entry (event).
Args:
Returns: The schedule entry with dates, participants, and description.
{
"type": "object",
"required": [
"projectId",
"entryId"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"entryId": {
"type": "number",
"description": "Schedule entry ID"
},
"projectId": {
"type": "number",
"description": "Project ID"
}
}
}basecamp_create_schedule_entryCreate a new schedule entry (event).
Args:
Returns: The created schedule entry.
{
"type": "object",
"required": [
"projectId",
"scheduleId",
"summary",
"startsAt",
"endsAt"
],
"properties": {
"allDay": {
"type": "boolean",
"description": "All-day event"
},
"endsAt": {
"type": "string",
"description": "End date/time (ISO 8601)"
},
"notify": {
"type": "boolean",
"description": "Notify participants"
},
"summary": {
"type": "string",
"description": "Event title"
},
"startsAt": {
"type": "string",
"description": "Start date/time (ISO 8601)"
},
"projectId": {
"type": "number",
"description": "Project ID"
},
"scheduleId": {
"type": "number",
"description": "Schedule ID"
},
"description": {
"type": "string",
"description": "HTML description"
},
"participantIds": {
"type": "array",
"items": {
"type": "number"
},
"description": "Person IDs to invite"
}
}
}basecamp_update_todoUpdate an existing to-do.
Args:
Returns: The updated to-do.
{
"type": "object",
"required": [
"projectId",
"todoId"
],
"properties": {
"dueOn": {
"type": "string",
"description": "Due date (YYYY-MM-DD)"
},
"todoId": {
"type": "number",
"description": "Todo ID"
},
"content": {
"type": "string",
"description": "Todo content/title"
},
"startsOn": {
"type": "string",
"description": "Start date (YYYY-MM-DD)"
},
"projectId": {
"type": "number",
"description": "Project ID"
},
"assigneeIds": {
"type": "array",
"items": {
"type": "number"
},
"description": "Person IDs to assign"
},
"description": {
"type": "string",
"description": "HTML description"
}
}
}basecamp_update_schedule_entryUpdate an existing schedule entry (event).
Args:
Returns: The updated schedule entry.
{
"type": "object",
"required": [
"projectId",
"entryId"
],
"properties": {
"allDay": {
"type": "boolean",
"description": "All-day event"
},
"endsAt": {
"type": "string",
"description": "New end date/time (ISO 8601)"
},
"notify": {
"type": "boolean",
"description": "Notify participants"
},
"entryId": {
"type": "number",
"description": "Schedule entry ID"
},
"summary": {
"type": "string",
"description": "New event title"
},
"startsAt": {
"type": "string",
"description": "New start date/time (ISO 8601)"
},
"projectId": {
"type": "number",
"description": "Project ID"
},
"description": {
"type": "string",
"description": "New HTML description"
},
"participantIds": {
"type": "array",
"items": {
"type": "number"
},
"description": "New person IDs"
}
}
}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:
Returns: The todoset with completion stats and link to todolists.
{
"type": "object",
"required": [
"projectId",
"todosetId"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"projectId": {
"type": "number",
"description": "Project ID"
},
"todosetId": {
"type": "number",
"description": "Todoset ID"
}
}
}basecamp_list_todolistsList all to-do lists in a todoset.
Args:
Returns: Paginated list of to-do lists.
{
"type": "object",
"required": [
"projectId",
"todosetId"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"status": {
"enum": [
"active",
"archived",
"trashed"
],
"type": "string",
"description": "Filter by status"
},
"projectId": {
"type": "number",
"description": "Project ID"
},
"todosetId": {
"type": "number",
"description": "Todoset ID"
}
}
}basecamp_get_todolistGet a single to-do list.
Args:
Returns: The to-do list with completion stats.
{
"type": "object",
"required": [
"projectId",
"todolistId"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"projectId": {
"type": "number",
"description": "Project ID"
},
"todolistId": {
"type": "number",
"description": "Todolist ID"
}
}
}basecamp_create_todolistCreate a new to-do list in a todoset.
Args:
Returns: The created to-do list.
{
"type": "object",
"required": [
"projectId",
"todosetId",
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Todolist name"
},
"projectId": {
"type": "number",
"description": "Project ID"
},
"todosetId": {
"type": "number",
"description": "Todoset ID"
},
"description": {
"type": "string",
"description": "HTML description"
}
}
}basecamp_update_todolistUpdate an existing to-do list.
Args:
Returns: The updated to-do list.
{
"type": "object",
"required": [
"projectId",
"todolistId",
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Todolist name"
},
"projectId": {
"type": "number",
"description": "Project ID"
},
"todolistId": {
"type": "number",
"description": "Todolist ID"
},
"description": {
"type": "string",
"description": "HTML description"
}
}
}basecamp_list_todosList all to-dos in a to-do list.
Args:
Returns: Paginated list of to-dos.
{
"type": "object",
"required": [
"projectId",
"todolistId"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"status": {
"enum": [
"active",
"archived",
"trashed"
],
"type": "string",
"description": "Filter by status"
},
"completed": {
"type": "boolean",
"description": "Filter by completion status"
},
"projectId": {
"type": "number",
"description": "Project ID"
},
"todolistId": {
"type": "number",
"description": "Todolist ID"
}
}
}basecamp_get_todoGet a single to-do.
Args:
Returns: The to-do with assignees, due date, and description.
{
"type": "object",
"required": [
"projectId",
"todoId"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"todoId": {
"type": "number",
"description": "Todo ID"
},
"projectId": {
"type": "number",
"description": "Project ID"
}
}
}basecamp_create_todoCreate a new to-do in a to-do list.
Args:
Returns: The created to-do.
{
"type": "object",
"required": [
"projectId",
"todolistId",
"content"
],
"properties": {
"dueOn": {
"type": "string",
"description": "Due date (YYYY-MM-DD)"
},
"notify": {
"type": "boolean",
"description": "Notify assignees"
},
"content": {
"type": "string",
"description": "Todo content/title"
},
"startsOn": {
"type": "string",
"description": "Start date (YYYY-MM-DD)"
},
"projectId": {
"type": "number",
"description": "Project ID"
},
"todolistId": {
"type": "number",
"description": "Todolist ID"
},
"assigneeIds": {
"type": "array",
"items": {
"type": "number"
},
"description": "Person IDs to assign"
},
"description": {
"type": "string",
"description": "HTML description"
}
}
}basecamp_complete_todoMark a to-do as complete.
Args:
Returns: Confirmation of completion.
{
"type": "object",
"required": [
"projectId",
"todoId"
],
"properties": {
"todoId": {
"type": "number",
"description": "Todo ID"
},
"projectId": {
"type": "number",
"description": "Project ID"
}
}
}basecamp_get_webhookGet a single webhook with delivery history.
Args:
Returns: The webhook with its configuration.
{
"type": "object",
"required": [
"projectId",
"webhookId"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"projectId": {
"type": "number",
"description": "Project ID"
},
"webhookId": {
"type": "number",
"description": "Webhook ID"
}
}
}basecamp_create_webhookCreate a new webhook for a project.
Args:
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.
{
"type": "object",
"required": [
"projectId",
"payloadUrl",
"types"
],
"properties": {
"types": {
"type": "array",
"items": {
"type": "string"
},
"description": "Event types to subscribe to"
},
"projectId": {
"type": "number",
"description": "Project ID"
},
"payloadUrl": {
"type": "string",
"description": "HTTPS payload URL"
}
}
}basecamp_update_webhookUpdate an existing webhook.
Args:
Returns: The updated webhook.
{
"type": "object",
"required": [
"projectId",
"webhookId"
],
"properties": {
"types": {
"type": "array",
"items": {
"type": "string"
},
"description": "New event types"
},
"active": {
"type": "boolean",
"description": "Enable/disable webhook"
},
"projectId": {
"type": "number",
"description": "Project ID"
},
"webhookId": {
"type": "number",
"description": "Webhook ID"
},
"payloadUrl": {
"type": "string",
"description": "New HTTPS payload URL"
}
}
}basecamp_delete_webhookDelete a webhook.
Args:
Returns: Confirmation of deletion.
{
"type": "object",
"required": [
"projectId",
"webhookId"
],
"properties": {
"projectId": {
"type": "number",
"description": "Project ID"
},
"webhookId": {
"type": "number",
"description": "Webhook ID"
}
}
}