npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

encarapi-mcp

v1.6.3

Published

MCP server for EnCarAPI and ChinaCarAPI: live Korean (Encar, KB Chachacha, K Car) and Chinese (Dongchedi, Che168) used car listings for Claude, Cursor and other AI assistants.

Readme

EnCarAPI MCP server: Korean and Chinese used car data for AI assistants

Model Context Protocol server for EnCarAPI. Lets Claude, Cursor, ChatGPT and other MCP clients search live used car listings from South Korea (Encar, KB Chachacha, K Car) and China (Dongchedi, Che168), and pull full details, inspection reports and accident records.

An API key is required. Get one (5-day trial) at encarapi.com. Chinese data works with a ChinaCarAPI key or an EnCarAPI key with the China add-on. ChinaCarAPI customers: see For ChinaCarAPI customers.

Tools

| Tool | What it does | |---|---| | search_korean_cars | Search Korean listings (brand, model, year, price in 10,000 KRW, mileage, fuel, accident-free, seller region and city, source: encar / kbc / kcar / all; lang: en, ru or de for English, Russian or German values) | | search_korean_excavators | Search Korean used excavators (maker, model, operating hours, weight class, region; Business/Scale key) | | search_korean_trucks | Search Korean trucks, buses and special vehicles (body type, payload in tons, use, region; Business/Scale key) | | find_korean_car_by_vin | All Encar / K Car listings of one VIN, incl. removed ones (Business/Scale key) | | get_korean_truck | Full record for one truck: detail, inspection report, cargo box, VIN and plate (Business/Scale key) | | get_korean_car | Full detail for one listing (specs, options, photos, price history, seller; lang: en, ru or de) | | get_korean_inspection | Official Korean inspection report | | get_korean_accident_record | Insurance accident history and ownership changes | | find_korean_models | Model name autocomplete across brands | | korean_filter_values | Valid filter values | | search_chinese_cars | Search Chinese listings (brand, model, model year, registration year, price in CNY, mileage, power, city, fuel, source, export-ready; lang: en, zh or ru) | | get_chinese_car | Full record for one Chinese listing (lang: en, zh or ru) | | get_chinese_car_by_url | Full record by Che168/Dongchedi listing link (desktop, mobile or app; lang: en, zh or ru) | | get_chinese_inspection | Chinese inspection report (accident, flood, fire, EV battery) | | get_chinese_specs | Autohome specification sheet of a Che168 trim (cc, kW, hp, torque, emission standard, weights, EV battery) | | chinese_filter_values | Valid makes, fuels, cities and sources with listing counts | | chinese_models | Models of a brand with listing counts |

Chinese lang: zh returns the original Chinese values, ru Russian values for the fixed fields (fuel, transmission, drivetrain, colours, seller type, condition, vehicle class), city names and equipment names; make, model and trim names stay Latin.

All tools are read-only.

Option 1: hosted (no install)

Add this URL as a remote MCP server:

https://mcp.encarapi.com/mcp

In clients with OAuth support the URL is all you need. On first use a browser window opens, you paste your EnCarAPI key once, and the client is connected:

  • Claude (claude.ai, desktop, mobile): Settings - Connectors - Add custom connector, paste the URL
  • ChatGPT (developer mode): Settings - Connectors - create a connector with the URL
  • Cursor: {"mcpServers": {"encarapi": {"url": "https://mcp.encarapi.com/mcp"}}} in .cursor/mcp.json
  • VS Code: "MCP: Add Server" - HTTP - paste the URL
  • Claude Code:
claude mcp add --transport http encarapi https://mcp.encarapi.com/mcp

The key is checked once and is not stored on the server: it is encrypted into the token your client receives. To disconnect, remove the server in your client; to cut off access everywhere, rotate your key at encarapi.com.

Alternative: send the key yourself

Clients without OAuth support, scripts and gateways can send the key directly:

https://mcp.encarapi.com/mcp
Authorization: Bearer YOUR_ENCARAPI_KEY

Claude Code:

claude mcp add --transport http encarapi https://mcp.encarapi.com/mcp \
  --header "Authorization: Bearer YOUR_ENCARAPI_KEY"

The x-api-key: YOUR_ENCARAPI_KEY header works as well. Clients that only accept a URL and have no OAuth support can use https://mcp.encarapi.com/mcp?key=YOUR_ENCARAPI_KEY (a header is preferred, since URLs can end up in logs). A separate ChinaCarAPI key goes into the x-china-key header, or into the second field of the browser form.

For ChinaCarAPI customers

ChinaCarAPI has its own address:

