Vinted MCP and CLI Server
🛍️ Vinted MCP & CLI сервер
Предоставьте вашему ИИ-ассистенту доступ к Vinted — ищите, сравнивайте цены и отслеживайте продавцов в 19 странах.
Идея
У Vinted нет публичного API. Этот пакет устраняет этот пробел — он позволяет ИИ-ассистентам напрямую взаимодействовать с Vinted через Model Context Protocol.
Подключите его к Claude, Cursor или любому другому MCP-совместимому ассистенту и просто спросите:
"Найди мне куртку North Face дешевле €60 в Германии, в хорошем состоянии или лучше"
"Сравни цены на Air Jordan 1 во Франции, Италии и Великобритании"
"Что сейчас продает продавец #123456? Есть что-нибудь дешевле €20?"
ИИ сам определяет, какие фильтры использовать, делает запрос к Vinted и дает вам готовый ответ — без ручного поиска, фильтрации и переключения вкладок.
Также поставляется как CLI-инструмент и TypeScript-библиотека для прямого использования.
Что это такое?
MCP-сервер, CLI-инструмент и TypeScript-библиотека для площадки подержанных вещей Vinted. Официального API нет — инструмент инициализирует сессионный cookie с публичной страницы каталога и обращается к приватному JSON API, который внутренне использует веб-приложение Vinted.
🤖 MCP-сервер — подключите к Claude, Cursor или любому ИИ-ассистенту с поддержкой MCP
🖥️ CLI-инструмент — перенаправляйте результаты, следите за новыми объявлениями, сравнивайте цены из терминала
📦 TypeScript-библиотека — импортируйте
opSearch,opCompareи т.д. прямо в свой код
Установка
npm install -g @googlarz/vinted-clientИли запустите без установки:
npx @googlarz/vinted-client search "levis 501"Быстрый старт CLI
# Search (JSON by default)
vinted search "levi's 501" --country fr
# Pretty table
vinted search "levi's 501" --country de --output table
# Filter by price, brand, condition
vinted search "adidas samba" \
--price-min 20 --price-max 80 \
--brand adidas \
--condition new_with_tags,very_good \
--output table
# Watch for new listings every 30s
vinted search "air jordan 1" --watch 30
# Walk all pages and collect up to 500 results
vinted search "vintage denim" --all --max-items 500
# Get a specific item (ID or URL)
vinted item 1234567
vinted item https://www.vinted.fr/items/1234567
# Seller profile + active listings
vinted seller 987654
vinted seller-items 987654 --output table
# Cross-country price comparison (6 countries by default)
vinted compare "north face jacket" --output table
# Browse category tree
vinted categories --query shoes --output table
# Look up brand IDs
vinted brands "stone island"
# What's trending right now
vinted trending --country fr --output tableКоманды
Команда | Описание | |
| Поиск объявлений с полной поддержкой фильтров | |
`item <id | url>` | Получить подробную информацию о товаре |
| Профиль продавца | |
| Товары, выставленные продавцом на продажу | |
| Сравнение цен между странами | |
| Поиск ID брендов по названию | |
| Просмотр дерева категорий | |
| Новые / популярные объявления | |
| Проверка сессионных cookies (для устранения неполадок) |
Глобальные флаги
Флаг | Описание | |
`--output json | table` | Формат вывода (по умолчанию: |
| Код страны (см. ниже) | |
| HTTP/HTTPS прокси (также: | |
| Отключить кэширование ответов |
Флаги поиска
Флаг | Описание |
| Диапазон цен |
| Названия брендов (автоматически преобразуются в ID) |
| ID брендов через запятую |
| ID категории (используйте |
| ID размеров через запятую |
|
|
|
|
| Фильтр по дате (ГГГГ-ММ-ДД) |
| Пройти по страницам и собрать все результаты |
| Лимит для |
| Опрашивать каждые N секунд на наличие новых объявлений (по умолчанию 60с) |
Поддерживаемые страны
fr de uk it es nl pl pt be at lt cz sk hu ro hr fi dk se
MCP-сервер
Добавьте Vinted в любой MCP-совместимый ИИ-ассистент (Claude, Cursor и т.д.).
Настройка — Claude Desktop
Добавьте в claude_desktop_config.json:
{
"mcpServers": {
"vinted": {
"command": "npx",
"args": ["-y", "@googlarz/vinted-client/mcp"]
}
}
}Настройка — Claude Code
claude mcp add vinted -- npx -y @googlarz/vinted-client/mcpMCP-инструменты
Инструмент | Описание |
| Поиск с полной поддержкой фильтров |
| Детали товара по ID или URL |
| Профиль продавца |
| Активные объявления продавца |
| Сравнение цен между странами |
| Популярные объявления |
| Поиск брендов |
| Дерево категорий |
Примеры промптов после подключения:
"Найди мне Nike Air Max 95 дешевле €70 в Германии, размер 43, в очень хорошем состоянии"
"Сравни цены на пуховик North Face во Франции, Германии и Италии"
"Следи за продавцом #987654 и сообщи мне, когда он выставит что-то дешевле €30"
Использование библиотеки
import { VintedClient, opSearch, opCompare, opSearchAll } from '@googlarz/vinted-client';
const client = new VintedClient();
// Basic search
const results = await opSearch(client, {
query: 'levi\'s 501',
country: 'de',
priceMax: 50,
condition: ['very_good', 'good'],
sortBy: 'price_low_to_high',
});
console.log(results.items);
// Collect all pages concurrently (3-page prefetch window)
const all = await opSearchAll(client, {
query: 'vintage band tee',
country: 'uk',
maxItems: 300,
});
// Multi-country price comparison
const report = await opCompare(client, {
query: 'air jordan 1 retro',
countries: ['fr', 'de', 'uk', 'it'],
});Опции клиента
const client = new VintedClient({
proxyUrl: 'http://proxy:8080', // or VINTED_PROXY_URL env var
cacheTtlMs: 60_000, // response cache TTL (0 = disable)
rateLimitPerSec: 3, // requests/sec per country
rateLimitBurst: 6, // burst capacity
timeoutMs: 20_000, // per-request timeout
});Как это работает
У Vinted нет публичного API. Эта библиотека:
Инициализирует сессию, обращаясь к
vinted.{cc}/catalogи перехватывая auth-cookies, которые устанавливает фронтенд Vinted.Вызывает приватный JSON API (
/api/v2/...) с этими cookies, имитируя заголовки запросов браузера.Автоматически переинициализирует сессию при получении 401 — токены истекают, библиотека восстанавливается незаметно для пользователя.
Ограничивает частоту запросов (rate-limit) по странам с помощью алгоритма «маркерной корзины» (настраиваемый burst + refill), чтобы избежать ошибок 429.
Кэширует ответы с помощью LRU+TTL — 60 секунд для результатов поиска, 1 час для статических данных, таких как категории.
Использует HTML-парсинг в качестве резервного варианта для страниц товаров, заблокированных DataDome (JSON-LD + извлечение через регулярные выражения).
Предварительно загружает 3 страницы параллельно в
opSearchAllдля максимизации пропускной способности в рамках лимитов.
Поддержка прокси
Если Vinted блокирует ваш IP (часто случается на облачных ВМ и CI), установите прокси:
VINTED_PROXY_URL=http://user:pass@proxy:8080 vinted search "nike"
# or
vinted search "nike" --proxy http://user:pass@proxy:8080Стандартные переменные окружения HTTPS_PROXY / HTTP_PROXY также учитываются.
Переменные окружения
Переменная | Описание |
| URL HTTP/HTTPS прокси |
| TTL кэша в мс (по умолчанию |
| Запросов в секунду на страну (по умолчанию |
| Размер burst для маркерной корзины (по умолчанию |
| Установите |
Требования
Node.js ≥ 18
Опционально:
playwright+puppeteer-extra-plugin-stealthдля режима--browser/VINTED_BROWSER=1
Лицензия
MIT © googlarz
Maintenance
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