Cardog MCP server
app.cardog/mcp·v2.0.1·1 starsVIN decode, Canadian listings, market quotes, TC+NHTSA recalls. Full API: https://cardog.app/docs.md
1 stars
Reviews
Write oneNobody has reviewed Cardog yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Cardog tools (5)
write = sends, deletes, buys or postscheck_recallsFreeThe authoritative "is this vehicle under recall?" check — Transport Canada + NHTSA recall campaigns, fused and ref-keyed. Compliance guide: https://cardog.app/docs/compliance. Pass EXACTLY ONE of: - `vin` (17 characters) — the per-vehicle recall check. In the result, `resolved: false` means the VIN is not bridged into the graph yet — distinct from "no recalls" (`resolved: true, total: 0`). - `ref` — an entity ref scoping campaigns: "make:honda", "model:honda/cr-v", or "model-year:honda/cr-v/2026". A ref is `{domain}:{key}`, lowercase, with `/` separating composite key segments: "make:tesla", "model:mini/hardtop", "model-year:honda/cr-v/2026", "fuel-type:electric". (Exception: nano/squish keys are uppercase VIN charset — machine-derived, never typed from text.) Get refs from resolve_entity or identify_vehicle — never construct them from guessed names. Each campaign carries: authority (tc/nhtsa) + campaign number, component, defect/consequence summaries, the corrective action, recall date, units affected, and `affects` — the affected model-years as refs. `asOf` (VIN checks) is when the recall data was last updated, citable. Errors are instructions: every failure returns {code, message, hint, suggestions} — follow `hint` for the next call; `suggestions` lists nearest valid refs for a bad ref. Unknown-but-well-formed refs are a 400 naming the ref, NEVER a silent fuzzy match. Next: identify_vehicle({ vin }) for the vehicle's full identity; market_quote({ ref: "model-year:…" }); GET /v2/recalls/{recall-ref} for one campaign; GET /v2/recalls/feed for the newest campaigns.
identify_vehicleFreeDecode a 17-character VIN into its full Cardog identity: canonical entity refs, the market grains (nano/squish), spec highlights, and links to adjacent resources. VIN ONLY — this tool never fuzzy-matches. If you hold free text ("2021 Civic", a make or model name), do NOT call this: call resolve_entity — free text enters the platform in exactly one tool. A non-VIN input returns a redirect hint, not a decode. A ref is `{domain}:{key}`, lowercase, with `/` separating composite key segments: "make:tesla", "model:mini/hardtop", "model-year:honda/cr-v/2026", "fuel-type:electric". (Exception: nano/squish keys are uppercase VIN charset — machine-derived, never typed from text.) The result's `refs` block (make/model/modelYear/fuelType/…) contains the join keys for every other tool; a null ref means "not derivable for this VIN", never "unknown ref". `squish` (WMI+VDS+year) is always derivable and is a valid market_quote instrument; `nano` is the fungible build grain for dedup/comparables. `specHighlights` is a best-effort skim of the spec sheet (horsepower, economy, range, seating…), each value with its unit; `specHighlightsTrimDependent` names the highlights that differ between trims of the model year. The full sheet lives at GET /v2/specs/{refs.modelYear}. Errors are instructions: every failure returns {code, message, hint, suggestions} — follow `hint` for the next call; `suggestions` lists nearest valid refs for a bad ref. Unknown-but-well-formed refs are a 400 naming the ref, NEVER a silent fuzzy match. Next: check_recalls({ vin }) — outstanding recalls; market_quote({ ref: refs.modelYear ?? squish }); search_inventory({ models: [refs.model] }).
market_quoteFreeThe live market card for one instrument: quote (live listing count, best/p25/median/p75 price, average days-on-market, 30-day price cuts), a daily-bar history summary, and a bounded sample of the live listings behind the numbers. `ref` must be an INSTRUMENT ref — one of two grains: - "model-year:{make}/{model}/{year}" (e.g. "model-year:honda/cr-v/2026") — lowercase, /-separated; get it from resolve_entity (domain "model-year") or identify_vehicle's refs.modelYear. - "squish:{9 uppercase VIN chars}" (e.g. "squish:5TDGSKFCS") — the exact-config grain; get it from identify_vehicle. (squish/nano keys are the ONLY uppercase refs; every other domain is lowercase.) No other ref domain quotes. Errors are instructions: every failure returns {code, message, hint, suggestions} — follow `hint` for the next call; `suggestions` lists nearest valid refs for a bad ref. Unknown-but-well-formed refs are a 400 naming the ref, NEVER a silent fuzzy match. Optional `window` picks the history span: 1w, 1m, 3m, 6m, ytd, 1y, 3y, 5y, 10y, all. Next: search_inventory with the model's refs to walk the full book; check_recalls({ ref }) on a model-year ref; GET /v2/tape/history/{ref} for every daily bar.
resolve_entityFreeTurn free text into canonical Cardog entity refs — THE text entry point for every other tool. A ref is `{domain}:{key}`, lowercase, with `/` separating composite key segments: "make:tesla", "model:mini/hardtop", "model-year:honda/cr-v/2026", "fuel-type:electric". (Exception: nano/squish keys are uppercase VIN charset — machine-derived, never typed from text.) Every other tool takes refs, never names. Call this FIRST whenever you hold text — "Civic", "2024 Model Y", a misspelling like "teslla" — then reuse the refs for the rest of the session. Returns candidates with confidence, best-first. `best` is the top candidate ONLY when it clears the confidence floor; otherwise it is null and YOU choose from `candidates` (or ask the user) — the API never guesses. Pass `domain` to constrain the search (use domain "model-year" when you need a market_quote instrument). Errors are instructions: every failure returns {code, message, hint, suggestions} — follow `hint` for the next call; `suggestions` lists nearest valid refs for a bad ref. Unknown-but-well-formed refs are a 400 naming the ref, NEVER a silent fuzzy match. Next steps (also echoed in each result's `next` block): search_inventory with make/model refs; market_quote with a model-year: ref; check_recalls with any make/model/model-year ref; dereference a ref (parents, children, counts) at GET /v2/entities/{ref}.
search_inventoryFreeSearch live Canadian vehicle listings — ref-native. One call returns listings + facets + the total count. Filters take entity REFS from resolve_entity / identify_vehicle, never free-text names: makes: ["make:mini"], models: ["model:mini/hardtop"], fuelTypes: ["fuel-type:electric"] — plus year/price/odometer ranges and canonical spec filters, e.g. spec: {"fuelEconomyCombined": {"min": 35}, "heatedSeatsFront": ["standard"]} (numeric attrs take {min,max}; equipment attrs take ["standard"|"optional"|"unavailable"]). A ref is `{domain}:{key}`, lowercase, with `/` separating composite key segments: "make:tesla", "model:mini/hardtop", "model-year:honda/cr-v/2026", "fuel-type:electric". (Exception: nano/squish keys are uppercase VIN charset — machine-derived, never typed from text.) Errors are instructions: every failure returns {code, message, hint, suggestions} — follow `hint` for the next call; `suggestions` lists nearest valid refs for a bad ref. Unknown-but-well-formed refs are a 400 naming the ref, NEVER a silent fuzzy match. A typo'd or unknown ref 400s with code "unknown_entity_refs" naming it, with nearest-ref suggestions — correct the ref (usually via resolve_entity) and retry. Facets in the result are (ref, name, count) buckets over the MATCHING set — they double as the valid filter vocabulary for your next, narrower call. Every listing row carries its refs (makeRef/modelRef/nano). Next: market_quote({ ref: "model-year:…" }) for pricing context; check_recalls({ vin }) per listing; GET /v2/listings/vin/{vin} for the full canonical spec.
Public scan report
scanner v0.1.9 · 2026-09-24 · same rubric, same numbers if you re-run it
- –Code scanremote-only server, no package to scann/a
- Live reliabilityremote reachable in 3654ms17/20
- Tool poisoning5 tool descriptions checked15/15
- Auth qualityopen endpoint, read-only tools10/15
- Maintenancelast push 188 days ago4/15
- Maintainer identitynamespace and repository owner differ; GitHub account older than a year; website matches verified namespace8/10
How Cardog compares
Against every graded Productivity MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 72/100
- higher than 33% of 1,299 Productivity servers
- Tools
- 5
- the typical Productivity server has 7
- Tools that change things
- 0%
- typical: 0%. Fewer write tools means less an agent can break
- GitHub stars
- 1
- more than 50% of 854 Productivity servers
What its tools let an agent do: 4 read · 1 change
Install Cardog in Claude Code, Cursor or VS Code
claude mcp add --transport http mcp https://mcp.cardog.io/mcp?api_key={api_key}What the publisher says
From the Cardog repository's README, as published. We do not edit it. Read it on GitHub
Cardog MCP Server
Connect AI applications to automotive data through the Model Context Protocol.
Server URL: https://mcp.cardog.io/sse
Quick Start
Claude Code
claude mcp add cardog https://mcp.cardog.io/sse --transport sseEnter your API key when prompted. Get one at cardog.app/account/api.
Claude Desktop
Add to ~/Library/Application Support/Claude/claudedesktopconfig.json:
{
"mcpServers": {
"cardog": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.cardog.io/sse?api_key=YOUR_API_KEY"]
}
}
}Claude Web/Mobile
- Settings → Integrations → Add more
- Enter URL: https://mcp.cardog.io/sse
- Add your API key when prompted
Available Tools
Listings
Market Analysis
Vehicle Research
Energy
Authentication
API key required. Provide via:
Get your API key: cardog.app/account/api
Examples
Find vehicles:
"Find Toyota RAV4s under $30,000 with less than 50,000 miles"
Market analysis:
"What's the market like for 2022 Honda Civics?"
VIN lookup:
"Check this VIN: 2T3P1RFV8NC123456"
Recall check:
"Are there any recalls on 2020-2023 Honda CR-Vs?"
Documentation
- Full docs
- API reference
- Get API key
Support
- Email: support@cardog.app
- Status: status.cardog.ai
Nothing above is checked by us. What we check is on the safety report.
Cardog: common questions
- Is Cardog MCP server safe?
- Mostly: it is graded B (72/100). Read the Cardog safety report
- How do I install Cardog?
- It runs remotely at mcp.cardog.io. Add it to Claude Code, Cursor, VS Code or Claude Desktop with the snippets above, or call it through the mcp.market gateway without installing anything.
- Does Cardog need an API key?
- Not as far as the registry entry and our scan can tell: no credentials are declared or required.
- Is Cardog maintained?
- The last commit was 228 days ago (2026-03-21). The latest release is v2.0.1.
- What can I use instead of Cardog?
- Servers from other publishers that do the same job: Context7 MCP server, Svelte MCP server and SvGrid MCP server.
- How does Cardog compare with other Productivity MCP servers?
- safety score 72/100 (higher than 33% of 1,299 Productivity servers); tools 5 (the typical Productivity server has 7); tools that change things 0% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.
Alternatives to Cardog
Same job from other publishers: the closest match first, then the best rated.
Context7Up-to-date docs for AI agentsnot reviewedWidely usedA- Svelte MCPThe official Svelte MCP server providing docs and autofixing tools for Svelte developmentnot reviewedEstablishedA
SvGridChecks AI-written SvGrid code against the real API, plus version-pinned Svelte 5 grid docs.not reviewedEstablishedA- Coolify46 optimized tools for managing Coolify infrastructure, diagnostics, and docs searchnot reviewedEstablishedB
- Agent-Native ContentOpen-source Obsidian for MDX - edit local docs with agent assistancenot reviewedEstablishedA