AUTO.RIA Used Cars

io.github.yevhen-kalyna由 GitHub 账号 yevhen-kalyna 发布v0.2.2更新于 Oct 24, 2026

MCP server for the AUTO.RIA (ria.com) used-car API: search, listings, AI average prices.

已验证STDIO仅桌面位置与生活金融

概览

AI 生成的概览

面向 AUTO.RIA 二手车 API 的 MCP 服务器,让助手搜索乌克兰二手车车源、获取广告详情,并查询品牌、车型和地区。

可以做什么
按品牌、车型、地区、年份、价格、排量或功率搜索二手车广告,返回匹配数量和广告 ID,并提供自定义参数的原始搜索和一次最多 50 个 ID 的批量详情获取。获取单条广告详情:价格、年份、里程、发动机、车身、燃料、变速箱、卖家与照片来源、可见 VIN、脱敏电话和车源链接。将品牌、车型、地区、城市的名称解析为 AUTO.RIA 数字 ID。浏览分类、颜色、国家、燃料类型、变速箱、车身样式和州等字典资源。付费工具提供 AI 平均价格、月度均价时间序列以及 VIN 或车牌解码。ping 工具用于零配额的健康检查。
适用场景
当你希望助手通过官方 AUTO.RIA API 而非抓取来研究乌克兰二手车市场时使用:比较车源、查看某车型在某地区的典型价格,或把 VIN 解码为车辆参数。
运行要求
以 Python 3.11+ 本地包运行(PyPI 包名 autoria-mcp),通常用 uvx 启动,或用 pipx、uv 安装。需要免费的 AUTO.RIA 开发者 API 密钥,放在 AUTORIA_API_KEY;付费的均价和 VIN 工具还需要 AUTORIA_USER_ID。需要访问 developers.ria.com 的网络。配置可来自环境变量或本地 .env 文件。
安装前请注意
AUTORIA_API_KEY 是密钥;README 建议用 .env 文件或环境变量而非客户端配置文件保存。免费密钥配额很紧(约每小时 30 次、每月 1000 次),超限会返回 429 并暂时封禁该密钥,每次实时调用都消耗稀缺配额。付费统计和 VIN 工具需要 AUTORIA_USER_ID,可能消耗付费配额。搜索会静默忽略未知参数并扩大结果范围。AUTO.RIA 条款要求展示数据时保留指向 auto.ria.com 的可见链接。

安装

在 SourceWeft 中

  1. 打开 控制台中的 AUTO.RIA Used Cars,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

autoria-mcp

[CI] [PyPI version] [Python versions] [License: MIT]

An MCP server that exposes the AUTO.RIA used-cars REST API (auto.ria.com, via developers.ria.com) to AI agents — programmatic, agent-friendly access to the Ukrainian used-car market through the sanctioned API, no scraping.

The full tool surface is live — 30 tools, 7 dictionary resources, and 1 templated resource: curated search/lookup tools (single and batch listing details), paid statistics tools, thin endpoint mirrors, and browsable dictionary resources, all backed by tiered caching and a typed async client.

Features

  • Curated, high-level tools that take human-friendly inputs (brand, model, region, year/price ranges) and resolve them to AUTO.RIA's numeric IDs for you.
  • Paid statistics tools (AI average price, price-over-time, VIN decode) that fail fast with a clear error when AUTORIA_USER_ID is unset — no wasted quota.
  • Thin endpoint mirrors for the long-tail dictionary/lookup endpoints.
  • Dictionary resources — browse categories, colours, regions, etc. as addressable autoria://dict/... documents.
  • Aggressive, tiered caching: large slow-changing dictionaries are cached on disk for 7 days (name→ID resolution costs no quota after the first fetch), while volatile search/statistics responses are cached briefly, in memory only.
  • stdio and streamable-HTTP transports.

Install

Requires Python 3.11+. The package is distributed on PyPI; run it without a manual install using uvx:

sh
uvx autoria-mcp

Or install into a tool environment with pipx / uv tool:

sh
uv tool install autoria-mcp   # or: pipx install autoria-mcp

Quickstart: Claude Desktop (no coding required)

Want to use AUTO.RIA from the Claude desktop app? Follow these steps — no programming needed, just some copy-and-paste. Pick your platform: macOS · Windows.

macOS

1. Install uv (the small tool that runs autoria-mcp for you). Open the Terminal app and paste this, then press Enter:

