Skip to main content
Glama
cswkim

Discogs MCP Server

by cswkim

delete_release_from_user_collection_folder

Remove a specific music release instance from a Discogs user's collection folder using folder ID, release ID, and instance ID parameters.

Instructions

Remove an instance of a release from a user's collection folder. The folder_id must be non-zero.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
usernameYes
folder_idYes
release_idYes
instance_idYes

Implementation Reference

  • MCP tool definition and handler execute function that instantiates UserService and calls deleteReleaseFromFolder on the collection submodule.
    export const deleteReleaseFromUserCollectionFolderTool: Tool<
      FastMCPSessionAuth,
      typeof UserCollectionReleaseDeletedParamsSchema
    > = {
      name: 'delete_release_from_user_collection_folder',
      description: `Remove an instance of a release from a user's collection folder. The folder_id must be non-zero.`,
      parameters: UserCollectionReleaseDeletedParamsSchema,
      execute: async (args) => {
        try {
          const userService = new UserService();
          await userService.collection.deleteReleaseFromFolder(args);
    
          return 'Release deleted successfully';
        } catch (error) {
          throw formatDiscogsError(error);
        }
      },
    };
  • Zod input schema for the tool parameters: extends folder release params with instance_id. folder_id min 1.
    export const UserCollectionReleaseDeletedParamsSchema =
      UserCollectionFolderReleaseParamsSchema.extend({
        instance_id: z.number().int(),
      });
  • Registration of the tool on the FastMCP server instance within registerUserCollectionTools function.
    server.addTool(deleteReleaseFromUserCollectionFolderTool);
  • Core helper function in UserCollectionService that performs the Discogs API DELETE request to remove the release instance from the folder.
    async deleteReleaseFromFolder({
      username,
      folder_id,
      release_id,
      instance_id,
    }: UserCollectionReleaseDeletedParams): Promise<void> {
      try {
        await this.request<void>(
          `/${username}/collection/folders/${folder_id}/releases/${release_id}/instances/${instance_id}`,
          {
            method: 'DELETE',
          },
        );
      } catch (error) {
        if (isDiscogsError(error)) {
          throw error;
        }
    
        throw new Error(`Failed to delete release from folder: ${String(error)}`);
      }
    }
  • Top-level registration call within registerTools that invokes the group registration including this tool.
    registerUserCollectionTools(server);

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