https://mcp.chinacarapi.com/mcp

Add it as a remote MCP server exactly as above. On first use a browser window opens and you paste your ChinaCarAPI key once. The form detects which key it is, so an EnCarAPI key works there as well; customers with both keys put the EnCarAPI key into the optional second field.

  • Claude (claude.ai, desktop, mobile): Settings - Connectors - Add custom connector, paste the URL
  • Cursor: {"mcpServers": {"chinacarapi": {"url": "https://mcp.chinacarapi.com/mcp"}}} in .cursor/mcp.json
  • Claude Code:
claude mcp add --transport http chinacarapi https://mcp.chinacarapi.com/mcp

On this address the Chinese tools are listed first. Start with chinese_filter_values to get valid makes, fuels and cities (the city filter needs the exact value from that list).

Without the browser login, send the key as a header. On mcp.chinacarapi.com a key in Authorization: Bearer or x-api-key counts as a ChinaCarAPI key:

claude mcp add --transport http chinacarapi https://mcp.chinacarapi.com/mcp \
  --header "Authorization: Bearer YOUR_CHINACARAPI_KEY"

x-china-key: YOUR_CHINACARAPI_KEY works on both addresses; then Authorization can carry an EnCarAPI key for the Korean tools.

Locally (npx), set CHINACARAPI_KEY instead of ENCARAPI_KEY:

claude mcp add chinacarapi -e CHINACARAPI_KEY=YOUR_CHINACARAPI_KEY -- npx -y encarapi-mcp

Option 2: local (npx)

Claude Desktop (claude_desktop_config.json), Cursor (.cursor/mcp.json) and most other clients:

{
  "mcpServers": {
    "encarapi": {
      "command": "npx",
      "args": ["-y", "encarapi-mcp"],
      "env": {
        "ENCARAPI_KEY": "YOUR_ENCARAPI_KEY"
      }
    }
  }
}

Claude Code:

claude mcp add encarapi -e ENCARAPI_KEY=YOUR_ENCARAPI_KEY -- npx -y encarapi-mcp

Optional: CHINACARAPI_KEY for a separate ChinaCarAPI key.

Example prompts

  • "Find accident-free Genesis GV80 from 2022 or newer under 50 million KRW and compare the mileage."
  • "Show the inspection report and accident record for Encar listing 41000001."
  • "What are the cheapest export-ready BYD Seal listings in China right now?"

Self-hosting the HTTP endpoint

docker build -t encarapi-mcp .
docker run -p 3000:3000 encarapi-mcp     # POST /mcp, GET /health

Stateless: every request carries its own key, nothing is stored.

To enable the OAuth flow ("connect by URL only"), set two environment variables:

| Variable | Meaning | |---|---| | MCP_OAUTH_SECRET | At least 32 random characters, e.g. openssl rand -base64 48. Enables OAuth; without it the server only accepts keys sent by the client. | | MCP_PUBLIC_URL | Public origin of the server, e.g. https://mcp.example.com (default https://mcp.encarapi.com). Tokens are bound to <MCP_PUBLIC_URL>/mcp. | | MCP_PUBLIC_URLS | Optional, several public origins separated by commas, e.g. https://mcp.encarapi.com,https://mcp.chinacarapi.com. Replaces MCP_PUBLIC_URL. The Host header picks the origin (unknown hosts get the first one); each origin has its own issuer and branding, and its tokens are not accepted on the others. Origins whose host contains chinacarapi. get the ChinaCarAPI branding. |

docker run -p 3000:3000 -e MCP_OAUTH_SECRET="$(openssl rand -base64 48)" \
  -e MCP_PUBLIC_URL=https://mcp.example.com encarapi-mcp

This adds /.well-known/oauth-protected-resource, /.well-known/oauth-authorization-server, /register, /authorize and /token (OAuth 2.1 with PKCE, dynamic client registration). There is still no database: client ids, authorization codes and tokens are encrypted, self-contained values (AES-256-GCM) that carry the key. Consequences:

  • Changing MCP_OAUTH_SECRET signs out all OAuth clients (they reconnect through the browser).
  • Access tokens last 1 hour, refresh tokens 90 days and are replaced on every use.
  • Single use of authorization codes and of replaced refresh tokens is tracked in memory, so it is best-effort: it does not survive a restart and is not shared between instances.
  • A single token cannot be revoked on the server. Rotating the EnCarAPI key cuts off all access.

Links

EnCarAPI is an independent service and not affiliated with Encar, KB Chachacha, K Car, Dongchedi or Che168.

License

MIT