Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Cardog

REMOTE · MCP.CARDOG.IO · 2 COMPONENTS · SCANNED SEP 28

VIN decode, Canadian listings, market quotes, TC+NHTSA recalls. Full API: https://cardog.app/docs.md

−71 this week 0 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security0
  • TLS not yet verified: the listed URL is a template whose api_key variable has no value or default, so there was no address for us to check.Unverified
  • Authorisation not yet verified: the listed URL is a template whose api_key variable has no value or default, so there was no address for us to check.Unverified
  • HTTPS not yet verified: the listed URL is a template whose api_key variable has no value or default, so there was no address for us to check. View diagnostics → Unverified
  • HSTS not yet verified: the listed URL is a template whose api_key variable has no value or default, so there was no address for us to check.Unverified
  • DNSSEC not yet verified: the listed URL is a template whose api_key variable has no value or default, so there was no address for us to check.Unverified
Transport & Reachability0
Schema Quality & AI Usability0
  • Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.Unverified
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage0
  • Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.Unverified
Tool Safety0
  • Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.Unverified
Capabilities0
  • Capabilities not yet verified: we couldn't read the endpoint's capabilities.Unverified

Unverified: 7 categories

Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.

Install

How do I install the Cardog MCP server?

Cardog is a hosted endpoint at https://mcp.cardog.io/mcp?api_key={api_key}, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · mcp.cardog.io

# add to Claude Code
claude mcp add --transport http app-cardog-mcp 'https://mcp.cardog.io/mcp?api_key={api_key}'
// .cursor/mcp.json
{
  "mcpServers": {
    "app-cardog-mcp": {
      "url": "https://mcp.cardog.io/mcp?api_key={api_key}"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "app-cardog-mcp": {
      "type": "http",
      "url": "https://mcp.cardog.io/mcp?api_key={api_key}"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.app-cardog-mcp]
url = "https://mcp.cardog.io/mcp?api_key={api_key}"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "app-cardog-mcp": {
      "type": "remote",
      "url": "https://mcp.cardog.io/mcp?api_key={api_key}",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add app-cardog-mcp --url 'https://mcp.cardog.io/mcp?api_key={api_key}' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  app-cardog-mcp:
    url: "https://mcp.cardog.io/mcp?api_key={api_key}"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "app-cardog-mcp": {
      "Transport": "http",
      "Url": "https://mcp.cardog.io/mcp?api_key={api_key}"
    }
  }
}
# add to Vellum
assistant mcp add app-cardog-mcp -t streamable-http -u 'https://mcp.cardog.io/mcp?api_key={api_key}'
// mcp.json
{
  "mcpServers": {
    "app-cardog-mcp": {
      "type": "http",
      "url": "https://mcp.cardog.io/mcp?api_key={api_key}"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 28 Sept 26 −71
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 25 Sept 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 15 Sept 26 0
    • Tool “identify_vehicle” rewrote its description, which is the text the model reads security
  • 30 Aug 26 71
    • Stability: fail → pass ▲ security
  • 26 Aug 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 11 Aug 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 1 Aug 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 31 Jul 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 28 Sept 2026 · Probed https://mcp.cardog.io/mcp?api_key={api_key}

Transports 1 probe
Transport URL Outcome Status Location
http (plaintext) http://mcp.cardog.io/mcp?api_key={api_key} Inconclusive
MCP tools · 5 exposed · ~3,111 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
check_recalls ~600

The 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.

NameTypeReqDescription
contextstringyesExplain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVE…
limitinteger–Max campaigns for a ref-scoped query (default 25, max 100)
refstring–Entity ref scope: "make:honda", "model:honda/cr-v", or "model-year:honda/cr-v/2026". Exclusive with `vin`.
vinstring–17-character VIN — the per-vehicle recall check. Exclusive with `ref`.

No output schema declared.

No examples provided.

identify_vehicle ~549

Decode 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] }).

NameTypeReqDescription
contextstringyesExplain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVE…
vinstringyesThe 17-character VIN. Free text is NOT accepted here — use resolve_entity for text.

No output schema declared.

No examples provided.

market_quote ~502

The 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.

NameTypeReqDescription
contextstringyesExplain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVE…
refstringyesInstrument ref: "model-year:honda/cr-v/2026" or "squish:5TDGSKFCS". Free text never quotes — resolve_entity first.
windowstring–History window (server default when omitted)

No output schema declared.

No examples provided.

resolve_entity ~540

Turn 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}.

NameTypeReqDescription
contextstringyesExplain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVE…
domainstring–Constrain candidates to one domain: "make", "model", "model-year", "body-style", "fuel-type", "drive-type", "transmission", "electrification-level", "vehicle-type". Omit to search across domains.
limitinteger–Max candidates (default 5)
querystringyesFree text to resolve, e.g. "2021 Civic", "teslla", "plug-in hybrid"

No output schema declared.

No examples provided.

search_inventory ~920

Search 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.

NameTypeReqDescription
bodyStylesarray–Entity refs in the "body-style" domain, e.g. ["body-style:sport-utility-vehicle-suv"]
contextstringyesExplain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVE…
driveTypesarray–Entity refs in the "drive-type" domain, e.g. ["drive-type:awd-all-wheel-drive"]
electrificationLevelsarray–Entity refs in the "electrification-level" domain, e.g. ["electrification-level:bev-battery-electric-vehicle"]
fuelTypesarray–Entity refs in the "fuel-type" domain, e.g. ["fuel-type:electric"]
limitinteger–Rows per page (default 10, max 50)
makesarray–Entity refs in the "make" domain, e.g. ["make:mini"]
modelsarray–Entity refs in the "model" domain, e.g. ["model:mini/hardtop"]
nanosarray–Entity refs in the "nano" domain, e.g. ["nano:5TDGSKFCRS"]
odometerobject–Odometer (km) range
pageinteger–Page number (default 1)
priceobject–Price (CAD) range
sortobject––
specobject–Canonical spec filters keyed by SpecAttributeId: numeric → {"min","max"}, equipment → ["standard"|"optional"|"unavailable"]. Example: {"fuelEconomyCombined": {"min": 35}, "heatedSeatsFront": ["standa…
transmissionsarray–Entity refs in the "transmission" domain, e.g. ["transmission:automatic"]
vehicleTypesarray–Entity refs in the "vehicle-type" domain, e.g. ["vehicle-type:passenger-car"]
yearobject–Model year range

No output schema declared.

No examples provided.

Common questions

What is the Cardog MCP server?

Cardog is an MCP server listed in the public MCP registry as app.cardog/mcp. VIN decode, Canadian listings, market quotes, TC+NHTSA recalls. Full API: https://cardog.app/docs.md. This page covers its hosted endpoint (https://mcp.cardog.io/mcp?api_key={api_key}).

Is the Cardog MCP server safe to use?

Cardog scores 0 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Cardog MCP server expose?

Cardog exposes 5 tools: resolve_entity, identify_vehicle, search_inventory, market_quote, check_recalls. Their descriptions and schemas cost roughly 3,111 tokens of context every time the server is loaded.

Does the Cardog MCP server require authentication?

Its publisher declares no required credentials for Cardog. We have not been able to confirm that against the live endpoint, and a server can require authorisation without declaring it here.

Is the Cardog MCP server still maintained?

Cardog is still listed as active in the MCP registry. We last reached this channel on 27 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.