get_release
Retrieve full release details: dates, status, linked issues, parent/root, and test progress stats. Requires project and release identifiers.
Instructions
Get the full details of one release: dates, status, linked issues, parent/root, and rolled-up progress stats (run counts, test status breakdown). releaseId accepts either the internal _id or a counter-style ID like 'MS-12'.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Project ID (required). | |
| releaseId | Yes | Internal _id or counter-style ID (required). |
Implementation Reference
- src/tools/releases/get-release.ts:31-56 (handler)Handler function for get_release tool. Validates inputs (projectId, releaseId), calls the API endpoint, and returns the release details as JSON.
export async function handleGetRelease(args?: GetReleaseArgs) { const token = getApiKey(args); if (!token) { throw new Error( "Missing TESTDINO_PAT environment variable. Configure it in your .cursor/mcp.json under 'env'." ); } if (!args?.projectId) throw new Error("projectId is required"); if (!args?.releaseId) throw new Error("releaseId is required"); try { const url = endpoints.getRelease({ projectId: args.projectId, releaseId: args.releaseId, }); const response = await apiRequestJson<unknown>(url, { headers: { Authorization: `Bearer ${token}` }, }); return { content: [{ type: "text", text: JSON.stringify(response, null, 2) }], }; } catch (error) { const msg = error instanceof Error ? error.message : String(error); throw new Error(`Failed to get release: ${msg}`); } } - Schema/definition for get_release tool, including name, description, and input schema requiring projectId and releaseId.
export const getReleaseTool = { name: "get_release", description: "Get the full details of one release: dates, status, linked issues, parent/root, and rolled-up progress stats (run counts, test status breakdown). releaseId accepts either the internal _id or a counter-style ID like 'MS-12'.", inputSchema: { type: "object", properties: { projectId: { type: "string", description: "Project ID (required)." }, releaseId: { type: "string", description: "Internal _id or counter-style ID (required).", }, }, required: ["projectId", "releaseId"], }, }; - src/index.ts:279-283 (registration)Registration routing: when tool name is 'get_release', dispatches to handleGetRelease.
if (name === "get_release") { return await handleGetRelease( args as Parameters<typeof handleGetRelease>[0] ); } - src/index.ts:48-49 (registration)Imports getReleaseTool and handleGetRelease into the main index.
getReleaseTool, handleGetRelease, - src/lib/endpoints.ts:354-358 (helper)Helper endpoint builder that constructs the URL for the get_release API call (GET /api/mcp/releases/:projectId/:releaseId).
getRelease: (params: { projectId: string; releaseId: string }): string => { const baseUrl = getBaseUrl(); const { projectId, releaseId } = params; return `${baseUrl}/api/mcp/releases/${projectId}/${releaseId}`; },