basecamp_complete_todo
Mark Basecamp to-do items as completed by providing the project bucket ID and specific task identifier to track project progress.
Instructions
Mark a todo as completed.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| bucket_id | Yes | Basecamp resource identifier | |
| todo_id | Yes |
Implementation Reference
- src/tools/todos.ts:227-242 (handler)The handler function that implements the logic for completing a Basecamp todo. It initializes the client and calls the complete API.async (params) => { try { const client = await initializeBasecampClient(); await client.todos.complete({ params: { bucketId: params.bucket_id, todoId: params.todo_id }, }); return { content: [{ type: "text", text: "Todo marked as completed!" }], }; } catch (error) { return { content: [{ type: "text", text: handleBasecampError(error) }], }; } },
- src/tools/todos.ts:216-219 (schema)Input schema definition for the basecamp_complete_todo tool, specifying bucket_id and todo_id parameters.inputSchema: { bucket_id: BasecampIdSchema, todo_id: BasecampIdSchema, },
- src/tools/todos.ts:211-243 (registration)Registration of the basecamp_complete_todo tool with the MCP server, including name, schema, annotations, and handler.server.registerTool( "basecamp_complete_todo", { title: "Complete Basecamp Todo", description: "Mark a todo as completed.", inputSchema: { bucket_id: BasecampIdSchema, todo_id: BasecampIdSchema, }, annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: true, }, }, async (params) => { try { const client = await initializeBasecampClient(); await client.todos.complete({ params: { bucketId: params.bucket_id, todoId: params.todo_id }, }); return { content: [{ type: "text", text: "Todo marked as completed!" }], }; } catch (error) { return { content: [{ type: "text", text: handleBasecampError(error) }], }; } }, );
- src/schemas/common.ts:10-12 (schema)Shared Zod schema for Basecamp IDs used in the tool's input parameters.export const BasecampIdSchema = z .number() .describe("Basecamp resource identifier");