mcpField
S
Sverige Begagnad

Sverige Begagnad

本地服务
github.com/tudorgrigoriu90搜索与检索013 周前更新

关于 Sverige Begagnad

Sverige Begagnad 是面向二手商品买家和转售者的 MCP 服务,可搜索瑞典的二手市场。它汇总 Blocket、Tradera、Klaravik 和 Vinted 的商品信息,并支持筛选和位置数据。

主要功能

  1. 01搜索四个二手市场
  2. 02合并搜索或单站搜索
  3. 03价格和类别筛选
  4. 04地区和县筛选
  5. 05商品坐标与距离信息
  6. 06市场类别查询

适用场景

  1. 01查找瑞典指定地区的二手商品
  2. 02比较多个市场的商品信息
  3. 03寻找适合修复和转售的商品

MCP 相关

向 MCP 客户端提供市场搜索、类别与地点查询,以及数据源健康检查工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"tudorgrigoriu90-sverige-begagnad": {
"command": "uvx",
"args": [
"sverige-begagnad-mcp"
],
"env": {
"TRADERA_APP_ID": "<TRADERA_APP_ID>",
"TRADERA_APP_KEY": "<TRADERA_APP_KEY>",
"BLOCKET_LOCATIONS": "<BLOCKET_LOCATIONS>"
}
}
}
}
启动命令uvx sverige-begagnad-mcp
需要配置的环境变量
TRADERA_APP_IDNumeric Tradera App ID from api.tradera.com/register.
TRADERA_APP_KEY密钥Tradera App Key (GUID secret) from api.tradera.com/register.
BLOCKET_LOCATIONSOptional comma-separated Blocket region (län) names to scope searches; empty = all of Sweden.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypisverige-begagnad-mcp0.3.1

工具

11

收录的工具列表 · 更新于 2 周前

参数类型必填说明
querystring是自由文本搜索查询。使用瑞典语词汇效果最佳(例如 'String hylla'、'Festool'、'Fjällräven')。
categoryany否可选的 Blocket 类别名称,用于筛选结果。必须是 list_blocket_categories() 返回的值;未知值将被忽略,并在 `warning` 中标记。
locationsany否用于搜索的可选地区(län)名称列表,例如 ['KRONOBERG','KALMAR']。有效名称来自 list_blocket_locations()。如果省略,则依次使用 BLOCKET_LOCATIONS 环境变量默认值,或搜索整个瑞典。
max_pagesinteger否要获取的结果页数(每页约 60 条广告)。负载较小,请保持在 1–3 页。

详细介绍

🇸🇪 瑞典二手 MCP

通过 AI 助手,直接在瑞典各地寻找优质二手好物。

一个 MCP 服务,可让 Claude(或任何 MCP 客户端)搜索 Blocket、Tradera、 Klaravik 和 Vinted(还可选用本地 Facebook Marketplace),找到值得购买、修复和转售的二手物品。

PyPI MCP Registry License: MIT Python 3.10+ Tradera API v4 Blocket


💬 可以向 Claude 提出什么请求

连接后,直接告诉它:

🪑 “在 Växjö 附近寻找 1000 SEK 以下的 String 搁架(String hylla)。”

🛠️ “在 Blocket 和 Tradera 上搜索 Festool 或 Makita 工具,看看哪些可以转卖获利。”

🔊 “Tradera 上有哪些价格在 500 至 3000 SEK 之间的 Bang & Olufsen 扬声器?”

🚲 “列出 Blocket 类别,然后在 Skåne 寻找优质自行车(Kronan、Crescent)。”

📈 “本周在 Kronoberg 及邻近县搜寻斯堪的纳维亚设计商品,并按预估利润排序。”

Claude 会选择合适的工具、应用你的筛选条件,并一次性返回来自两个市场的标题、价格、地点、链接和图片。

✨ 功能

🔎 四个市场同时或分别搜索 Blocket、Tradera、Klaravik 和 Vinted,并统一结果格式
🎯 丰富的筛选条件最高/最低价格、类别、县(Tradera)·地区和类别(Blocket)
📍 位置感知每条 Blocket 结果都包含 coordinates + distance,便于精确按半径筛选
🌍 默认面向全瑞典搜索范围覆盖瑞典全境;可通过配置或单次搜索将范围限定为所在地区
🧭 发现工具列出类别、地区和县,帮助 Agent 智能筛选
🧩 易于安装可通过一条命令安装 Claude Code 插件、uvx 或从源码安装;每位用户使用自己的密钥
✅ 经过实时测试已针对实际 API 对每个来源进行端到端验证

