Skip to main content
Glama

filter-tasks

Filter tasks in Todo.txt files by priority, context, or project to organize and focus on specific work items.

Instructions

Filter tasks by specific criteria (priority, context, project).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
criteriaYes

Implementation Reference

  • The handler function for the 'filter-tasks' tool. It loads all tasks, applies sequential filters based on provided criteria (priority, context, or project), and returns the filtered tasks as a newline-separated string.
    async ({ criteria }) => { const tasks = await loadTasks(); let filteredTasks = tasks; if (criteria.priority) { filteredTasks = filteredTasks.filter(task => task.priority() === criteria.priority); } if (criteria.context) { filteredTasks = filteredTasks.filter(task => criteria.context && task.contexts().includes(criteria.context)); } if (criteria.project) { filteredTasks = filteredTasks.filter(task => criteria.project && task.projects().includes(criteria.project)); } return { content: [ { type: "text", text: filteredTasks.map(task => task.toString()).join("\n") }, ], }; }
  • Zod input schema for the 'filter-tasks' tool, defining an object with optional string fields for priority, context, and project filters.
    { criteria: z.object({ priority: z.string().optional(), context: z.string().optional(), project: z.string().optional(), }), },
  • src/tools.ts:191-219 (registration)
    Registration of the 'filter-tasks' tool using server.tool(), which includes the name, description, input schema, and inline handler function. This occurs within the exported registerTools function.
    server.tool( "filter-tasks", "Filter tasks by specific criteria (priority, context, project).", { criteria: z.object({ priority: z.string().optional(), context: z.string().optional(), project: z.string().optional(), }), }, async ({ criteria }) => { const tasks = await loadTasks(); let filteredTasks = tasks; if (criteria.priority) { filteredTasks = filteredTasks.filter(task => task.priority() === criteria.priority); } if (criteria.context) { filteredTasks = filteredTasks.filter(task => criteria.context && task.contexts().includes(criteria.context)); } if (criteria.project) { filteredTasks = filteredTasks.filter(task => criteria.project && task.projects().includes(criteria.project)); } return { content: [ { type: "text", text: filteredTasks.map(task => task.toString()).join("\n") }, ], }; } );
  • index.ts:48-48 (registration)
    Top-level call to registerTools on the MCP server instance, which in turn registers the 'filter-tasks' tool among others.
    registerTools(server, loadTasks, TODO_FILE_PATH);

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/guifelix/mcp-server-todotxt'

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