get_user_contributions
Retrieve a user's contributions from Discogs by username, with options to sort and paginate results for catalog management.
Instructions
Retrieve a user's contributions by username
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes | ||
| page | No | ||
| per_page | No | ||
| sort | No | ||
| sort_order | No |
Implementation Reference
- src/tools/userIdentity.ts:71-86 (handler)MCP tool definition for 'get_user_contributions', including the execute handler that calls UserContributionsService.get(args) and returns JSON.export const getUserContributionsTool: Tool<FastMCPSessionAuth, typeof ContributionsParamsSchema> = { name: 'get_user_contributions', description: `Retrieve a user's contributions by username`, parameters: ContributionsParamsSchema, execute: async (args) => { try { const userContributionsService = new UserContributionsService(); const contributions = await userContributionsService.get(args); return JSON.stringify(contributions); } catch (error) { throw formatDiscogsError(error); } }, };
- src/types/user/contribution.ts:18-29 (schema)Input parameters schema for the get_user_contributions tool, combining username input with query parameters for filtering contributions.export const ContributionsParamsSchema = UsernameInputSchema.merge( QueryParamsSchema([ 'label', 'artist', 'title', 'catno', 'format', 'rating', 'year', 'added', ] as const), );
- src/tools/userIdentity.ts:112-112 (registration)Registers the get_user_contributions tool on the FastMCP server.server.addTool(getUserContributionsTool);
- Core logic in UserContributionsService.get() that fetches contributions from Discogs API endpoint '/{username}/contributions', handles errors, and validates response.async get({ username, ...options }: ContributionsParams): Promise<ContributionsResponse> { try { const response = await this.request<ContributionsResponse>(`/${username}/contributions`, { params: options, }); const validatedResponse = ContributionsResponseSchema.parse(response); return validatedResponse; } catch (error) { if (isDiscogsError(error)) { throw error; } throw new Error(`Failed to get user contributions: ${String(error)}`); } }