protogrid

Search / com.moonshotlab1/inventory

Moonshot Lab (demo)

R0· no sign-in

Agent car inventory index. Synthetic demo data, not real inventory, not an offer.

v1.0.0-demo · active · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality69new
Trust83of 100
Uptime, 30 days100%
Latency p50216 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "inventory": {
      "type": "http",
      "url": "https://moonshotlab1.com/mcp"
    }
  }
}
claude mcp add --transport http inventory https://moonshotlab1.com/mcp
[mcp_servers.inventory]
url = "https://moonshotlab1.com/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "inventory": {
      "type": "remote",
      "url": "https://moonshotlab1.com/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "inventory": {
      "type": "http",
      "url": "https://moonshotlab1.com/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=inventory&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbW9vbnNob3RsYWIxLmNvbS9tY3AifQ%3D%3D"
}
{
  "servers": {
    "inventory": {
      "type": "http",
      "url": "https://moonshotlab1.com/mcp"
    }
  }
}
{
  "mcpServers": {
    "inventory": {
      "httpUrl": "https://moonshotlab1.com/mcp"
    }
  }
}
extensions:
  "inventory":
    enabled: true
    name: "inventory"
    type: streamable_http
    uri: "https://moonshotlab1.com/mcp"
    timeout: 300

