Skip to content

Commit 0022f58

Browse files
committed
feat: add project issue listing tool
1 parent 1a199cd commit 0022f58

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

src/tools/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { registerIssueTools } from "./issues.js";
66
import { registerMetadataTools } from "./metadata.js";
77
import { registerModuleIssueTools } from "./module-issues.js";
88
import { registerModuleTools } from "./modules.js";
9+
import { registerProjectIssueTools } from "./project-issues.js";
910
import { registerProjectTools } from "./projects.js";
1011
import { registerUserTools } from "./user.js";
1112
import { registerWorkLogTools } from "./work-log.js";
@@ -15,6 +16,7 @@ export const registerTools = (server: McpServer) => {
1516
registerUserTools(server);
1617

1718
registerProjectTools(server);
19+
registerProjectIssueTools(server);
1820
registerModuleTools(server);
1921
registerModuleIssueTools(server);
2022
registerIssueTools(server);

src/tools/project-issues.ts

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2+
import { z } from "zod";
3+
4+
import { makePlaneRequest } from "../common/request-helper.js";
5+
6+
export const registerProjectIssueTools = (server: McpServer): void => {
7+
server.tool(
8+
"list_project_issues",
9+
"Get all issues for a specific project",
10+
{
11+
project_id: z.string().describe("The uuid identifier of the project to get issues for"),
12+
},
13+
async ({ project_id }) => {
14+
const response = await makePlaneRequest(
15+
"GET",
16+
`workspaces/${process.env.PLANE_WORKSPACE_SLUG}/projects/${project_id}/issues/`
17+
);
18+
return {
19+
content: [
20+
{
21+
type: "text",
22+
text: JSON.stringify(response, null, 2),
23+
},
24+
],
25+
};
26+
}
27+
);
28+
};

0 commit comments

Comments
 (0)