get_releases
Retrieve release information for a specific application in DevOps Plan systems to track deployment status and manage software delivery.
Instructions
Get the list of releases in Plan for a given application
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| application | Yes | Name of the application |
Implementation Reference
- src/lib/server.js:467-552 (handler)Implementation of the 'get_releases' MCP tool.
server.tool( "get_releases", "Get the list of releases in Plan for a given application", { application: z.string().describe("Name of the application") }, async ({ application }) => { try { if (!globalCookies) { globalCookies = await getCookiesFromServer(serverURL); if (!globalCookies) { console.error("Failed to retrieve cookies from server."); return { error: "Failed to retrieve cookies." }; } console.log("Received Cookies:", globalCookies); } else { console.log("Reusing Stored Cookies:", globalCookies); } const queryPayload = { queryDef: { primaryEntityDefName: "Release", queryFieldDefs: [ { fieldPathName: "Name", isShown: true, sortOrder: 0 }, { fieldPathName: "ReleaseType", isShown: true, sortOrder: 0 }, { fieldPathName: "dbid", isShown: true, sortOrder: 0 }, { fieldPathName: "record_type", isShown: true, sortOrder: 0 }, { fieldPathName: "Sprints", isShown: true, sortOrder: 0 } ], filterNode: { boolOp: "BOOL_OP_AND", fieldFilters: [], childFilterNodes: [] } }, resultSetOptions: { convertToLocalTime: false, maxResultSetRows: 10000, pageSize: 10000 } }; const queryResponse = await fetch(`${serverURL}/ccmweb/rest/repos/${teamspaceID}/databases/${application}/query`, { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': `Basic ${personal_access_token_string}`, 'Cookie': globalCookies }, body: JSON.stringify(queryPayload) , ...getAgentOptions(serverURL) }); const queryData = await queryResponse.json(); const resultSetId = queryData.result_set_id; if (!resultSetId) { throw new Error(`Failed to retrieve result set ID. Response: ${JSON.stringify(queryData)}`); } const releasesResponse = await fetch(`${serverURL}/ccmweb/rest/repos/${teamspaceID}/databases/${application}/query/${resultSetId}`, { method: 'GET', headers: { 'Content-Type': 'application/json', 'Authorization': `Basic ${personal_access_token_string}`, 'Cookie': globalCookies } , ...getAgentOptions(serverURL) }); const releasesData = await releasesResponse.json(); if (releasesData && releasesData.rows) { return { content: [{ type: 'text', text: `Releases retrieved: ${JSON.stringify(releasesData)}` }] }; } else { throw new Error("Failed to retrieve releases"); } } catch (e) { return { content: [{ type: 'text', text: `Error retrieving releases: ${e.message}` }] }; } } )