sh
curl -LsSf https://astral.sh/uv/install.sh | sh

(Full instructions: https://docs.astral.sh/uv/getting-started/installation/.)

2. Get a free AUTO.RIA API key at https://developers.ria.com. Keep it handy. A user_id is optional — you only need it for the paid price-statistics tools.

3. Find the full path to uvx. The desktop app can't see your Terminal's settings, so it needs the full path. In Terminal, run:

sh
which uvx

Copy what it prints — usually /opt/homebrew/bin/uvx (Apple-Silicon Mac) or /usr/local/bin/uvx (Intel Mac).

This is the #1 reason setup fails. If you use just uvx instead of the full path, the app says it can't find it. Always paste the full path from which uvx.

4. Open Claude Desktop's config file. In the Claude app: Settings → Developer → Edit Config. This opens a file called claude_desktop_config.json (on macOS it lives at ~/Library/Application Support/Claude/claude_desktop_config.json).

5. Add the autoria server. Paste the block below. If the file already has a "mcpServers" section, add "autoria" inside it next to your other servers; otherwise paste the whole thing. Replace the two placeholder values:

json
{  "mcpServers": {    "autoria": {      "command": "/opt/homebrew/bin/uvx",      "args": ["autoria-mcp"],      "env": { "AUTORIA_API_KEY": "paste-your-api-key-here" }    }  }}
  • command → the full path from step 3.
  • AUTORIA_API_KEY → your key from step 2.
  • For the paid tools (average price, VIN lookup), add "AUTORIA_USER_ID": "..." to env — put a comma after the API-key line when you do, e.g. "env": { "AUTORIA_API_KEY": "...", "AUTORIA_USER_ID": "..." }.

Save the file.

6. Fully quit and reopen Claude. Press Cmd + Q (just closing the window isn't enough), then open Claude again. The first start takes a few seconds while it downloads the tool; after that it's instant.

7. Try it. Ask Claude something like: "Use autoria to find used BMW 3 Series cars in Kyiv and show me a few with prices."

Heads-up on limits: the free AUTO.RIA key allows roughly 30 requests/hour and 1000/month — so ask focused questions rather than broad ones.

If autoria doesn't show up after restarting, the log file usually says why:

sh
tail -50 ~/Library/Logs/Claude/mcp-server-autoria.log

Most common fixes: use the full uvx path (step 3), and make sure you fully quit Claude with Cmd + Q.

Windows

The same flow on Windows — the commands and a couple of Windows-only gotchas differ from macOS.

1. Install uv (it ships the uvx command that runs autoria-mcp). Open PowerShell and run either:

powershell
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

or, if you use winget:

powershell
winget install --id=astral-sh.uv -e

Then open a new terminal window so the updated PATH takes effect. (Full instructions: https://docs.astral.sh/uv/getting-started/installation/.)

2. Get a free AUTO.RIA API key at https://developers.ria.com. Keep it handy. A user_id is optional — you only need it for the paid price-statistics tools.

3. Find the full path to uvx.exe. The desktop app can't see your terminal's PATH, so it needs the full path. In PowerShell, run:

powershell
Get-Command uvx | Select-Object -ExpandProperty Source

or in Command Prompt (cmd):

bat
where.exe uvx

Copy what it prints — usually C:\Users\<you>\.local\bin\uvx.exe.

In PowerShell, use where.exe, not where. Plain where is an alias for Where-Object and won't find the executable.

This is the #1 reason setup fails. If you use just uvx instead of the full path, the app says it can't find it. Always paste the full path from step 3.

4. Open Claude Desktop's config file — use the in-app button. In the Claude app: Settings → Developer → Edit Config. This opens the correct claude_desktop_config.json for your install.

Don't hand-edit the %APPDATA% file. The documented location is %APPDATA%\Claude\claude_desktop_config.json (= C:\Users\<you>\AppData\Roaming\Claude\claude_desktop_config.json), but the Microsoft Store / MSIX build of Claude virtualizes that folder — it actually reads from %LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\claude_desktop_config.json. Editing the plain %APPDATA% copy then makes your MCP servers silently fail to load. The Edit Config button always opens the right file — use it.

5. Add the autoria server. Paste the block below. If the file already has a "mcpServers" section, add "autoria" inside it next to your other servers; otherwise paste the whole thing. On Windows, backslashes in JSON must be doubled (\\) — or use forward slashes (C:/Users/you/.local/bin/uvx.exe):

json
{  "mcpServers": {    "autoria": {      "command": "C:\\Users\\you\\.local\\bin\\uvx.exe",      "args": ["autoria-mcp"],      "env": { "AUTORIA_API_KEY": "paste-your-api-key-here" }    }  }}
  • command → the full path from step 3, with doubled backslashes.
  • AUTORIA_API_KEY → your key from step 2.
  • For the paid tools (average price, VIN lookup), add "AUTORIA_USER_ID": "..." to env — put a comma after the API-key line when you do, e.g. "env": { "AUTORIA_API_KEY": "...", "AUTORIA_USER_ID": "..." }.

Save the file. A ready-to-edit copy is at examples/claude_desktop_config_windows.json.

Prefer not to keep your key in the config? Omit the env block and instead put AUTORIA_API_KEY in a .env file in the working directory, or set it as a Windows user/system environment variable.

6. Fully restart Claude. Right-click the Claude icon in the system tray (near the clock) and choose Quit — just closing the window isn't enough — then open Claude again. The first start takes a few seconds while it downloads the tool; after that it's instant.

7. Try it. Ask Claude something like: "Use autoria to find used BMW 3 Series cars in Kyiv and show me a few with prices."

The same limits and most-common fixes apply: use the full uvx.exe path (step 3), edit the config via the in-app button (step 4), and fully quit from the tray (step 6). Logs are at %APPDATA%\Claude\logs\mcp-server-autoria.log.

Configuration

All settings are read from environment variables (prefix AUTORIA_) or a local .env file. Copy .env.example to .env and fill in your key.

VariableDefaultDescription
AUTORIA_API_KEY— (required for API calls)Personal API key from https://developers.ria.com. Never logged.
AUTORIA_USER_ID—User id, required only by the paid POST endpoints.
AUTORIA_TRANSPORTstdiostdio or http (streamable-HTTP). Also --transport.
AUTORIA_HOST127.0.0.1Bind host for the HTTP transport.
AUTORIA_PORT8000Bind port for the HTTP transport.
AUTORIA_BASE_URLhttps://developers.ria.comAPI host (only the production host is documented).
AUTORIA_CACHE_DIR~/.cache/autoria-mcpOn-disk dictionary cache location.
AUTORIA_CACHE_TTL604800 (7 days)Default dictionary cache TTL, in seconds.
AUTORIA_VOLATILE_TTL600 (10 min)Memory-only TTL for volatile search/statistics responses.
AUTORIA_MEMORY_CACHE_MAX256Max entries per in-memory cache tier (bounded LRU).
AUTORIA_MAX_RETRIES3Retry attempts on 429 / 5xx (backoff + full jitter).
AUTORIA_BACKOFF_BASE0.5Base backoff delay, in seconds.
AUTORIA_BACKOFF_CAP8.0Max delay for a single backoff sleep, in seconds.
AUTORIA_QUOTA_HOURLY_LIMIT30Assumed hourly quota; usage warns near it (never blocks).
AUTORIA_QUOTA_MONTHLY_LIMIT1000Assumed monthly quota; usage warns near it (never blocks).
AUTORIA_QUOTA_WARN_RATIO0.9Warn once usage crosses this fraction of a window limit.
AUTORIA_LOG_LEVELINFOPackage log level.

The API key is held in a SecretStr and never written to logs.

Running

sh
# stdio (default) — how MCP clients launch itautoria-mcp
# streamable-HTTPautoria-mcp --transport http --host 127.0.0.1 --port 8000# orAUTORIA_TRANSPORT=http autoria-mcp

See examples/ for ready-to-paste MCP client configs (Claude Desktop and a generic stdio client).

Quota guidance

The AUTO.RIA free package is metered per API key across all RIA web services and the limits are tight:

  • ~1000 requests / month
  • 30 requests / hour (rolling); exceeding either returns 429 OVER_RATE_LIMIT and temporarily blocks the key.

There are no X-RateLimit-* response headers, so the client tracks usage locally (Phase 3). Treat every live call as spending scarce quota: the dictionary endpoints are cached aggressively, and search/statistics responses should not be re-fetched needlessly.

Tool catalog

Curated tools — natural inputs (names, ranges), resolved to IDs for you:

ToolDescription
search_used_carsSearch by brand/model/region/year/price/engine-volume/power/generation/etc.; returns the match count + advert ids.
get_car_detailsCompact details for one advert id: price, year, mileage, structured engine volume/power, labelled body/fuel/gearbox, plus condition/risk/verification/seller/photo provenance, VIN-if-shown, masked phone, URL.
get_car_details_batchDetails for up to 50 advert ids in one call (deduped; a dead id returns a sparse entry).
lookup_brandsList passenger-car brands, or resolve one brand name to its id.
lookup_modelsList a brand's models, or resolve one model name to its id.
lookup_regionsList regions (oblasts), or resolve one region name to its id.
lookup_citiesList a region's cities, or resolve one city name to its id.

Paid tools (require AUTORIA_USER_ID; fail fast with a clear error otherwise):

ToolDescription
get_average_priceAI average price + comparable listings (by params or omni_id).
get_average_price_over_periodsMonthly average-price time series.
get_params_by_vinDecode a VIN / plate / advert id into car-parameter chips.

Thin mirrors (raw passthrough, 7-day cached): list_categories, list_all_models, list_models_grouped, list_generations, list_modifications, list_modifications_by_body, list_equipment, list_options, list_options_v2, list_colors, list_countries, list_drive_types, list_fuel_types, list_gearboxes, list_body_styles, list_body_styles_grouped, list_all_body_styles, list_bodies_by_generation, and raw_search (raw V1 search; compact {count, ids} by default, verbose=True for the full payload).

Resources: autoria://dict/{categories,colors,countries,fuel-types,gearboxes, body-styles,states} and the templated autoria://dict/models/{categoryId}/{markId}.

Health: ping — zero-quota liveness/diagnostic check.

Attribution

AUTO.RIA's API terms require a visible link back to auto.ria.com wherever you display data sourced from the API. get_car_details and the paid endpoints include a canonical per-listing deep link (url); keep it visible in whatever surface presents a listing to an end user. (search_used_cars returns only ids + a count — the Public API specifies no set-level search link, so none is invented.)

Known limitations

These are deliberate scope/behaviour choices worth knowing before you rely on them:

  • Single brand/model per search. Multi-brand or multi-model search is not yet modelled by search_used_cars. For OR-style queries across several brands, drop to raw_search and pass the raw V1 params yourself.
  • Search returns ids, not full listings. search_used_cars gives you advert ids and a count. Fetch per-listing detail with get_car_details (or get_car_details_batch for a whole page of ids) — each lookup spends quota, so resolve only what you need.
  • Search is V1-only and silently ignores unknown params — a genuine footgun. The underlying /auto/search endpoint does not validate filter keys: a misspelt or unsupported param is dropped, and the search quietly widens to the whole site instead of erroring. The curated tool resolves names to the correct V1 ids to avoid this, but raw_search passes your params through verbatim.
  • Paid POST errors arrive as HTTP 200. The paid endpoints return errors in the body (noticeType: "error") with a 200 status; the paid tools detect and surface these as tool errors.
  • get_average_price_over_periods accepts only period ∈ {30, 90, 180, 365}.

Development

sh
uv sync                     # create venv + install deps (incl. dev group)uv run ruff check .         # lintuv run ruff format --check .  # format checkuv run mypy                 # strict type check (src + tests)uv run pytest               # tests (no network)pre-commit install          # enable git hooks

The OpenAPI 3.1 description lives in openapi/autoria-used-cars.yaml.

Roadmap

  1. ✅ Phase 1 — OpenAPI spec, live-verified API facts.
  2. ✅ Phase 2 — repo scaffold, tooling, CI, packaging, runnable server.
  3. ✅ Phase 3 — typed async client, TTL dictionary cache, name→ID resolution, recorded-fixture tests (zero live quota).
  4. ✅ Phase 4 — curated + paid + thin tools, dictionary MCP resources.
  5. ✅ Phase 5 — docs, examples, first PyPI release (0.1.0).

Post-1.0 backlog (not scheduled): native multi-brand / multi-model search; per-endpoint cache TTLs; a cross-process quota lock (current accounting is per-process, warn-only); an npx shim for Node-based MCP clients.

License

MIT. This is an unofficial project and is not affiliated with or endorsed by RIA.com / AUTO.RIA.

来源:README.md,提交 c8c7348

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.2.2最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分