All docs
MCP Connector

ListCentral for Claude

A remote MCP server that lets Claude work your lot — search inventory, read Marketplace leads, fill in missing vehicle details, and schedule listings and delistings, all against your real dealership data.

Server URL

https://api.listcentral.ai/mcp

Overview

ListCentral is a listing platform for car dealerships. It keeps your inventory, posts it to Facebook Marketplace across the accounts you have connected, and collects the leads that come back. This connector puts that behind a conversation: you ask Claude a question about your lot and it answers from live data, and you ask it to do something and it prepares the work for you to approve.

It is a remote MCP server speaking Streamable HTTP, authorized with OAuth 2.1. There is nothing to install and no API key to paste — you add one URL in Claude, sign in with the ListCentral account you already have, and choose what it may do.

  • 24 tools covering inventory, listings, leads, capacity and scheduling.
  • Everything is scoped to one dealership — the one whose account authorized the connection.
  • Bulk writes are two-step — Claude shows you a plain-English plan and does nothing until you approve it.
  • Claude never drives Marketplace itself — it schedules work for your desktop app, or queues a single action for you to run in your browser.

Requirements

  • A ListCentral account. Sign up at listcentral.ai if you do not have one.
  • A Claude plan that supports custom connectors, and access to Settings → Connectors. On a Team or Enterprise workspace an administrator may need to add it for the organization.
  • At least one Facebook account connected in ListCentral, and a dealership ZIP code set, before any listing work will schedule. Read-only questions need neither.
  • The ListCentral desktop app, if you want scheduled listings to actually post — it is what carries the jobs out. The Chrome extension is needed only for the hands-on actions described below.

Connect it to Claude

  1. 1In Claude, open Settings → Connectors and choose Add custom connector.
  2. 2Paste the server URL https://api.listcentral.ai/mcp and continue. Claude registers itself with ListCentral automatically.
  3. 3Sign in on the ListCentral consent screen with your usual email and password. This is ListCentral's own login — Claude never sees your password.
  4. 4Review the permissions. Read access is selected for you; tick the write permissions you want Claude to have, then approve.
  5. 5Start a conversation and ask something like “what hasn’t sold in 60 days?” to confirm it is working.

Revoking access

Removing the connector in Claude’s settings ends its access immediately. You can also revoke it from your ListCentral account at any time; existing sessions stop working on the next request.

Permissions

The connector is an OAuth 2.1 resource server. Access tokens are short-lived, bound to this connector specifically, and carry only the permissions you granted. Refresh tokens rotate on every use, and a reused one revokes the whole family rather than being honoured.

PermissionWhat it allowsDefault
inventory:readSee the vehicles on your lot, their photos, and your listing capacityGranted by default
listings:readSee what is listed, where, and on which accountsGranted by default
leads:readRead your Marketplace leads and their conversationsGranted by default
listings:writeSchedule listings and delistings, and mark vehicles soldOpt in on the consent screen
inventory:writeUpdate a vehicle's price and fill in blank vehicle fieldsOpt in on the consent screen
actions:writeQueue actions for your ListCentral browser extension to carry outOpt in on the consent screen

Permissions are enforced per tool, per call. A connection granted only read access cannot schedule a listing, change a price, or queue a browser action — the tool refuses rather than asking.

What you can ask

These are ordinary questions, not commands with a syntax. Claude picks the tools.

  • “What hasn’t sold in 60 days?”
  • “List the three cheapest sedans tonight.”
  • “Who asked about the Silverado and hasn’t heard back?”
  • “How many listings can I still post today?”
  • “Which vehicles are missing details that stop them posting — and can you fill in the colours from the photos?”
  • “Draft a description for the 2019 F-150.”
  • “Take down everything listed on the westside account.”
  • “Drop the price on VIN 1FTEW1E… to 28,500.”

Tool reference

Reading

Read tools never change anything. Every row comes back with stable identifiers — VIN, inventoryId, accountId — so Claude can pass a vehicle to the next tool rather than re-describing it.

