transfer_cycle_issues
Move issues from one project cycle to another within Plane MCP Server, ensuring continuity and organization by specifying project and cycle identifiers.
Instructions
Transfer issues from one cycle to another
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cycle_id | Yes | The uuid identifier of the source cycle | |
| new_cycle_id | Yes | The uuid identifier of the target cycle | |
| project_id | Yes | The uuid identifier of the project containing the cycle |
Input Schema (JSON Schema)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"cycle_id": {
"description": "The uuid identifier of the source cycle",
"type": "string"
},
"new_cycle_id": {
"description": "The uuid identifier of the target cycle",
"type": "string"
},
"project_id": {
"description": "The uuid identifier of the project containing the cycle",
"type": "string"
}
},
"required": [
"project_id",
"cycle_id",
"new_cycle_id"
],
"type": "object"
}
Implementation Reference
- src/tools/cycles.ts:138-152 (handler)Handler function that executes the transfer_cycle_issues tool by making a POST request to the Plane API endpoint for transferring issues between cycles.async ({ project_id, cycle_id, new_cycle_id }) => { const response = await makePlaneRequest( "POST", `workspaces/${process.env.PLANE_WORKSPACE_SLUG}/projects/${project_id}/cycles/${cycle_id}/transfer-issues/`, { new_cycle_id } ); return { content: [ { type: "text", text: JSON.stringify(response, null, 2), }, ], }; }
- src/tools/cycles.ts:133-137 (schema)Input schema definition for the transfer_cycle_issues tool using Zod, specifying project_id, cycle_id, and new_cycle_id parameters.{ project_id: z.string().describe("The uuid identifier of the project containing the cycle"), cycle_id: z.string().describe("The uuid identifier of the source cycle"), new_cycle_id: z.string().describe("The uuid identifier of the target cycle"), },
- src/tools/cycles.ts:130-153 (registration)Registration of the transfer_cycle_issues tool via server.tool(), including name, description, schema, and handler.server.tool( "transfer_cycle_issues", "Transfer issues from one cycle to another", { project_id: z.string().describe("The uuid identifier of the project containing the cycle"), cycle_id: z.string().describe("The uuid identifier of the source cycle"), new_cycle_id: z.string().describe("The uuid identifier of the target cycle"), }, async ({ project_id, cycle_id, new_cycle_id }) => { const response = await makePlaneRequest( "POST", `workspaces/${process.env.PLANE_WORKSPACE_SLUG}/projects/${project_id}/cycles/${cycle_id}/transfer-issues/`, { new_cycle_id } ); return { content: [ { type: "text", text: JSON.stringify(response, null, 2), }, ], }; } );
- src/tools/index.ts:13-25 (registration)Top-level tool registration where registerCycleTools is called, which includes the transfer_cycle_issues tool.export const registerTools = (server: McpServer) => { registerMetadataTools(server); registerUserTools(server); registerProjectTools(server); registerModuleTools(server); registerModuleIssueTools(server); registerIssueTools(server); registerCycleTools(server); registerCycleIssueTools(server); registerWorkLogTools(server); };