create_user_collection_folder
Organize your Discogs music collection by adding folders for specific storage needs. Input a username and folder name to create a structured collection system.
Instructions
Create a new folder in a user's collection
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| username | Yes |
Implementation Reference
- src/tools/userCollection.ts:43-60 (handler)Defines the MCP Tool object named 'create_user_collection_folder' with its execute handler that creates a UserService instance and calls the collection.createFolder method.export const createUserCollectionFolderTool: Tool< FastMCPSessionAuth, typeof UserCollectionFolderCreateParamsSchema > = { name: 'create_user_collection_folder', description: `Create a new folder in a user's collection`, parameters: UserCollectionFolderCreateParamsSchema, execute: async (args) => { try { const userService = new UserService(); const folder = await userService.collection.createFolder(args); return JSON.stringify(folder); } catch (error) { throw formatDiscogsError(error); } }, };
- src/types/user/collection.ts:66-68 (schema)Zod schema defining the input parameters for creating a user collection folder (extends UsernameInputSchema with optional name).export const UserCollectionFolderCreateParamsSchema = UsernameInputSchema.extend({ name: z.string().optional(), });
- src/tools/userCollection.ts:322-322 (registration)Registers the createUserCollectionFolderTool with the FastMCP server.server.addTool(createUserCollectionFolderTool);
- Implements the core logic for creating a folder via Discogs API POST to /${username}/collection/folders, with error handling and response validation.async createFolder({ username, ...body }: UserCollectionFolderCreateParams): Promise<UserCollectionFolder> { try { const response = await this.request<UserCollectionFolder>(`/${username}/collection/folders`, { method: 'POST', body, }); // Validate the response using Zod schema const validatedResponse = UserCollectionFolderSchema.parse(response); return validatedResponse; } catch (error) { if (isDiscogsError(error)) { throw error; } throw new Error(`Failed to create folder: ${String(error)}`); } }