Skip to main content
Glama
cswkim

Discogs MCP Server

by cswkim

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
NameRequiredDescriptionDefault
usernameYes
release_idYes
ratingYes

Implementation Reference

  • 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);
          }
        },
      };
  • 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'),
    });
  • 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);
    }
  • 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)}`);
      }
    }

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/cswkim/discogs-mcp-server'

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