sentry_list_releases
Retrieve and display release information for a Sentry project to monitor deployment versions and track application changes.
Instructions
List releases for a project
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| projectSlug | Yes | Project slug/identifier |
Implementation Reference
- src/index.ts:1061-1079 (handler)MCP tool handler for sentry_list_releases: extracts projectSlug from args, calls apiClient.listReleases, and formats response with top 10 releases.case "sentry_list_releases": { if (!apiClient) { throw new Error("Sentry API client not initialized. Provide auth token."); } const { projectSlug } = args as any; const releases = await apiClient.listReleases(projectSlug); return { content: [ { type: "text", text: `Found ${releases.length} releases:\n${releases.slice(0, 10).map((r: any) => `- ${r.version} (${new Date(r.dateCreated).toLocaleDateString()})` ).join('\n')}${releases.length > 10 ? '\n... and more' : ''}`, }, ], }; }
- src/index.ts:442-455 (registration)Tool registration in ListToolsRequestSchema response, including name, description, and input schema requiring projectSlug.{ name: "sentry_list_releases", description: "List releases for a project", inputSchema: { type: "object", properties: { projectSlug: { type: "string", description: "Project slug/identifier", }, }, required: ["projectSlug"], }, },
- src/index.ts:445-454 (schema)Input schema for sentry_list_releases tool: requires projectSlug string.inputSchema: { type: "object", properties: { projectSlug: { type: "string", description: "Project slug/identifier", }, }, required: ["projectSlug"], },
- src/sentry-api-client.ts:81-83 (helper)Core API helper method in SentryAPIClient that performs HTTP request to fetch releases for a project.async listReleases(projectSlug: string) { return this.request(`/projects/${this.org}/${projectSlug}/releases/`); }
- src/sentry-api-client.ts:20-36 (helper)Private request method used by all API calls, including listReleases, handling auth and error checking.private async request(endpoint: string, options: any = {}) { const url = `${this.baseUrl}${endpoint}`; const response = await fetch(url, { ...options, headers: { 'Authorization': `Bearer ${this.authToken}`, 'Content-Type': 'application/json', ...options.headers, }, }); if (!response.ok) { throw new Error(`Sentry API error: ${response.status} ${response.statusText}`); } return response.json(); }