📊 来源状态

来源方式稳定性
Tradera官方 REST API(v4)🟢 稳定 — 已通过实时测试;需要免费注册
Blocket社区软件包(blocket-api)🟡 稳定性一般,非官方 — 已通过实时测试
Klaravik内部 JSON 端点🟡 非官方 — 已通过实时测试;拍卖当前出价
Vinted内部 API(受机器人防护)🟠 非官方,最不稳定 — 使用住宅 IP 效果最佳
Facebook Marketplace默认禁用🔴 风险较高,仅限本地 — 请参阅 facebook_client.py

🔑 获取 Tradera 凭据(所有安装方式均需要)

  1. 在 https://api.tradera.com/register 免费注册。
  2. 接受使用条款和徽标使用条款。
  3. 创建应用并复制数字 App ID 和 App Key (GUID 密钥)。请将它们设为 TRADERA_APP_ID / TRADERA_APP_KEY。

Blocket 不需要凭据。Facebook Marketplace 默认关闭。

📦 安装

每位用户都使用自己的 Tradera 密钥运行自己的副本 — 根据你的客户端选择合适的方式。基于 uvx 的安装方式需要先安装 uv (在 Windows 上运行 curl -LsSf https://astral.sh/uv/install.sh | sh,或 winget install astral-sh.uv)— 无需克隆仓库或创建虚拟环境。

选项 1 — Claude Code 插件(最简单)
claude plugin marketplace add tudorgrigoriu90/sverige-begagnad-mcp
claude plugin install sverige-begagnad@sverige-begagnad-marketplace

然后导出你的密钥(插件会将它们传递给服务):

export TRADERA_APP_ID=...      # Windows PowerShell: $env:TRADERA_APP_ID="..."
export TRADERA_APP_KEY=...
export BLOCKET_LOCATIONS=      # optional; empty = all of Sweden

重启 Claude Code — 你将获得 search_blocket、search_tradera、search_all, 以及更多工具。该插件会通过 uvx 直接从 GitHub 运行服务。

选项 2 — uvx(Claude Desktop 或任何 MCP 客户端)

添加到客户端的 MCP 配置中(Claude Desktop:设置 → 开发者 → 编辑配置):

{
  "mcpServers": {
    "sverige-begagnad": {
      "command": "uvx",
      "args": ["sverige-begagnad-mcp"],
      "env": {
        "TRADERA_APP_ID": "...",
        "TRADERA_APP_KEY": "...",
        "BLOCKET_LOCATIONS": ""
      }
    }
  }
}

uvx 会在首次运行时从 PyPI 获取已发布的软件包并缓存。重启客户端。

选项 3 — 从源代码运行(开发)
git clone https://github.com/tudorgrigoriu90/sverige-begagnad-mcp
cd sverige-begagnad-mcp
python -m venv .venv
source .venv/bin/activate   # Windows: .venv\Scripts\activate
pip install -e .
cp .env.example .env        # then fill in your keys

将客户端指向虚拟环境中的 sverige-begagnad-mcp 命令(或 python -m sverige_begagnad_mcp.server),并将 cwd 设为仓库目录。

✅ 验证是否正常运行(可选)

从已设置密钥的源代码检出目录运行(在 .env 或环境变量中设置):

# Tradera — official REST API v4 (https://api.tradera.com/v4, header auth)
python -m sverige_begagnad_mcp.tradera_client

# Blocket — unofficial community API
python -c "import asyncio; from sverige_begagnad_mcp.blocket_client import search_blocket; print(asyncio.run(search_blocket('String hylla')))"

这两项都经过实时测试。如果 Tradera 的结构发生变化,OpenAPI 规范位于 https://api.tradera.com/openapi.json。


🧰 工具

工具用途
search_blocket(query, category?, locations?, max_pages?)搜索 Blocket
list_blocket_categories()有效的类别名称
list_blocket_locations()有效的地区(län)名称
search_tradera(query, category_id?, price_min?, price_max?, county_id?)搜索 Tradera
list_tradera_categories()类别树 → category_id
list_tradera_counties()可用于可选 county_id 筛选条件的郡 ID
search_klaravik(query)搜索 Klaravik 拍卖(当前出价)
search_vinted(query, price_min?, price_max?)搜索 Vinted 时尚商品信息
search_facebook_marketplace(...)默认禁用(仅限本地)
search_all(query, blocket_category?, blocket_locations?, tradera_category_id?, price_min?, price_max?)一次调用搜索 Blocket、Tradera、Klaravik 和 Vinted
health_check()检查每个来源并报告哪些仍在获取数据

📍 地理范围

搜索范围默认为整个瑞典。设置区域有三种方式,按优先级排序:

  1. 单次搜索 — 将 locations 传给 search_blocket(或将 blocket_locations 传给 search_all),例如 ["KRONOBERG", "KALMAR"]。使用 list_blocket_locations() 获取有效名称。
  2. 个人默认值 — 在 .env 中将 BLOCKET_LOCATIONS 设为以逗号分隔的地区名称列表。
  3. 未设置 — 整个瑞典。

Blocket 的筛选条件基于地区(län),而不是精确的公里半径。若要严格筛选“驾车 X 分钟以内”的结果,请让 Claude 对每条商品信息进行最终检查 — 每个结果都包含广告中提到的位置,以及 coordinates(纬度/经度)和 Blocket 自身提供的 distance。Tradera 面向全国并支持配送,因此没有半径概念(可选的 county_id 筛选条件很少用到)。

🗺️ 示例:我自己的 Växjö / Älmhult 设置

个人范围仅保存在 .env 中(已加入 gitignore — 不会作为默认设置发布):

BLOCKET_LOCATIONS=KRONOBERG,KALMAR,JONKOPING,HALLAND,SKANE
🤖 高级用户:完整的每周“寻源 Agent”提示词

将其粘贴为你的指令,即可把这些工具变成按利润排序的每周搜索流程。 它会运行多项有针对性的瑞典语搜索,按半径/质量筛选,估算利润, 并返回排序后的候选清单。可根据喜好调整品牌、地区和阈值。

ROLE: You are a sourcing assistant for a personal, quality-focused loppis (flip).
Each week, search Blocket and Tradera for second-hand items to buy, minimally
restore, and resell at a profit.

METHOD: Search with SWEDISH terms. Run MANY targeted searches — by BRAND and by
CATEGORY — across both sources; deduplicate. Prices are in SEK.

AREA: within ~35 km straight-line of Växjö (56.88, 14.81) or Älmhult (56.55, 14.14),
computed from each Blocket result's `coordinates`. Tradera ships nationally, so
include shippable Tradera items too.

QUALITY: recognized brand or top craftsmanship (String, Artek, Fritz Hansen, Louis
Poulsen, Iittala, Orrefors, Bang & Olufsen, Braun, Marantz, Bahco, Hilti, Festool,
Makita, Kronan, Crescent…); "bra skick"/"nyskick" or minor cosmetic wear; asking
price clearly below market; only minimal restoration (clean, polish, light sand,
small off-the-shelf parts).

PROFIT: estimate resale value (use web search for comparables if available — do NOT
invent sold prices). Net = resale − (purchase + restoration + pickup/courier), with
stated assumptions (~80 SEK pickup fuel, ~70 SEK courier, 0–150 SEK materials).
Include only items with estimated net profit ≥ 300 SEK. Note that Tradera auction
prices may rise before close.

OUTPUT: ranked by net profit descending, max 15. For each: title + link + location
(distance from Växjö or "ships nationally"), asking vs. estimated market price, net
profit with assumptions, 2–3 restoration steps, and a risk note. End with a 2–3
sentence read on the week's trends. Don't pad with weak candidates.

🚫 Facebook Marketplace — 禁用原因

Facebook Marketplace 没有公共 API。已知的唯一方法(会话 Cookie 或无头浏览器抓取)都明确违反 Facebook 的服务条款。 src/sverige_begagnad_mcp/facebook_client.py 模块被有意保留为存根,其中解释了如何自行实现,但风险自负。

🛠️ 维护与发布

维护者备注
  • 如果某个数据源失效: Blocket → 查看 https://pypi.org/project/blocket-api/ 是否有更新版本;Tradera → 查看 https://api.tradera.com/openapi.json 上的 OpenAPI 规范。
  • PyPI(支持使用简短命令 uvx sverige-begagnad-mcp):先运行 python -m build,再运行 twine upload dist/*。请先更新 pyproject.toml 和 src/sverige_begagnad_mcp/__init__.py 中的 version。
  • 插件市场: .claude-plugin/marketplace.json 和 plugins/ 目录使本仓库本身就成为插件市场,无需额外托管。
  • MCP Registry: server.json 已准备就绪;发布 PyPI 版本后,使用 mcp-publisher CLI 发布(参见 Registry 发布指南)。

📄 许可证

MIT — 每位用户都使用自己的凭据运行自己的副本。请注意,Blocket 没有官方 API;此项目使用的是非官方社区软件包,因此请谨慎使用 Blocket 部分。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。