Skip to main content
Glama
blizzy78
by blizzy78
current_task.ts1.6 kB
import type { CallToolResult, TextContent } from '@modelcontextprotocol/sdk/types.js' import { z } from 'zod' import { zodToJsonSchema } from 'zod-to-json-schema' import { type TaskDB } from '../task_db.js' import { DoneStatus, FailedStatus, toBasicTaskInfo, TodoStatus } from '../tasks.js' export const CurrentTaskArgsSchema = z.object({}) type CurrentTaskArgs = z.infer<typeof CurrentTaskArgsSchema> export const CURRENT_TASK = 'current_task' export const currentTaskTool = { name: CURRENT_TASK, title: 'Get current task', description: 'Returns a list of tasks that are currently in progress.', inputSchema: zodToJsonSchema(CurrentTaskArgsSchema, { $refStrategy: 'none' }), } export async function handleCurrentTask(_: CurrentTaskArgs, taskDB: TaskDB) { const currentTaskID = taskDB.getCurrentTask() if (!currentTaskID) { const res = { tasks: [] } return { content: [], structuredContent: res, } satisfies CallToolResult } const tasksInTree = taskDB.getAllInTree(currentTaskID) const incompleteTaskIDs = taskDB.incompleteTasksInTree(currentTaskID).map((t) => t.taskID) const res = { tasks: tasksInTree.map((t) => toBasicTaskInfo(t, true, t.status !== DoneStatus && t.status !== FailedStatus, t.status === TodoStatus) ), incompleteTasksIdealOrder: incompleteTaskIDs, } return { content: [ { type: 'text', text: "Use 'task_info' tool to retrieve full task details", audience: ['assistant'], } satisfies TextContent, ], structuredContent: res, } satisfies CallToolResult }

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/blizzy78/mcp-task-manager'

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