| basecamp_loginA | Authenticate with Basecamp via OAuth. Opens a browser window for authorization. If you have multiple Basecamp accounts, call first without account_id to see the list, then call again with the desired account_id. |
| basecamp_logoutA | Remove stored Basecamp credentials. |
| basecamp_whoamiA | Check login state: show whether you're authenticated and, if so, the basic Basecamp user + account id. For your full profile (id, title, attachable_sgid) use basecamp_get_me. |
| basecamp_list_projectsA | List all projects visible to the authenticated user in a Basecamp account. This tool returns active projects with their IDs, names, descriptions, and metadata. Use this to discover project/bucket IDs needed for accessing messages, todos, and other resources. |
| basecamp_get_projectA | Fetch detailed information about a specific Basecamp project. This tool retrieves complete project details including name, description, dock configuration, and metadata. Examples: |
| basecamp_get_messageA | Retrieve a single message from a Basecamp message board. |
| basecamp_list_messagesA | List messages in a Basecamp message board (a single project). For cross-project or time-based browsing across content types, use basecamp_list_recordings instead. |
| basecamp_list_message_typesA | List available message types/categories for a Basecamp project |
| basecamp_create_messageB | Create a new message in a Basecamp message board. |
| basecamp_update_messageA | Update a message. Use partial content operations when possible to save on token usage. HTML rules for content: Allowed tags: p, span, h2, h3, h4, br, strong, em, strike, code, a (with href attribute), pre, ol, ul, li, blockquote, mark, figure, figcaption, table, tbody, tr, th, td, div, bc-attachment. Wrap every paragraph in ..., and put between one paragraph and the next. Both parts are necessary: newlines and blank lines in your HTML are discarded, and Basecamp shows no space around a on its own, so two paragraphs with nothing between them are shown as one block of text. Do not rely on line breaks in your HTML to separate paragraphs. Headings: use , , as appropriate. Inline code: text. Preformatted blocks: text. Ordered lists: .... Unordered: .... Tables: Heading...Cell... To mention a person: . Put the tag where the name must show in the text, for example "Thanks for the fix". The person gets a notification. If the ID is not a person, the tool returns an error and writes nothing. Get person IDs from basecamp_list_people, or from the people in other responses (assignees, creators). Single image: Image gallery: wrap multiple in a . A bc-attachment needs an attachable_sgid. For a file that is already in Basecamp, take the sgid from the HTML content of the message, comment or card that shows it, or use basecamp_list_recordings. For a file that is not in Basecamp yet, such as an image at an external URL or a screenshot on disk, upload it with basecamp_create_attachment and use the sgid that it returns. There is no tag, so an external image URL can never be embedded directly: upload it, or accept that it stays a plain link. Basecamp auto-enriches bc-attachment tags after saving (adds url, href, filename, content-type, etc.) — you never need to write those. When you see an existing, already-enriched tag (e.g. from a previous list/get call), leave its inner HTML alone. Before any content_append/content_prepend/search_replace runs, it is automatically collapsed back to its minimal form (sgid, presentation, caption, and content-type for mentions) — you don't need to strip it yourself, and doing so manually is unnecessary and risks mismatched find strings. Background highlights: ... Text color highlights: ... For both, N is 1 (yellow), 2 (amber), 3 (red), 4 (pink), 5 (purple), 6 (blue), 7 (teal), 8 (near-white), or 9 (light gray).
|
| basecamp_get_todosetB | Get todo set container for a project. Returns todo lists and groups. |
| basecamp_create_todolistA | Create a new todo list in a todo set. Get the todoset_id from the project dock (basecamp_get_project). HTML rules for content: Allowed tags: p, span, h2, h3, h4, br, strong, em, strike, code, a (with href attribute), pre, ol, ul, li, blockquote, mark, figure, figcaption, table, tbody, tr, th, td, div, bc-attachment. Wrap every paragraph in ..., and put between one paragraph and the next. Both parts are necessary: newlines and blank lines in your HTML are discarded, and Basecamp shows no space around a on its own, so two paragraphs with nothing between them are shown as one block of text. Do not rely on line breaks in your HTML to separate paragraphs. Headings: use , , as appropriate. Inline code: text. Preformatted blocks: text. Ordered lists: .... Unordered: .... Tables: Heading...Cell... To mention a person: . Put the tag where the name must show in the text, for example "Thanks for the fix". The person gets a notification. If the ID is not a person, the tool returns an error and writes nothing. Get person IDs from basecamp_list_people, or from the people in other responses (assignees, creators). Single image: Image gallery: wrap multiple in a . A bc-attachment needs an attachable_sgid. For a file that is already in Basecamp, take the sgid from the HTML content of the message, comment or card that shows it, or use basecamp_list_recordings. For a file that is not in Basecamp yet, such as an image at an external URL or a screenshot on disk, upload it with basecamp_create_attachment and use the sgid that it returns. There is no tag, so an external image URL can never be embedded directly: upload it, or accept that it stays a plain link. Basecamp auto-enriches bc-attachment tags after saving (adds url, href, filename, content-type, etc.) — you never need to write those. When you see an existing, already-enriched tag (e.g. from a previous list/get call), leave its inner HTML alone. Before any content_append/content_prepend/search_replace runs, it is automatically collapsed back to its minimal form (sgid, presentation, caption, and content-type for mentions) — you don't need to strip it yourself, and doing so manually is unnecessary and risks mismatched find strings. Background highlights: ... Text color highlights: ... For both, N is 1 (yellow), 2 (amber), 3 (red), 4 (pink), 5 (purple), 6 (blue), 7 (teal), 8 (near-white), or 9 (light gray).
|
| basecamp_update_todolistA | Update the name or the description of a todo list, or of a group (section) in a todo list. Use partial content operations on the description when possible to save on token usage. A todo list is complete when all its todos are complete, so this tool cannot complete it. HTML rules for content: Allowed tags: p, span, h2, h3, h4, br, strong, em, strike, code, a (with href attribute), pre, ol, ul, li, blockquote, mark, figure, figcaption, table, tbody, tr, th, td, div, bc-attachment. Wrap every paragraph in ..., and put between one paragraph and the next. Both parts are necessary: newlines and blank lines in your HTML are discarded, and Basecamp shows no space around a on its own, so two paragraphs with nothing between them are shown as one block of text. Do not rely on line breaks in your HTML to separate paragraphs. Headings: use , , as appropriate. Inline code: text. Preformatted blocks: text. Ordered lists: .... Unordered: .... Tables: Heading...Cell... To mention a person: . Put the tag where the name must show in the text, for example "Thanks for the fix". The person gets a notification. If the ID is not a person, the tool returns an error and writes nothing. Get person IDs from basecamp_list_people, or from the people in other responses (assignees, creators). Single image: Image gallery: wrap multiple in a . A bc-attachment needs an attachable_sgid. For a file that is already in Basecamp, take the sgid from the HTML content of the message, comment or card that shows it, or use basecamp_list_recordings. For a file that is not in Basecamp yet, such as an image at an external URL or a screenshot on disk, upload it with basecamp_create_attachment and use the sgid that it returns. There is no tag, so an external image URL can never be embedded directly: upload it, or accept that it stays a plain link. Basecamp auto-enriches bc-attachment tags after saving (adds url, href, filename, content-type, etc.) — you never need to write those. When you see an existing, already-enriched tag (e.g. from a previous list/get call), leave its inner HTML alone. Before any content_append/content_prepend/search_replace runs, it is automatically collapsed back to its minimal form (sgid, presentation, caption, and content-type for mentions) — you don't need to strip it yourself, and doing so manually is unnecessary and risks mismatched find strings. Background highlights: ... Text color highlights: ... For both, N is 1 (yellow), 2 (amber), 3 (red), 4 (pink), 5 (purple), 6 (blue), 7 (teal), 8 (near-white), or 9 (light gray).
|
| basecamp_list_todosA | List todos in a todo list. Filter by status: 'active' or 'archived'. The todos come in display order: first the todos that are not in a group, then the todos of each group. The response also lists the groups (sections) of the todo list, also the empty groups. |
| basecamp_create_todoB | Create a new todo item in a todo list. HTML rules for content: Allowed tags: p, span, h2, h3, h4, br, strong, em, strike, code, a (with href attribute), pre, ol, ul, li, blockquote, mark, figure, figcaption, table, tbody, tr, th, td, div, bc-attachment. Wrap every paragraph in ..., and put between one paragraph and the next. Both parts are necessary: newlines and blank lines in your HTML are discarded, and Basecamp shows no space around a on its own, so two paragraphs with nothing between them are shown as one block of text. Do not rely on line breaks in your HTML to separate paragraphs. Headings: use , , as appropriate. Inline code: text. Preformatted blocks: text. Ordered lists: .... Unordered: .... Tables: Heading...Cell... To mention a person: . Put the tag where the name must show in the text, for example "Thanks for the fix". The person gets a notification. If the ID is not a person, the tool returns an error and writes nothing. Get person IDs from basecamp_list_people, or from the people in other responses (assignees, creators). Single image: Image gallery: wrap multiple in a . A bc-attachment needs an attachable_sgid. For a file that is already in Basecamp, take the sgid from the HTML content of the message, comment or card that shows it, or use basecamp_list_recordings. For a file that is not in Basecamp yet, such as an image at an external URL or a screenshot on disk, upload it with basecamp_create_attachment and use the sgid that it returns. There is no tag, so an external image URL can never be embedded directly: upload it, or accept that it stays a plain link. Basecamp auto-enriches bc-attachment tags after saving (adds url, href, filename, content-type, etc.) — you never need to write those. When you see an existing, already-enriched tag (e.g. from a previous list/get call), leave its inner HTML alone. Before any content_append/content_prepend/search_replace runs, it is automatically collapsed back to its minimal form (sgid, presentation, caption, and content-type for mentions) — you don't need to strip it yourself, and doing so manually is unnecessary and risks mismatched find strings. Background highlights: ... Text color highlights: ... For both, N is 1 (yellow), 2 (amber), 3 (red), 4 (pink), 5 (purple), 6 (blue), 7 (teal), 8 (near-white), or 9 (light gray).
|
| basecamp_complete_todoB | Mark a todo as completed. |
| basecamp_uncomplete_todoA | Mark a todo as incomplete (undo completion). |
| basecamp_update_todoA | Update a todo item. Use partial content operations when possible to save on token usage. HTML rules for content: Allowed tags: p, span, h2, h3, h4, br, strong, em, strike, code, a (with href attribute), pre, ol, ul, li, blockquote, mark, figure, figcaption, table, tbody, tr, th, td, div, bc-attachment. Wrap every paragraph in ..., and put between one paragraph and the next. Both parts are necessary: newlines and blank lines in your HTML are discarded, and Basecamp shows no space around a on its own, so two paragraphs with nothing between them are shown as one block of text. Do not rely on line breaks in your HTML to separate paragraphs. Headings: use , , as appropriate. Inline code: text. Preformatted blocks: text. Ordered lists: .... Unordered: .... Tables: Heading...Cell... To mention a person: . Put the tag where the name must show in the text, for example "Thanks for the fix". The person gets a notification. If the ID is not a person, the tool returns an error and writes nothing. Get person IDs from basecamp_list_people, or from the people in other responses (assignees, creators). Single image: Image gallery: wrap multiple in a . A bc-attachment needs an attachable_sgid. For a file that is already in Basecamp, take the sgid from the HTML content of the message, comment or card that shows it, or use basecamp_list_recordings. For a file that is not in Basecamp yet, such as an image at an external URL or a screenshot on disk, upload it with basecamp_create_attachment and use the sgid that it returns. There is no tag, so an external image URL can never be embedded directly: upload it, or accept that it stays a plain link. Basecamp auto-enriches bc-attachment tags after saving (adds url, href, filename, content-type, etc.) — you never need to write those. When you see an existing, already-enriched tag (e.g. from a previous list/get call), leave its inner HTML alone. Before any content_append/content_prepend/search_replace runs, it is automatically collapsed back to its minimal form (sgid, presentation, caption, and content-type for mentions) — you don't need to strip it yourself, and doing so manually is unnecessary and risks mismatched find strings. Background highlights: ... Text color highlights: ... For both, N is 1 (yellow), 2 (amber), 3 (red), 4 (pink), 5 (purple), 6 (blue), 7 (teal), 8 (near-white), or 9 (light gray).
|
| basecamp_move_todoA | Move a todo to a different place: in its todo list, into a group (section), or into a different todo list. Examples: Put a todo at the top of its list: placement "top". Put a todo after another todo: placement "after" and relative_to_id. If the other todo is in a different list or group, the todo moves there. Move a todo to the bottom of another list or group: placement "bottom" and destination_id.
Only the todos that are not complete have a position. To set the order of many todos, use basecamp_reorder_todos. |
| basecamp_reorder_todosA | Set the order of all the todos in a todo list or in a group (section). Give the IDs of all the todos that are not complete, in the new order. Use this to sort todos, for example by due date. To move one todo, use basecamp_move_todo. The todos in a group are not part of the todo list: to reorder them, give the group ID. |
| basecamp_move_todolistA | Move a todo list to a different place among the todo lists of its project. Get the todo list IDs from basecamp_get_todoset. To move a group (section), use basecamp_move_todolist_group. |
| basecamp_create_todolist_groupA | Create a group (section) in a todo list, to split its todos. The new group goes at the bottom of the groups, or at the place that placement tells. Then create todos in the group with basecamp_create_todo (give the group ID as todolist_id), or move todos into it with basecamp_move_todo (destination_id). To rename the group or to give it a description, use basecamp_update_todolist with the group ID. |
| basecamp_move_todolist_groupA | Move a group (section) to a different place among the groups of its todo list. The groups always show after the todos that are not in a group. Get the group IDs from basecamp_list_todos. You cannot move a group to a different todo list. |
| basecamp_list_commentsA | List comments on any Basecamp resource (message, todo, card, etc.). Works universally on all recording types. |
| basecamp_create_commentB | Add a comment to any Basecamp resource (message, todo, card, etc.). |
| basecamp_update_commentA | Update a comment. Use partial content operations when possible to save on token usage. HTML rules for content: Allowed tags: p, span, h2, h3, h4, br, strong, em, strike, code, a (with href attribute), pre, ol, ul, li, blockquote, mark, figure, figcaption, table, tbody, tr, th, td, div, bc-attachment. Wrap every paragraph in ..., and put between one paragraph and the next. Both parts are necessary: newlines and blank lines in your HTML are discarded, and Basecamp shows no space around a on its own, so two paragraphs with nothing between them are shown as one block of text. Do not rely on line breaks in your HTML to separate paragraphs. Headings: use , , as appropriate. Inline code: text. Preformatted blocks: text. Ordered lists: .... Unordered: .... Tables: Heading...Cell... To mention a person: . Put the tag where the name must show in the text, for example "Thanks for the fix". The person gets a notification. If the ID is not a person, the tool returns an error and writes nothing. Get person IDs from basecamp_list_people, or from the people in other responses (assignees, creators). Single image: Image gallery: wrap multiple in a . A bc-attachment needs an attachable_sgid. For a file that is already in Basecamp, take the sgid from the HTML content of the message, comment or card that shows it, or use basecamp_list_recordings. For a file that is not in Basecamp yet, such as an image at an external URL or a screenshot on disk, upload it with basecamp_create_attachment and use the sgid that it returns. There is no tag, so an external image URL can never be embedded directly: upload it, or accept that it stays a plain link. Basecamp auto-enriches bc-attachment tags after saving (adds url, href, filename, content-type, etc.) — you never need to write those. When you see an existing, already-enriched tag (e.g. from a previous list/get call), leave its inner HTML alone. Before any content_append/content_prepend/search_replace runs, it is automatically collapsed back to its minimal form (sgid, presentation, caption, and content-type for mentions) — you don't need to strip it yourself, and doing so manually is unnecessary and risks mismatched find strings. Background highlights: ... Text color highlights: ... For both, N is 1 (yellow), 2 (amber), 3 (red), 4 (pink), 5 (purple), 6 (blue), 7 (teal), 8 (near-white), or 9 (light gray).
|
| basecamp_get_meA | Get your full profile for the authenticated user (id, name, email, title, attachable_sgid). To simply check whether you're logged in, use basecamp_whoami. |
| basecamp_list_peopleA | List all people in the Basecamp account. |
| basecamp_get_personB | Get details about a specific person. |
| basecamp_list_kanban_columnsA | List all columns in a kanban board. |
| basecamp_list_kanban_cardsB | List cards in a kanban column. |
| basecamp_get_kanban_cardA | Get all details of a specific kanban card. |
| basecamp_create_kanban_cardA | Create a new card in a kanban column with optional checklist steps. HTML rules for content: Allowed tags: p, span, h2, h3, h4, br, strong, em, strike, code, a (with href attribute), pre, ol, ul, li, blockquote, mark, figure, figcaption, table, tbody, tr, th, td, div, bc-attachment. Wrap every paragraph in ..., and put between one paragraph and the next. Both parts are necessary: newlines and blank lines in your HTML are discarded, and Basecamp shows no space around a on its own, so two paragraphs with nothing between them are shown as one block of text. Do not rely on line breaks in your HTML to separate paragraphs. Headings: use , , as appropriate. Inline code: text. Preformatted blocks: text. Ordered lists: .... Unordered: .... Tables: Heading...Cell... To mention a person: . Put the tag where the name must show in the text, for example "Thanks for the fix". The person gets a notification. If the ID is not a person, the tool returns an error and writes nothing. Get person IDs from basecamp_list_people, or from the people in other responses (assignees, creators). Single image: Image gallery: wrap multiple in a . A bc-attachment needs an attachable_sgid. For a file that is already in Basecamp, take the sgid from the HTML content of the message, comment or card that shows it, or use basecamp_list_recordings. For a file that is not in Basecamp yet, such as an image at an external URL or a screenshot on disk, upload it with basecamp_create_attachment and use the sgid that it returns. There is no tag, so an external image URL can never be embedded directly: upload it, or accept that it stays a plain link. Basecamp auto-enriches bc-attachment tags after saving (adds url, href, filename, content-type, etc.) — you never need to write those. When you see an existing, already-enriched tag (e.g. from a previous list/get call), leave its inner HTML alone. Before any content_append/content_prepend/search_replace runs, it is automatically collapsed back to its minimal form (sgid, presentation, caption, and content-type for mentions) — you don't need to strip it yourself, and doing so manually is unnecessary and risks mismatched find strings. Background highlights: ... Text color highlights: ... For both, N is 1 (yellow), 2 (amber), 3 (red), 4 (pink), 5 (purple), 6 (blue), 7 (teal), 8 (near-white), or 9 (light gray).
|
| basecamp_update_kanban_cardA | Update a kanban card including its steps. At least one field (title, content, partial content operations, or steps) must be provided. Use partial content operations when possible to save on token usage. HTML rules for content: Allowed tags: p, span, h2, h3, h4, br, strong, em, strike, code, a (with href attribute), pre, ol, ul, li, blockquote, mark, figure, figcaption, table, tbody, tr, th, td, div, bc-attachment. Wrap every paragraph in ..., and put between one paragraph and the next. Both parts are necessary: newlines and blank lines in your HTML are discarded, and Basecamp shows no space around a on its own, so two paragraphs with nothing between them are shown as one block of text. Do not rely on line breaks in your HTML to separate paragraphs. Headings: use , , as appropriate. Inline code: text. Preformatted blocks: text. Ordered lists: .... Unordered: .... Tables: Heading...Cell... To mention a person: . Put the tag where the name must show in the text, for example "Thanks for the fix". The person gets a notification. If the ID is not a person, the tool returns an error and writes nothing. Get person IDs from basecamp_list_people, or from the people in other responses (assignees, creators). Single image: Image gallery: wrap multiple in a . A bc-attachment needs an attachable_sgid. For a file that is already in Basecamp, take the sgid from the HTML content of the message, comment or card that shows it, or use basecamp_list_recordings. For a file that is not in Basecamp yet, such as an image at an external URL or a screenshot on disk, upload it with basecamp_create_attachment and use the sgid that it returns. There is no tag, so an external image URL can never be embedded directly: upload it, or accept that it stays a plain link. Basecamp auto-enriches bc-attachment tags after saving (adds url, href, filename, content-type, etc.) — you never need to write those. When you see an existing, already-enriched tag (e.g. from a previous list/get call), leave its inner HTML alone. Before any content_append/content_prepend/search_replace runs, it is automatically collapsed back to its minimal form (sgid, presentation, caption, and content-type for mentions) — you don't need to strip it yourself, and doing so manually is unnecessary and risks mismatched find strings. Background highlights: ... Text color highlights: ... For both, N is 1 (yellow), 2 (amber), 3 (red), 4 (pink), 5 (purple), 6 (blue), 7 (teal), 8 (near-white), or 9 (light gray).
|
| basecamp_move_kanban_cardB | Move a kanban card to a different column and/or position within that column. |
| basecamp_list_recordingsA | Browse recent activity across Basecamp by listing recordings. Recordings represent all content in Basecamp: todos, messages, documents, comments, uploads, and more. Use this tool to: See what's been happening across all projects or specific projects Find recent activity by one or more people Review changes since a specific date or time period Filter activity by content type (todos, messages, documents, etc.) Search activity by title text
When to use this vs. the per-resource list tools: use the per-project list tools (basecamp_list_messages, basecamp_list_todos, basecamp_list_documents, basecamp_list_comments, basecamp_list_kanban_cards) to browse items WITHIN a single project; use basecamp_list_recordings for CROSS-project, time-based, or multi-type activity browsing. All filters support multiple values for OR-matching. Examples: "What happened in the last 24 hours?" → since: "24h" "Show recent todos in project 12345" → project_ids: [12345], type: ["todo"] "What did Alice and Bob do this week?" → person_ids: [111, 222], since: "7d" "Find messages mentioning launch across projects 1 and 2" → project_ids: [1, 2], type: ["message"], query: ["launch"] "Find items about design or UX" → query: ["design", "UX"] "List all messages across projects" → type: ["message"]
|
| basecamp_list_campfire_messagesA | Browse chat messages from Basecamp Campfires. Campfires are real-time chat rooms within projects. Use this tool to: See recent chat activity across all campfires or specific ones Find messages from specific people Search message content for keywords Review chat history since a specific date or time period
All filters support multiple values for OR-matching. Examples: "What's been discussed in chat today?" → since: "today" "Show messages from Alice and Bob" → person_ids: [111, 222] "Find chat messages mentioning deploy or release" → query: ["deploy", "release"] "Recent messages in campfire 12345" → campfire_ids: [12345]
|
| basecamp_list_vaultsA | List sub-vaults (folders) under a parent vault in the Docs & Files section. |
| basecamp_get_vaultA | Get details of a vault (folder) including document/upload/sub-vault counts. |
| basecamp_create_vaultB | Create a new vault (folder) under a parent vault. |
| basecamp_update_vaultA | Update the title of a vault (folder). |
| basecamp_list_documentsA | List documents in a vault. |
| basecamp_get_documentA | Retrieve a single document with its full content. |
| basecamp_create_documentA | Create a new document in a vault. HTML rules for content: Allowed tags: p, span, h2, h3, h4, br, strong, em, strike, code, a (with href attribute), pre, ol, ul, li, blockquote, mark, figure, figcaption, table, tbody, tr, th, td, div, bc-attachment. Wrap every paragraph in ..., and put between one paragraph and the next. Both parts are necessary: newlines and blank lines in your HTML are discarded, and Basecamp shows no space around a on its own, so two paragraphs with nothing between them are shown as one block of text. Do not rely on line breaks in your HTML to separate paragraphs. Headings: use , , as appropriate. Inline code: text. Preformatted blocks: text. Ordered lists: .... Unordered: .... Tables: Heading...Cell... To mention a person: . Put the tag where the name must show in the text, for example "Thanks for the fix". The person gets a notification. If the ID is not a person, the tool returns an error and writes nothing. Get person IDs from basecamp_list_people, or from the people in other responses (assignees, creators). Single image: Image gallery: wrap multiple in a . A bc-attachment needs an attachable_sgid. For a file that is already in Basecamp, take the sgid from the HTML content of the message, comment or card that shows it, or use basecamp_list_recordings. For a file that is not in Basecamp yet, such as an image at an external URL or a screenshot on disk, upload it with basecamp_create_attachment and use the sgid that it returns. There is no tag, so an external image URL can never be embedded directly: upload it, or accept that it stays a plain link. Basecamp auto-enriches bc-attachment tags after saving (adds url, href, filename, content-type, etc.) — you never need to write those. When you see an existing, already-enriched tag (e.g. from a previous list/get call), leave its inner HTML alone. Before any content_append/content_prepend/search_replace runs, it is automatically collapsed back to its minimal form (sgid, presentation, caption, and content-type for mentions) — you don't need to strip it yourself, and doing so manually is unnecessary and risks mismatched find strings. Background highlights: ... Text color highlights: ... For both, N is 1 (yellow), 2 (amber), 3 (red), 4 (pink), 5 (purple), 6 (blue), 7 (teal), 8 (near-white), or 9 (light gray).
|
| basecamp_update_documentA | Update a document. Use partial content operations when possible to save on token usage. HTML rules for content: Allowed tags: p, span, h2, h3, h4, br, strong, em, strike, code, a (with href attribute), pre, ol, ul, li, blockquote, mark, figure, figcaption, table, tbody, tr, th, td, div, bc-attachment. Wrap every paragraph in ..., and put between one paragraph and the next. Both parts are necessary: newlines and blank lines in your HTML are discarded, and Basecamp shows no space around a on its own, so two paragraphs with nothing between them are shown as one block of text. Do not rely on line breaks in your HTML to separate paragraphs. Headings: use , , as appropriate. Inline code: text. Preformatted blocks: text. Ordered lists: .... Unordered: .... Tables: Heading...Cell... To mention a person: . Put the tag where the name must show in the text, for example "Thanks for the fix". The person gets a notification. If the ID is not a person, the tool returns an error and writes nothing. Get person IDs from basecamp_list_people, or from the people in other responses (assignees, creators). Single image: Image gallery: wrap multiple in a . A bc-attachment needs an attachable_sgid. For a file that is already in Basecamp, take the sgid from the HTML content of the message, comment or card that shows it, or use basecamp_list_recordings. For a file that is not in Basecamp yet, such as an image at an external URL or a screenshot on disk, upload it with basecamp_create_attachment and use the sgid that it returns. There is no tag, so an external image URL can never be embedded directly: upload it, or accept that it stays a plain link. Basecamp auto-enriches bc-attachment tags after saving (adds url, href, filename, content-type, etc.) — you never need to write those. When you see an existing, already-enriched tag (e.g. from a previous list/get call), leave its inner HTML alone. Before any content_append/content_prepend/search_replace runs, it is automatically collapsed back to its minimal form (sgid, presentation, caption, and content-type for mentions) — you don't need to strip it yourself, and doing so manually is unnecessary and risks mismatched find strings. Background highlights: ... Text color highlights: ... For both, N is 1 (yellow), 2 (amber), 3 (red), 4 (pink), 5 (purple), 6 (blue), 7 (teal), 8 (near-white), or 9 (light gray).
|
| basecamp_list_uploadsA | List files uploaded to a vault in the Docs & Files section. |
| basecamp_get_uploadA | Get a file uploaded to a vault. For images, returns the image content that the LLM can see directly. For text-based files (plain text, CSV, JSON, XML, etc.), returns the file content as text. For other binary formats, returns metadata only. |
| basecamp_download_blobA | |
| basecamp_create_attachmentA | Upload a file to Basecamp and get the attachable_sgid needed to embed it in rich text. Use this when you want to show an image or a video in a message, comment, document, card or todo, and that file is not in Basecamp yet — for example an image at an external URL, or a screenshot on disk. Give either file_path or url. The returned sgid goes into a tag. An sgid is tied to this account and does not expire, but it is only shown once here, so embed it in the same session. |
| basecamp_get_questionnaireA | Get the questionnaire (check-ins container) for a project. Returns the number of questions and their URL. |
| basecamp_list_questionsA | List all automatic check-in questions in a questionnaire. Returns each question's title, schedule, paused status, and answer count. |
| basecamp_get_questionA | Get a single automatic check-in question with its schedule and metadata. |
| basecamp_list_answersA | List answers to a specific check-in question. Returns each answer's content, author, and check-in date. |
| basecamp_get_answerA | Get a single check-in answer by its ID. |
| basecamp_create_answerB | Create a new answer for a check-in question. Content must be HTML. |
| basecamp_trashA | Move an item to the trash: a todo list, a group (section), a todo, a message, a comment, a document, a folder, an upload or a kanban card. The items in it go too, for example the todos of a todo list. Basecamp deletes the items in the trash permanently after some time. Until then, basecamp_restore brings the item back with the same ID. |
| basecamp_restoreA | Bring an item back from the trash or from the archive. The items in it come back too, for example the todos of a todo list. To find the IDs of trashed items, use basecamp_list_recordings with status "trashed". |