list-issues
Retrieve and filter project issues by state, priority, or assignee to manage and track work items effectively.
Instructions
List issues from a project
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| assignee_id | No | Filter by assignee ID (optional) | |
| limit | No | Maximum number of issues to return (default: 50) | |
| priority | No | Filter by priority (optional) | |
| project_id | Yes | ID of the project to get issues from | |
| state_id | No | Filter by state ID (optional) |
Implementation Reference
- src/index.ts:344-365 (handler)Executes the list-issues tool: validates project_id, builds query parameters from input, calls Plane API to fetch issues, and returns JSON response.case "list-issues": { if (!args || typeof args.project_id !== "string") { throw new Error("Project ID is required"); } const { project_id, ...queryParams } = args; // Build query string from other parameters const queryString = Object.entries(queryParams) .filter(([_, value]) => value !== undefined) .map(([key, value]) => `${key}=${encodeURIComponent(String(value))}`) .join("&"); const endpoint = `/projects/${project_id}/issues/${ queryString ? `?${queryString}` : "" }`; const issues = await callPlaneAPI(endpoint, "GET"); return { content: [{ type: "text", text: JSON.stringify(issues, null, 2) }], isError: false, }; }
- src/index.ts:94-124 (schema)Defines the Tool metadata including name, description, and input schema for the list-issues tool, specifying required project_id and optional filters.const LIST_ISSUES_TOOL: Tool = { name: "list-issues", description: "List issues from a project", inputSchema: { type: "object", properties: { project_id: { type: "string", description: "ID of the project to get issues from", }, state_id: { type: "string", description: "Filter by state ID (optional)", }, priority: { type: "string", description: "Filter by priority (optional)", enum: ["urgent", "high", "medium", "low", "none"], }, assignee_id: { type: "string", description: "Filter by assignee ID (optional)", }, limit: { type: "number", description: "Maximum number of issues to return (default: 50)", }, }, required: ["project_id"], }, };
- src/index.ts:261-270 (registration)Registers the list-issues tool (via LIST_ISSUES_TOOL) in the server's list of available tools for ListTools requests.server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: [ LIST_PROJECTS_TOOL, GET_PROJECT_TOOL, CREATE_ISSUE_TOOL, LIST_ISSUES_TOOL, GET_ISSUE_TOOL, UPDATE_ISSUE_TOOL, ], }));