# JOY Automart (remote · www.joyautomart.com)

Search car parts and used/reconditioned vehicle listings in Bangladesh (BDT prices, stock).

- Trust score: 73/100 (medium)
- Change this week: +2
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `www.joyautomart.com`: 73/100 (this document), [markdown](https://verifymcp.io/servers/com-joyautomart-mcp/www.md), [page](https://verifymcp.io/servers/com-joyautomart-mcp/www)

## Channel facts

- Endpoint: `https://www.joyautomart.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.2.0`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 83/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC is configured correctly; the domain's records validate against the full chain to the root.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 63/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 3296 tokens (~329/item across 10 items; 10 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability check failed: schema churn in the 7 days we've observed: 2 tool removals, 0 breaking changes, 0 auth/transport breaks, 4 additions.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 10 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 11 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### How do I install the JOY Automart MCP server?

JOY Automart is a hosted endpoint at https://www.joyautomart.com/mcp, 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.

### Claude

```bash
claude mcp add --transport http com-joyautomart-mcp 'https://www.joyautomart.com/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "com-joyautomart-mcp": {
      "url": "https://www.joyautomart.com/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "com-joyautomart-mcp": {
      "type": "http",
      "url": "https://www.joyautomart.com/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.com-joyautomart-mcp]
url = "https://www.joyautomart.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-joyautomart-mcp": {
      "type": "remote",
      "url": "https://www.joyautomart.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-joyautomart-mcp --url 'https://www.joyautomart.com/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-joyautomart-mcp:
    url: "https://www.joyautomart.com/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "com-joyautomart-mcp": {
      "Transport": "http",
      "Url": "https://www.joyautomart.com/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add com-joyautomart-mcp -t streamable-http -u 'https://www.joyautomart.com/mcp'
```

### Other

```json
{
  "mcpServers": {
    "com-joyautomart-mcp": {
      "type": "http",
      "url": "https://www.joyautomart.com/mcp"
    }
  }
}
```

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

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-01 (score 73, 0)

- [security regression] Stability: 0.07 → fail
- [security regression] Tool “get_auction_status” was removed
- [security regression] Tool “prepare_buyer_handoff” was removed
- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “compare_vehicles” rewrote its description, which is the text the model reads
- [security] Tool “get_buying_guide” rewrote its description, which is the text the model reads
- [security] Tool “get_part” rewrote its description, which is the text the model reads
- [security] Tool “get_vehicle” rewrote its description, which is the text the model reads
- [security] Tool “prepare_vehicle_handoff” rewrote its description, which is the text the model reads
- [security] Tool “search_auctions” rewrote its description, which is the text the model reads
- [security] Tool “search_parts” rewrote its description, which is the text the model reads
- [security] Tool “search_vehicles” rewrote its description, which is the text the model reads
- [functional] Server version: 1.2.2 → 1.3.1
- [functional] New tool “get_auction”
- [functional] New tool “prepare_part_handoff”

### 2026-10-31 (score 73, +1)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “compare_vehicles” rewrote its description, which is the text the model reads
- [security] Tool “get_auction_status” rewrote its description, which is the text the model reads
- [security] Tool “get_buying_guide” rewrote its description, which is the text the model reads
- [security] Tool “get_part” rewrote its description, which is the text the model reads
- [security] Tool “get_vehicle” rewrote its description, which is the text the model reads
- [security] Tool “prepare_buyer_handoff” rewrote its description, which is the text the model reads
- [security] Tool “search_parts” rewrote its description, which is the text the model reads
- [security] Tool “search_vehicles” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: 119 → 323
- [functional improvement] Tool coverage: 24% → 100%
- [functional improvement] Tool “compare_vehicles” now declares an output schema
- [functional improvement] Tool “get_auction_status” now declares an output schema
- [functional improvement] Tool “get_buying_guide” now declares an output schema
- [functional improvement] Tool “get_part” now declares an output schema
- [functional improvement] Tool “get_vehicle” now declares an output schema
- [functional improvement] Tool “prepare_buyer_handoff” now declares an output schema
- [functional improvement] Tool “search_parts” now declares an output schema
- [functional improvement] Tool “search_vehicles” now declares an output schema
- [functional] First check of Tool coverage: 100
- [functional] Schema quality: good → excellent
- [functional] Server version: 1.2.0 → 1.2.2
- [functional] New tool “prepare_vehicle_handoff”
- [functional] New tool “search_auctions”
- [cosmetic] “compare_vehicles” reworded the description of “vehicle_ids”
- [cosmetic] “get_auction_status” reworded the description of “auction_id”
- [cosmetic] “get_part” reworded the description of “part_id”
- [cosmetic] “get_vehicle” reworded the description of “vehicle_id”
- [cosmetic] “prepare_buyer_handoff” reworded the description of “note”
- [cosmetic] “prepare_buyer_handoff” reworded the description of “part_id”
- [cosmetic] “prepare_buyer_handoff” reworded the description of “quantity”
- [cosmetic] “prepare_buyer_handoff” reworded the description of “vehicle”
- [cosmetic] “search_parts” reworded the description of “category”
- [cosmetic] “search_parts” reworded the description of “chassis”
- [cosmetic] “search_parts” reworded the description of “in_stock_only”
- [cosmetic] “search_parts” reworded the description of “include_rfq_catalogue”
- [cosmetic] “search_parts” reworded the description of “make”
- [cosmetic] “search_parts” reworded the description of “max_price_bdt”
- [cosmetic] “search_parts” reworded the description of “page”
- [cosmetic] “search_parts” reworded the description of “page_size”
- [cosmetic] “search_parts” reworded the description of “query”
- [cosmetic] “search_vehicles” reworded the description of “fuel_type”
- [cosmetic] “search_vehicles” reworded the description of “include_unpriced”
- [cosmetic] “search_vehicles” reworded the description of “make”
- [cosmetic] “search_vehicles” reworded the description of “max_price_bdt”
- [cosmetic] “search_vehicles” reworded the description of “max_year”
- [cosmetic] “search_vehicles” reworded the description of “min_price_bdt”
- [cosmetic] “search_vehicles” reworded the description of “min_year”
- [cosmetic] “search_vehicles” reworded the description of “page”
- [cosmetic] “search_vehicles” reworded the description of “page_size”
- [cosmetic] “search_vehicles” reworded the description of “query”
- [cosmetic] “search_vehicles” reworded the description of “sort”
- [cosmetic] “search_vehicles” reworded the description of “verified_only”
- [cosmetic] Tool “compare_vehicles” changed its title: Compare cars → Compare shortlisted car listings
- [cosmetic] Tool “get_auction_status” changed its title: Auction status → Read public car auction status

### 2026-10-30 (score 72, +1)

- [functional improvement] Stability: unverified → 0.03

### 2026-10-29 (score 71)

First indexed and scored.

## MCP tools (10)

### `search_parts` (~488 tokens)

Search car parts

Find spare-part candidates; use search_vehicles for whole cars and get_part to inspect a selected result.

\- Combine query/category for the item with make/chassis for its vehicle. Narrow ambiguous item text before relaxing known vehicle identity; a catalogue match never certifies fitment.
\- Choose stocked supply or RFQ sourcing deliberately. max_price_bdt limits the item's asking price, not the full purchase budget; check minimum quantity and delivery terms separately. Catalogue-only results need human confirmation.
\- page_size controls review batch size, not total supply. Keep it and the filters fixed while advancing page. Empty results are valid; an uninterpretable Bangla query returns an error. Anonymous searches reserve no stock.

Input parameters:

- `category` (string): Public category label from a catalogue result, e.g. Brakes. Omit if the category is unknown.
- `chassis` (string): Vehicle chassis/model code, e.g. NZE141 or G05; not a full VIN. Narrows candidates and does not certify fitment.
- `in_stock_only` (boolean): True requests currently in-stock candidates; false (default) permits other public availability states. This does not reserve stock.
- `include_rfq_catalogue` (boolean): True also includes catalogue-only templates requiring a human parts request; false (default) omits them. Inclusion does not make an item directly purchasable.
- `make` (string): Vehicle manufacturer, e.g. Toyota; narrows part candidates alongside the query. Omit if unknown.
- `max_price_bdt` (number): Inclusive maximum retail asking price in Bangladesh taka (BDT), e.g. 5000 means ৳5,000; omit for no budget ceiling. Not lakh units and not a currency conversion.
- `page` (integer): One-based results page, 1 through 500; defaults to 1. Increment to retrieve the next page with the same filters.
- `page_size` (integer): Maximum results requested per page, 1 through 20; defaults to 10. total describes all matches, not this page's item count.
- `query` (string): Part name, OEM reference or vehicle words in English, Bangla or Banglish; e.g. 'Axio brake pads' or 'টয়োটা এক্সিও ব্রেক প্যাড'. Omit for filtered browsing; not a part_id lookup.

### `get_part` (~209 tokens)

Get part details

Inspect one spare part's price, supply and fitment evidence after search_parts; use prepare_part_handoff for a human enquiry.

\- part_id selects one catalogue record, not the OEM-number group. If several records share an OEM reference, select the buyer's intended record before lookup; never combine one record's price with another's stock or fitment.
\- A found record can remain unsellable. Read its minimum quantity and required fitment fields before proposing a purchase; missing price or stock means unknown, not zero. An OEM match does not certify fitment.
\- This anonymous lookup refreshes the selected record without reserving supply. If it is missing, search again and reconfirm any replacement with the buyer; a failed lookup does not prove the OEM part unavailable everywhere.

Input parameters:

- `part_id` (string, required): Exact catalogue part_id copied from search_parts, e.g. BRK-AXIO-01. This is JOY's catalogue identifier, not an OEM part number or a product URL.

### `search_vehicles` (~676 tokens)

Search cars for sale

Research retail cars for sale; use get_vehicle for one listing, compare_vehicles for a shortlist or search_auctions to discover auction-event links.

\- Combine the buyer's make/model, fuel, model-year range and budget into one shortlist. verified_only narrows evidence quality, not mechanical warranty; year_desc ranks model year while latest prioritizes verified/newly listed adverts.
\- Decide whether POA cars belong in the shortlist. include_unpriced cannot override min_price_bdt/max_price_bdt; omit both price bounds to retain unknown-price candidates. Asking prices are neither bids nor valuations.
\- page_size sets the review batch; hold it, sort and filters fixed while advancing page. Anonymous live reads may return no matches. Use the selected listing's detail before enquiry; no seller is contacted or car reserved.

Input parameters:

- `fuel_type` (string): Case-insensitive prefix of a public listing's fuel label, e.g. hybrid. Copy a known label where possible; omit to include all fuel types.
- `include_unpriced` (boolean): True includes price-on-application or otherwise unpriced listings; false (default) excludes them. A missing asking price is unknown, never zero.
- `make` (string): Case-insensitive manufacturer prefix, e.g. Toyota. Combine with query='Premio' for that model; omit to include all makes.
- `max_price_bdt` (number): Inclusive maximum stated asking price in Bangladesh taka, e.g. 3000000 means ৳30 lakh. Omit for no maximum; no less than min_price_bdt.
- `max_year` (integer): Inclusive latest model year, 1950 through 2100. Omit for no upper-year filter; supply a value no less than min_year.
- `min_price_bdt` (number): Inclusive minimum stated asking price in Bangladesh taka, e.g. 2000000 means ৳20 lakh. Omit for no minimum; no greater than max_price_bdt.
- `min_year` (integer): Inclusive earliest model year, 1950 through 2100. Omit for no lower-year filter; supply a value no greater than max_year.
- `page` (integer): One-based results page, 1 through 500; defaults to 1. Keep filters and sort unchanged when paging.
- `page_size` (integer): Maximum results requested per page, 1 through 20; defaults to 10. total is the matching population, which may exceed this page's item count.
- `query` (string): Case-insensitive phrase within make, model or trim; use query='Premio' with make='Toyota', not one combined 'Toyota Premio' phrase. Known Bangla/Banglish vocabulary is normalized; unsupported words m…
- `sort` (string): Result order: latest (default: verified first, then newest), price_asc (lowest stated price first), price_desc (highest first), or year_desc (newest model year first). Stable tie-breaks support pagin…
- `verified_only` (boolean): True requires the storefront's verified flag, approved inspection status and a non-empty inspection ID; false (default) also permits other public listings. Verification is not a vehicle warranty.

### `get_vehicle` (~211 tokens)

Get car details

Inspect one car listing's specifications, asking price and inspection evidence after search_vehicles; use compare_vehicles for a shortlist.

\- vehicle_id chooses an advertisement. Use the returned canonical listing_id to join its detail, comparison and enquiry; matching make/model or an ID/slug pair is not evidence of another independent offer.
\- A non-empty auction_id selects a separate event for get_auction; no link means auction status is unknown. Use prepare_vehicle_handoff after selecting the car, rather than treating inspection evidence as a warranty.
\- This anonymous lookup refreshes the advert. Missing facts remain unknown; a missing listing requires a new search. Seller contacts and auction reserve prices stay private, and no car is reserved.

Input parameters:

- `vehicle_id` (string, required): listing_id returned by search_vehicles, or slug from a public JOY listing URL. Use only the ID/slug (letters/digits, dots, underscores, hyphens; starts with a letter/digit), not the URL, VIN or regis…

### `get_auction` (~200 tokens)

Read public car auction status

Read one car auction's current public bid state; search_auctions discovers events and get_vehicle provides the linked car's facts.

\- auction_id binds every bid and deadline to one sale event. Keep that event's listing link beside the result; a bid from another event or the car's retail asking price cannot fill a missing auction value.
\- A saved event may have ended. Check status/end_at and refresh before answering a live-bid question; use minimum_next_bid only when returned.
\- Anonymous snapshots can fail for feature gating, rate limits or unknown events. Report the error; reserve prices and bidder identities stay private. Bidding requires a verified dealer and a human decision outside this tool.

Input parameters:

- `auction_id` (string, required): Copy auction_id from search_auctions or an auction-linked get_vehicle result, or use a known public auction ID supplied by the buyer. Supply the event identifier alone, not a listing_id or URL; never…

### `search_auctions` (~298 tokens)

Discover car auction links

Find auction-event links attached to public cars; use search_vehicles for car specifications and asking prices, or get_auction for one event's bid state.

\- Filter the linked car, not the auction title: make='Toyota' with query='Premio' targets that model's vehicle adverts. Unpriced cars remain eligible because an auction need not have a retail asking price.
\- page_size is a source-scan batch: inspecting 20 adverts can yield zero auction links. Keep batch size and filters fixed; follow next_page even after an empty items page. At the source limit, narrow the car filters instead of claiming an exhaustive search.
\- Results are links, not retail offers or bid snapshots. Source counts describe cars scanned; get_auction checks ended or gated events. Anonymous discovery exposes no private lots and places no bid.

Input parameters:

- `make` (string): Case-insensitive manufacturer prefix, e.g. Toyota; intersects the vehicle query. Omit for all makes.
- `page` (integer): One-based source vehicle page; use returned next_page with unchanged filters. This is not a page of guaranteed auction matches.
- `page_size` (integer): Public vehicle listings inspected per source page. Auction links can be fewer than this value, including zero.
- `query` (string): Make/model/trim phrase for candidate vehicles, e.g. Premio; omit to scan all public listings. Known Bangla/Banglish vocabulary is normalized.

### `compare_vehicles` (~207 tokens)

Compare shortlisted car listings

Compare a selected car shortlist; use search_vehicles to discover candidates or get_vehicle for one car.

\- vehicle_ids chooses the adverts to include, in buyer-selected order; it does not rerun search filters. Resolve ID/slug aliases to distinct listing_id values. Repeating an advert must not create extra price evidence or imply another vehicle.
\- Keep unknown-price candidates visible when the buyer still wants to consider them. A cheapest result ranks only distinct, known positive prices; inspect price_comparison_complete before describing it as cheapest across the whole shortlist. Asking prices are not valuations.
\- Anonymous fresh lookups can partially fail. Inspect not_found/unavailable and retry temporary failures before excluding a candidate. Use prepare_vehicle_handoff after choosing; comparison reserves nothing.

Input parameters:

- `vehicle_ids` (array, required): Two to four listing_id values from search_vehicles or public listing slugs, not VINs or URLs. Choose distinct listings; repeated IDs or an ID and its slug do not provide separate price evidence.

### `get_buying_guide` (~157 tokens)

Bangladesh buying terms

Read shared Bangladesh retail-parts payment and delivery terms before explaining a purchase; get_part supplies item eligibility and prepare_part_handoff prepares the enquiry.

\- No inputs: the same retail policy applies across items. Reuse it across a shortlist, then refresh before relaying fees; a buyer's address, basket or identity cannot personalize this call.
\- Select the returned delivery zone using the buyer's area. Retail terms do not establish vehicle, auction or trade-credit terms; route car enquiries through prepare_vehicle_handoff.
\- Money objects distinguish BDT from paisa; vat_bps is in basis points. If live_terms_unavailable is true, obtain human confirmation instead of inventing fees. This anonymous read accepts no quote or payment.

### `prepare_vehicle_handoff` (~218 tokens)

Prepare a human car enquiry

Prepare a human enquiry for a selected car; use compare_vehicles before choosing and prepare_part_handoff for spare parts.

\- vehicle_id fixes the advert to enquire about. A slug resolves to canonical listing_id so the link and refreshed asking-price summary refer to the same advert; neither identifies an auction event.
\- note adds the buyer's question to that enquiry, not an instruction to change price or certify condition. It is embedded in the link; omit unnecessary personal details.
\- This anonymous lookup prepares links only. The human reviews and decides whether to send; JOY confirms availability, inspection and terms. No enquiry, booking, reservation, bid, order or payment is made.

Input parameters:

- `note` (string): Optional human enquiry, e.g. request an inspection or confirm availability. Included in the pre-filled link; not submitted by this tool.
- `vehicle_id` (string, required): A selected listing_id from search_vehicles/compare_vehicles, or a public listing slug. Supply only the ID/slug, not a full URL or VIN.

### `prepare_part_handoff` (~312 tokens)

Prepare a human parts enquiry

Prepare a human parts enquiry after search_parts and get_part; use prepare_vehicle_handoff for whole cars and get_buying_guide for retail terms.

\- part_id fixes the selected item; quantity expresses the buyer's request, even below its minimum. Explain any gap rather than changing the request. Quantity times asking price excludes unconfirmed fees and is not an accepted quote.
\- vehicle supplies buyer-provided fitment context; collect missing fields identified by get_part. note qualifies that request but cannot clear fitment restrictions or change eligibility. Never invent vehicle identity.
\- A fresh anonymous lookup prepares links only. Text is embedded in the link, so omit unnecessary personal details. The human reviews and decides whether to send; JOY confirms fitment, stock and price. Nothing opens, reserves, orders or charges.

Input parameters:

- `note` (string): Buyer-supplied question or preference copied into the prepared enquiry, such as a request to confirm delivery or bulk terms.
- `part_id` (string, required): Exact part_id from search_parts/get_part for the selected item; not an OEM reference or product URL. The tool fetches fresh public part detail before composing the links.
- `quantity` (integer): Number of units the buyer wants to enquire about, included in the prepared message. This is a request count, not a stock allocation.
- `vehicle` (string): Buyer-provided make/model/year, chassis or VIN text for JOY's human fitment review. Omit if the buyer has not supplied vehicle information.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-joyautomart-mcp/www#diagnostics

## Score history

- 2026-11-05: 73
- 2026-11-04: 73
- 2026-11-03: 73
- 2026-11-02: 73
- 2026-11-01: 73
- 2026-10-31: 73
- 2026-10-30: 72
- 2026-10-29: 71

## Common questions

### What is the JOY Automart MCP server?

JOY Automart is an MCP server listed in the public MCP registry as com.joyautomart/mcp. Search car parts and used/reconditioned vehicle listings in Bangladesh (BDT prices, stock). This page covers its hosted endpoint (https://www.joyautomart.com/mcp).

### Is the JOY Automart MCP server safe to use?

JOY Automart scores 73 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 JOY Automart MCP server expose?

JOY Automart exposes 10 tools: search_parts, get_part, search_vehicles, get_vehicle, get_auction, and 5 more. Their descriptions and schemas cost roughly 2,976 tokens of context every time the server is loaded.

### Does the JOY Automart MCP server require authentication?

No. We connected to JOY Automart without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the JOY Automart MCP server still maintained?

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

## Links

- Remote endpoint: https://www.joyautomart.com/mcp
- Repository: https://github.com/www-joyautomart-com/mcp-server
- Website: https://www.joyautomart.com/developers
- Changelog RSS feed: https://verifymcp.io/servers/com-joyautomart-mcp/www.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-joyautomart-mcp/www.json
- HTML version of this page: https://verifymcp.io/servers/com-joyautomart-mcp/www
