vinted-seller-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| VINTED_COUNTRY | No | Default storefront country code. | fr |
| VINTED_HEADLESS | No | Whether to run headless (true/false). 'login' always shows a window. | true |
| VINTED_LOG_LEVEL | No | Log level for JSON logs on stderr. | info |
| VINTED_MCP_TOKEN | No | Bearer token for 'serve-http'. | |
| VINTED_SELLER_HOME | No | Base directory for profiles, drafts, photos. | ~/.vinted-seller-mcp |
| VINTED_CACHE_TTL_MS | No | GET cache TTL in milliseconds; 0 disables. | 60000 |
| VINTED_RATE_LIMIT_PER_SEC | No | Requests per second per storefront. | 2 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| session_statusA | Reports whether a usable Vinted session exists for a storefront, without throwing. Use it when a seller tool fails, to tell the user precisely whether they have never logged in ( |
| whoamiA | Returns the signed-in Vinted account for a storefront: user id, username, item count and reputation. Use it first to check the session is alive before any seller operation. If it fails with NOT_AUTHENTICATED or SESSION_EXPIRED, tell the user to run |
| search_itemsA | Searches the Vinted catalogue, exactly like the site search box. Use it to look at what is currently on sale for a given query. For pricing a specific item, prefer search_similar_items, which filters out results that are not really comparable. |
| get_itemA | Fetches one listing by numeric id: title, description, price, brand, size, condition, photos and seller. Falls back to the public item page when the API is bot-blocked. |
| search_similar_itemsA | Finds listings genuinely comparable to an item you are about to sell. Give it the facts you can actually see in the photos (brand, model, capacity, size, colour). It tries several search phrasings, then removes duplicates, accessories, broken/for-parts listings, different capacities and mismatched sizes. Returns both the kept comparables and why each rejected result was dropped, so you can justify the price to the user. |
| estimate_priceA | Turns comparable listings into a price recommendation: count, min, 25th percentile, median, average, 75th percentile, max, plus quick-sale / recommended / optimistic prices. Either pass comparables from search_similar_items, or pass the item facts and let it find them. It reports a confidence level and refuses to look precise when there are too few comparables - do not present a low-confidence number as a market price. |
| get_similar_itemsA | Returns Vinted's own 'similar items' carousel for a listing id. Complements search_similar_items when you already have a near-identical listing to anchor on. |
| find_categoryA | Searches the Vinted catalogue tree and returns ranked candidates with their numeric id and full path ("Femmes > Chaussures > Baskets"). Only leaf categories (isLeaf: true) can hold a listing. Show the top candidates to the user rather than silently taking the first one - a wrong category buries the listing. |
| find_brandA | Looks a brand up in Vinted's brand list and returns ranked candidates with their numeric id. |
| prepare_listingA | The main entry point. Give it what you can actually see in the photos plus the photo paths, and it creates a local draft: searches comparable listings, estimates a price, looks up the category and brand, and writes a title and description from the facts you supplied. Nothing is sent to Vinted and nothing is published. Show the returned draft to the user, let them correct it with update_listing_draft, then validate_listing. |
| get_listing_draftA | Returns a stored draft in full: fields, photos, comparables, price estimate, validation state and history. |
| list_draftsA | Lists local drafts, newest first, with their status and headline fields. |
| update_listing_draftA | Applies the user's corrections to a draft. Only the fields you pass are changed. Use this after showing the draft to the user - never rewrite their wording on your own initiative. |
| add_draft_photosA | Copies more photos into an existing draft. Originals on disk are never modified or moved. Vinted may block publishing higher-value items with fewer than 3 photos. |
| validate_listingA | Opens Vinted's new-listing form in the browser, fills it completely from the draft, and reports whether it is ready to publish. It never clicks publish. This is the safe end-to-end check: run it before asking the user for permission to publish, and quote the returned missing/warnings back to them. |
| publish_listingA | Publishes a draft as a real, public Vinted listing. IRREVERSIBLE. Requires confirm: true, which you may only set after the user has seen the draft and explicitly told you to publish it. Run validate_listing first. |
| delete_draftA | Removes a local draft and its copied photos. Does not touch anything on Vinted. Published drafts need force: true. |
| my_listingsA | Lists the signed-in user's own listings, with prices, views and favourites. |
| seller_statsA | Aggregates the signed-in seller's shop: active and sold counts, total active value, views and favourites. Vinted has no stats endpoint, so this is computed from the listing pages and the |
| update_priceA | Changes the price of one of the user's live listings. Confirm the new price with the user first - buyers who favourited the item are notified of price drops. |
| edit_listingA | Edits the title, description, price or classification of one of the user's live listings. Tries the API first and falls back to driving the edit form in the browser. Only change what the user asked for. |
| deactivate_listingA | Hides one of the user's listings from the catalogue without deleting it. Reversible with reactivate_listing. |
| reactivate_listingB | Brings a previously hidden listing back into the catalogue. |
| delete_listingA | Permanently deletes one of the user's Vinted listings. IRREVERSIBLE - the item, its photos and its stats are gone. Requires confirm: true, which you may only set after the user has explicitly confirmed this exact item. If they only want it off the catalogue, use deactivate_listing instead. |
| conversationsA | Lists the signed-in user's conversations, newest first, with the counterpart and the related item. |
| read_messagesA | Returns every message in one conversation, oldest first. |
| send_messageA | Sends a message to a real person in a Vinted conversation. Requires confirm: true. Show the user the exact text you intend to send and get their approval first - this cannot be unsent, and never send a test message. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/rachid598/mcpvin'
If you have feedback or need assistance with the MCP directory API, please join our Discord server