Skip to main content
Glama
OctopusDeploy

Octopus Deploy MCP Server

Official

list_releases

Retrieve all releases within a specified Octopus Deploy space, with optional pagination controls for managing large result sets.

Instructions

List releases in a space

This tool lists all releases in a given space. The space name is required. Optionally provide skip and take parameters for pagination.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
spaceNameYesThe space name
skipNo
takeNo

Implementation Reference

  • The handler function that creates an Octopus Deploy client, fetches releases for the given space with optional pagination, and returns formatted JSON response.
    async ({ spaceName, skip, take }) => {
      const configuration = getClientConfigurationFromEnvironment();
      const client = await Client.create(configuration);
      const releaseRepository = new ReleaseRepository(client, spaceName);
    
      const releasesResponse = await releaseRepository.list({ skip, take });
    
      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 defined with Zod validators for spaceName (required string), and optional skip/take numbers for pagination.
      spaceName: z.string().describe("The space name"),
      skip: z.number().optional(),
      take: z.number().optional()
    },
  • registerListReleasesTool: Registers the tool on the MCP server with name, description, input schema, output metadata, and handler function.
    export function registerListReleasesTool(server: McpServer) {
      server.tool(
        "list_releases",
        `List releases in a space
      
      This tool lists all releases in a given space. The space name is required. Optionally provide skip and take parameters for pagination.`,
        { 
          spaceName: z.string().describe("The space name"),
          skip: z.number().optional(),
          take: z.number().optional()
        },
        {
          title: "List all releases in an Octopus Deploy space",
          readOnlyHint: true,
        },
        async ({ spaceName, skip, take }) => {
          const configuration = getClientConfigurationFromEnvironment();
          const client = await Client.create(configuration);
          const releaseRepository = new ReleaseRepository(client, spaceName);
    
          const releasesResponse = await releaseRepository.list({ skip, take });
    
          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
                  }))
                }),
              },
            ],
          };
        }
      );
    }
  • Registers the tool metadata in the global TOOL_REGISTRY for discovery and conditional enabling during top-level tool registration.
    registerToolDefinition({
      toolName: "list_releases",
      config: { toolset: "releases", readOnly: true },
      registerFn: registerListReleasesTool,
    });
  • Import triggers execution of registerToolDefinition in listReleases.ts, adding the tool to TOOL_REGISTRY.
    import "./listReleases.js";

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/OctopusDeploy/mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server