MarketCheck API MCP server
online · 100% uptimeMarketCheck automotive data: search US/UK listings, predict prices, decode VINs, market history.
Little public usage data yet
Reviews
Write oneNobody has reviewed MarketCheck API yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
MarketCheck API tools (13)
write = sends, deletes, buys or postsdecode_vin_neovinFreeGet vehicle specifications from NeoVIN decoder by VIN. Get the basic information on specifications for a car identified by a valid VIN from NeoVIN decoder. This provides detailed vehicle specifications including trim, engine, transmission, features, options, MSRP information, and more comprehensive data than standard VIN decoders.
get_car_historyFreeGet a car's online listing history by VIN. The history API returns online listing history for a car identified by its VIN. History listings are sorted in the descending order of the listing date / last seen date.
get_server_infoFreeGet information about the server. Returns: Server capabilities as a dict (serialized by the transport layer)
get_sold_summaryFreeMonthly sold-vehicle statistics for US franchise and independent dealers: how many sold, at what advertised prices, how fast, where, ranked however you ask. A "sale" is inferred (a listing left a dealer site and met MarketCheck's sold rules); prices are advertised asking prices, not transaction prices. History starts January 2021 and runs through the last complete month. No auction, private-party, UK or Canada data. Required: - inventory_type: new, used, certified, or all (all pools new and used into one row; add inventory_type to ranking_dimensions to split them). There is no default. Dates: - date_from / date_to: YYYY-MM-DD; date_from is the first day of a month, date_to the last day of a month (inclusive). Send both or neither; at most one year apart. Omit both for the last complete month. A same-month year-over-year comparison (e.g. July vs July) is more than a year, so make two calls. Geography (summary_by, default state): - summary_by=national for ONE ranking of the whole country. Use it for any "in America"/"nationally" question. Never add up per-state rankings: a make only appears in a state's rows when it makes that state's top_n, so the sum undercounts. - summary_by=state or city_state for rankings within each state or city. - state / city filters take comma-separated lists (OR). There is no ZIP or metro filter. Filters (comma-separated lists are OR; text matching is case-insensitive): - dealer_type: franchise, independent, or all. - dealership_group_name: exact group name(s), e.g. "Lithia Motors Inc.". Don't guess names: look them up with search_dealerships (field mc_dealership_group_name). An unknown name returns a 422. One name contains a comma ("Americas Car-mart, Inc."), so send it alone. - source: the website the sold listing was found on, e.g. carmax.com. For one dealer (rooftop), pass its inventory_url from search_dealerships / search_dealers. Finding a dealer or dealership group (use the dealer directory, never guess): - One dealer's sales: search_dealerships (or search_dealers) by name, city, state or zip, then call this tool with source=<inventory_url>. This also works for dealers that belong to no group, which is most sales. - A whole group's sales: take mc_dealership_group_name from search_dealerships and pass it as dealership_group_name. Only about 38% of sales carry a group, so ranking by dealership_group_name leaves the rest out. - Several rooftops at once: source takes a comma-separated list of inventory_urls. - make, model, trim, body_type, body_subtype, powertrain_type (Combustion, HEV, MHEV, BEV, PHEV, FCEV, EREV), drivetrain (4WD, FWD, RWD; there is no AWD), transmission (Automatic, CVT, Manual), base_exterior_color, base_interior_color, msrp_label, fuel_type_category (ice, ev, hybrid, unknown, other). - year: model year(s), e.g. 2024 or 2020,2022. year_range: inclusive, e.g. 2020-2024, 2020- or -2024. Use year or year_range, not both. - miles_range: inclusive odometer range, e.g. 0-60000, 60000-. Ranking: - ranking_dimensions: comma-separated fields to group and rank by (default make,model,body_type). Valid: year, make, model, trim, body_type, body_subtype, drivetrain, transmission, powertrain_type, fuel_type_category, base_exterior_color, base_interior_color, msrp_label, dealership_group_name, source, inventory_type; or none for a single market total. state is NOT a dimension: use summary_by. - ranking_measure (default sold_count): sold_count, price_over_msrp_percentage, price_over_mc_msrp_percentage, or a dotted statistic: price.mean, price.sum, price.p50 (median price), dom_active.mean (average days on market), dom_active.p50, dos_active.mean, miles.mean, msrp.mean, and others listed in the valid-values error. - ranking_order: desc (default) or asc. - top_n: rows kept per group (per month and geography), not per response. Default 10. - limit: total rows returned, 1 to 20000 (default 20000). Check `truncated` in the response: true means the limit cut rows. Row filters (a number with an optional >, <, >=, <= or = prefix, e.g. ">=30"): - sold_count, price_over_msrp_percentage, price_over_mc_msrp_percentage. - min_sold_count: shorthand for sold_count >= n. - measure_filters: dotted statistics, e.g. {"price.mean": ">20000", "dom_active.mean": "<45"}. average_sale_price is now price.mean, total_sale_price is price.sum, average_days_on_market is dom_active.mean. - By default filters apply AFTER rank and top_n (ranks can read 1, 3, 7), so a floor with the default top_n of 10 often returns no rows. Either raise top_n (e.g. 100000) or set rank_after_filters=true to filter first. - Ascending rankings: ranking_order=asc alone returns thousands of ties at the minimum (everything that sold once). Pair it with a floor, e.g. ranking_measure=dom_active.mean, ranking_order=asc, min_sold_count=30, top_n=100000. Response: `data` rows carry month, the grouping fields, rank, sold_count and nested statistics (price, miles, dom_active, dos_active, msrp, mc_msrp with count, mean and percentiles) plus price_over_msrp_percentage. `result_count`, `truncated`, `warnings` and `applied` (the defaults and date window the API actually used) come back unchanged. The service scales to zero when idle: the first call after a quiet period can take about 9 seconds. Errors: a 422 names the offending parameter and how to fix it; correct the call and retry.
predict_price_with_comparablesFreePredict car price along with comparable vehicles in the market. This provides predicted price, MSRP along with active set comparables to help understand market positioning and competitive pricing.
search_active_carsFreeSearch for cars in the United States and Canada market with comprehensive filters. This endpoint allows searching market vehicles that are up for sale in US and Canadian market right now. This endpoint serves only dealer listings. DO NOT USE CARFAX FIELDS: Carfax data on this server is incomplete and unreliable. Do NOT pass `carfax_1_owner` or `carfax_clean_title` as filters, do NOT request them in facets/stats, and do NOT infer ownership history, title status, or any other meaning from any `carfax_*` value that might appear in a listing. Treat all Carfax fields as if they did not exist. MANDATORY TWO-STEP WORKFLOW for filtering by categorical fields. Field values in this API are NOT canonical English (e.g. fuel_type="Hybrid" is wrong; the actual value is "HEV" or "Electric / Unleaded"). Skipping step 1 leads to silent zero-result responses. STEP 1 — discover valid values: call this tool with ONLY the `facets` parameter (and an optional location filter), rows=1, no other filters set. STEP 2 — filter for real: re-call with the exact strings returned in step 1. For instance, to filter cars by powertrain in New York: STEP 1 call: search_active_cars(facets="powertrain_type", rows=1, state="NY") -> returns {"powertrain_type": [{"item": "HEV", "count": 18058}, {"item": "PHEV", "count": 6004}, ...]} STEP 2 call: search_active_cars(powertrain_type="HEV,PHEV", state="NY") Fields that REQUIRE step 1 before being used as filters: powertrain_type, fuel_type, trim, body_type, drivetrain, transmission, make, model, exterior_color, interior_color. WRONG: search_active_cars(fuel_type="Hybrid") # silent zero-result CORRECT: search_active_cars(facets="fuel_type", rows=1) # discover valid values first then: search_active_cars(fuel_type="Electric / Unleaded") DEALER FILTERING: When any of dealer_id, source, mc_website_id, mc_dealer_id, mc_location_id, mc_rooftop_id, mc_dealership_group_id, mc_dealership_group_name, mc_sub_dealership_group_id, mc_sub_dealership_group_name, or mc_category are provided, this tool automatically routes to the Dealer Inventory Syndication API (GET /dealerships/inventory) instead of the standard inventory search API for optimized dealer-specific inventory retrieval. Use search_past_90_days for expired/sold dealer inventory analysis. STALENESS METRICS — dos_active vs dom_active (read before answering "how long has this car been for sale" questions): - dos_active (Days on Site): days this listing has been active at the CURRENT dealer. Answers "how long has THIS DEALER been trying to sell this car." DEFAULT: use dos_active for stale-inventory and "how long has it been listed" questions (e.g. finding dealers with stale inventory in an area). - dom_active (Days on Market): cumulative days the VEHICLE has been actively listed for sale across ALL dealers — it survives dealer-to-dealer transfers. Use ONLY when the question is about the vehicle's total market exposure, e.g. evaluating a car at auction or in a dealer trade: a car showing dos_active=15 at the current store may show dom_active=60 because it has been passed around dealers for two months. This rule applies to choosing filter params (dos_active_range vs dom_active_range), sort_by values, and which field to read and report from listing results. When unsure which the user means, default to dos_active.
search_dealersFreeSearch the legacy MarketCheck dealer directory (one-website-per-dealer model). Prefer search_dealerships for new use cases. This endpoint is being phased out; use it only when you specifically need legacy `dealer_id`-style records or the `listing_count_range` inventory-size filter, which is not available on the dealerships endpoint. For get_sold_summary, a dealer's inventory_url here is its `source` value. This endpoint has no dealership-group field; use search_dealerships for group names. Geospatial: pass (latitude AND longitude) OR zip, plus radius (miles, max 7000). Pagination: rows default 10, max 50; start default 0; (start * rows) cannot exceed 10000.
search_dealershipsFreeSearch the MarketCheck dealership directory (current, multi-rooftop, group-aware). Use this for "who/where is the dealer?" lookups. For inventory, use search_active_cars. Prefer this over search_dealers unless you need legacy `dealer_id`-style results. This is also the lookup for get_sold_summary (sold-vehicle statistics): - A dealer's (rooftop's) sales: pass its inventory_url as get_sold_summary `source`. Several rooftops: comma-separated inventory_urls. - A dealership group's sales: pass mc_dealership_group_name as get_sold_summary `dealership_group_name`. Filter here with mc_dealership_group_name to list a group's rooftops. Geospatial: pass (latitude AND longitude) OR zip, plus radius (miles, max 7000). mc_category values: Dealer, Retailer, Dealership Group, Aggregator, Marketing, Financing. Pagination: rows default 10, max 50; start default 0; (start * rows) cannot exceed 10000.
search_oem_incentivesFreeSearch for OEM (manufacturer) incentive offers across all brands. Searches for rebates, financing deals, and lease specials with 50+ filter parameters. Use this when searching across multiple OEMs or doing broad searches.
search_oem_incentives_by_zipFreeSearch for incentives from a specific manufacturer in a location. Optimized for finding all available incentives from a specific OEM in a geographic area. Automatically converts ZIP to MSA code for regional relevance. Use this when you know both the manufacturer and location.
search_past_90_daysFreeSearch for recent car inventory (EXPIRED/SOLD listings from last 90 days) with comprehensive filters following Marketcheck API structure. IMPORTANT: This endpoint serves ONLY expired/sold listings from the last 90 days for US and CA (Canada) markets, NOT active listings. For currently active listings, use the search_active_cars tool instead. DO NOT USE CARFAX FIELDS: Carfax data on this server is incomplete and unreliable. Do NOT pass `carfax_1_owner` or `carfax_clean_title` as filters, do NOT request them in facets/stats, and do NOT infer ownership history, title status, or any other meaning from any `carfax_*` value that might appear in a listing. Treat all Carfax fields as if they did not exist. IMPORTANT: Before filtering by specific field values (make, model, trim, body_type, fuel_type, etc.), use the 'facets' parameter to discover available values in the API. Field values may be represented differently than expected. For example: - Use facets="make,model,trim,body_type" to see all available options - This prevents filtering errors due to incorrect field value assumptions - Facets show actual data distribution and available filter options VIN vs Listing ID Disclaimer: - A single VIN can have multiple listings, each with a unique listing ID - Listing ID changes when there are changes in price or miles of the listing - When expired=false is set, it shows listings for VINs that are currently active in the market (not sold yet), but the specific listing is expired. The latest/current listing for that VIN is present in the active search API - This endpoint shows historical listing data (expired listing IDs) for market analysis, not current inventory This endpoint is designed for analytical use cases including: - Historical market analysis of sold vehicles - Sold vehicle pricing trends and patterns - Days on market analysis for expired listings - Dealer inventory turnover and sales analysis - Market intelligence from recently sold inventory Key use cases: - Analyze recent sales trends and pricing - Get sold/expired listings for market intelligence - Calculate average market prices from recent inventory - Track dealer inventory turnover patterns Due to performance reasons, this endpoint is more restrictive than active search: - Does not accept facets, stats and range_facets in a single call - Requires one of: city, state, zip, (latitude+longitude+radius), source, or dealer_id - For geo queries, radius cannot be greater than 100 miles - Charged at higher rates than active search endpoint STALENESS METRICS — dos_active vs dom_active (read before answering "how long was this car for sale" questions): - dos_active (Days on Site): days the listing was active at the CURRENT dealer. Answers "how long did THIS DEALER try to sell this car." DEFAULT: use dos_active for stale-inventory and "how long was it listed" questions. - dom_active (Days on Market): cumulative days the VEHICLE was actively listed across ALL dealers — it survives dealer-to-dealer transfers. Use ONLY when the question is about the vehicle's total market exposure, e.g. evaluating a car at auction or in a dealer trade: a car showing dos_active=15 at the current store may show dom_active=60 because it was passed around dealers for two months. This rule applies to choosing filter params (dos_active_range vs dom_active_range), sort_by values, and which field to read and report from listing results. When unsure which the user means, default to dos_active.
search_uk_active_carsFreeSearch for active cars in the UK market. This tool searches for currently active car listings in the UK using the Marketcheck API. It supports comprehensive filtering by location, vehicle specifications, price, and more. Includes all parameters supported by the /search/car/uk/active endpoint. DO NOT USE CARFAX FIELDS: Carfax data on this server is incomplete and unreliable. Do NOT pass `carfax_1_owner` or `carfax_clean_title` (via kwargs or otherwise) as filters, do NOT request them in facets/stats, and do NOT infer ownership history, title status, or any other meaning from any `carfax_*` value that might appear in a listing. Treat all Carfax fields as if they did not exist. IMPORTANT: Before filtering by specific field values (make, model, trim, body_type, fuel_type, etc.), use the 'facets' parameter to discover available values in the API. Field values may be represented differently than expected. For example: - Use facets="make,model,trim,body_type" to see all available options - This prevents filtering errors due to incorrect field value assumptions - Facets show actual data distribution and available filter options STALENESS METRICS — dos_active vs dom_active (read before answering "how long has this car been for sale" questions): - dos_active (Days on Site): days this listing has been active at the CURRENT dealer. Answers "how long has THIS DEALER been trying to sell this car." DEFAULT: use dos_active for stale-inventory and "how long has it been listed" questions. - dom_active (Days on Market): cumulative days the VEHICLE has been actively listed for sale across ALL dealers — it survives dealer-to-dealer transfers. Use ONLY when the question is about the vehicle's total market exposure, e.g. evaluating a car at auction or in a dealer trade: a car showing dos_active=15 at the current store may show dom_active=60 because it has been passed around dealers for two months. This rule applies to choosing filter params (dos_active_range vs dom_active_range), sort_by values, and which field to read and report from listing results. When unsure which the user means, default to dos_active.
search_uk_recent_carsFreeSearch for recent/expired cars in the UK market (last 90 days). This tool searches recent inventory data for EXPIRED/SOLD listings only. It does NOT include active listings - use search_uk_active_cars for current inventory. DO NOT USE CARFAX FIELDS: Carfax data on this server is incomplete and unreliable. Do NOT pass `carfax_1_owner` or `carfax_clean_title` (via kwargs or otherwise) as filters, do NOT request them in facets/stats, and do NOT infer ownership history, title status, or any other meaning from any `carfax_*` value that might appear in a listing. Treat all Carfax fields as if they did not exist. IMPORTANT: Before filtering by specific field values (make, model, trim, body_type, fuel_type, etc.), use the 'facets' parameter to discover available values in the API. Field values may be represented differently than expected. For example: - Use facets="make,model,trim,body_type" to see all available options - This prevents filtering errors due to incorrect field value assumptions - Facets show actual data distribution and available filter options STALENESS METRICS — dos_active vs dom_active (read before answering "how long was this car for sale" questions): - dos_active (Days on Site): days the listing was active at the CURRENT dealer. Answers "how long did THIS DEALER try to sell this car." DEFAULT: use dos_active for stale-inventory and "how long was it listed" questions. - dom_active (Days on Market): cumulative days the VEHICLE was actively listed across ALL dealers — it survives dealer-to-dealer transfers. Use ONLY when the question is about the vehicle's total market exposure, e.g. evaluating a car at auction or in a dealer trade: a car showing dos_active=15 at the current store may show dom_active=60 because it was passed around dealers for two months. This rule applies to choosing filter params (dos_active_range vs dom_active_range), sort_by values, and which field to read and report from listing results. When unsure which the user means, default to dos_active.
Public scan report
scanner v0.1.10 · 2026-10-14 · same rubric, same numbers if you re-run it
- –Code scanremote-only server, no package to scann/a
- Live reliabilityremote reachable in 879ms20/20
- Tool poisoning13 tool descriptions checked13/15
- Auth qualityopen endpoint, read-only tools10/15
- Maintenancerepository not readable: repo not found3/15
- Maintainer identityendpoint served from the registry-verified namespace domain8/10
Findings (1)
- lowUnusually long tool description (over 2,000 characters)
poison.long-descriptiontool search_active_cars: …Search for cars in the United States and Canada market with comprehensive filters. This endpoint allows searching market vehicles that are up for sale in US and Canadian market right now. This endpoint serves only dealer listings. DO NOT USE CARFAX FIELDS: Carfax data on this server is incomplete and unreliable. Do NOT pass `carfax_1_owner` or `carfax_clean_title` as filters, do NOT request them in facets/stats, and do NOT infer ownership history, title status, or any other meaning from any `carfax_*` value that might appear in a listing. Treat all Carfax fields as if they did not exist. MANDATORY TWO-STEP WORKFLOW for filtering by categorical fields. Field values in this API are NOT canonical English (e.g. fuel_type="Hybrid" is wrong; the actual value is "HEV" or "Electric / Unleaded"). Skipping step 1 leads to silent zero-result responses. STEP 1 — discover valid values: call this tool with ONLY the `facets` parameter (and an optional location filter), rows=1, no other filters set. STEP 2 — filter for real: re-call with the exact strings returned in step 1. For instance, to filter cars by powertrain in New York: STEP 1 call: search_active_cars(facets="powertrain_type", rows=1, state="NY") -> returns {"powertrain_type": [{"item": "HEV", "count": 18058}, {"item": "PHEV", "count": 6004}, ...]} STEP 2 call: search_active_cars(powertrain_type="HEV,PHEV", state="NY") Fields that REQUIRE step 1 before being used as filters: powertrain_type, fuel_type, trim, body_type, drivetrain, transmission, make, model, exterior_color, interior_color. WRONG: search_active_cars(fuel_type="Hybrid") # silent zero-result CORRECT: search_active_cars(facets="fuel_type", rows=1) # discover valid values first then: search_active_cars(fuel_type="Electric / Unleaded") DEALER FILTERING: When any of dealer_id, source, mc_website_id, mc_dealer_id, mc_location_id, mc_rooftop_id, mc_dealership_group_id, mc_dealership_group_name, mc_sub_dealership_group_id, mc_sub_dealership_group_name, or mc_category are provided, this tool automatically routes to the Dealer Inventory Syndication API (GET /dealerships/inventory) instead of the standard inventory search API for optimized dealer-specific inventory retrieval. Use search_past_90_days for expired/sold dealer inventory analysis. STALENESS METRICS — dos_active vs dom_active (read before answering "how long has this car been for sale" questions): - dos_active (Days on Site): days this listing has been active at the CURRENT dealer. Answers "how long has THIS DEALER been trying to sell this car." DEFAULT: use dos_active for stale-inventory and "how long has it been listed" questions (e.g. finding dealers with stale inventory in an area). - dom_active (Days on Market): cumulative days the VEHICLE has been actively listed for sale across ALL dealers — it survives dealer-to-dealer transfers. Use ONLY when the question is about the vehicle's total market exposure, e.g. evaluating a car at auction or in a dealer trade: a car showing dos_active=15 at the current store may show dom_active=60 because it has been passed around dealers for two months. This rule applies to choosing filter params (dos_active_range vs dom_active_range), sort_by values, and which field to read and report from listing results. When unsure which the user means, default to dos_active.…
How MarketCheck API compares
Against every graded Web search MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 72/100
- higher than 40% of 3,470 Web search servers
- Tools
- 13
- the typical Web search server has 5
- Tools that change things
- 0%
- typical: 0%. Fewer write tools means less an agent can break
- Uptime
- 100%
- of our recent checks; the typical remote Web search server answers 100%
- Response time
- 252 ms
- faster than 58% of 2,238 Web search servers
What its tools let an agent do: 13 read
Install MarketCheck API in Claude Code, Cursor or VS Code
claude mcp add --transport http api https://developers.marketcheck.com/api/mcp
Grade history
- 2026-10-14restoreC → Bscore 72: Unusually long tool description (over 2,000 characters)
MarketCheck API: common questions
- Is MarketCheck API MCP server safe?
- Mostly: it is graded B (72/100). Read the MarketCheck API safety report
- How do I install MarketCheck API?
- It runs remotely at developers.marketcheck.com. 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 MarketCheck API need an API key?
- Not as far as the registry entry and our scan can tell: no credentials are declared or required.
- Is MarketCheck API maintained?
- The latest release is v1.2.0.
- Is MarketCheck API up?
- 100% of our last 28 checks got an answer. We check remote servers about four times a day.
- What can I use instead of MarketCheck API?
- Servers from other publishers that do the same job: HasData Yellow Pages MCP server.
- How does MarketCheck API compare with other Web search MCP servers?
- safety score 72/100 (higher than 40% of 3,470 Web search servers); tools 13 (the typical Web search server has 5); tools that change things 0% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.
Alternatives to MarketCheck API
Same job from other publishers: the closest match first, then the best rated.
- HasData Yellow PagesYellow Pages local business search and full business listings, as structured JSON.not reviewedEstablishedA