From 47cdf2be2bdcc149f16dfd69f6038c2e2152d96d Mon Sep 17 00:00:00 2001 From: pikann22 Date: Mon, 10 Aug 2026 06:54:43 +0000 Subject: [PATCH] feat: update plugin-sdk-mcp to version 0.2.0 and enhance getToolContext for task checklists --- mcp/bun.lock | 4 ++-- mcp/package.json | 2 +- mcp/src/index.ts | 29 +++++++++++++++++++++++++++++ plugin.json | 7 ++++--- 4 files changed, 36 insertions(+), 6 deletions(-) diff --git a/mcp/bun.lock b/mcp/bun.lock index 0094e4f..aaf6921 100644 --- a/mcp/bun.lock +++ b/mcp/bun.lock @@ -5,7 +5,7 @@ "": { "name": "@paca-ai/checklist-plugin-mcp", "dependencies": { - "@paca-ai/plugin-sdk-mcp": "^0.1.0", + "@paca-ai/plugin-sdk-mcp": "^0.2.0", }, "devDependencies": { "typescript": "^5.8.3", @@ -70,7 +70,7 @@ "@modelcontextprotocol/sdk": ["@modelcontextprotocol/sdk@1.29.0", "", { "dependencies": { "@hono/node-server": "^1.19.9", "ajv": "^8.17.1", "ajv-formats": "^3.0.1", "content-type": "^1.0.5", "cors": "^2.8.5", "cross-spawn": "^7.0.5", "eventsource": "^3.0.2", "eventsource-parser": "^3.0.0", "express": "^5.2.1", "express-rate-limit": "^8.2.1", "hono": "^4.11.4", "jose": "^6.1.3", "json-schema-typed": "^8.0.2", "pkce-challenge": "^5.0.0", "raw-body": "^3.0.0", "zod": "^3.25 || ^4.0", "zod-to-json-schema": "^3.25.1" }, "peerDependencies": { "@cfworker/json-schema": "^4.1.1" }, "optionalPeers": ["@cfworker/json-schema"] }, "sha512-zo37mZA9hJWpULgkRpowewez1y6ML5GsXJPY8FI0tBBCd77HEvza4jDqRKOXgHNn867PVGCyTdzqpz0izu5ZjQ=="], - "@paca-ai/plugin-sdk-mcp": ["@paca-ai/plugin-sdk-mcp@0.1.0", "", { "peerDependencies": { "@modelcontextprotocol/sdk": ">=0.6.0" } }, "sha512-TOFdpdeY7boVRH6EgOhiMj6a0Q6+77nJ2M2Bh7awmN63S2JHA/8sxyK9V8fK0j94mBmnpnoS2SBI52a0valoaQ=="], + "@paca-ai/plugin-sdk-mcp": ["@paca-ai/plugin-sdk-mcp@0.2.0", "", { "peerDependencies": { "@modelcontextprotocol/sdk": ">=0.6.0" } }, "sha512-wpZqKLmfoO98OO2xRfCtrXzfRzJX06yr48LCfu+dE2p1kpNUyWHvp1XkTPOLHTBBOuebMwSDcuZT94u+egv4uA=="], "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.60.3", "", { "os": "android", "cpu": "arm" }, "sha512-x35CNW/ANXG3hE/EZpRU8MXX1JDN86hBb2wMGAtltkz7pc6cxgjpy1OMMfDosOQ+2hWqIkag/fGok1Yady9nGw=="], diff --git a/mcp/package.json b/mcp/package.json index a81bf4a..50cd94c 100644 --- a/mcp/package.json +++ b/mcp/package.json @@ -9,7 +9,7 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@paca-ai/plugin-sdk-mcp": "^0.1.0" + "@paca-ai/plugin-sdk-mcp": "^0.2.0" }, "devDependencies": { "typescript": "^5.8.3", diff --git a/mcp/src/index.ts b/mcp/src/index.ts index 9c3d716..a792818 100644 --- a/mcp/src/index.ts +++ b/mcp/src/index.ts @@ -374,6 +374,35 @@ const entry: PluginMCPEntry = { return errorResult(`Tool ${name} failed: ${message}`); } }, + + async getToolContext( + toolId: string, + args: Record, + context: PluginMCPContext, + ) { + if (toolId !== "get_task") return null; + const { projectId, taskId } = args as { projectId: string; taskId: string }; + + const api = new PluginAPIClient(context); + try { + const checklists = await api.pluginGet( + `projects/${projectId}/tasks/${taskId}/checklists`, + ); + if (checklists.length === 0) return null; + + const lines = ["## Checklists"]; + for (const cl of checklists) { + const done = cl.items.filter((i) => i.is_checked).length; + lines.push("", `**${cl.title}** (${done}/${cl.items.length} done)`); + lines.push(...cl.items.map(formatItem)); + } + return lines.join("\n"); + } catch { + // Best-effort enrichment — a transient failure here should not + // break the get_task response for the AI client. + return null; + } + }, }; export default entry; diff --git a/plugin.json b/plugin.json index f250ef9..68ac175 100644 --- a/plugin.json +++ b/plugin.json @@ -2,8 +2,8 @@ "id": "com.paca.checklist", "displayName": "Checklist", "description": "Adds named checklists with checkable items to tasks.", - "version": "0.2.8", - "minCoreVersion": "v0.11.2", + "version": "0.2.9", + "minCoreVersion": "v0.12.2", "permissions": ["db.read", "db.write", "events.subscribe"], "backend": { "eventSubscriptions": ["task.deleted"], @@ -112,6 +112,7 @@ ] }, "mcp": { - "remoteEntryUrl": "/plugins-mcp/com.paca.checklist/mcp.js" + "remoteEntryUrl": "/plugins-mcp/com.paca.checklist/mcp.js", + "toolContextHooks": ["get_task"] } }