@opentask/taskin-task-server-mcp 0.1.9 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/task-server-mcp.d.ts +0 -3
- package/dist/task-server-mcp.d.ts.map +1 -1
- package/dist/task-server-mcp.js +31 -4
- package/dist/task-server-mcp.js.map +1 -1
- package/dist/task-server-mcp.mock.d.ts +12 -7
- package/dist/task-server-mcp.mock.d.ts.map +1 -1
- package/dist/task-server-mcp.mock.js +23 -17
- package/dist/task-server-mcp.mock.js.map +1 -1
- package/package.json +6 -6
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import type { ITaskManager } from '@opentask/taskin-task-manager';
|
|
2
2
|
import type { ITaskMCPServer, MCPConnectionOptions, MCPPrompt, MCPPromptGetParams, MCPPromptGetResult, MCPResourceListResult, MCPResourceReadParams, MCPServerConfig, MCPTool, MCPToolCallParams, MCPToolCallResult } from './task-server-mcp.types.js';
|
|
3
|
-
/**
|
|
4
|
-
* MCP Server for task management integration with LLMs
|
|
5
|
-
*/
|
|
6
3
|
export declare class TaskMCPServer implements ITaskMCPServer {
|
|
7
4
|
private server;
|
|
8
5
|
private taskManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-server-mcp.d.ts","sourceRoot":"","sources":["../src/task-server-mcp.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"task-server-mcp.d.ts","sourceRoot":"","sources":["../src/task-server-mcp.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAElE,OAAO,KAAK,EACV,cAAc,EACd,oBAAoB,EACpB,SAAS,EACT,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,EACf,OAAO,EACP,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,4BAA4B,CAAC;AA4BpC,qBAAa,aAAc,YAAW,cAAc;IAClD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAAe;IAClC,OAAO,CAAC,MAAM,CAA4B;gBAE9B,MAAM,EAAE,eAAe;IA4BnC;;OAEG;IACH,OAAO,CAAC,aAAa;IAmErB;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAU3D;;OAEG;IACH,aAAa;;;;;;;;;;IAab;;OAEG;IACH,SAAS,IAAI;QAAE,KAAK,EAAE,OAAO,EAAE,CAAA;KAAE;IAmCjC;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE,iBAAiB;IAwCxC;;OAEG;YACW,eAAe;IA0B7B;;OAEG;YACW,gBAAgB;IA0B9B;;OAEG;IACH,WAAW,IAAI;QAAE,OAAO,EAAE,SAAS,EAAE,CAAA;KAAE;IAwCvC;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAsFxE;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAerD;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE,qBAAqB;;;;;;;IAyBhD;;OAEG;IACH,OAAO,CAAC,GAAG;CAKZ;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,YAAY,EACzB,OAAO,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GACjC,OAAO,CAAC,aAAa,CAAC,CAUxB"}
|
package/dist/task-server-mcp.js
CHANGED
|
@@ -1,9 +1,32 @@
|
|
|
1
1
|
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
2
2
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
3
3
|
import { CallToolRequestSchema, GetPromptRequestSchema, ListPromptsRequestSchema, ListResourcesRequestSchema, ListToolsRequestSchema, ReadResourceRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
|
|
4
|
+
import { TaskIdSchema } from '@opentask/taskin-types';
|
|
4
5
|
/**
|
|
5
6
|
* MCP Server for task management integration with LLMs
|
|
6
7
|
*/
|
|
8
|
+
/**
|
|
9
|
+
* Tool arguments arrive as untyped JSON from the MCP client, so the id has to
|
|
10
|
+
* be validated before it enters the domain — the branded `TaskId` is only
|
|
11
|
+
* worth something if the boundary that mints it actually checks.
|
|
12
|
+
*/
|
|
13
|
+
function readTaskId(raw) {
|
|
14
|
+
if (typeof raw !== 'string')
|
|
15
|
+
return undefined;
|
|
16
|
+
const parsed = TaskIdSchema.safeParse(raw);
|
|
17
|
+
return parsed.success ? parsed.data : undefined;
|
|
18
|
+
}
|
|
19
|
+
function invalidTaskId(raw) {
|
|
20
|
+
return {
|
|
21
|
+
content: [
|
|
22
|
+
{
|
|
23
|
+
type: 'text',
|
|
24
|
+
text: `Invalid task id: ${JSON.stringify(raw)}. Expected the numeric id of a task, e.g. "020".`,
|
|
25
|
+
},
|
|
26
|
+
],
|
|
27
|
+
isError: true,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
7
30
|
export class TaskMCPServer {
|
|
8
31
|
server;
|
|
9
32
|
taskManager;
|
|
@@ -162,10 +185,14 @@ export class TaskMCPServer {
|
|
|
162
185
|
try {
|
|
163
186
|
this.log(`Calling tool: ${params.name}`, params.arguments);
|
|
164
187
|
switch (params.name) {
|
|
165
|
-
case 'start_task':
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
188
|
+
case 'start_task': {
|
|
189
|
+
const taskId = readTaskId(params.arguments?.taskId);
|
|
190
|
+
return taskId ? await this.handleStartTask(taskId) : invalidTaskId(params.arguments?.taskId);
|
|
191
|
+
}
|
|
192
|
+
case 'finish_task': {
|
|
193
|
+
const taskId = readTaskId(params.arguments?.taskId);
|
|
194
|
+
return taskId ? await this.handleFinishTask(taskId) : invalidTaskId(params.arguments?.taskId);
|
|
195
|
+
}
|
|
169
196
|
default:
|
|
170
197
|
return {
|
|
171
198
|
content: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-server-mcp.js","sourceRoot":"","sources":["../src/task-server-mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,0BAA0B,EAC1B,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"task-server-mcp.js","sourceRoot":"","sources":["../src/task-server-mcp.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +1,29 @@
|
|
|
1
|
-
import type { CreateTaskOptions, CreateTaskResult, ITaskManager, LintResult
|
|
1
|
+
import type { CreateTaskOptions, CreateTaskResult, ITaskManager, LintResult } from '@opentask/taskin-task-manager';
|
|
2
|
+
import { type Task, type TaskId } from '@opentask/taskin-types';
|
|
2
3
|
import type { MCPServerConfig } from './task-server-mcp.types.js';
|
|
3
4
|
/**
|
|
4
|
-
* Mock TaskManager for MCP testing
|
|
5
|
+
* Mock TaskManager for MCP testing.
|
|
6
|
+
*
|
|
7
|
+
* The MCP server only ever exposes id/title/status/type, so the mock stores
|
|
8
|
+
* plain `Task` — there is nothing file-shaped for it to model.
|
|
5
9
|
*/
|
|
6
10
|
export declare class MockMCPTaskManager implements ITaskManager {
|
|
7
11
|
private tasks;
|
|
8
12
|
constructor();
|
|
9
|
-
startTask(taskId:
|
|
10
|
-
|
|
11
|
-
|
|
13
|
+
startTask(taskId: TaskId): Promise<Task>;
|
|
14
|
+
pauseTask(taskId: TaskId): Promise<Task>;
|
|
15
|
+
finishTask(taskId: TaskId): Promise<Task>;
|
|
16
|
+
reviewTask(taskId: TaskId): Promise<Task>;
|
|
12
17
|
createTask(options: CreateTaskOptions): Promise<CreateTaskResult>;
|
|
13
18
|
lint(): Promise<LintResult>;
|
|
14
19
|
/**
|
|
15
20
|
* Get all tasks (for testing)
|
|
16
21
|
*/
|
|
17
|
-
getAllTasks():
|
|
22
|
+
getAllTasks(): Task[];
|
|
18
23
|
/**
|
|
19
24
|
* Get task by ID (for testing)
|
|
20
25
|
*/
|
|
21
|
-
getTask(taskId:
|
|
26
|
+
getTask(taskId: TaskId): Task | undefined;
|
|
22
27
|
}
|
|
23
28
|
/**
|
|
24
29
|
* Create mock MCP server configuration
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-server-mcp.mock.d.ts","sourceRoot":"","sources":["../src/task-server-mcp.mock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"task-server-mcp.mock.d.ts","sourceRoot":"","sources":["../src/task-server-mcp.mock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AACnH,OAAO,EAAe,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElE;;;;;GAKG;AACH,qBAAa,kBAAmB,YAAW,YAAY;IACrD,OAAO,CAAC,KAAK,CAAgC;;IAuBvC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBxC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAexC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWzC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAezC,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAajE,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC;IAUjC;;OAEG;IACH,WAAW,IAAI,IAAI,EAAE;IAIrB;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;CAG1C;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAQ/F;AAED;;GAEG;AACH,eAAO,MAAM,aAAa;wBACJ,MAAM;;;;;;yBAKL,MAAM;;;;;;CAI5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB;4BACL,MAAM;;;;;;6BAKL,MAAM;;;;;;0BAKT,MAAM;;;;;;CAI7B,CAAC"}
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
+
import { parseTaskId } from '@opentask/taskin-types';
|
|
1
2
|
/**
|
|
2
|
-
* Mock TaskManager for MCP testing
|
|
3
|
+
* Mock TaskManager for MCP testing.
|
|
4
|
+
*
|
|
5
|
+
* The MCP server only ever exposes id/title/status/type, so the mock stores
|
|
6
|
+
* plain `Task` — there is nothing file-shaped for it to model.
|
|
3
7
|
*/
|
|
4
8
|
export class MockMCPTaskManager {
|
|
5
9
|
tasks = new Map();
|
|
6
10
|
constructor() {
|
|
7
11
|
// Add some mock tasks
|
|
8
|
-
this.tasks.set('
|
|
9
|
-
id: '
|
|
12
|
+
this.tasks.set(parseTaskId('001'), {
|
|
13
|
+
id: parseTaskId('001'),
|
|
10
14
|
title: 'Implement user authentication',
|
|
11
15
|
description: 'Add JWT-based authentication',
|
|
12
16
|
status: 'pending',
|
|
13
17
|
type: 'feat',
|
|
14
|
-
filePath: './TASKS/task-001.md',
|
|
15
|
-
content: '# Task 001',
|
|
16
18
|
createdAt: new Date().toISOString(),
|
|
17
19
|
});
|
|
18
|
-
this.tasks.set('
|
|
19
|
-
id: '
|
|
20
|
+
this.tasks.set(parseTaskId('002'), {
|
|
21
|
+
id: parseTaskId('002'),
|
|
20
22
|
title: 'Fix login bug',
|
|
21
23
|
description: 'Users cannot login with special characters',
|
|
22
24
|
status: 'in-progress',
|
|
23
25
|
type: 'fix',
|
|
24
|
-
filePath: './TASKS/task-002.md',
|
|
25
|
-
content: '# Task 002',
|
|
26
26
|
createdAt: new Date().toISOString(),
|
|
27
27
|
});
|
|
28
28
|
}
|
|
@@ -41,6 +41,18 @@ export class MockMCPTaskManager {
|
|
|
41
41
|
this.tasks.set(taskId, task);
|
|
42
42
|
return task;
|
|
43
43
|
}
|
|
44
|
+
async pauseTask(taskId) {
|
|
45
|
+
const task = this.tasks.get(taskId);
|
|
46
|
+
if (!task) {
|
|
47
|
+
throw new Error(`Task ${taskId} not found`);
|
|
48
|
+
}
|
|
49
|
+
if (task.status !== 'in-progress') {
|
|
50
|
+
throw new Error(`Task must be in 'in-progress' status to be paused`);
|
|
51
|
+
}
|
|
52
|
+
task.status = 'paused';
|
|
53
|
+
this.tasks.set(taskId, task);
|
|
54
|
+
return task;
|
|
55
|
+
}
|
|
44
56
|
async finishTask(taskId) {
|
|
45
57
|
const task = this.tasks.get(taskId);
|
|
46
58
|
if (!task) {
|
|
@@ -63,22 +75,16 @@ export class MockMCPTaskManager {
|
|
|
63
75
|
return task;
|
|
64
76
|
}
|
|
65
77
|
async createTask(options) {
|
|
66
|
-
const taskId = String(this.tasks.size + 1).padStart(3, '0');
|
|
78
|
+
const taskId = parseTaskId(String(this.tasks.size + 1).padStart(3, '0'));
|
|
67
79
|
const task = {
|
|
68
80
|
id: taskId,
|
|
69
81
|
title: options.title,
|
|
70
82
|
status: 'pending',
|
|
71
83
|
type: options.type,
|
|
72
|
-
filePath: `./TASKS/task-${taskId}.md`,
|
|
73
|
-
content: `# Task ${taskId}`,
|
|
74
84
|
createdAt: new Date().toISOString(),
|
|
75
85
|
};
|
|
76
86
|
this.tasks.set(taskId, task);
|
|
77
|
-
return {
|
|
78
|
-
task,
|
|
79
|
-
taskId,
|
|
80
|
-
filePath: task.filePath,
|
|
81
|
-
};
|
|
87
|
+
return { task };
|
|
82
88
|
}
|
|
83
89
|
async lint() {
|
|
84
90
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-server-mcp.mock.js","sourceRoot":"","sources":["../src/task-server-mcp.mock.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"task-server-mcp.mock.js","sourceRoot":"","sources":["../src/task-server-mcp.mock.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opentask/taskin-task-server-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Model Context Protocol (MCP) server for task management integration with LLMs",
|
|
5
5
|
"motivation": "Enable LLMs to interact with task management systems",
|
|
6
6
|
"solve": "Provides MCP server implementation for task operations",
|
|
@@ -18,14 +18,14 @@
|
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"@modelcontextprotocol/sdk": "^1.25.1",
|
|
21
|
-
"@opentask/taskin-
|
|
22
|
-
"@opentask/taskin-
|
|
23
|
-
"@opentask/taskin-types": "
|
|
21
|
+
"@opentask/taskin-file-system-provider": "3.1.0",
|
|
22
|
+
"@opentask/taskin-task-manager": "3.0.0",
|
|
23
|
+
"@opentask/taskin-types": "2.0.0"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"@types/node": "^24.10.1",
|
|
27
27
|
"@vitest/ui": "^2.1.8",
|
|
28
|
-
"typescript": "^
|
|
28
|
+
"typescript": "^6.0.0",
|
|
29
29
|
"vitest": "^2.1.8"
|
|
30
30
|
},
|
|
31
31
|
"keywords": [
|
|
@@ -63,6 +63,6 @@
|
|
|
63
63
|
"test:ui": "vitest --ui",
|
|
64
64
|
"type-check": "tsc --noEmit",
|
|
65
65
|
"typecheck": "tsc --noEmit",
|
|
66
|
-
"lint": "
|
|
66
|
+
"lint": "biome check --write ."
|
|
67
67
|
}
|
|
68
68
|
}
|