@sebastienheyd/clickup-mcp 1.6.3 → 1.7.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/cli.js +1 -1
- package/dist/test-utils.js +1 -1
- package/dist/tools/doc-tools.d.ts.map +1 -1
- package/dist/tools/doc-tools.js +7 -3
- package/dist/tools/list-tools.d.ts.map +1 -1
- package/dist/tools/list-tools.js +6 -2
- package/dist/tools/search-tools.d.ts.map +1 -1
- package/dist/tools/search-tools.js +8 -6
- package/dist/tools/space-tools.d.ts.map +1 -1
- package/dist/tools/space-tools.js +3 -1
- package/dist/tools/task-tools.d.ts.map +1 -1
- package/dist/tools/task-tools.js +3 -1
- package/dist/tools/task-write-tools.d.ts.map +1 -1
- package/dist/tools/task-write-tools.js +6 -4
- package/dist/tools/time-tools.d.ts.map +1 -1
- package/dist/tools/time-tools.js +6 -2
- package/package.json +6 -7
package/dist/cli.js
CHANGED
|
@@ -167,7 +167,7 @@ async function main() {
|
|
|
167
167
|
process.env.CLICKUP_TEAM_ID = process.env.CLICKUP_TEAM_ID || 'test_team_id';
|
|
168
168
|
}
|
|
169
169
|
// Call the tool's callback function
|
|
170
|
-
const result = await tool.
|
|
170
|
+
const result = await tool.handler(params);
|
|
171
171
|
console.dir(result.content);
|
|
172
172
|
process.exit(0);
|
|
173
173
|
}
|
package/dist/test-utils.js
CHANGED
|
@@ -30,7 +30,7 @@ class ToolTester {
|
|
|
30
30
|
throw new Error(`Parameter validation error: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
31
31
|
}
|
|
32
32
|
// Call the tool's callback directly with the provided parameters
|
|
33
|
-
return await tool.
|
|
33
|
+
return await tool.handler(params);
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
exports.ToolTester = ToolTester;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doc-tools.d.ts","sourceRoot":"","sources":["../../src/tools/doc-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAoDpE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"doc-tools.d.ts","sourceRoot":"","sources":["../../src/tools/doc-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAoDpE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,QA6J1D;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,QAuS3D"}
|
package/dist/tools/doc-tools.js
CHANGED
|
@@ -45,7 +45,9 @@ function displayPageHierarchy(pageGroup, currentPageId, depth = 0) {
|
|
|
45
45
|
return result;
|
|
46
46
|
}
|
|
47
47
|
function registerDocumentToolsRead(server) {
|
|
48
|
-
server.tool(
|
|
48
|
+
// Workaround: SDK 1.27+ dual Zod v3/v4 type causes TS2589 on server.tool() generics
|
|
49
|
+
const tool = server.tool.bind(server);
|
|
50
|
+
tool("readDocument", [
|
|
49
51
|
"Get a ClickUp document with page structure and content.",
|
|
50
52
|
"Documents can be discovered via searchSpaces (which includes documents in space tree) or by direct URL from the user or within tasks.",
|
|
51
53
|
"Always use the document URL when referencing documents in conversations or sharing with others.",
|
|
@@ -182,7 +184,9 @@ function registerDocumentToolsRead(server) {
|
|
|
182
184
|
});
|
|
183
185
|
}
|
|
184
186
|
function registerDocumentToolsWrite(server) {
|
|
185
|
-
server.tool(
|
|
187
|
+
// Workaround: SDK 1.27+ dual Zod v3/v4 type causes TS2589 on server.tool() generics
|
|
188
|
+
const tool = server.tool.bind(server);
|
|
189
|
+
tool("updateDocumentPage", [
|
|
186
190
|
"Updates an existing document page's content and/or name.",
|
|
187
191
|
"Use this when you have both doc_id and page_id from readDocument.",
|
|
188
192
|
"Content is in markdown format and can be replaced or appended.",
|
|
@@ -275,7 +279,7 @@ function registerDocumentToolsWrite(server) {
|
|
|
275
279
|
};
|
|
276
280
|
}
|
|
277
281
|
});
|
|
278
|
-
|
|
282
|
+
tool("createDocumentOrPage", [
|
|
279
283
|
"Creates a new document with its first page, OR adds a page to an existing document.",
|
|
280
284
|
"To create a NEW document: provide space_id OR list_id + name + content",
|
|
281
285
|
"To add a page to EXISTING document: provide doc_id + name + content",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-tools.d.ts","sourceRoot":"","sources":["../../src/tools/list-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKpE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"list-tools.d.ts","sourceRoot":"","sources":["../../src/tools/list-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKpE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,QAqHtD;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,QAiFvD"}
|
package/dist/tools/list-tools.js
CHANGED
|
@@ -6,7 +6,9 @@ const zod_1 = require("zod");
|
|
|
6
6
|
const config_1 = require("../shared/config");
|
|
7
7
|
const utils_1 = require("../shared/utils");
|
|
8
8
|
function registerListToolsRead(server) {
|
|
9
|
-
server.tool(
|
|
9
|
+
// Workaround: SDK 1.27+ dual Zod v3/v4 type causes TS2589 on server.tool() generics
|
|
10
|
+
const tool = server.tool.bind(server);
|
|
11
|
+
tool("getListInfo", [
|
|
10
12
|
"Gets comprehensive information about a list including description and available statuses.",
|
|
11
13
|
"ALWAYS use the list URL (https://app.clickup.com/v/l/LIST_ID) when referencing lists.",
|
|
12
14
|
"Use this before creating tasks to understand the list context and available statuses for new tasks.",
|
|
@@ -107,7 +109,9 @@ function registerListToolsRead(server) {
|
|
|
107
109
|
});
|
|
108
110
|
}
|
|
109
111
|
function registerListToolsWrite(server) {
|
|
110
|
-
server.tool(
|
|
112
|
+
// Workaround: SDK 1.27+ dual Zod v3/v4 type causes TS2589 on server.tool() generics
|
|
113
|
+
const tool = server.tool.bind(server);
|
|
114
|
+
tool("updateListInfo", [
|
|
111
115
|
"Appends documentation or context to a list's description.",
|
|
112
116
|
"ALWAYS reference the list URL (https://app.clickup.com/v/l/LIST_ID) when updating or discussing lists.",
|
|
113
117
|
"SAFETY FEATURE: Description updates are APPEND-ONLY to prevent data loss - existing content is preserved.",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-tools.d.ts","sourceRoot":"","sources":["../../src/tools/search-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AAQlE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"search-tools.d.ts","sourceRoot":"","sources":["../../src/tools/search-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AAQlE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,QAoNnE"}
|
|
@@ -7,6 +7,8 @@ const utils_1 = require("../shared/utils");
|
|
|
7
7
|
const task_tools_1 = require("./task-tools");
|
|
8
8
|
const MAX_SEARCH_RESULTS = 50;
|
|
9
9
|
function registerSearchTools(server, userData) {
|
|
10
|
+
// Workaround: SDK 1.27+ dual Zod v3/v4 type causes TS2589 on server.tool() generics
|
|
11
|
+
const tool = server.tool.bind(server);
|
|
10
12
|
// Dynamically construct the searchTasks description
|
|
11
13
|
const searchTasksDescriptionBase = [
|
|
12
14
|
"Searches tasks (sometimes called Tickets or Cards) by name, content, assignees, and ID with fuzzy matching and support for multiple search terms (OR logic).",
|
|
@@ -19,7 +21,7 @@ function registerSearchTools(server, userData) {
|
|
|
19
21
|
searchTasksDescriptionBase.push("Always reference tasks by their URLs when discussing search results or suggesting actions.");
|
|
20
22
|
searchTasksDescriptionBase.push("You'll get a rough overview of the tasks that match the search terms, sorted by relevance.");
|
|
21
23
|
searchTasksDescriptionBase.push("Always use getTaskById to get more specific information if a task is relevant, and always share the task URL.");
|
|
22
|
-
|
|
24
|
+
tool("searchTasks", searchTasksDescriptionBase.join("\n"), {
|
|
23
25
|
terms: zod_1.z
|
|
24
26
|
.array(zod_1.z.string())
|
|
25
27
|
.optional()
|
|
@@ -65,7 +67,7 @@ function registerSearchTools(server, userData) {
|
|
|
65
67
|
let allTasks = searchIndex._docs || [];
|
|
66
68
|
// Apply status filtering
|
|
67
69
|
if (status && status.length > 0) {
|
|
68
|
-
const statusLower = status.map(s => s.toLowerCase());
|
|
70
|
+
const statusLower = status.map((s) => s.toLowerCase());
|
|
69
71
|
allTasks = allTasks.filter((task) => statusLower.includes(task.status.status.toLowerCase()));
|
|
70
72
|
}
|
|
71
73
|
else if (only_todo) {
|
|
@@ -101,10 +103,10 @@ function registerSearchTools(server, userData) {
|
|
|
101
103
|
uniqueResults.set(task.id, { item: task, score: 0.1 }); // Give search results a good score
|
|
102
104
|
});
|
|
103
105
|
// Task ID Fallback Logic (internal IDs and custom IDs)
|
|
104
|
-
const potentialTaskIds = terms.filter(utils_1.isTaskId);
|
|
105
|
-
const potentialCustomIds = terms.filter(id => (0, utils_1.isCustomTaskId)(id) && !(0, utils_1.isTaskId)(id));
|
|
106
|
+
const potentialTaskIds = terms.filter((id) => (0, utils_1.isTaskId)(id));
|
|
107
|
+
const potentialCustomIds = terms.filter((id) => (0, utils_1.isCustomTaskId)(id) && !(0, utils_1.isTaskId)(id));
|
|
106
108
|
const foundTaskIdsByFuse = new Set(Array.from(uniqueResults.keys()).map(id => id.toLowerCase()));
|
|
107
|
-
const taskIdsToFetchDirectly = potentialTaskIds.filter(id => {
|
|
109
|
+
const taskIdsToFetchDirectly = potentialTaskIds.filter((id) => {
|
|
108
110
|
const lowerId = id.toLowerCase();
|
|
109
111
|
return !foundTaskIdsByFuse.has(lowerId);
|
|
110
112
|
});
|
|
@@ -163,7 +165,7 @@ function registerSearchTools(server, userData) {
|
|
|
163
165
|
.map(entry => entry.item);
|
|
164
166
|
// Apply status filtering
|
|
165
167
|
if (status && status.length > 0) {
|
|
166
|
-
const statusLower = status.map(s => s.toLowerCase());
|
|
168
|
+
const statusLower = status.map((s) => s.toLowerCase());
|
|
167
169
|
resultTasks = resultTasks.filter((task) => statusLower.includes(task.status.status.toLowerCase()));
|
|
168
170
|
}
|
|
169
171
|
else if (only_todo) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"space-tools.d.ts","sourceRoot":"","sources":["../../src/tools/space-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKpE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"space-tools.d.ts","sourceRoot":"","sources":["../../src/tools/space-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKpE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,QAiKnD"}
|
|
@@ -4,7 +4,9 @@ exports.registerSpaceTools = registerSpaceTools;
|
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
5
|
const utils_1 = require("../shared/utils");
|
|
6
6
|
function registerSpaceTools(server) {
|
|
7
|
-
server.tool(
|
|
7
|
+
// Workaround: SDK 1.27+ dual Zod v3/v4 type causes TS2589 on server.tool() generics
|
|
8
|
+
const tool = server.tool.bind(server);
|
|
9
|
+
tool("searchSpaces", [
|
|
8
10
|
"Searches spaces (sometimes called projects) by name or ID with fuzzy matching.",
|
|
9
11
|
"If 5 or fewer spaces match, automatically fetches all lists (sometimes called boards) and folders within those spaces to provide a complete tree structure.",
|
|
10
12
|
"If more than 5 spaces match, returns only space information with guidance to search more precisely.",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-tools.d.ts","sourceRoot":"","sources":["../../src/tools/task-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,EAAE,YAAY,EAAyC,MAAM,iBAAiB,CAAC;AAOtF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"task-tools.d.ts","sourceRoot":"","sources":["../../src/tools/task-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,EAAE,YAAY,EAAyC,MAAM,iBAAiB,CAAC;AAOtF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,QAgErE;AA+MD;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,GAAG,EAAE,EAAE,YAAY,GAAE,OAAe,GAAG,OAAO,CAAC,YAAY,CAAC,CAmH/H"}
|
package/dist/tools/task-tools.js
CHANGED
|
@@ -9,7 +9,9 @@ const utils_1 = require("../shared/utils");
|
|
|
9
9
|
const image_processing_1 = require("../shared/image-processing");
|
|
10
10
|
// Read-specific utility functions
|
|
11
11
|
function registerTaskToolsRead(server, userData) {
|
|
12
|
-
server.tool(
|
|
12
|
+
// Workaround: SDK 1.27+ dual Zod v3/v4 type causes TS2589 on server.tool() generics
|
|
13
|
+
const tool = server.tool.bind(server);
|
|
14
|
+
tool("getTaskById", [
|
|
13
15
|
"Get a ClickUp task with images and comments by ID.",
|
|
14
16
|
"Always use this URL when referencing tasks in conversations or sharing with others.",
|
|
15
17
|
"The response provides complete context including task details, comments, and status history."
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-write-tools.d.ts","sourceRoot":"","sources":["../../src/tools/task-write-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAcpE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"task-write-tools.d.ts","sourceRoot":"","sources":["../../src/tools/task-write-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAcpE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,QAmatE"}
|
|
@@ -13,7 +13,9 @@ const taskStartDateSchema = zod_1.z.string().optional().describe("Optional start
|
|
|
13
13
|
const taskTimeEstimateSchema = zod_1.z.number().optional().describe("Optional time estimate in hours (will be converted to milliseconds)");
|
|
14
14
|
const taskTagsSchema = zod_1.z.array(zod_1.z.string()).optional().describe("Optional array of tag names");
|
|
15
15
|
function registerTaskToolsWrite(server, userData) {
|
|
16
|
-
server.tool(
|
|
16
|
+
// Workaround: SDK 1.27+ dual Zod v3/v4 type causes TS2589 on server.tool() generics
|
|
17
|
+
const tool = server.tool.bind(server);
|
|
18
|
+
tool("addComment", (() => {
|
|
17
19
|
const descriptionBase = [
|
|
18
20
|
"Adds a comment to a specific task.",
|
|
19
21
|
"LINKING BEST PRACTICES:",
|
|
@@ -88,7 +90,7 @@ function registerTaskToolsWrite(server, userData) {
|
|
|
88
90
|
};
|
|
89
91
|
}
|
|
90
92
|
});
|
|
91
|
-
|
|
93
|
+
tool("updateTask", (() => {
|
|
92
94
|
const descriptionBase = [
|
|
93
95
|
"Updates various aspects of an existing task including dependencies and relationships.",
|
|
94
96
|
"ALWAYS include the task URL (https://app.clickup.com/t/TASK_ID) when updating or referencing tasks.",
|
|
@@ -150,7 +152,7 @@ function registerTaskToolsWrite(server, userData) {
|
|
|
150
152
|
if (tags !== undefined) {
|
|
151
153
|
// Get current tags
|
|
152
154
|
const currentTags = taskData.tags?.map((t) => t.name) || [];
|
|
153
|
-
const tagsToAdd = tags.filter(tag => !currentTags.includes(tag));
|
|
155
|
+
const tagsToAdd = tags.filter((tag) => !currentTags.includes(tag));
|
|
154
156
|
const tagsToRemove = currentTags.filter((tag) => !tags.includes(tag));
|
|
155
157
|
// Add new tags
|
|
156
158
|
for (const tagName of tagsToAdd) {
|
|
@@ -276,7 +278,7 @@ function registerTaskToolsWrite(server, userData) {
|
|
|
276
278
|
};
|
|
277
279
|
}
|
|
278
280
|
});
|
|
279
|
-
|
|
281
|
+
tool("createTask", (() => {
|
|
280
282
|
const descriptionBase = [
|
|
281
283
|
"Creates a new task in a specific list and assigns it to specified users (defaults to current user).",
|
|
282
284
|
"CRITICAL LINKING REQUIREMENTS:",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"time-tools.d.ts","sourceRoot":"","sources":["../../src/tools/time-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAyDpE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"time-tools.d.ts","sourceRoot":"","sources":["../../src/tools/time-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAyDpE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,QAmFtD;AAyLD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,QA2FvD"}
|
package/dist/tools/time-tools.js
CHANGED
|
@@ -51,7 +51,9 @@ function formatEntryTime(timestamp) {
|
|
|
51
51
|
return `${date.getFullYear()}-${month}-${day} ${hours}:${minutes}`;
|
|
52
52
|
}
|
|
53
53
|
function registerTimeToolsRead(server) {
|
|
54
|
-
|
|
54
|
+
// Workaround: SDK 1.27+ dual Zod v3/v4 type causes TS2589 on server.tool() generics
|
|
55
|
+
const tool = server.tool.bind(server);
|
|
56
|
+
tool("getTimeEntries", "Gets time entries for a specific task or all user's time entries. Returns last 30 days by default if no dates specified.", {
|
|
55
57
|
task_id: zod_1.z.string().min(6).max(9).optional().describe("Optional 6-9 character task ID to filter entries. If not provided, returns all user's time entries."),
|
|
56
58
|
start_date: zod_1.z.string().optional().describe("Optional start date filter as ISO date string (e.g., '2024-10-06T00:00:00+02:00'). Defaults to 30 days ago."),
|
|
57
59
|
end_date: zod_1.z.string().optional().describe("Optional end date filter as ISO date string (e.g., '2024-10-06T23:59:59+02:00'). Defaults to current date."),
|
|
@@ -261,7 +263,9 @@ function processTimeEntriesData(data, task_id, start_date, end_date, include_all
|
|
|
261
263
|
};
|
|
262
264
|
}
|
|
263
265
|
function registerTimeToolsWrite(server) {
|
|
264
|
-
server.tool(
|
|
266
|
+
// Workaround: SDK 1.27+ dual Zod v3/v4 type causes TS2589 on server.tool() generics
|
|
267
|
+
const tool = server.tool.bind(server);
|
|
268
|
+
tool("createTimeEntry", [
|
|
265
269
|
"Creates a time entry (books time) on a task for the current user.",
|
|
266
270
|
"Use decimal hours (e.g., 0.25 for 15 minutes, 0.5 for 30 minutes, 2.5 for 2.5 hours).",
|
|
267
271
|
"IMPORTANT: Before booking time, check the task's status - booking time on tasks in 'backlog', 'closed', or similar inactive states usually doesn't make sense.",
|
package/package.json
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sebastienheyd/clickup-mcp",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.7.0",
|
|
4
4
|
"description": "Search, create, and retrieve tasks, add comments, and track time through natural language commands.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
|
-
"bin":
|
|
7
|
+
"bin": {
|
|
8
|
+
"clickup-mcp": "dist/index.js"
|
|
9
|
+
},
|
|
8
10
|
"files": [
|
|
9
11
|
"dist",
|
|
10
12
|
"README.md"
|
|
@@ -34,13 +36,10 @@
|
|
|
34
36
|
"agentic-coding",
|
|
35
37
|
"automation"
|
|
36
38
|
],
|
|
37
|
-
"author":
|
|
38
|
-
"name": "Sébastien HEYD",
|
|
39
|
-
"url": "https://github.com/sebastienheyd"
|
|
40
|
-
},
|
|
39
|
+
"author": "Sébastien HEYD (https://github.com/sebastienheyd)",
|
|
41
40
|
"license": "MIT",
|
|
42
41
|
"dependencies": {
|
|
43
|
-
"@modelcontextprotocol/sdk": "^1.
|
|
42
|
+
"@modelcontextprotocol/sdk": "^1.27.1",
|
|
44
43
|
"fuse.js": "^7.1.0",
|
|
45
44
|
"remark-gfm": "^4.0.1",
|
|
46
45
|
"remark-parse": "^11.0.0",
|