Skip to main content
Glama

Update Basecamp Todo

basecamp_update_todo
Idempotent

Update a Basecamp todo item with new title, assignees, dates, or content, using partial operations to minimize token usage.

Instructions

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.

  • Use for paragraphs. Use for empty line spacing between paragraphs.

  • Headings: use , , as appropriate.

  • Inline code: text. Preformatted blocks: text.

  • Ordered lists: .... Unordered: ....

  • Tables: Heading...Cell...

  • To mention people:

  • Single image:

  • Image gallery: wrap multiple in a .

  • Basecamp auto-enriches bc-attachment tags after saving (adds url, href, filename, content-type, etc.) — you never need to write those.

  • To consume less tokens, existing tags can be rewritten keeping only: sgid, presentation, caption. For mentions also keep content-type="application/vnd.basecamp.mention". Drop everything else including inner HTML.

  • 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).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
todo_idYesBasecamp resource identifier
titleNoNew todo title
assignee_idsNoArray of person IDs to assign to this todo
due_onNoDue date in YYYY-MM-DD format. Pass an empty string to clear the due date.
starts_onNoStart date in YYYY-MM-DD format (for a date range; requires due_on). Pass an empty string to clear it.
notifyNoWhether to notify the assignees about this todo
contentNoIf provided, replaces entire HTML content. Cannot be used with content_append, content_prepend, or search_replace.
content_appendNoText to append to the end of current content. Cannot be used with content.
content_prependNoText to prepend to the beginning of current content. Cannot be used with content.
search_replaceNoArray of search-replace operations to apply to current content. Cannot be used with content.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate idempotentHint=true and destructiveHint=false, so the safety profile is clear. The description adds token-saving advice but doesn't disclose other behavioral traits like notification behavior or return format. It does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the main purpose and token-saving tip, but the large HTML section makes it lengthy. While structured, it could be more concise without losing essential details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (10 parameters, content operations, no output schema), the description covers content behavior well but lacks information about return values or overall effect. It is adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers 100% of parameters with descriptions, raising the baseline. However, the description adds extensive HTML formatting rules that are essential for using the content parameter correctly, providing significant semantic value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Update a todo item' with a specific verb and resource. It distinguishes from sibling tools like basecamp_complete_todo and basecamp_create_todo by focusing on updating existing todos. The purpose is immediately clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a usage tip: 'Use partial content operations when possible to save on token usage.' This gives guidance on efficient usage but does not explicitly compare to alternatives or state when not to use this tool. Still, it offers actionable advice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/stefanoverna/basecamp-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server