Skip to main content
Glama
googlarz

Vinted MCP and CLI Server

get_size_groups

Retrieve all Vinted size groups (e.g., Women's clothing, Men's shoes) with their size IDs and labels. Use the size IDs to filter listings to an exact size.

Instructions

Fetch all Vinted size groups with their constituent size IDs and labels. Returns a list of size groups (e.g. "Women's clothing", "Men's shoes", "Kids 2–8 yrs") — each containing the group ID, caption, description, and an array of sizes with numeric IDs and display titles (e.g. "XS", "42", "12 UK"). Pass individual size IDs from the sizes array to search_items.sizeIds or search_all_items.sizeIds to filter listings to an exact size. Results are cached for 1 hour.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
countryNoVinted country site to query (size catalogues are shared across countries)fr

Implementation Reference

  • The handler function opGetSizeGroups that executes the tool logic. It takes a VintedClient and args (with optional country), defaults country to 'fr', and delegates to the client endpoint function.
    export async function opGetSizeGroups(
      client: VintedClient,
      args: { country?: Country },
    ): Promise<SizeGroup[]> {
      return getSizeGroups(client, args.country ?? 'fr');
    }
  • The tool schema/inputSchema definition for 'get_size_groups', including the JSON schema for the 'country' parameter and the description explaining output (size groups with IDs, captions, descriptions, and size arrays).
    {
      name: 'get_size_groups',
      description: 'Fetch all Vinted size groups with their constituent size IDs and labels. Returns a list of size groups (e.g. "Women\'s clothing", "Men\'s shoes", "Kids 2–8 yrs") — each containing the group ID, caption, description, and an array of sizes with numeric IDs and display titles (e.g. "XS", "42", "12 UK"). Pass individual size IDs from the sizes array to search_items.sizeIds or search_all_items.sizeIds to filter listings to an exact size. Results are cached for 1 hour.',
      inputSchema: {
        type: 'object',
        properties: {
          country: { type: 'string', enum: COUNTRIES, default: 'fr', description: 'Vinted country site to query (size catalogues are shared across countries)' },
        },
      },
    },
  • src/mcp.ts:18-19 (registration)
    Import of opGetSizeGroups from ops/get-size-groups.js.
    import { opGetSizeGroups } from './ops/get-size-groups.js';
  • src/mcp.ts:237-248 (registration)
    The switch-case dispatch in the CallToolRequestSchema handler that routes 'get_size_groups' to opGetSizeGroups.
            case 'get_size_groups': result = await opGetSizeGroups(c, a as any); break;
            default: throw new Error(`Unknown tool: ${name}`);
          }
          return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
        } catch (e) {
          const msg = e instanceof Error ? e.message : String(e);
          return { content: [{ type: 'text', text: `Error: ${msg}` }], isError: true };
        }
      });
    
      return server;
    }
  • The client endpoint function getSizeGroups that makes the actual HTTP API call to /api/v2/size_groups with 1-hour caching (STATIC_TTL_MS), maps the response to SizeGroup objects with id, caption, description, and nested sizes array.
    export async function getSizeGroups(
      client: VintedClient,
      country: Country = 'fr',
    ): Promise<SizeGroup[]> {
      const data = await client.apiGet<{ size_groups?: any[] }>(
        country,
        `/api/v2/size_groups`,
        STATIC_TTL_MS,
      );
      return (data.size_groups ?? []).map((g) => ({
        id: Number(g.id),
        caption: String(g.caption ?? ''),
        description: String(g.description ?? ''),
        sizes: (g.sizes ?? []).map((s: any) => ({ id: Number(s.id), title: String(s.title ?? '') })),
      }));
    }
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must carry the full burden of behavioral disclosure. It states that results are cached for 1 hour, which is a key behavioral trait. No contradictions are present. The score reflects good transparency but a slight gap (e.g., no mention of rate limits or potential errors).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is tightly written with no wasted words. It front-loads the purpose, explains the output structure, provides usage guidance, and mentions caching—all in a compact paragraph.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there is no output schema, the description thoroughly explains the return structure (list of groups with IDs, captions, descriptions, and array of sizes with numeric IDs and display titles). It also explains how to use the output, making it fully complete for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema coverage is 100%, so the parameter descriptions are already present. The description adds useful context: 'size catalogues are shared across countries', which goes beyond the schema. This extra insight warrants a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with 'Fetch all Vinted size groups with their constituent size IDs and labels', which is a specific verb+resource combination. It clearly identifies the tool's purpose and distinguishes it from sibling tools like get_categories or get_colors.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains how to use the output by passing size IDs to search_items.sizeIds or search_all_items.sizeIds. It provides clear context but does not explicitly state when not to use this tool or mention alternatives, which keeps it from a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

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/googlarz/vinted-mcp-cli'

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