Skip to main content
Glama
awwaiid

TaskWarrior MCP Server

by awwaiid

add_task

Create new tasks in TaskWarrior with details like description, due date, priority, project, and tags to organize your workflow.

Instructions

Add a new task

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
descriptionYes
dueNo
priorityNo
projectNo
tagsNo

Implementation Reference

  • Switch case handling the 'add_task' tool: parses input with addTaskRequest schema, builds TaskWarrior 'task add' command from description, due, priority, project, tags, executes via execSync, returns output as text content.
    case "add_task": {
      const parsed = addTaskRequest.safeParse(args);
      if (!parsed.success) {
        throw new Error(`Invalid arguments for add_task: ${parsed.error}`);
      }
    
      let task_args = [parsed.data.description];
      
      if (parsed.data.due) {
        task_args.push(`due:${parsed.data.due}`);
      }
      if (parsed.data.priority) {
        task_args.push(`priority:${parsed.data.priority}`);
      }
      if (parsed.data.project) {
        task_args.push(`project:${parsed.data.project}`);
      }
      if (parsed.data.tags) {
        for (let tag of parsed.data.tags) {
          task_args.push(`+${tag}`);
        }
      }
    
      const content = execSync(`task add ${task_args.join(" ")}`, { maxBuffer: 1024 * 1024 * 10 }).toString().trim();
      return {
        content: [{ type: "text", text: content }],
      };
    }
  • Zod schema defining the input for 'add_task': required description, optional due (ISO), priority (H/M/L), project, tags.
    const addTaskRequest = z.object({
      description: z.string(),
      // Optional fields that can be set when adding
      due: z.string().optional(), // ISO timestamp
      priority: z.enum(["H", "M", "L"]).optional(),
      project: z.string().regex(/^[a-z.]+$/).optional(),
      tags: z.array(z.string().regex(/^a-z$/)).optional(),
    });
  • index.ts:106-110 (registration)
    Tool registration in ListTools response: defines name, description, and converts addTaskRequest Zod schema to JSON schema for input.
    {
      name: "add_task",
      description: "Add a new task",
      inputSchema: zodToJsonSchema(addTaskRequest) as ToolInput,
    },
  • Response schema for 'add_task' aliases the shared taskSchema.
    const addTaskResponse = taskSchema;
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/awwaiid/mcp-server-taskwarrior'

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