@lovelybunch/mcp 1.0.75-alpha.10 → 1.0.75-alpha.12
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/tasks-tool.js +7 -7
- package/dist/tasks-tool.js.map +1 -1
- package/package.json +3 -3
- package/src/tasks-tool.test.ts +30 -0
- package/src/tasks-tool.ts +7 -7
package/dist/tasks-tool.js
CHANGED
|
@@ -20,7 +20,7 @@ export const listTasksTool = {
|
|
|
20
20
|
};
|
|
21
21
|
export const tasksTool = {
|
|
22
22
|
name: "tasks",
|
|
23
|
-
description: "Manage tasks - create, read, update, delete tasks. IMPORTANT: When searching for tasks by topic or keyword, always use filters.search to filter results server-side. The
|
|
23
|
+
description: "Manage tasks - create, read, update, delete tasks. IMPORTANT: When searching for tasks by topic or keyword, always use filters.search to filter results server-side. The 'list' operation returns lightweight summaries — use 'get' with a task ID for full details.",
|
|
24
24
|
parameters: {
|
|
25
25
|
type: "object",
|
|
26
26
|
properties: {
|
|
@@ -36,7 +36,7 @@ export const tasksTool = {
|
|
|
36
36
|
// Filters for list operation - auto-generated from Zod schema
|
|
37
37
|
filters: {
|
|
38
38
|
type: "object",
|
|
39
|
-
description: "Filters for list operation. Use search to find tasks by keyword
|
|
39
|
+
description: "Filters for list operation. Defaults to limit=20. Use search to find tasks by keyword — results are filtered server-side for accuracy.",
|
|
40
40
|
properties: filtersProperties
|
|
41
41
|
},
|
|
42
42
|
// Task data for create operation - auto-generated from Zod schema
|
|
@@ -57,14 +57,14 @@ export const tasksTool = {
|
|
|
57
57
|
*/
|
|
58
58
|
export const tasksReadOnlyTool = {
|
|
59
59
|
name: "tasks",
|
|
60
|
-
description: "READ-ONLY: Search and read tasks. You can ONLY use 'list' and 'get' operations. You CANNOT create, update, or delete tasks — that should be done by coding agents (Claude Code, Cursor, etc.) which have broader codebase context, or via the Tasks UI.",
|
|
60
|
+
description: "READ-ONLY: Search and read tasks. You can ONLY use 'list' and 'get' operations. You CANNOT create, update, or delete tasks — that should be done by coding agents (Claude Code, Cursor, etc.) which have broader codebase context, or via the Tasks UI. The 'list' operation returns lightweight summaries — use 'get' with a task ID for full details.",
|
|
61
61
|
parameters: {
|
|
62
62
|
type: "object",
|
|
63
63
|
properties: {
|
|
64
64
|
operation: {
|
|
65
65
|
type: "string",
|
|
66
66
|
enum: ["list", "get"],
|
|
67
|
-
description: "ONLY 'list' or 'get' are allowed. 'list' to search/browse tasks, 'get' to retrieve a specific task by ID"
|
|
67
|
+
description: "ONLY 'list' or 'get' are allowed. 'list' to search/browse tasks (returns summaries), 'get' to retrieve a specific task by ID (returns full details)"
|
|
68
68
|
},
|
|
69
69
|
id: {
|
|
70
70
|
type: "string",
|
|
@@ -73,7 +73,7 @@ export const tasksReadOnlyTool = {
|
|
|
73
73
|
// Filters auto-generated from Zod schema
|
|
74
74
|
filters: {
|
|
75
75
|
type: "object",
|
|
76
|
-
description: "Filters for list operation. Use search to find tasks by keyword.",
|
|
76
|
+
description: "Filters for list operation. Defaults to limit=20. Use search to find tasks by keyword.",
|
|
77
77
|
properties: filtersProperties
|
|
78
78
|
}
|
|
79
79
|
},
|
|
@@ -86,7 +86,7 @@ export const tasksReadOnlyTool = {
|
|
|
86
86
|
*/
|
|
87
87
|
export const tasksFullTool = {
|
|
88
88
|
name: "tasks",
|
|
89
|
-
description: "Full CRUD for tasks - create, read, update, delete. Use this when you need to create or modify tasks via MCP.",
|
|
89
|
+
description: "Full CRUD for tasks - create, read, update, delete. Use this when you need to create or modify tasks via MCP. The 'list' operation returns lightweight summaries (id, title, status, priority, tags, author, dates) — use 'get' with a specific task ID to retrieve full task details including content and plan steps.",
|
|
90
90
|
parameters: {
|
|
91
91
|
type: "object",
|
|
92
92
|
properties: {
|
|
@@ -101,7 +101,7 @@ export const tasksFullTool = {
|
|
|
101
101
|
},
|
|
102
102
|
filters: {
|
|
103
103
|
type: "object",
|
|
104
|
-
description: "Filters for list operation",
|
|
104
|
+
description: "Filters for list operation. Defaults to limit=20. Use status, priority, tags, search, or author to narrow results.",
|
|
105
105
|
properties: filtersProperties
|
|
106
106
|
},
|
|
107
107
|
// For create - all fields from CreateTaskInputSchema
|
package/dist/tasks-tool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasks-tool.js","sourceRoot":"","sources":["../src/tasks-tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAkBnD,0CAA0C;AAC1C,MAAM,iBAAiB,GAAG,eAAe,CAAC,OAAO,CAAA;AACjD,MAAM,gBAAgB,GAAG,eAAe,CAAC,MAAM,CAAA;AAC/C,MAAM,gBAAgB,GAAG,eAAe,CAAC,MAAM,CAAA;AAC/C,MAAM,cAAc,GAAG,eAAe,CAAC,cAAc,CAAA;AAErD,MAAM,CAAC,MAAM,aAAa,GAAY;IACpC,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,uEAAuE;IACpF,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,oCAAoC;gBACjD,UAAU,EAAE,iBAAiB;aAC9B;SACF;KACF;CACF,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAY;IAChC,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"tasks-tool.js","sourceRoot":"","sources":["../src/tasks-tool.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lovelybunch/mcp",
|
|
3
|
-
"version": "1.0.75-alpha.
|
|
3
|
+
"version": "1.0.75-alpha.12",
|
|
4
4
|
"description": "MCP tools for Coconut",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
"test:ui": "vitest --ui"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@lovelybunch/core": "^1.0.75-alpha.
|
|
18
|
-
"@lovelybunch/types": "^1.0.75-alpha.
|
|
17
|
+
"@lovelybunch/core": "^1.0.75-alpha.12",
|
|
18
|
+
"@lovelybunch/types": "^1.0.75-alpha.12",
|
|
19
19
|
"hono": "^4.0.0"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
package/src/tasks-tool.test.ts
CHANGED
|
@@ -106,4 +106,34 @@ describe('tasks tools', () => {
|
|
|
106
106
|
expect(tasksFullTool.parameters.properties.task).toBeDefined();
|
|
107
107
|
expect(tasksFullTool.parameters.properties.updates).toBeDefined();
|
|
108
108
|
});
|
|
109
|
+
|
|
110
|
+
it('should mention summaries in tool descriptions to clarify list returns lightweight data', () => {
|
|
111
|
+
expect(tasksFullTool.description).toContain('summaries');
|
|
112
|
+
expect(tasksTool.description).toContain('summaries');
|
|
113
|
+
expect(tasksReadOnlyTool.description).toContain('summaries');
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
it('should mention using get for full details in tool descriptions', () => {
|
|
117
|
+
expect(tasksFullTool.description).toContain('get');
|
|
118
|
+
expect(tasksTool.description).toContain('get');
|
|
119
|
+
expect(tasksReadOnlyTool.description).toContain('get');
|
|
120
|
+
});
|
|
121
|
+
|
|
122
|
+
it('should mention default limit in filters description', () => {
|
|
123
|
+
expect(tasksFullTool.parameters.properties.filters.description).toContain('limit=20');
|
|
124
|
+
expect(tasksTool.parameters.properties.filters.description).toContain('limit=20');
|
|
125
|
+
expect(tasksReadOnlyTool.parameters.properties.filters.description).toContain('limit=20');
|
|
126
|
+
});
|
|
127
|
+
|
|
128
|
+
it('should expose limit in the filters properties via JSON schema', () => {
|
|
129
|
+
// Verify that the auto-generated filter properties include a limit field
|
|
130
|
+
const fullFilters = tasksFullTool.parameters.properties.filters.properties;
|
|
131
|
+
expect(fullFilters).toHaveProperty('limit');
|
|
132
|
+
|
|
133
|
+
const readOnlyFilters = tasksReadOnlyTool.parameters.properties.filters.properties;
|
|
134
|
+
expect(readOnlyFilters).toHaveProperty('limit');
|
|
135
|
+
|
|
136
|
+
const standardFilters = tasksTool.parameters.properties.filters.properties;
|
|
137
|
+
expect(standardFilters).toHaveProperty('limit');
|
|
138
|
+
});
|
|
109
139
|
});
|
package/src/tasks-tool.ts
CHANGED
|
@@ -40,7 +40,7 @@ export const listTasksTool: MCPTool = {
|
|
|
40
40
|
|
|
41
41
|
export const tasksTool: MCPTool = {
|
|
42
42
|
name: "tasks",
|
|
43
|
-
description: "Manage tasks - create, read, update, delete tasks. IMPORTANT: When searching for tasks by topic or keyword, always use filters.search to filter results server-side. The
|
|
43
|
+
description: "Manage tasks - create, read, update, delete tasks. IMPORTANT: When searching for tasks by topic or keyword, always use filters.search to filter results server-side. The 'list' operation returns lightweight summaries — use 'get' with a task ID for full details.",
|
|
44
44
|
parameters: {
|
|
45
45
|
type: "object",
|
|
46
46
|
properties: {
|
|
@@ -56,7 +56,7 @@ export const tasksTool: MCPTool = {
|
|
|
56
56
|
// Filters for list operation - auto-generated from Zod schema
|
|
57
57
|
filters: {
|
|
58
58
|
type: "object",
|
|
59
|
-
description: "Filters for list operation. Use search to find tasks by keyword
|
|
59
|
+
description: "Filters for list operation. Defaults to limit=20. Use search to find tasks by keyword — results are filtered server-side for accuracy.",
|
|
60
60
|
properties: filtersProperties
|
|
61
61
|
},
|
|
62
62
|
// Task data for create operation - auto-generated from Zod schema
|
|
@@ -78,14 +78,14 @@ export const tasksTool: MCPTool = {
|
|
|
78
78
|
*/
|
|
79
79
|
export const tasksReadOnlyTool: MCPTool = {
|
|
80
80
|
name: "tasks",
|
|
81
|
-
description: "READ-ONLY: Search and read tasks. You can ONLY use 'list' and 'get' operations. You CANNOT create, update, or delete tasks — that should be done by coding agents (Claude Code, Cursor, etc.) which have broader codebase context, or via the Tasks UI.",
|
|
81
|
+
description: "READ-ONLY: Search and read tasks. You can ONLY use 'list' and 'get' operations. You CANNOT create, update, or delete tasks — that should be done by coding agents (Claude Code, Cursor, etc.) which have broader codebase context, or via the Tasks UI. The 'list' operation returns lightweight summaries — use 'get' with a task ID for full details.",
|
|
82
82
|
parameters: {
|
|
83
83
|
type: "object",
|
|
84
84
|
properties: {
|
|
85
85
|
operation: {
|
|
86
86
|
type: "string",
|
|
87
87
|
enum: ["list", "get"],
|
|
88
|
-
description: "ONLY 'list' or 'get' are allowed. 'list' to search/browse tasks, 'get' to retrieve a specific task by ID"
|
|
88
|
+
description: "ONLY 'list' or 'get' are allowed. 'list' to search/browse tasks (returns summaries), 'get' to retrieve a specific task by ID (returns full details)"
|
|
89
89
|
},
|
|
90
90
|
id: {
|
|
91
91
|
type: "string",
|
|
@@ -94,7 +94,7 @@ export const tasksReadOnlyTool: MCPTool = {
|
|
|
94
94
|
// Filters auto-generated from Zod schema
|
|
95
95
|
filters: {
|
|
96
96
|
type: "object",
|
|
97
|
-
description: "Filters for list operation. Use search to find tasks by keyword.",
|
|
97
|
+
description: "Filters for list operation. Defaults to limit=20. Use search to find tasks by keyword.",
|
|
98
98
|
properties: filtersProperties
|
|
99
99
|
}
|
|
100
100
|
},
|
|
@@ -108,7 +108,7 @@ export const tasksReadOnlyTool: MCPTool = {
|
|
|
108
108
|
*/
|
|
109
109
|
export const tasksFullTool: MCPTool = {
|
|
110
110
|
name: "tasks",
|
|
111
|
-
description: "Full CRUD for tasks - create, read, update, delete. Use this when you need to create or modify tasks via MCP.",
|
|
111
|
+
description: "Full CRUD for tasks - create, read, update, delete. Use this when you need to create or modify tasks via MCP. The 'list' operation returns lightweight summaries (id, title, status, priority, tags, author, dates) — use 'get' with a specific task ID to retrieve full task details including content and plan steps.",
|
|
112
112
|
parameters: {
|
|
113
113
|
type: "object",
|
|
114
114
|
properties: {
|
|
@@ -123,7 +123,7 @@ export const tasksFullTool: MCPTool = {
|
|
|
123
123
|
},
|
|
124
124
|
filters: {
|
|
125
125
|
type: "object",
|
|
126
|
-
description: "Filters for list operation",
|
|
126
|
+
description: "Filters for list operation. Defaults to limit=20. Use status, priority, tags, search, or author to narrow results.",
|
|
127
127
|
properties: filtersProperties
|
|
128
128
|
},
|
|
129
129
|
// For create - all fields from CreateTaskInputSchema
|