list_releases_for_project
Retrieve all releases for a specific project in Octopus Deploy to track deployment history, monitor version changes, and manage release pipelines.
Instructions
List releases for a specific project
This tool lists all releases for a given project in a space. The space name and project ID are required. Optionally provide skip, take, and searchByVersion parameters.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | ||
| searchByVersion | No | Search releases by version string | |
| skip | No | ||
| spaceName | Yes | ||
| take | No |
Implementation Reference
- The handler function that executes the tool: connects to Octopus Deploy, fetches releases for the project using ReleaseRepository.listForProject, and returns JSON-formatted response.async ({ spaceName, projectId, skip, take, searchByVersion }) => { const configuration = getClientConfigurationFromEnvironment(); const client = await Client.create(configuration); const releaseRepository = new ReleaseRepository(client, spaceName); const releasesResponse = await releaseRepository.listForProject(projectId, { skip, take, searchByVersion }); return { content: [ { type: "text", text: JSON.stringify({ totalResults: releasesResponse.TotalResults, itemsPerPage: releasesResponse.ItemsPerPage, numberOfPages: releasesResponse.NumberOfPages, lastPageNumber: releasesResponse.LastPageNumber, items: releasesResponse.Items.map(release => ({ id: release.Id, version: release.Version, channelId: release.ChannelId, projectId: release.ProjectId, releaseNotes: release.ReleaseNotes, assembled: release.Assembled, ignoreChannelRules: release.IgnoreChannelRules, selectedPackages: release.SelectedPackages, selectedGitResources: release.SelectedGitResources, buildInformation: release.BuildInformation, customFields: release.CustomFields })) }), }, ], };
- Zod input schema defining parameters: spaceName (required string), projectId (required string), skip/take (optional numbers), searchByVersion (optional string).spaceName: z.string(), projectId: z.string(), skip: z.number().optional(), take: z.number().optional(), searchByVersion: z.string().optional().describe("Search releases by version string") },
- src/tools/listReleasesForProject.ts:7-63 (registration)The registerListReleasesForProjectTool function that registers the MCP tool with server.tool(), including name, description, input schema, output hints, and handler.export function registerListReleasesForProjectTool(server: McpServer) { server.tool( "list_releases_for_project", `List releases for a specific project This tool lists all releases for a given project in a space. The space name and project ID are required. Optionally provide skip, take, and searchByVersion parameters.`, { spaceName: z.string(), projectId: z.string(), skip: z.number().optional(), take: z.number().optional(), searchByVersion: z.string().optional().describe("Search releases by version string") }, { title: "List releases for a project in Octopus Deploy", readOnlyHint: true, }, async ({ spaceName, projectId, skip, take, searchByVersion }) => { const configuration = getClientConfigurationFromEnvironment(); const client = await Client.create(configuration); const releaseRepository = new ReleaseRepository(client, spaceName); const releasesResponse = await releaseRepository.listForProject(projectId, { skip, take, searchByVersion }); return { content: [ { type: "text", text: JSON.stringify({ totalResults: releasesResponse.TotalResults, itemsPerPage: releasesResponse.ItemsPerPage, numberOfPages: releasesResponse.NumberOfPages, lastPageNumber: releasesResponse.LastPageNumber, items: releasesResponse.Items.map(release => ({ id: release.Id, version: release.Version, channelId: release.ChannelId, projectId: release.ProjectId, releaseNotes: release.ReleaseNotes, assembled: release.Assembled, ignoreChannelRules: release.IgnoreChannelRules, selectedPackages: release.SelectedPackages, selectedGitResources: release.SelectedGitResources, buildInformation: release.BuildInformation, customFields: release.CustomFields })) }), }, ], }; } ); }
- src/tools/listReleasesForProject.ts:65-69 (registration)Self-registration of the tool into the TOOL_REGISTRY, specifying toolset 'releases' and readOnly true, linking to the register function.registerToolDefinition({ toolName: "list_releases_for_project", config: { toolset: "releases", readOnly: true }, registerFn: registerListReleasesForProjectTool, });
- src/tools/index.ts:16-16 (registration)Import that triggers the self-registration of the list_releases_for_project tool.import "./listReleasesForProject.js";