Search / com.joyautomart/mcp
JOY Automart
R0· no sign-inSearch car parts and used/reconditioned vehicle listings in Bangladesh (BDT prices, stock).
v1.2.0 · active · repository · website · descriptor JSON · versions
Search / com.joyautomart/mcp
R0· no sign-inSearch car parts and used/reconditioned vehicle listings in Bangladesh (BDT prices, stock).
v1.2.0 · active · repository · website · descriptor JSON · versions
{
"mcpServers": {
"joyautomart": {
"type": "http",
"url": "https://www.joyautomart.com/mcp",
"headers": {
"Authorization": "Bearer ${JOYAUTOMART_TOKEN}"
}
}
}
}claude mcp add --transport http joyautomart https://www.joyautomart.com/mcp --header "Authorization: Bearer ${JOYAUTOMART_TOKEN}"[mcp_servers.joyautomart]
url = "https://www.joyautomart.com/mcp"
bearer_token_env_var = "JOYAUTOMART_TOKEN"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"joyautomart": {
"type": "remote",
"url": "https://www.joyautomart.com/mcp",
"enabled": true,
"headers": {
"Authorization": "Bearer {env:JOYAUTOMART_TOKEN}"
}
}
}
}{
"mcpServers": {
"joyautomart": {
"type": "http",
"url": "https://www.joyautomart.com/mcp",
"headers": {
"Authorization": "Bearer ${JOYAUTOMART_TOKEN}"
}
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=joyautomart&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vd3d3LmpveWF1dG9tYXJ0LmNvbS9tY3AiLCJoZWFkZXJzIjp7IkF1dGhvcml6YXRpb24iOiJCZWFyZXIgJHtKT1lBVVRPTUFSVF9UT0tFTn0ifX0%3D"
}{
"servers": {
"joyautomart": {
"type": "http",
"url": "https://www.joyautomart.com/mcp",
"headers": {
"Authorization": "Bearer ${JOYAUTOMART_TOKEN}"
}
}
}
}{
"mcpServers": {
"joyautomart": {
"httpUrl": "https://www.joyautomart.com/mcp",
"headers": {
"Authorization": "Bearer ${JOYAUTOMART_TOKEN}"
}
}
}
}extensions:
"joyautomart":
enabled: true
name: "joyautomart"
type: streamable_http
uri: "https://www.joyautomart.com/mcp"
headers:
"Authorization": "Bearer ${JOYAUTOMART_TOKEN}"
timeout: 300
Placeholders to fill from your own secret store: ${JOYAUTOMART_TOKEN}. The registry never accepts secret values.
protocol.modernsupports 2026-07-28 (server/discover)protocol.statelessanswers without a sessionprotocol.transportstreamable HTTPprotocol.list_ttltool list is cacheable (ttlMs 300000)auth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptionsevery tool has a descriptiontools.description_lengthdescriptions are concisetools.schemasevery tool has an object input schematools.annotations10 of 10 tools declare readOnlyHint or destructiveHinttools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHinttools.token_costabout 4,301 tokens to load every tooltools.api_dumptools are not a one-to-one API dumpstability.changes39 tool changes in 30 daysstability.rug_pull27 tools kept their name but changed most of their description in 30 days; review before trusting themdeps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI packageprepare_part_handoffchangedtitle, descriptionPrepare product and pre-filled WhatsApp links for a human parts enquiry; use prepare_vehicle_handoff for whole cars. - First search_parts, then get_part, then copy the selected part_id here. Use get_buying_guide for general terms. Ask the buyer for missing fitment fields identified by get_part; never invent vehicle identity to complete an enquiry. - Keep quantity as the buyer's requested count, even below the published minimum: explain the gap rather than silently raising it. vehicle supplies fitment context; note can request confirmation but cannot override returned restrictions. Unit price times quantity is not an accepted quote. - Anonymous fresh lookup. Text is embedded in the link, so omit unnecessary personal details. Nothing opens, sends, reserves, orders or charges; the human decides whether to send and JOY confirms eligibility, fitment, stock and price.
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.
prepare_vehicle_handoffchangeddescriptionPrepare a listing link and pre-filled WhatsApp enquiry for a human considering one car; use prepare_part_handoff for spare parts and compare_vehicles before choosing between cars. Choose vehicle_id from a shortlisted listing, not an auction ID. A slug is resolved to the canonical listing_id before the message is composed. note records the buyer's request; it cannot change the asking price, certify condition or authorize a bid. The link embeds the note, so omit unnecessary personal details. Anonymous fresh lookup. This is the endpoint of the public research workflow: the human decides whether to open and send the enquiry, then JOY confirms availability, inspection and terms. No seller contact, booking, reservation, bid, order or payment is performed.
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.
get_buying_guidechangeddescriptionmeaning changedRead published Bangladesh retail-parts payment, delivery and human-contact terms before explaining a purchase. - Call {}. These terms come from the public retail-marketplace configuration, not a product, address or buyer account. Product choice cannot personalize this call: get_part supplies item eligibility and prepare_part_handoff prepares the enquiry. - Apply the returned zones after learning the buyer's area; confirm quantity/fitment separately from get_part. Retail checkout terms do not establish vehicle, auction or trade-credit terms; route car questions through prepare_vehicle_handoff. - Anonymous live read. Money objects separate major BDT from minor paisa; vat_bps uses basis points. If live_terms_unavailable=true, ask the human team rather than invent fees. The result is guidance, not an accepted quote; no payment or message starts.
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.
search_auctionschangeddescriptionmeaning changedDiscover existing public car-auction IDs for get_auction; use get_vehicle for a known listing's details. - Express the desired car, not an auction title or bid: make='Toyota' scans that manufacturer's listings; add query='Premio' only for a model-specific request. Unpriced cars remain eligible because an auction need not have an asking price. - Pagination scans vehicles before extracting their links. Follow next_page even after an empty items page; claim the scan exhausted only when no next page remains and the source limit was not reached. At the limit, narrow the vehicle filters. Source counts are not auction counts. - Anonymous live read. Check each selected auction's current availability with get_auction; a link may be ended or feature-gated. No private lot is exposed or bid placed.
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.
get_auctionchangeddescriptionObserve one car auction's public bid state; search_auctions discovers IDs and get_vehicle supplies the linked car's facts. - Select auction_id from the same discovery/detail record as the car being discussed. It identifies a sale event, not the vehicle advertisement: never substitute listing_id or carry a bid between auction IDs. - A saved event ID does not imply an open auction. Read status/end_at and refresh the snapshot before answering a bid question. minimum_next_bid is optional; an asking price cannot fill a missing bid value. - Anonymous observation only. Feature gating, rate limits or an unknown event can return errors; report them without bypass. Reserves and bidder identities stay private. Bidding requires a verified dealer and human decision outside this tool.
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.
get_vehiclechangeddescriptionmeaning changedRead a car listing's public specifications, asking price and inspection evidence; search_vehicles discovers candidates and compare_vehicles compares them. - Resolve an ID or slug to the returned canonical listing_id before counting offers. It identifies an advertisement; multiple advertisements do not establish independent inspection evidence. - Pass a non-empty auction_id to get_auction; an absent link means unknown auction status. Use search_auctions for discovery and prepare_vehicle_handoff for a selected car's human enquiry. - Anonymous fresh lookup. Missing facts stay unknown; a not-found listing requires a fresh search. Seller contacts and reserve prices stay private, and nothing is reserved.
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.
search_vehicleschangeddescriptionmeaning changedDiscover cars for sale in JOY Auto Exchange; use get_vehicle for detail, compare_vehicles for a shortlist or search_auctions for auction links. - Separate manufacturer and model: make='Toyota', query='Premio', max_price_bdt=3000000 expresses a Premio within 30 lakh. Filters intersect; a single 'Toyota Premio' phrase can miss a listing whose fields store those words separately. - Choose a priced-budget search or POA discovery deliberately. include_unpriced does not cancel numeric price bounds; omit both bounds when unknown-price cars must remain candidates. Asking prices are neither bids nor valuations. - Anonymous live read. Keep filters/sort fixed while paging; empty results are valid and missing prices remain unknown. Verification is inspection evidence, not a warranty. No seller is contacted or car reserved.
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.
get_partchangeddescriptionmeaning changedRead one spare part's public price, availability and fitment restrictions; search_parts supplies its ID. - Copy the selected part_id unchanged. An OEM match can identify several catalogue entries: keep each entry's price, stock and fitment evidence together instead of borrowing facts from another matching entry. - A found item can remain unsellable. Use its minimum quantity and required fitment information when discussing an enquiry through prepare_part_handoff; unknown price or stock is not zero. - Anonymous fresh lookup; no supply is reserved or fitment certified. On a missing-ID error, search again rather than declaring the OEM part unavailable everywhere.
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.
search_partschangeddescriptionmeaning changedFind spare-part candidates in JOY's Bangladesh catalogue; use search_vehicles for whole cars. - Build filters from the buyer's intent: query names the item or OEM reference; make/chassis identify its vehicle. For example, combine Toyota, NZE141 and 'brake pads'. If nothing matches, clarify item text/category before changing a known vehicle identity. - Ask whether the buyer needs stocked supply or human sourcing before choosing the stock/RFQ flags. A catalogue-only match is an enquiry candidate, not a confirmed offer. Keep the chosen filters fixed while paging. - Anonymous live read. Empty results are valid; an uninterpretable Bangla query returns an error. Read get_part for the selected part_id, then prepare_part_handoff after fitment review. Search does not reserve stock.
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.
prepare_buyer_handoffremovedPrepare product and pre-filled WhatsApp links for a human parts enquiry; use get_buying_guide for general purchase terms. Quantity, vehicle and note annotate the request: quantity neither turns the catalogue price into a payable quote nor satisfies minimum-order rules. Vehicle/VIN text requests fitment review; it does not prove compatibility. Review the returned restrictions before offering the link, and do not let a free-text note override them. Provided vehicle/note text is embedded in the link, so omit unnecessary personal details. Anonymous fresh part lookup. Creating links opens or sends nothing and does not create an RFQ, order, reservation or charge. The human decides whether to send; JOY must confirm eligibility, stock, fitment and price.
Showing the latest 10. 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.
+repository +dns-namespace +website +reachable +uptime-100% +updated-9d-ago
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://www.joyautomart.com/mcp streamable-http | none | yes | 100% | 920 ms | 2026-07-28, 2025-11-25, 2025-06-18, 2025-03-26 | 2026-11-07 |
compare_vehiclesread-only | 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. |
get_auctionread-only | 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. |
get_buying_guideread-only | 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. |
get_partread-only | 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. |
get_vehicleread-only | 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. |
prepare_part_handoffread-only | 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. |
prepare_vehicle_handoffread-only | 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. |
search_auctionsread-only | 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. |
search_partsread-only | 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. |
search_vehiclesread-only | 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. |
Schemas: list_tools.
{
"name": "com.joyautomart/mcp",
"title": "JOY Automart",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://www.joyautomart.com/mcp",
"type": "streamable-http",
"headers": [
{
"name": "Authorization",
"isSecret": true,
"description": "Optional buyer token: 'Bearer joyagt_...'"
}
]
}
],
"version": "1.2.0",
"repository": {
"url": "https://github.com/www-joyautomart-com/mcp-server",
"source": "github"
},
"websiteUrl": "https://www.joyautomart.com/developers",
"description": "Search car parts and used/reconditioned vehicle listings in Bangladesh (BDT prices, stock)."
}