{"_id":"@andrijdavid/vinted-mcp","_rev":"6-162d30bc104fa5189765ef025237fda7","name":"@andrijdavid/vinted-mcp","dist-tags":{"next":"0.1.0-next.20260315203252","latest":"0.1.2"},"versions":{"0.1.0-next.20260315200710":{"name":"@andrijdavid/vinted-mcp","version":"0.1.0-next.20260315200710","keywords":["vinted","mcp","model-context-protocol","claude","cursor","ai","scraper","marketplace","fashion","price-comparison","second-hand","mcp-server","ai-tools","shopping-assistant"],"author":{"name":"andrijdavid"},"license":"AGPL-3.0-or-later","_id":"@andrijdavid/vinted-mcp@0.1.0-next.20260315200710","maintainers":[{"name":"andrijdavid","email":"andrijdavid@gmail.com"}],"bin":{"vinted-mcp":"dist/bundle.js","vinted-mcp-server":"dist/bundle.js"},"dist":{"shasum":"40385fb0d86e3c6d1feda9d70774fd9ac97feb17","tarball":"https://registry.npmjs.org/@andrijdavid/vinted-mcp/-/vinted-mcp-0.1.0-next.20260315200710.tgz","fileCount":5,"integrity":"sha512-vcy1ZnzVqPFfDQ/gvosMQSv69OCG559FfBciv3fZoR0OB4qSJuUKXJUuo7CiTQOCsHB8u1Sn1tPMtOTNsZDwMQ==","signatures":[{"sig":"MEQCIB/NPjlp5xxluN1ajlOEjD/+XmodrqPPUpeSFS3TPyStAiAiH3u18Z+ScsJL6kJWupLPPnaffkOLh05saJfJpTba1A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67616},"main":"dist/bundle.js","engines":{"node":">=18.0.0"},"gitHead":"81002a1ff026452f576ab77b7f263a6173ed0572","scripts":{"test":"node --test tests/*.test.cjs","build":"tsc -p tsconfig.json","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true }); require('fs').rmSync('dist-ts', { recursive: true, force: true });\"","start":"node dist/bundle.js","bundle":"npx --yes esbuild src/bin/cli.ts --bundle --platform=node --target=node18 --outfile=dist/bundle.js --format=cjs --external:@modelcontextprotocol/sdk --external:playwright --external:playwright-core --external:playwright-extra --external:puppeteer-extra-plugin-stealth","publish:canary:local":"bash scripts/publish-canary-local.sh"},"_npmUser":{"name":"andrijdavid","email":"andrijdavid@gmail.com"},"_npmVersion":"10.9.3","description":"MCP Server for Vinted marketplace — search items, compare prices, analyze sellers across 19 countries.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vinted-mcp_0.1.0-next.20260315200710_1773601652186_0.5153646181056364","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315203252":{"name":"@andrijdavid/vinted-mcp","version":"0.1.0-next.20260315203252","keywords":["vinted","mcp","model-context-protocol","claude","cursor","ai","scraper","marketplace","fashion","price-comparison","second-hand","mcp-server","ai-tools","shopping-assistant"],"author":{"name":"andrijdavid"},"license":"AGPL-3.0-or-later","_id":"@andrijdavid/vinted-mcp@0.1.0-next.20260315203252","maintainers":[{"name":"andrijdavid","email":"andrijdavid@gmail.com"}],"bin":{"vinted-mcp":"dist/bundle.js","vinted-mcp-server":"dist/bundle.js"},"dist":{"shasum":"469843ee0f89ceaed958ecab5739d8ac4effcc8f","tarball":"https://registry.npmjs.org/@andrijdavid/vinted-mcp/-/vinted-mcp-0.1.0-next.20260315203252.tgz","fileCount":5,"integrity":"sha512-FEdByY/9Y6R+3+nJseeTXwJdZajBPg9cdXYxIFwbi0ZP2hOmomCBtLpfjH7S04Onf6k/TgAQxibpVk67i7IjaA==","signatures":[{"sig":"MEYCIQCVzDq2kIxTA97aVKT6OCyqo6mND7z7xo4lZ1oWC8pUtgIhAIhjZMc+JWTHEKnE67A9kAu3bYfC3th0nE3dqykmgd+2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":73709},"main":"dist/bundle.js","engines":{"node":">=18.0.0"},"gitHead":"2961b10739ed0c3047f0d57e5a85acd6a7ef848e","scripts":{"test":"node --test tests/*.test.cjs","build":"tsc -p tsconfig.json","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true }); require('fs').rmSync('dist-ts', { recursive: true, force: true });\"","start":"node dist/bundle.js","bundle":"npx --yes esbuild src/bin/cli.ts --bundle --platform=node --target=node18 --outfile=dist/bundle.js --format=cjs --external:@modelcontextprotocol/sdk --external:playwright --external:playwright-core --external:playwright-extra --external:puppeteer-extra-plugin-stealth","publish:canary:local":"bash scripts/publish-canary-local.sh"},"_npmUser":{"name":"andrijdavid","email":"andrijdavid@gmail.com"},"_npmVersion":"10.9.3","description":"MCP Server for Vinted marketplace — search items, compare prices, analyze sellers across 19 countries.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/vinted-mcp_0.1.0-next.20260315203252_1773603198450_0.22418360043686492","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@andrijdavid/vinted-mcp","version":"0.1.0","keywords":["vinted","mcp","model-context-protocol","claude","cursor","ai","scraper","marketplace","fashion","price-comparison","second-hand","mcp-server","ai-tools","shopping-assistant"],"author":{"name":"andrijdavid"},"license":"AGPL-3.0-or-later","_id":"@andrijdavid/vinted-mcp@0.1.0","maintainers":[{"name":"andrijdavid","email":"andrijdavid@gmail.com"}],"bin":{"vinted-mcp":"dist/bundle.js","vinted-mcp-server":"dist/bundle.js"},"dist":{"shasum":"43694fc7509b1baddb346fec3b2d470999594972","tarball":"https://registry.npmjs.org/@andrijdavid/vinted-mcp/-/vinted-mcp-0.1.0.tgz","fileCount":5,"integrity":"sha512-Aug+u5WNQU5roT9JOwMMBevJ16Jc8CNV3CQf2W4M7RwnWwpFn2cnk6HCh5oSU/qTm1DjKnPOaW5HSfbEF1ipBQ==","signatures":[{"sig":"MEUCIQDR/GfFifhpEgZQgADXn7h1El00njXwWpM30D3lqUAUPQIgN2Jsgo1EBFBYpZbOA5/PbAY9S5eswJNkdPsqnW1Gq88=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":86309},"main":"dist/bundle.js","engines":{"node":">=18.0.0"},"gitHead":"0d3a56bf0717260a794318f519caf062cfc5a63e","scripts":{"test":"node --test tests/*.test.cjs","build":"tsc -p tsconfig.json","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true }); require('fs').rmSync('dist-ts', { recursive: true, force: true });\"","start":"node dist/bundle.js","bundle":"npx --yes esbuild src/bin/cli.ts --bundle --platform=node --target=node18 --outfile=dist/bundle.js --format=cjs --external:@modelcontextprotocol/sdk --external:playwright --external:playwright-core --external:playwright-extra --external:puppeteer-extra-plugin-stealth","publish:canary:local":"bash scripts/publish-canary-local.sh"},"_npmUser":{"name":"andrijdavid","email":"andrijdavid@gmail.com"},"_npmVersion":"10.9.3","description":"MCP Server for Vinted marketplace — search items, compare prices, analyze sellers across 19 countries.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vinted-mcp_0.1.0_1775378865326_0.444353651637728","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@andrijdavid/vinted-mcp","version":"0.1.2","description":"MCP Server for Vinted marketplace — search items, compare prices, analyze sellers across 19 countries.","mcpName":"io.github.andrijdavid/vinted-mcp","main":"dist/bundle.js","bin":{"vinted-mcp":"dist/bundle.js","vinted-mcp-server":"dist/bundle.js"},"scripts":{"build":"tsc -p tsconfig.json","bundle":"npx --yes esbuild src/bin/cli.ts --bundle --platform=node --target=node18 --outfile=dist/bundle.js --format=cjs --external:@modelcontextprotocol/sdk --external:playwright --external:playwright-core --external:playwright-extra --external:puppeteer-extra-plugin-stealth","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true }); require('fs').rmSync('dist-ts', { recursive: true, force: true });\"","start":"node dist/bundle.js","test":"node --test tests/*.test.cjs","publish:canary:local":"bash scripts/publish-canary-local.sh"},"dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"keywords":["vinted","mcp","model-context-protocol","claude","cursor","ai","scraper","marketplace","fashion","price-comparison","second-hand","mcp-server","ai-tools","shopping-assistant"],"license":"AGPL-3.0-or-later","author":{"name":"andrijdavid"},"engines":{"node":">=18.0.0"},"_id":"@andrijdavid/vinted-mcp@0.1.2","gitHead":"460317f23a4d665bd352863f388c9d299550955a","_nodeVersion":"22.19.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-Wc4m2I2ci+SGlTzKEnT8Uu9Gzz9EpeUZxpclM5jbRyIGSwUD1UsUNh9sBRMln6OPZnVfJkQJg4BYIzfVIEtJMA==","shasum":"d919d6aabbeb4479286bfa4e8a3a74f332377f22","tarball":"https://registry.npmjs.org/@andrijdavid/vinted-mcp/-/vinted-mcp-0.1.2.tgz","fileCount":5,"unpackedSize":86620,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCxKdFy1pLSi4IZ4sm1rnNldGFN3dhcHv3k6V0R8foB2AIhAKgzNwzhCkydPYZrYrl2+PL9l1MOUoKvoY26X1Uo/9Qv"}]},"_npmUser":{"name":"andrijdavid","email":"andrijdavid@gmail.com"},"directories":{},"maintainers":[{"name":"andrijdavid","email":"andrijdavid@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/vinted-mcp_0.1.2_1775380853037_0.18905450802439727"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-15T19:07:32.134Z","modified":"2026-04-05T09:20:53.308Z","0.1.0-next.20260315200710":"2026-03-15T19:07:32.374Z","0.1.0-next.20260315203252":"2026-03-15T19:33:18.597Z","0.1.0":"2026-04-05T08:47:45.488Z","0.1.1":"2026-04-05T09:14:05.701Z","0.1.2":"2026-04-05T09:20:53.177Z"},"author":{"name":"andrijdavid"},"license":"AGPL-3.0-or-later","keywords":["vinted","mcp","model-context-protocol","claude","cursor","ai","scraper","marketplace","fashion","price-comparison","second-hand","mcp-server","ai-tools","shopping-assistant"],"description":"MCP Server for Vinted marketplace — search items, compare prices, analyze sellers across 19 countries.","maintainers":[{"name":"andrijdavid","email":"andrijdavid@gmail.com"}],"readme":"# @andrijdavid/vinted-mcp\n\n[![npm version](https://img.shields.io/npm/v/%40andrijdavid%2Fvinted-mcp.svg)](https://www.npmjs.com/package/@andrijdavid/vinted-mcp)\n[![License: AGPL v3+](https://img.shields.io/badge/License-AGPL%20v3%2B-blue.svg)](./LICENSE.md)\n\nAn MCP server for Vinted search and analysis that provides tools to search listings, fetch item details, inspect seller profiles, compare prices across countries, and surface trending items.\n\nIt also exposes resources for supported countries and category data.\n\n**Disclaimer**: This project is not affiliated, associated, authorized, endorsed by, or in any way officially connected with Vinted, or any of its subsidiaries or its affiliates. The official Vinted website can be found at [vinted.com](https://www.vinted.com).\n\n## Client support\n\nThis server works with MCP clients that support local `stdio` servers.\n\nPopular clients and setup docs:\n\n- Claude Desktop (local): https://support.claude.com/en/articles/10949351-getting-started-with-local-mcp-servers-on-claude-desktop\n- Claude Desktop (remote): https://support.claude.com/en/articles/11175166-getting-started-with-custom-connectors-using-remote-mcp\n- ChatGPT (MCP developer mode): https://platform.openai.com/docs/guides/developer-mode\n- ChatGPT (MCP and connectors): https://platform.openai.com/docs/guides/tools-remote-mcp\n- Cursor: https://docs.cursor.com/context/model-context-protocol\n- Windsurf: https://docs.windsurf.com/windsurf/cascade/mcp\n- Cline: https://docs.cline.bot/mcp/configuring-mcp-servers\n- Full MCP client directory: https://modelcontextprotocol.io/clients\n\n## Quick start\n\n### Option 1: npx\n\nAdd this to your MCP client config:\n\n```json\n{\n  \"mcpServers\": {\n    \"vinted\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@andrijdavid/vinted-mcp\"]\n    }\n  }\n}\n```\n\n### Option 1b: bunx (canary)\n\n```bash\nbunx @andrijdavid/vinted-mcp@next\n```\n\nThis starts the server in `stdio` mode and waits for an MCP client.\n\n### Option 2: global install\n\n```bash\nnpm install -g @andrijdavid/vinted-mcp\n```\n\nThen configure:\n\n```json\n{\n  \"mcpServers\": {\n    \"vinted\": {\n      \"command\": \"vinted-mcp\"\n    }\n  }\n}\n```\n\n### Run in network mode (Streamable HTTP over TCP)\n\nIf you need a network endpoint instead of stdio, run:\n\n```bash\nVINTED_MCP_TRANSPORT=http VINTED_MCP_HOST=127.0.0.1 VINTED_MCP_PORT=3001 bunx @andrijdavid/vinted-mcp@next\n```\n\nOptional:\n\n- `VINTED_MCP_PATH` (default `/mcp`)\n- `VINTED_MCP_ENABLE_LEGACY_SSE` (default `true`)\n- `VINTED_MCP_LEGACY_SSE_PATH` (default `/sse`)\n- `VINTED_MCP_LEGACY_MESSAGES_PATH` (default `/messages`)\n\nDefault endpoints:\n\n- Streamable HTTP (recommended): `http://127.0.0.1:3001/mcp`\n- Legacy SSE (older clients): `http://127.0.0.1:3001/sse`\n\n## CLI usage and env variables\n\n### Pass env vars inline (macOS/Linux)\n\n```bash\nVINTED_AUTH_MODE=env \\\nVINTED_AUTH_COOKIES='session_cookie=your_value; other_cookie=your_value' \\\nVINTED_AUTH_CSRF_TOKEN='your_csrf_token' \\\nbunx @andrijdavid/vinted-mcp@next\n```\n\n### Pass env vars inline (PowerShell)\n\n```powershell\n$env:VINTED_AUTH_MODE = \"env\"\n$env:VINTED_AUTH_COOKIES = \"session_cookie=your_value; other_cookie=your_value\"\n$env:VINTED_AUTH_CSRF_TOKEN = \"your_csrf_token\"\nbunx @andrijdavid/vinted-mcp@next\n```\n\n### Pass env vars inline (Windows Command Prompt)\n\n```bat\nset VINTED_AUTH_MODE=env\nset VINTED_AUTH_COOKIES=session_cookie=your_value; other_cookie=your_value\nset VINTED_AUTH_CSRF_TOKEN=your_csrf_token\nbunx @andrijdavid/vinted-mcp@next\n```\n\n### Use a local `.env` file\n\nThe server auto-loads `.env` from the current working directory.\n\n```bash\ncp .env.example .env\nbunx @andrijdavid/vinted-mcp@next\n```\n\n### Run network mode from CLI with env\n\n```bash\nVINTED_MCP_TRANSPORT=http \\\nVINTED_MCP_HOST=127.0.0.1 \\\nVINTED_MCP_PORT=3001 \\\nbunx @andrijdavid/vinted-mcp@next\n```\n\nWindows Command Prompt:\n\n```bat\nset VINTED_MCP_TRANSPORT=http\nset VINTED_MCP_HOST=127.0.0.1\nset VINTED_MCP_PORT=3001\nbunx @andrijdavid/vinted-mcp@next\n```\n\n## Authentication and environment\n\nThe server auto-loads `.env` from the working directory if present.\n\nStart from the example file:\n\n```bash\ncp .env.example .env\n```\n\nMain variables:\n\n- `VINTED_AUTH_MODE`: `http`, `playwright`, or `env`\n- `VINTED_AUTH_COOKIES`: cookie header string or JSON object string\n- `VINTED_AUTH_CSRF_TOKEN`: CSRF token\n- `VINTED_AUTH_ACCESS_TOKEN`: optional bearer token\n- `VINTED_PROXY_URL`: optional proxy URL\n- `VINTED_MAX_CONCURRENCY`: optional tuning\n- `VINTED_REQUEST_DELAY_MS`: optional tuning\n- `VINTED_MAX_RETRIES`: optional tuning\n\nExample client config with env auth:\n\n```json\n{\n  \"mcpServers\": {\n    \"vinted\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@andrijdavid/vinted-mcp\"],\n      \"env\": {\n        \"VINTED_AUTH_MODE\": \"env\",\n        \"VINTED_AUTH_COOKIES\": \"session_cookie=your_value; other_cookie=your_value\",\n        \"VINTED_AUTH_CSRF_TOKEN\": \"your_csrf_token\"\n      }\n    }\n  }\n}\n```\n\n### How to get cookies and CSRF token\n\n1. Sign in to Vinted in your browser.\n2. Open Developer Tools.\n3. Open `Network` and refresh.\n4. Open any `https://www.vinted.<country>/api/...` request.\n5. Copy from `Request Headers`:\n   - `cookie` -> `VINTED_AUTH_COOKIES`\n   - `x-csrf-token` -> `VINTED_AUTH_CSRF_TOKEN`\n6. Optional: copy `authorization: Bearer ...` token into `VINTED_AUTH_ACCESS_TOKEN`.\n\nSecurity notes:\n\n- treat these values as secrets\n- never commit `.env`\n- rotate tokens/cookies if exposed\n\n## Tools\n\n### `search_items`\n\nSearch listings with filters like country, price range, brand IDs, category, condition, sort, and limit.\n\n### `get_item`\n\nGet item details by `itemId` or `url`.\n\n### `get_seller`\n\nGet seller profile data and optional recent items by `sellerId` or `url`.\n\n### `compare_prices`\n\nCompare average and median prices for a query across countries.\n\n### `get_trending`\n\nReturn trending items by engagement score.\n\n## Resources\n\n- `vinted://countries`\n- `vinted://categories`\n\n### Resource templates\n\n- `vinted://item/{country}/{itemId}`\n- `vinted://seller/{country}/{sellerId}`\n- `vinted://search/{country}/{query}`\n\nThese templates let clients create direct resource URIs quickly.\n\n## Prompt templates\n\n- `find_best_deal`\n- `screen_seller`\n- `search_item_with_filters`\n- `trending_report`\n- `buy_or_skip_decision`\n- `resale_arbitrage_estimator`\n\nThese predefined prompts help clients bootstrap common Vinted workflows.\n\nSupported countries: `fr`, `de`, `uk`, `it`, `es`, `nl`, `pl`, `pt`, `be`, `at`, `lt`, `cz`, `sk`, `hu`, `ro`, `hr`, `fi`, `dk`, `se`.\n\n## Local development\n\n```bash\nnpm install\nnpm run build\nnpm run bundle\nnpm start\n```\n\n## Testing\n\nRun protocol-level tests:\n\n```bash\nnpm test\n```\n\nRun live integration tests:\n\n```bash\nRUN_LIVE_MCP_TESTS=1 npm test\n```\n\n## CI and release workflows\n\nRepository workflows:\n\n- `.github/workflows/main-validation.yml`\n  - runs on push/PR to `main`\n  - builds, tests, creates npm tarball, smoke-tests tarball install\n- `.github/workflows/canary-publish.yml`\n  - publishes `next` builds from `main`\n- `.github/workflows/publish.yml`\n  - publishes stable release on GitHub release publish\n\nRequired secret:\n\n- `NPM_TOKEN`\n\nOptional variable:\n\n- `NPM_REGISTRY_URL` (default `https://registry.npmjs.org`)\n\nInstall canary builds:\n\n```bash\nnpm i @andrijdavid/vinted-mcp@next\n```\n\n## License\n\nLicensed under `AGPL-3.0-or-later`.\n\nSee `LICENSE.md`.\n","readmeFilename":"README.md"}