Quality 69 / 100new

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene64 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • warn
    tools.description_length1 tools have descriptions over 1,024 characters, which crowds the context
  • pass
    tools.schemasevery tool has an object input schema
  • fail
    tools.annotationsno tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: list_dealers (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); get_trade_in_scenarios (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); get_listing (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
  • pass
    tools.token_costabout 5,513 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stabilityn/a · weight 15
  • n/a
    stability.changes, stability.rug_pulltool history recorded for 2 of the 7 days needed
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

11 tools, about 5,513 tokens to load them all · tool set 83171ccde3b1 · tools last changed 2026-10-18 · checked 2026-10-20 13:49 UTC

Tool changes

  • get_ontologychangeddescriptionmeaning changed
    before

    Schema links, vocabularies, states covered and the value-wrapper format.

    after · 33% of words in common

    Schema links, schema version, covered states, condition values, search sorts and the value-wrapper format ({v, m, c, src}). For the list of filterable fields and allowed values, use list_searchable_fields.

  • get_trade_in_scenarioschangeddescription
    before

    Ready-made demo trade-in scenarios (one per state) that can be passed to estimate_out_the_door.

    after · 54% of words in common

    Ready-made demo trade-in scenarios (one per state) with trade_value and payoff to pass to estimate_out_the_door or get_payment_estimate.

  • get_mediachangeddescription, input schemameaning changed
    before

    Media block for a listing: self-generated placeholder image URLs (photo, video poster, spin), with rights notes.

    after · 43% of words in common

    Media block for a listing: self-generated SVG placeholder images labeled DEMO (photo, video poster, spin), with rights notes. They are not photos of a real car. No video or 360 viewer exists in the demo.

  • get_dealerchangeddescription, input schema
    before

    Fictional dealer profile: registry entity, stores (selling locations), group, state rules and a page of inventory.

    after · 52% of words in common

    Fictional dealer profile: registry entity, stores (selling locations) with fictional addresses and 555 phone numbers, group, state rules and a page of inventory. Not a real business; do not tell anyone to call or visit.

  • estimate_out_the_doorchangeddescription, input schemameaning changed
    before

    Itemized out-the-door DEMO ESTIMATE using real public tax and fee rules for the 8 states: every line has a source and confidence, unknowns become ranges, and a trade-in block shows allowance, payoff, equity and the tax credit. Not an offer, not a quote, not penny-accurate, no payments. Inputs are not stored.

    after · 39% of words in common

    Use this for the buyer's TOTAL price of ONE listing: an itemized out-the-door DEMO ESTIMATE for the buyer's state, county and city, built with real public tax and fee rules for the 8 covered states. Lines include the price, dealer fees, eligible incentives, state and local sales tax, title and registration fees, and a trade-in block (allowance, payoff, equity, tax credit). Every line has a source and confidence; unknowns become ranges. Read estimated_out_the_door with estimate_range and confidence. With a trade-in, estimated_out_the_door is the balance due after the trade (negative equity added); deal.vehicle_out_the_door_before_trade is the car alone. Use get_price_breakdown instead for only the dealer's listed price and fees, and get_payment_estimate to turn this total into a monthly finance payment (this tool returns payments: null). Read warnings, for example when the shopper's state differs from the store's state. Not an offer, not a quote, not penny-accurate. Inputs are not stored.

  • get_price_breakdownchangeddescription, input schemameaning changed
    before

    Price components, dealer fees and fee bundles, all-buyer vs conditional incentives, options and the state's public tax and fee rules with data-flag checks.

    after · 23% of words in common

    Use this to see what the dealer LISTS for ONE listing, as published: headline price, MSRP (new cars), price_components, dealer fees (doc fee and others) and fee bundles (parts marked part_of_bundle, not double counted), flags such as whether the advertised price already includes fees, options, incentives split into all_buyer (already in the price) and conditional (not in the price), and the state's public tax and fee RULES with data-flag checks. It takes no buyer inputs and computes no tax amounts or total. Use estimate_out_the_door next for the buyer's total with tax, title, registration and fees, and get_payment_estimate for a monthly payment. Pass conditional incentive label_raw values to those tools as eligible_incentive_labels only if the shopper qualifies. A dealer-advertised monthly payment, when present, is a price_components item of type payment_quote: dealer ad text, not a calculation.

  • get_listingchangeddescription, input schemameaning changed
    before

    Full synthetic listing record with per-value provenance (method 'synthetic'). listing_id is dealer_key:VIN or the urn.

    after · 33% of words in common

    Full synthetic listing record with per-value provenance (method 'synthetic'). listing_id is dealer_key:VIN (as returned by search_inventory) or the urn. The vehicle-to-store link is in listing.selling_location (link_status, selling_location_id, candidates, flags such as group_site_lists_sister_store or multi_store_unstated); the dealer block is the advertising dealer. For price and fees in a compact form, use get_price_breakdown.

  • get_payment_estimateadded

    Use this to answer 'what would my monthly payment be' for ONE listing. It runs the same itemized out-the-door calculation as estimate_out_the_door (always treated as financed) and turns it into a DEMO monthly finance payment: out-the-door total minus down payment and trade equity, amortized at the APR (or a demo APR by credit_tier) over term_months. Returns finance.estimated_monthly_payment rounded to $5, monthly_payment_range, amount_financed_estimate, total_of_payments, finance_charge and every assumption, plus the out-the-door figure it used and any dealer-advertised payment shown separately (not comparable unless the terms match). Use get_price_breakdown instead for the dealer's listed price and fees only, and estimate_out_the_door for the full itemized total without a payment. To find cars by payment across many listings, use search_inventory with payment_max. Not an offer of credit, not a quote, not penny-accurate. Leases are not modeled.

  • list_searchable_fieldsadded

    Every filterable ontology field (vehicle, listing, store, dealer, price, fee, incentive, media, payment) with its type, range or allowed values, shortcut names, the operators (eq, any_of, contains, range, bool, exists, negate) and example filters for search_inventory. The full compact list is about 30 KB, so narrow it with prefix or query.

  • search_inventorychangeddescription, input schemameaning changed
    before

    Search the SYNTHETIC demo inventory (about 860 fictional vehicles at 20 fictional dealers in TX, CA, FL, GA, AZ, IL, NY and OH). condition: new, used or cpo. sort: price_asc, price_desc, year_desc, mileage_asc, distance_asc. zip plus radius_miles filters by straight-line distance to the selling store. limit is capped at 50.

    after · 17% of words in common

    Search the SYNTHETIC demo inventory (about 860 fictional vehicles at 20 fictional dealers in TX, CA, FL, GA, AZ, IL, NY and OH). Results are not real vehicles for sale; say so when you show them. Each result has listing_id (dealer_key:VIN), vehicle basics, headline_price (before tax, title and fees), dealer_name, and selling_location: the store that holds the unit, with address and phone. link_status is linked, or ambiguous when the listing does not say which of the dealer's stores holds it (see selling_location_candidates). A unit can be held at a sister store run by another dealer in the same group; operated_by_dealer_id then differs from dealer_id. Matching is exact on vocabularies, so a total of 0 often means a wrong value: check the parameter descriptions, widen radius_miles or drop a filter; a zero total also returns hints. The named parameters are shortcuts. filters reaches every other attribute: for example {"field": "canonical.vin", "op": "eq", "value": "<VIN>"} finds a VIN, {"field": "price_summary.doc_fee", "op": "range", "max": 300}, {"field": "incentives[].label_raw", "op": "eq", "value": "Military Appreciation"}. Payment search: payment_max / payment_min filter on a DEMO monthly finance estimate computed per listing from its itemized out-the-door estimate (tax, title, registration, dealer fees) for the buyer location, minus down payment and trade equity, at a demo APR by credit tier unless apr is given. Each result then has estimated_payment (rounded to $5, with a range) and the response has payment_assumptions. Not an offer of credit; not penny-accurate.

Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 83 / 100

no-repository
provenance55
liveness100
freshness100
hygiene80

+dns-namespace +website +reachable +uptime-100% +updated-2d-ago -no-repository

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://moonshotlab1.com/mcp streamable-httpnoneyes100%216 ms2025-11-252026-10-20

Tools (11)

estimate_out_the_doorUse this for the buyer's TOTAL price of ONE listing: an itemized out-the-door DEMO ESTIMATE for the buyer's state, county and city, built with real public tax and fee rules for the 8 covered states. Lines include the price, dealer fees, eligible incentives, state and local sales tax, title and registration fees, and a trade-in block (allowance, payoff, equity, tax credit). Every line has a source and confidence; unknowns become ranges. Read estimated_out_the_door with estimate_range and confidence. With a trade-in, estimated_out_the_door is the balance due after the trade (negative equity added); deal.vehicle_out_the_door_before_trade is the car alone. Use get_price_breakdown instead for only the dealer's listed price and fees, and get_payment_estimate to turn this total into a monthly finance payment (this tool returns payments: null). Read warnings, for example when the shopper's state differs from the store's state. Not an offer, not a quote, not penny-accurate. Inputs are not stored.
get_dealerFictional dealer profile: registry entity, stores (selling locations) with fictional addresses and 555 phone numbers, group, state rules and a page of inventory. Not a real business; do not tell anyone to call or visit.
get_listingFull synthetic listing record with per-value provenance (method 'synthetic'). listing_id is dealer_key:VIN (as returned by search_inventory) or the urn. The vehicle-to-store link is in listing.selling_location (link_status, selling_location_id, candidates, flags such as group_site_lists_sister_store or multi_store_unstated); the dealer block is the advertising dealer. For price and fees in a compact form, use get_price_breakdown.
get_mediaMedia block for a listing: self-generated SVG placeholder images labeled DEMO (photo, video poster, spin), with rights notes. They are not photos of a real car. No video or 360 viewer exists in the demo.
get_ontologySchema links, schema version, covered states, condition values, search sorts and the value-wrapper format ({v, m, c, src}). For the list of filterable fields and allowed values, use list_searchable_fields.
get_payment_estimateUse this to answer 'what would my monthly payment be' for ONE listing. It runs the same itemized out-the-door calculation as estimate_out_the_door (always treated as financed) and turns it into a DEMO monthly finance payment: out-the-door total minus down payment and trade equity, amortized at the APR (or a demo APR by credit_tier) over term_months. Returns finance.estimated_monthly_payment rounded to $5, monthly_payment_range, amount_financed_estimate, total_of_payments, finance_charge and every assumption, plus the out-the-door figure it used and any dealer-advertised payment shown separately (not comparable unless the terms match). Use get_price_breakdown instead for the dealer's listed price and fees only, and estimate_out_the_door for the full itemized total without a payment. To find cars by payment across many listings, use search_inventory with payment_max. Not an offer of credit, not a quote, not penny-accurate. Leases are not modeled.
get_price_breakdownUse this to see what the dealer LISTS for ONE listing, as published: headline price, MSRP (new cars), price_components, dealer fees (doc fee and others) and fee bundles (parts marked part_of_bundle, not double counted), flags such as whether the advertised price already includes fees, options, incentives split into all_buyer (already in the price) and conditional (not in the price), and the state's public tax and fee RULES with data-flag checks. It takes no buyer inputs and computes no tax amounts or total. Use estimate_out_the_door next for the buyer's total with tax, title, registration and fees, and get_payment_estimate for a monthly payment. Pass conditional incentive label_raw values to those tools as eligible_incentive_labels only if the shopper qualifies. A dealer-advertised monthly payment, when present, is a price_components item of type payment_quote: dealer ad text, not a calculation.
get_trade_in_scenariosReady-made demo trade-in scenarios (one per state) with trade_value and payoff to pass to estimate_out_the_door or get_payment_estimate.
list_dealersAll 20 fictional demo dealers with group and store counts, plus the 4 fictional dealer groups.
list_searchable_fieldsEvery filterable ontology field (vehicle, listing, store, dealer, price, fee, incentive, media, payment) with its type, range or allowed values, shortcut names, the operators (eq, any_of, contains, range, bool, exists, negate) and example filters for search_inventory. The full compact list is about 30 KB, so narrow it with prefix or query.
search_inventorySearch the SYNTHETIC demo inventory (about 860 fictional vehicles at 20 fictional dealers in TX, CA, FL, GA, AZ, IL, NY and OH). Results are not real vehicles for sale; say so when you show them. Each result has listing_id (dealer_key:VIN), vehicle basics, headline_price (before tax, title and fees), dealer_name, and selling_location: the store that holds the unit, with address and phone. link_status is linked, or ambiguous when the listing does not say which of the dealer's stores holds it (see selling_location_candidates). A unit can be held at a sister store run by another dealer in the same group; operated_by_dealer_id then differs from dealer_id. Matching is exact on vocabularies, so a total of 0 often means a wrong value: check the parameter descriptions, widen radius_miles or drop a filter; a zero total also returns hints. The named parameters are shortcuts. filters reaches every other attribute: for example {"field": "canonical.vin", "op": "eq", "value": "<VIN>"} finds a VIN, {"field": "price_summary.doc_fee", "op": "range", "max": 300}, {"field": "incentives[].label_raw", "op": "eq", "value": "Military Appreciation"}. Payment search: payment_max / payment_min filter on a DEMO monthly finance estimate computed per listing from its itemized out-the-door estimate (tax, title, registration, dealer fees) for the buyer location, minus down payment and trade equity, at a demo APR by credit tier unless apr is given. Each result then has estimated_payment (rounded to $5, with a range) and the response has payment_assumptions. Not an offer of credit; not penny-accurate.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "com.moonshotlab1/inventory",
  "title": "Moonshot Lab (demo)",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://moonshotlab1.com/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "1.0.0-demo",
  "websiteUrl": "https://moonshotlab1.com",
  "description": "Agent car inventory index. Synthetic demo data, not real inventory, not an offer."
}