From 0022f589c32e51bb716fb1684de45000490a89d8 Mon Sep 17 00:00:00 2001 From: Sushitommy Date: Fri, 12 Sep 2025 22:07:55 +0200 Subject: [PATCH] feat: add project issue listing tool --- src/tools/index.ts | 2 ++ src/tools/project-issues.ts | 28 ++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 src/tools/project-issues.ts diff --git a/src/tools/index.ts b/src/tools/index.ts index 13e9d53..1a55b8c 100644 --- a/src/tools/index.ts +++ b/src/tools/index.ts @@ -6,6 +6,7 @@ import { registerIssueTools } from "./issues.js"; import { registerMetadataTools } from "./metadata.js"; import { registerModuleIssueTools } from "./module-issues.js"; import { registerModuleTools } from "./modules.js"; +import { registerProjectIssueTools } from "./project-issues.js"; import { registerProjectTools } from "./projects.js"; import { registerUserTools } from "./user.js"; import { registerWorkLogTools } from "./work-log.js"; @@ -15,6 +16,7 @@ export const registerTools = (server: McpServer) => { registerUserTools(server); registerProjectTools(server); + registerProjectIssueTools(server); registerModuleTools(server); registerModuleIssueTools(server); registerIssueTools(server); diff --git a/src/tools/project-issues.ts b/src/tools/project-issues.ts new file mode 100644 index 0000000..86ae001 --- /dev/null +++ b/src/tools/project-issues.ts @@ -0,0 +1,28 @@ +import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; +import { z } from "zod"; + +import { makePlaneRequest } from "../common/request-helper.js"; + +export const registerProjectIssueTools = (server: McpServer): void => { + server.tool( + "list_project_issues", + "Get all issues for a specific project", + { + project_id: z.string().describe("The uuid identifier of the project to get issues for"), + }, + async ({ project_id }) => { + const response = await makePlaneRequest( + "GET", + `workspaces/${process.env.PLANE_WORKSPACE_SLUG}/projects/${project_id}/issues/` + ); + return { + content: [ + { + type: "text", + text: JSON.stringify(response, null, 2), + }, + ], + }; + } + ); +};