list_releases_for_project
Retrieve all releases for a specific project in Octopus Deploy. Use this tool to view deployment history, track versions, and manage release information within a designated space.
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 |
|---|---|---|---|
| spaceName | Yes | ||
| projectId | Yes | ||
| skip | No | ||
| take | No | ||
| searchByVersion | No | Search releases by version string |
Implementation Reference
- The handler function that fetches and returns releases for a given project using the Octopus Deploy API.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 })) }), }, ], };
- Input schema using Zod for validating tool 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") },
- src/tools/listReleasesForProject.ts:8-63 (registration)MCP server tool registration including name, description, input schema, output metadata, and handler.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)Registers the tool in the TOOL_REGISTRY for conditional enabling based on config.registerToolDefinition({ toolName: "list_releases_for_project", config: { toolset: "releases", readOnly: true }, registerFn: registerListReleasesForProjectTool, });