ToolWhat it doesPermission
search_inventorySearch the lot by make, model, year, price, mileage, body type, days on lot, listed or sold state. Paginated.inventory:read
get_vehicleFull detail for one vehicle by VIN or inventoryId, including where it is listed and any queued delist job.inventory:read
get_vehicle_imagesThe vehicle's actual photographs, so Claude can read colour, body type and door count off them.inventory:read
find_incomplete_vehiclesVehicles that cannot be posted yet, with exactly which required fields are blank and a tally of the commonest gap.inventory:read
get_listing_capacityHow many listings you can still post today, and on which plan.inventory:read
get_credit_balanceImage credit balance, monthly usage and plan.inventory:read
generate_listing_descriptionDraft Marketplace copy for one vehicle from your saved description template. Returns text only; saves nothing.inventory:read
list_marketplace_accountsYour connected Facebook accounts, their groups and shadowban state. Credentials are never returned.listings:read
list_scheduled_jobsQueued listing and delisting jobs with status, target account and run time.listings:read
get_auto_list_settingsWhether auto listing and smart list are on, which accounts and groups are selected, and anything blocking a post.listings:read
get_leadsMarketplace leads, unreplied first, with the vehicle asked about and the last message.leads:read
get_conversationThe full message history for one lead, oldest first.leads:read
get_extension_action_statusWhat became of an action queued to your Chrome extension.actions:write

Planning

Planners write nothing. They work out what would actually happen and hand back a summary plus a planId that the matching write tool requires.

ToolWhat it doesPermission
plan_listing_batchDry run for bulk listing. Resolves which vehicles would post, onto which accounts, at what times, and what would be skipped and why. Returns a planId.listings:write
plan_delist_batchDry run for taking listings down. Resolves which live listings would be removed and from where. Returns a planId.listings:write
propose_vehicle_fieldsValidates proposed field values against what Marketplace accepts and returns a diff for you to approve. Returns a planId.inventory:write

Writing

ToolWhat it doesPermission
schedule_listingsExecutes an approved plan_listing_batch plan. Requires the planId and explicit confirmation.listings:write
schedule_delistExecutes an approved plan_delist_batch plan. Requires the planId and explicit confirmation.listings:write
apply_vehicle_fieldsWrites the field values you approved in propose_vehicle_fields.inventory:write
update_vehicle_priceChanges the asking price on one inventory row. Live listings keep their old price until relisted.inventory:write
mark_vehicle_soldMarks a listing sold and flags the matching inventory row. Safe to call twice.listings:write
set_auto_list_modeTurns auto listing (and optionally smart list) on or off. Enabling requires explicit confirmation.listings:write
set_auto_list_accountsChooses which accounts and groups auto listing posts to. Replaces the whole selection; dropping accounts requires confirmation.listings:write
queue_extension_actionPlaces one action in your Chrome extension for you to run by hand. Performs nothing on its own.actions:write

Approvals and safety

A model asking permission to run {"vins": […42 items], "accountIds": [3, 7]} is not really asking you anything. So the bulk write tools do not accept raw intent at all. The planner resolves it first and tells you what it means:

plan_listing_batch
42 vehicles across 2 accounts, but your daily limit leaves
room for 18, and westside_autos is shadowbanned until Thursday.

Only then does schedule_listings run, and only with that plan’s id plus an explicit confirmation. The same gate covers delisting and field edits.

  • Plans are single-use and expire after ten minutes.
  • A plan carries a fingerprint of the rows it was computed from. If a vehicle sold or was repriced in the meantime, the plan is refused rather than half-executed.
  • The planner tells you what it skipped and why: over the daily cap, shadowbanned account, missing photos, missing required fields, already queued, or no longer on the lot.
  • Turning auto listing on, and dropping accounts from your auto-list selection, each need their own explicit confirmation.

What the connector cannot do

It cannot send Messenger replies, and it cannot post to Marketplace itself. It also cannot see, reach or change any other dealership’s data — every tool resolves your identity from the access token, and no tool accepts a user, dealership or account identifier as an argument.

Filling in missing details

A vehicle with a blank required field cannot be posted at all, and the field most often left blank — colour — is the one nobody can answer from a spreadsheet. So the connector lets Claude look at the car.

find_incomplete_vehicles  →  get_vehicle_images  →  propose_vehicle_fields  →  apply_vehicle_fields
     what is missing          the actual photos        validated diff            the write

get_vehicle_images returns the photographs themselves. Exterior colour, body type and door count come off the first few frames; interiors are shot last, so Claude walks the set backwards one frame at a time and stops as soon as the cabin is visible.

Only five fields may come from a photograph

Exterior colour, interior colour, body type, vehicle type and door count. Mileage, price, stock number, location and condition are matters of record — a value claimed to have been read off a picture for any of them is refused, not merely discouraged. Condition in particular is a claim you are answerable for on a public listing.

