edit_release_rating
Update your personal rating for a Discogs music release to organize and reflect your preferences in your collection.
Instructions
Updates the release's rating for a given user
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes | ||
| release_id | Yes | ||
| rating | Yes |
Implementation Reference
- src/tools/database.ts:42-57 (handler)MCP tool definition and handler (execute function) for 'edit_release_rating' which calls ReleaseService to update the rating.export const editReleaseRatingTool: Tool<FastMCPSessionAuth, typeof ReleaseRatingEditParamsSchema> = { name: 'edit_release_rating', description: `Updates the release's rating for a given user`, parameters: ReleaseRatingEditParamsSchema, execute: async (args) => { try { const releaseService = new ReleaseService(); const releaseRating = await releaseService.editRatingByUser(args); return JSON.stringify(releaseRating); } catch (error) { throw formatDiscogsError(error); } }, };
- src/types/release.ts:183-189 (schema)Zod input schema for the tool parameters: extends ReleaseRatingParamsSchema with rating (integer 1-5).export const ReleaseRatingEditParamsSchema = ReleaseRatingParamsSchema.extend({ rating: z .number() .int() .min(1, 'The rating must be at least 1') .max(5, 'The rating must be at most 5'), });
- src/tools/database.ts:253-266 (registration)Registration function registerDatabaseTools which adds the editReleaseRatingTool (line 256) to the FastMCP server.export function registerDatabaseTools(server: FastMCP): void { server.addTool(getReleaseTool); server.addTool(getReleaseRatingTool); server.addTool(editReleaseRatingTool); server.addTool(deleteReleaseRatingTool); server.addTool(getReleaseCommunityRatingTool); server.addTool(getMasterReleaseTool); server.addTool(getMasterReleaseVersionsTool); server.addTool(getArtistTool); server.addTool(getArtistReleasesTool); server.addTool(getLabelTool); server.addTool(getLabelReleasesTool); server.addTool(searchTool); }
- src/services/release.ts:57-77 (helper)ReleaseService.editRatingByUser method: performs the Discogs API PUT request to /releases/{release_id}/rating/{username} with the new rating.async editRatingByUser({ username, release_id, rating, }: ReleaseRatingEditParams): Promise<ReleaseRating> { try { const response = await this.request<ReleaseRating>(`/${release_id}/rating/${username}`, { method: 'PUT', body: { rating }, }); const validatedResponse = ReleaseRatingSchema.parse(response); return validatedResponse; } catch (error) { if (isDiscogsError(error)) { throw error; } throw new Error(`Failed to edit release rating: ${String(error)}`); } }