Search excessionlabs.ai, the site of Excession Labs, a security lab, and request a security test.
- Passed: Handshake
- Passed: Tools listed
- Passed: Updated recently
Median latency 71 ms · Last checked
Explore
Evidence for your next connection.
Independent measurements of remote MCP servers. Every observation has a timestamp.
Read-only probesMCP server · Data access / search
MarketCheck automotive data: search US/UK listings, predict prices, decode VINs, market history.
1 failed · 7 not measured
Median of successful probes over 7 days
Share of countable probes over 30 days, including daily rollups. Auth challenges are excluded.
Tool definitions returned by this server
Independent monitoring
Responded
The server completed its last measured handshake. This is an observation, not a guarantee.
Last checked| Test area | Passed | Failed | Unmeasured |
|---|---|---|---|
ConnectionCan a client connect and discover tools? | 5 | 0 | 0 |
Reliability & speedDoes it respond consistently and quickly? | 1 | 0 | 3 |
Access & authenticationWhat is required to use this server? | 1 | 0 | 2 |
Tool qualityAre the tool definitions usable by an agent? | 4 | 0 | 0 |
Publisher identityCan the publisher be traced to its source? | 3 | 1 | 2 |
Unmeasured means there is not enough evidence to decide. How these checks work
Start using MarketCheck API
Choose your client, copy the configuration, then enable the server in your client’s MCP settings.
Run this command in your terminal, then restart Claude Code.
Claude Code
claude mcp add --transport http marketcheck-api https://developers.marketcheck.com/api/mcpCapabilities
Get 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 and MSRP information.
DiscoveredGet 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.
DiscoveredGet information about the server. Returns: Server capabilities as a dict (serialized by the transport layer)
DiscoveredMonthly 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. Measure filters remove whole groups after the statistics are computed, leaving the numbers in the remaining rows unchanged (the vehicle filters above act on vehicles, before statistics). Each takes 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 measure 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.
DiscoveredPredict 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.
DiscoveredSearch 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. Carfax fields: `carfax_1_owner`, `carfax_clean_title` and other `carfax_*` values are incomplete in this dataset and are not supported as filters, facets or stats. They should not be used to describe ownership or title history. Filtering categorical fields (two steps). 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.
DiscoveredSearch the legacy MarketCheck dealer directory (one-website-per-dealer model). search_dealerships is recommended 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.
DiscoveredSearch the MarketCheck dealership directory (current, multi-rooftop, group-aware). Use this for "who/where is the dealer?" lookups. For inventory, use search_active_cars. Recommended over search_dealers unless legacy `dealer_id`-style results are needed. 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.
DiscoveredSearch 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.
DiscoveredSearch 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.
DiscoveredSearch for recent car inventory (EXPIRED/SOLD listings from last 90 days) with comprehensive filters following Marketcheck API structure. Scope: 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. Carfax fields: `carfax_1_owner`, `carfax_clean_title` and other `carfax_*` values are incomplete in this dataset and are not supported as filters, facets or stats. They should not be used to describe ownership or title history. Tip: 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.
DiscoveredSearch 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. Carfax fields: `carfax_1_owner`, `carfax_clean_title` and other `carfax_*` values are incomplete in this dataset and are not supported as filters, facets or stats. They should not be used to describe ownership or title history. Tip: 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.
DiscoveredSearch 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. Carfax fields: `carfax_1_owner`, `carfax_clean_title` and other `carfax_*` values are incomplete in this dataset and are not supported as filters, facets or stats. They should not be used to describe ownership or title history. Tip: 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.
DiscoveredRecent measurements
| Checked | Result | Response | Tools |
|---|---|---|---|
| Connected | 1057 ms | 13 | |
| Connected | 1305 ms | 13 |