apiauto-mcp: Encar, Che168, Copart and IAAI used cars for Claude, Cursor and other MCP clients
A read-only MCP server that lets an AI assistant search used-car listings from Encar (South Korea), Che168 (China), and Copart and IAAI auctions (USA). It runs on your machine over stdio and calls the apiauto.space API.
Official MCP server from the apiauto.space team. apiauto.space is an independent service, not affiliated with these sources.
Free demo: 1 day, 100 requests, up to 20 cars per request, all 3 markets. The key comes in Telegram from @apiautospace_bot, no card. Paid plans start at $59 a month: Pricing.
Last verified: 2026-11-02, by a live run of test/live.test.mjs.
Quick start
Node 20.19 or newer. Claude Desktop (Settings → Developer → Edit Config) and Cursor (.cursor/mcp.json) take the same block:
Claude Code:
On Windows, use cmd /c npx -y [email protected]. With an exact version, updates reach you only when you change it. Keep a config with your key out of git.
Ask: "Find a Toyota on Che168 with photos." A real search_cars result, shortened:
More requests: "Five 2021 Kia K5 on Encar under $15,000", "Copart or IAAI lots of a 2019 BMW 3 Series with damage and current bid", "What is new on Che168 since yesterday?"
Tools
Nothing pages by itself: pass next_cursor as cursor. The API's live US search is left out on purpose, as it spends a separate paid counter.
Units and gotchas
Mileage is in kilometres, US miles are converted. price is in KRW, CNY or USD, price_usd at the ECB daily rate. us has no filter by auction, and one page can hold lots of just one: another sort usually brings the other.
Data freshness
Each market is a copy, refreshed hourly by target, and can be hours old. get_markets and every result show the real age.
Limits
- Your client may not ask first. Paid tools carry
readOnlyHint because they change nothing, so a client may run them without confirmation, yet each call spends quota. Check your auto-approval settings.
- Optional cap:
APIAUTO_MAX_RECORDS_PER_SESSION=500 in env stops paid tools after that many records in one server process.
- Costs are stated in every paid result:
records_charged, records_returned, quota left. Records left out of an oversized page stay charged; omitted_ids names them, and each get_car costs 1 more.
- Unknown outcomes are not repeated. After a lost connection, a timeout, or a 500, 502 or 504, a paid request may be charged already, so it is not retried and the error says to check
get_usage.
Pricing
Enterprise terms are by agreement. Current pricing.
Working in someone else's repository
npx looks in the current folder first, so a project's node_modules/.bin or .npmrc can replace what starts under this name, with your key in its environment. If your client starts servers from folders you do not trust, install a fixed version globally and run it by absolute path:
Security
The key is read only from APIAUTO_API_KEY, sent only in a header and removed from results, errors and logs. Requests go only to https://api.apiauto.space/v1/...; no tool takes a URL, redirects are not followed. No shell, eval, disk writing or telemetry; dependencies are locked by npm-shrinkwrap.json.
Listings are untrusted text. Results keep it inside data under a notice not to follow it. Hidden Unicode, Markdown images and links, and foreign URLs become [link removed]; a bare domain without a scheme stays as text. This lowers the risk of prompt injection and cannot remove it. More in SECURITY.md.
Other languages
JavaScript client (npm install apiauto), Python client (pip install apiauto-space), API documentation and OpenAPI.
Not affiliated
apiauto.space is not affiliated with Encar, Che168 (Autohome), Copart or IAAI. These names are trademarks of their owners, used only to name the data sources. Listings are passed on as they are, with no guarantee of completeness. License: MIT.