Lets Pick My Car MCP (India car data)
Indian car-buying data for AI assistants: search models and variants, ranked recommendations, on-road prices by state, running costs, loan EMI, sales history.
Hosted MCP Server
npx add-mcp 'https://letspickmycar.com/mcp'Installs into Claude Code, Codex, Cursor and more
Documentation
Start with REST
- Activate developer access using an account with a verified primary email.
- Create an API key. Keep it in your server’s environment as
PMC_API_KEY. - Send it in
Authorization: Bearer …. Never put credentials in a URL.
curl 'https://letspickmycar.com/api/v1/cars?q=brezza&price=onroad&loc=KA' \
-H "Authorization: Bearer $PMC_API_KEY" \
-H 'Idempotency-Key: my-first-car-search'
// Run on your server. Never embed API keys in browser code.
const response = await fetch(
'https://letspickmycar.com/api/v1/recommendations',
{ method: 'POST', headers: {
Authorization: \`Bearer ${process.env.PMC_API_KEY}\`,
'Content-Type': 'application/json',
'Idempotency-Key': 'family-shortlist-1'
}, body: JSON.stringify({ budget: 1500000, gearbox: 'auto',
loc: 'KA', price: 'onroad', seats: 5, charging: 'no' }) }
);
const result = await response.json();
if (!response.ok) throw new Error(result.error.message);
console.log(result.data, result.usage);
import json, os, urllib.request
request = urllib.request.Request(
'https://letspickmycar.com/api/v1/balance',
headers={'Authorization': 'Bearer ' + os.environ['PMC_API_KEY']}
)
with urllib.request.urlopen(request) as response:
print(json.load(response)) # Balance checks cost 0 credits.
Connect through MCP
Activate the Free plan first. Add https://letspickmycar.com/mcp as a remote Streamable HTTP server in your client. Complete browser sign-in with the same account. API keys also work in clients that support an Authorization header.
The server supports stateless calls and a legacy stateless compatibility path. It does not provide SSE sessions, background tasks or push notifications. Client support varies; client-specific instructions and verification status are shown below.
Try: “Find five automatic family cars under ₹15 lakh on-road in Karnataka. Explain the tradeoffs and link your sources.” The assistant can discover the tools, read pmc://reference for valid inputs and call get_credit_balance for free.
Each successful tool call costs one credit. MCP discovery and reference resources cost zero. For a retry, reuse the optional requestKey with identical arguments within 24 hours; a new question needs a new key.
Connect ChatGPT
- Sign in and explicitly activate the Free plan in Developer access before connecting.
- In ChatGPT Plugins, choose Add custom MCP server, enter
https://letspickmycar.com/mcp, and select OAuth. Availability depends on your ChatGPT account and workspace settings. - Complete browser consent with the same Let’s Pick My Car account. Never paste an API key or password into chat.
A public directory listing is being prepared and is not yet published. Live ChatGPT compatibility is still being verified. Research calls share your 50 monthly credits with REST and other connected assistants. Balance and reference lookup tools cost zero credits.
Ask for your budget, registration state and exact variants. Results cover the published Indian catalogue. Revoking a connection in Developer access blocks that client for your account; reconnecting does not remove the block. Contact support if you deliberately want access restored.
API reference
OpenAPI 3.1 specification · Brands, locations, features and filter values
All paths below start with /api/v1. Lists default to 10 results, maximum 20 per page. Recommendations return up to five matches; sales requests return up to 12 months.
GET /cars
Search car models by text, brand, fuel and budget.
MCP: search_cars · 1 credit
GET /cars/{carId}
Get a sourced car overview, recommended picks and safety scope.
MCP: get_car · 1 credit
GET /cars/{carId}/variants
List exact variants of a model, with prices and powertrains.
MCP: list_variants · 1 credit
GET /cars/{carId}/variants/{variantId}
Get exact equipment, scoped safety and estimated pricing for one variant.
MCP: get_variant · 1 credit
POST /recommendations
Shortlist up to five cars using budget, needs and charging access.
MCP: recommend_cars · 1 credit
POST /variant-recommendations
Recommend up to five variants within one model, with reasons and unmet preferences.
MCP: recommend_variants · 1 credit
POST /comparisons
Compare two or three exact variants side by side.
MCP: compare_cars · 1 credit
POST /variant-upgrades
Compare the cost and equipment gained or lost between two variants of one model.
MCP: compare_variant_upgrade · 1 credit
POST /pricing/on-road
Estimate a catalogue variant's on-road cash outlay in a registration jurisdiction.
MCP: estimate_on_road_price · 1 credit
POST /pricing/states
Rank initial on-road cash outlay for one exact variant across all 36 jurisdictions; preserve tax periods and unsupported estimates.
MCP: compare_state_prices · 1 credit
POST /calculators/running-cost
Calculate energy costs and optional break-even between two fuel or charging scenarios.
MCP: calculate_running_cost · 1 credit
POST /calculators/emi
Calculate EMI, total interest and the effective rate of a flat or reducing-balance car loan.
MCP: calculate_emi · 1 credit
GET /rankings
Read methodology-based budget rankings; scores are not road-test results.
MCP: get_rankings · 1 credit
GET /sales/{familyId}
Get up to 12 dated monthly sales observations for a model family, including grouping and source scope.
MCP: get_sales_history · 1 credit
Authenticated GET /balance and GET /usage cost zero credits. Usage returns the latest 100 records within 90 days. Public reference metadata and OpenAPI require no key.
A three-call buying workflow
- Call
recommend_carswith budget, location and preferences. Save the returned exact car and variant IDs. - Pass two or three of those references to
compare_cars. - Call
estimate_on_road_pricefor the selected variant and registration location.
This costs three credits. Include our attribution and the returned guide/source links when showing results.
Credits, retries and errors
- 50 credits on activation, renewed monthly on the same UTC anniversary. Short months use their last day; unused credits expire.
- Every successful bounded result costs one credit, including a valid search with no matches. Comparing three variants or all states still costs one credit.
- Validation failures, missing resources and server errors do not charge credits. Rate limits still apply.
- Use
Idempotency-Keyfor REST retries within 24 hours. Reusing it with different inputs returns409 IDEMPOTENCY_CONFLICT. Without a retry key, a repeated request is a new billable call. - All authenticated REST and MCP requests share a 120-request per-minute account limit, including invalid requests. Metered calls allow 10 requests per minute per account. Authenticated control/MCP transport requests allow 60 per minute; the response supplies retry guidance when limited.
429 CREDITS_EXHAUSTEDincludes your renewal time.429 RATE_LIMITEDmeans retry after the indicated delay.
Successful responses contain data, assumptions, datasetRevision, attribution, requestId and usage. Money is in INR rupees. Credit metadata is private and must not be shared through a public response cache.
Interpret the data correctly
Default pricing is estimated Karnataka on-road. Pass price=ex for ex-showroom prices and loc for a registration jurisdiction. Estimates are for new privately owned cars; registration eligibility and local charges need confirmation. State rankings compare initial cash outlay, including the reported tax period, rather than lifetime cost.
Keep unknown values as null. Preserve source check dates, crash-rating applicability and EV charging assumptions. Sales figures can cover several related models and always identify the reporting month and family.
Lakshadweep estimates require local confirmation and return no verified on-road total. Use ex-showroom mode for catalogue search or recommendations there.