task_list
Retrieve and filter tasks by project or status (open/completed) to manage developer operational workflows and track progress within the AI Ops Hub environment.
Instructions
Список задач
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| project | No | Фильтр по проекту | |
| status | No | Статус (open/completed) |
Implementation Reference
- src/connectors/task-service.ts:46-73 (handler)Core handler implementation for listing tasks: loads from markdown file, filters by project and status, returns Task[]async listTasks(project?: string, status?: string): Promise<Task[]> { try { console.log(`📋 Список задач (проект: ${project || 'все'}, статус: ${status || 'все'})`); const tasks = await this.loadTasks(); let filteredTasks = tasks; // Фильтр по проекту if (project) { filteredTasks = filteredTasks.filter(task => task.project === project); } // Фильтр по статусу if (status === 'open') { filteredTasks = filteredTasks.filter(task => !task.completed_at); } else if (status === 'completed') { filteredTasks = filteredTasks.filter(task => task.completed_at); } console.log(`✅ Найдено задач: ${filteredTasks.length}`); return filteredTasks; } catch (error) { console.error('Ошибка получения списка задач:', error); throw new Error(`Ошибка получения списка задач: ${error}`); } }
- src/server.ts:215-218 (handler)MCP Server CallToolRequest handler case for 'task_list', delegates to TaskService.listTaskscase 'task_list': return { content: await this.taskService.listTasks(args.project as string, args.status as string) };
- src/server.ts:155-172 (schema)Tool schema and description registration for 'task_list' in MCP ListToolsRequest handler{ name: 'task_list', description: 'Список задач', inputSchema: { type: 'object', properties: { project: { type: 'string', description: 'Фильтр по проекту', }, status: { type: 'string', description: 'Статус (open/completed)', enum: ['open', 'completed'], }, }, }, },
- src/connectors/task-service.ts:4-11 (schema)Type definition for Task objects returned by listTasksexport interface Task { id: number; title: string; project?: string; due?: string; created_at: string; completed_at?: string; }
- src/server.ts:178-227 (registration)Full MCP CallToolRequestHandler registration including the switch case for task_list toolthis.server.setRequestHandler(CallToolRequestSchema, async (request) => { const { name, arguments: args } = request.params; if (!args) { throw new Error('Аргументы не предоставлены'); } try { switch (name) { case 'rag_search': return { content: await this.ragService.search(args.query as string, (args.limit as number) || 5) }; case 'rag_add_document': await this.ragService.addDocument(args.uri as string, args.content as string, args.title as string); return { content: 'Документ добавлен' }; case 'file_read': return { content: await this.fileService.readFile(args.path as string) }; case 'file_write': await this.fileService.writeFile(args.path as string, args.content as string); return { content: 'Файл записан' }; case 'web_fetch': return { content: await this.webService.fetchPage(args.url as string) }; case 'task_create': return { content: await this.taskService.createTask(args.title as string, args.project as string, args.due as string) }; case 'task_list': return { content: await this.taskService.listTasks(args.project as string, args.status as string) }; default: throw new Error(`Неизвестный инструмент: ${name}`); } } catch (error) { console.error(`Ошибка выполнения инструмента ${name}:`, error); throw error; } });