Agentic Dealer Network
by agenticdealernetwork.com · remote · no sign-in to list tools · v0.5.0 · published by com.agenticdealernetwork
Live franchised-dealer inventory, quotes, and consented salesperson handoffs.
12 tools: 2 can delete or cancel things, 6 change things and 4 only read.
Scanned Oct 21, 2026
- Deletes or cancels2Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things6Claude Code: ask: see these tools
- Only reads4Claude Code: allow: see these tools
1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http adn-gateway https://gateway.agenticdealernetwork.com/mcpFindings
Matches of fixed checks, with the text they matched.
- Warnstores
The server marks "stores" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "stores" says "store": a word for a change.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
12 tools
Deletes or cancels 2Claude Code: deny
deal_quoteOut-the-door quote for one available unit at a named rooftop.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Out-the-door quote for one available unit at a named rooftop. Anonymous calls are stateless; authenticated calls persist a deal thread. Anonymous calls persist nothing; quote_preview is the read-only equivalent for browsing. Fee schedules may be incomplete — an unlisted fee is not a guarantee that no such fee applies; confirm final charges with the dealer. Totals are estimates at best; when pricing_coverage is "partial_estimate", present the total as a subtotal excluding the charges in excluded. Always relay pricing_disclosure.
Annotations the server declares
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: false
- title: Request a quote
lead_submitSubmit the shopper's bound contact request to the named dealership.No findings
Why it is in this group
- The name "lead_submit" says "submit": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Submit the shopper's bound contact request to the named dealership.
Annotations the server declares
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: false
- title: Ask the dealership to reach out — confirm
Changes things 6Claude Code: ask
inventory_changesState synchronization for a mirror built from network_snapshot: pass the sync_cursor and receive upserts (current rows in the same view) and tombstones since that position, with ha…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it State synchronization for a mirror built from network_snapshot: pass the sync_cursor and receive upserts (current rows in the same view) and tombstones since that position, with has_more and next_cursor. Bounded eventual consistency: take a fresh snapshot at least every 24 hours and whenever resync_required is true. Example: {"cursor": "<sync_cursor from network_snapshot>"}. Pass country=CA for Canadian dealers.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Sync catalog changes
inventory_comparablesPrice context for one vehicle against like units across the network (same make, model, exact model year, condition; optional trim and geo).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Price context for one vehicle against like units across the network (same make, model, exact model year, condition; optional trim and geo). Example: {"identity": "<VIN>", "rooftop_slug": "mms"} or {"make": "Subaru", "model": "Outback", "model_year": 2024, "condition": "used"}. Returns count, price quartiles, the subject's rank and up to 5 cheapest peers. Advertised prices only; call quote_preview for a total. Pass country=CA for Canadian dealers.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Compare a vehicle's price to like units
inventory_statsAggregate available inventory across the network in ONE call: counts, effective-price min/median/max and the top values per facet.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Aggregate available inventory across the network in ONE call: counts, effective-price min/median/max and the top values per facet. Example: {"dimensions": ["make_model", "body_style"], "condition": "used", "rooftop_slugs": ["mms"]}. Geo (latitude and longitude, optional radius_miles) and oem_program_slug scope exactly as network_search. Pivot mode (group_by, up to 2 of the facets plus state, dealer_group, price_band, age_band) returns one row per group with count and medians; dimensions and group_by are mutually exclusive; format csv returns the rows as CSV. Pass country=CA for Canadian dealers.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Count and summarize network inventory
lead_preparePrepare a named dealership's exact contact disclosure and a short-lived signed binding.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Prepare a named dealership's exact contact disclosure and a short-lived signed binding.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Ask the dealership to reach out — prepare
network_directoryDirectory of active ADN rooftops: slug, name, dealer group, OEM programs, location metadata, and per-rooftop manifest URL.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Directory of active ADN rooftops: slug, name, dealer group, OEM programs, location metadata, and per-rooftop manifest URL. Pass country=CA for Canadian dealers.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: List dealerships
storesOne named rooftop's store record: name, dealer group, OEM programs, location/contact metadata, and fee schedule.1 finding
Why it is in this group
- The name "stores" says "store": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "stores" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "stores" says "store": a word for a change.
Description, as the server wrote it One named rooftop's store record: name, dealer group, OEM programs, location/contact metadata, and fee schedule. Pass rooftop_slug. Whether a specific unit's listed price already includes a fee varies per unit — quote_preview returns the estimated total. Fee schedules may be incomplete — an unlisted fee is not a guarantee that no such fee applies; confirm final charges with the dealer.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Get dealership details
Only reads 4Claude Code: allow
inventory_getFetch one available unit by identity (VIN) from a named rooftop (rooftop_slug from network_search results).No findings
Why it is in this group
- The name "inventory_get" says "get": a word for reading.
Description, as the server wrote it Fetch one available unit by identity (VIN) from a named rooftop (rooftop_slug from network_search results). Returns the full detail shape — ordered photo gallery, options, plain-text description; embed the first few photo_urls as markdown images when presenting the vehicle. Unknown or ineligible identity/rooftop returns unit_not_found. Listed prices may exclude doc/government fees and tax — call quote_preview for the estimated total. Totals are estimates at best; when pricing_coverage is "partial_estimate", present the total as a subtotal excluding the charges in excluded. Always relay pricing_disclosure.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Get vehicle details
network_searchBrowse available inventory across the network, one page at a time.No findings
Why it is in this group
- The name "network_search" says "search": a word for reading.
Description, as the server wrote it Browse available inventory across the network, one page at a time. For counts or distributions call inventory_stats; to copy the catalog call network_snapshot (one download replaces hundreds of pages). Results are slim summary rows; embed hero_photo_url as a markdown image when presenting a vehicle, and call inventory_get with rooftop_slug for its full photo gallery. Optional OEM program scope; optional geographic radius — latitude and longitude together; radius_miles defaults to 50 (max 500) and needs both. Rooftops without coordinates are excluded from geo-scoped results. Pass country=CA for Canadian dealers. Listed prices may exclude doc/government fees and tax — call quote_preview for the estimated total. Totals are estimates at best; when pricing_coverage is "partial_estimate", present the total as a subtotal excluding the charges in excluded. Always relay pricing_disclosure.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Search network inventory
network_snapshotExport the whole network catalog (or one rooftop with rooftop_slug) as one gzip artifact instead of paging: returns a descriptor with a generation URL, strong ETag, row and byte co…No findings
Why it is in this group
- The name "network_snapshot" says "snapshot": a word for reading.
Description, as the server wrote it Export the whole network catalog (or one rooftop with rooftop_slug) as one gzip artifact instead of paging: returns a descriptor with a generation URL, strong ETag, row and byte counts, expiry and (when available) sync_cursor; small results are inlined as rows_inline. Views: manifest (identity, pricing, key attributes; default), summary (the network_search row), full (the inventory_get row). Formats: csv (default), json. Example: {"view": "manifest", "format": "csv"}. Re-download only when the ETag changes; poll inventory_changes with sync_cursor to stay current. Pass country=CA for Canadian dealers.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Export the catalog
quote_previewRead-only out-the-door price preview for one available unit at a named rooftop (pass rooftop_slug): base price plus itemized fees and taxes — fees already included in the listed pr…No findings
Why it is in this group
- The name "quote_preview" says "preview": a word for reading.
Description, as the server wrote it Read-only out-the-door price preview for one available unit at a named rooftop (pass rooftop_slug): base price plus itemized fees and taxes — fees already included in the listed price are flagged included_in_price and add nothing on top. Persists nothing; free to call while browsing. Fee schedules may be incomplete — an unlisted fee is not a guarantee that no such fee applies; confirm final charges with the dealer. Totals are estimates at best; when pricing_coverage is "partial_estimate", present the total as a subtotal excluding the charges in excluded. Always relay pricing_disclosure.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Preview an out-the-door price
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 0.5.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http adn-gateway https://gateway.agenticdealernetwork.com/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__adn-gateway__network_search",
"mcp__adn-gateway__inventory_get",
"mcp__adn-gateway__network_snapshot",
"mcp__adn-gateway__quote_preview"
],
"ask": [
"mcp__adn-gateway__network_directory",
"mcp__adn-gateway__inventory_stats",
"mcp__adn-gateway__inventory_changes",
"mcp__adn-gateway__inventory_comparables",
"mcp__adn-gateway__stores",
"mcp__adn-gateway__lead_prepare"
],
"deny": [
"mcp__adn-gateway__deal_quote",
"mcp__adn-gateway__lead_submit"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as adn-gateway. Review it before you use it.