Skip to main content
Glama

sort-tasks

Organize tasks in Todo.txt files by priority, creation date, or completion date to enhance task management efficiency and clarity.

Instructions

Sort tasks by priority, creation date, or completion date.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
byYes

Implementation Reference

  • Handler function loads tasks, sorts them based on the 'by' parameter (priority, creationDate, or completionDate), and returns the sorted list as a text response.
    async ({ by }) => { const tasks = await loadTasks(); let sortedTasks = tasks.slice(); switch (by) { case "priority": sortedTasks = sortedTasks.sort((a, b) => (a.priority() || "").localeCompare(b.priority() || "")); break; case "creationDate": sortedTasks = sortedTasks.sort((a, b) => new Date(a.created()?.toISOString() || 0).getTime() - new Date(b.created()?.toISOString() || 0).getTime()); break; case "completionDate": sortedTasks = sortedTasks.sort((a, b) => new Date(a.completed()?.toISOString() || 0).getTime() - new Date(b.completed()?.toISOString() || 0).getTime()); break; } return { content: [ { type: "text", text: sortedTasks.map(task => task.toString()).join("\n") }, ], }; }
  • Input schema defines the 'by' parameter as an enum: ["priority", "creationDate", "completionDate"].
    { by: z.enum(["priority", "creationDate", "completionDate"]) },
  • src/tools.ts:165-189 (registration)
    Registers the 'sort-tasks' tool with MCP server, providing description, input schema, and handler function.
    server.tool( "sort-tasks", "Sort tasks by priority, creation date, or completion date.", { by: z.enum(["priority", "creationDate", "completionDate"]) }, async ({ by }) => { const tasks = await loadTasks(); let sortedTasks = tasks.slice(); switch (by) { case "priority": sortedTasks = sortedTasks.sort((a, b) => (a.priority() || "").localeCompare(b.priority() || "")); break; case "creationDate": sortedTasks = sortedTasks.sort((a, b) => new Date(a.created()?.toISOString() || 0).getTime() - new Date(b.created()?.toISOString() || 0).getTime()); break; case "completionDate": sortedTasks = sortedTasks.sort((a, b) => new Date(a.completed()?.toISOString() || 0).getTime() - new Date(b.completed()?.toISOString() || 0).getTime()); break; } return { content: [ { type: "text", text: sortedTasks.map(task => task.toString()).join("\n") }, ], }; } );

Other Tools

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

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