Skip to main content
Glama

complete_becky_task

Complete a shared Todoist task by setting its due date to today, adding a completion comment, and moving it to the designated inbox project.

Instructions

Complete a Brian shared task (assigned to Brian from Becky) by setting due date to today, adding a completion comment, and moving it to Becky inbox project

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
task_idYesThe ID of the task to complete

Implementation Reference

  • The handler function for the 'complete_becky_task' tool. It takes a task_id argument, calls the completeBeckyTask helper function, logs execution, and returns a success or error message in the required MCP format.
    export const completeBeckyTaskTool: Tool = {
      schema: {
        name: 'complete_becky_task',
        description:
          'Complete a Brian shared task (assigned to Brian from Becky) by setting due date to today, adding a completion comment, and moving it to Becky inbox project',
        inputSchema: {
          type: 'object',
          properties: {
            task_id: {
              type: 'string',
              description: 'The ID of the task to complete',
            },
          },
          required: ['task_id'],
        },
      },
      handler: async (args: { task_id: string }) => {
        try {
          console.error('Executing complete_becky_task...');
          await completeBeckyTask(args.task_id);
          console.error('complete_becky_task completed successfully');
    
          return {
            content: [
              {
                type: 'text',
                text: 'Task completed successfully. Due date set to today, completion comment added, and task moved to Becky inbox project.',
              },
            ],
          };
        } catch (error) {
          return {
            content: [
              {
                type: 'text',
                text: `Error: ${
                  error instanceof Error ? error.message : 'Unknown error'
                }`,
              },
            ],
          };
        }
      },
    };
  • The core helper function implementing the logic to complete a Becky task: sets due date to 'today', adds a specific completion comment, and moves the task to the 'Becky inbox - per Brian' project.
    export async function completeBeckyTask(taskId: string): Promise<void> {
      try {
        const commentContent = buildCommentContent();
    
        // Find the Becky inbox project
        const beckyInboxProjectId = await findProjectByName(
          'Becky inbox - per Brian'
        );
    
        // Update the task due string to today
        await updateTask({
          taskId,
          dueString: 'today',
        });
    
        // Add the completion comment
        await createAutomatedTaskComment(taskId, commentContent);
    
        // Move the task to the Becky inbox project
        await moveTask(taskId, beckyInboxProjectId);
      } catch (error) {
        throw new Error(`Failed to complete Becky task: ${getErrorMessage(error)}`);
      }
    }
  • Registration of the complete_becky_task tool handler in the toolsWithArgs registry used by handleToolRequest.
      search_tasks_using_or: searchTasksUsingOrTool.handler,
      complete_becky_task: completeBeckyTaskTool.handler,
    };
  • The tool's schema is registered in the MCP server's listTools handler response.
    completeBeckyTaskTool.schema,
  • src/tools/index.ts:8-8 (registration)
    Re-export of the completeBeckyTaskTool for use in other modules.
    completeBeckyTaskTool,
Behavior2/5

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

With no annotations, the description carries full burden. It describes the mutation actions (setting due date, adding comment, moving), but lacks details on permissions needed, whether changes are reversible, error conditions, or what the response looks like. For a mutation tool with zero annotation coverage, this is insufficient.

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

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the purpose and lists key actions without unnecessary words. Every part earns its place by specifying the task type and completion steps.

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 no annotations, no output schema, and a mutation tool with one parameter, the description covers the basic purpose and actions but lacks behavioral context like side effects, return values, or error handling. It's minimally viable but has clear gaps for agent invocation.

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?

Schema coverage is 100% with one parameter 'task_id', which the schema describes as 'The ID of the task to complete'. The description doesn't add parameter details beyond this, but with high coverage and only one parameter, a baseline of 4 is appropriate as the schema adequately documents it.

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

Purpose4/5

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

The description clearly states the action ('Complete a Brian shared task') and specifies the resource ('assigned to Brian from Becky'), with details on what completion entails (setting due date, adding comment, moving to project). It distinguishes from 'complete_task' by specifying it's for 'Brian shared tasks' from Becky, though not explicitly contrasting with all siblings.

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

Usage Guidelines3/5

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

The description implies usage for tasks 'assigned to Brian from Becky' and moving to 'Becky inbox project', providing some context. However, it lacks explicit guidance on when to use this vs. alternatives like 'complete_task' or 'move_task', and no mention of prerequisites or exclusions.

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/bkotos/todoist-mcp'

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