Proposed values are resolved to the exact options Marketplace stores, so everyday words work — “Sedan”, “Front-wheel drive”, “Gas” all resolve. A value matching no option is rejected with the allowed list rather than written as a near-miss. Blank fields are filled; a value you already entered is left alone and reported as skipped.

Browser extension actions

Some things need a signed-in browser: importing a vehicle from a listing page, or posting and taking down a single listing by hand. For those, queue_extension_action places one action — described in a single sentence — in your ListCentral Chrome extension.

Queuing is not doing

Nothing happens until you open the extension and press Perform Claude Action. Claude should tell you an action is waiting, never that a vehicle has been imported, posted or delisted. Use get_extension_action_status to see what actually happened. Untouched actions are dropped after 24 hours, and are re-checked against your lot at the moment you run them.
  • scrape_vehicle — import one vehicle from its listing page on AutoTrader, Cars.com, CarGurus, CarsForSale or Manheim. Other sites are refused.
  • scrape_dealer — import a whole dealer roster page, up to 100 vehicles.
  • post_listing — post a vehicle already on the lot to Marketplace.
  • delist_listing — take a live listing down.

For anything covering more than a couple of vehicles, prefer plan_listing_batch and schedule_listings: those run unattended in the desktop app, whereas the extension needs you at the keyboard.

Prompts and attachments

Four saved prompts ship with the connector and appear in Claude’s prompt menu once it is connected:

PromptWhat it does
Morning listing planPicks today's listings from aging inventory, checks capacity first, and prepares a plan for your approval.
Unanswered leadsReviews leads nobody has replied to and drafts responses.
Fill in missing vehicle detailsFinds vehicles blocked by blank fields and works through them photo by photo.
Aging inventory reportSummarises what has been sitting longest and what it is doing about it.

You can also attach a specific vehicle or lead to a conversation from Claude’s attachment menu instead of describing it in prose, using listcentral://vehicle/{vin} and listcentral://lead/{leadId}.

Data handling

  • One dealership, always. Identity is resolved from the verified access token and only from the token. No tool accepts a user, dealership or account identifier as an argument, so there is no parameter to point at someone else’s data.
  • Credentials never leave the server. Facebook passwords, session cookies and Messenger cookies are excluded from every response by allowlist, not by redaction after the fact.
  • What Claude receives is what you asked for: vehicle records, listing state, lead names and message text, and vehicle photographs when a tool that returns images is called.
  • Audit. Every tool call is logged with the tool name, outcome, duration and caller. Arguments are stored only as a short digest — VINs and lead names are not written to the audit log.
  • No session state. Each request is authenticated and handled on its own; nothing is cached between requests or between dealers.
  • Anthropic’s handling of the data Claude receives is governed by your agreement with Anthropic. ListCentral’s handling is governed by your ListCentral agreement.

Limits

LimitValue
Rows per page25 by default, 100 maximum, with a cursor for the next page
Photos per call3 by default, 8 maximum
Plan lifetime10 minutes, single use
Queued extension actionDropped after 24 hours if not run
Daily listingsSet by your ListCentral plan — check get_listing_capacity
Request rateRoughly 60 tool calls a minute, to stop a runaway loop

Prices, mileage and years come back as numbers, and dates as ISO 8601 in UTC, so Claude can compare and sort them without parsing prose.

Troubleshooting

The connector will not add

Check the URL is exactly https://api.listcentral.ai/mcp, with no trailing slash. On a Team or Enterprise workspace, custom connectors may be restricted to administrators.

Claude says it is not authorized

The permission you need was probably not granted at consent. Remove the connector in Claude and add it again, ticking the write permissions you want.

A listing plan refuses to schedule

Scheduling needs a dealership ZIP code and at least one selected Facebook account. Ask Claude to check your auto-list settings — it will report which of the two is missing. Auto listing itself does not need to be on for a batch to schedule.

“That plan has expired”

Plans last ten minutes and are invalidated if your inventory changed. Ask Claude to re-run the planner; the new summary will reflect what is true now.

Nothing posted after I approved a batch

Scheduled jobs are carried out by the ListCentral desktop app. Make sure it is running and signed in, then ask Claude to list your scheduled jobs to see their status.

A vehicle keeps being skipped

It is usually a blank required field, missing photos, or a shadowbanned target account. Ask Claude which vehicles are incomplete — it will tell you exactly which fields each one is missing.

Support

Questions about the connector, or something behaving in a way this page does not explain: