get_release_rating_by_user
Retrieve a user's rating for a specific Discogs music release. Provide the username and release ID to get their personal rating.
Instructions
Retrieves the release's rating for a given user
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes | ||
| release_id | Yes |
Implementation Reference
- src/tools/database.ts:218-232 (handler)The main handler for the MCP tool 'get_release_rating_by_user'. It instantiates ReleaseService and calls getRatingByUser to fetch the rating, then stringifies and returns it.export const getReleaseRatingTool: Tool<FastMCPSessionAuth, typeof ReleaseRatingParamsSchema> = { name: 'get_release_rating_by_user', description: `Retrieves the release's rating for a given user`, parameters: ReleaseRatingParamsSchema, execute: async (args) => { try { const releaseService = new ReleaseService(); const releaseRating = await releaseService.getRatingByUser(args); return JSON.stringify(releaseRating); } catch (error) { throw formatDiscogsError(error); } }, };
- src/services/release.ts:137-150 (helper)The supporting service method that performs the actual API request to Discogs for the user's release rating and validates the response.async getRatingByUser({ username, release_id }: ReleaseRatingParams): Promise<ReleaseRating> { try { const response = await this.request<ReleaseRating>(`/${release_id}/rating/${username}`); const validatedResponse = ReleaseRatingSchema.parse(response); return validatedResponse; } catch (error) { if (isDiscogsError(error)) { throw error; } throw new Error(`Failed to get release rating: ${String(error)}`); } }
- src/types/release.ts:175-178 (schema)Zod schema for the tool input parameters: username and release_id./** * Schema for release rating parameters */ export const ReleaseRatingParamsSchema = UsernameInputSchema.merge(ReleaseIdParamSchema);
- src/tools/database.ts:255-255 (registration)The line where the tool is registered with the MCP server.server.addTool(getReleaseRatingTool);