Car Dealer Tracker MCP

Acesso somente leitura via MCP ao inventário, lucro, despesas, vendas, dívidas e caixa de uma concessionária de carros usados.

Servidor MCP hospedado

npx add-mcp 'https://mcp.cardealertracker.app/mcp'

Instala no Claude Code, Codex, Cursor e outros

Documentação

Seu pátio dentro do ChatGPT, Claude ou Gemini — não um chatbot acoplado ao site.

Use quando você já gerencia o pátio no Car Dealer Tracker e quer que o assistente responda com base nos seus números e faça uma alteração confirmada sem abrir o aplicativo.

O agente pode (disponível hoje)

  • Ler unidades em estoque, capital investido, dias médios em estoque e o prazo mais longo.
  • Consultar um veículo por marca, modelo, VIN, número de estoque ou status.
  • Resumir receita, lucro e despesas de um período, e listar vendas, dívidas e caixa.
  • Preparar uma atualização confirmada de veículo ou despesa quando gravações controladas chegarem à sua conta (veja a nota sobre o lançamento de gravações abaixo).

O agente não pode

  • Fechar uma venda, alterar o custo de compra ou marcar um veículo como vendido — isso permanece no fluxo de vendas do aplicativo.
  • Criar, editar ou excluir dívidas, pagamentos, contas financeiras, recibos ou totais calculados de relatórios.
  • Conectar no plano gratuito, ou com sessão de convidado/anônimo.
  • Ignorar permissões da equipe, ver outra concessionária ou aplicar uma alteração sem sua confirmação.
  • Aplicar uma gravação hoje: gravações controladas estão sendo lançadas gradualmente após validação de segurança e ainda não estão habilitadas para a maioria das contas.

Feito para concessionários que já vivem no chat.

Os mesmos números que você confia no aplicativo — idade do estoque, lucro real, caixa, dívidas — além de edições confirmadas de veículos e despesas no assistente que você já usa.

Pré-visualize, depois confirme

Cada gravação mostra o registro exato e os valores antes/depois. Nada é aplicado até que você diga sim a essa pré-visualização.

Somente sua concessionária

Entre com a conta do Car Dealer Tracker. Os tokens são vinculados ao seu usuário e organização.

Desconexão em um toque

Toda conexão aparece em Conta → Integrações de IA. Revogue lá e o assistente perde o acesso.

Restrito ao Pro

Conexões de IA fazem parte do Dealer Pro. Faça upgrade no aplicativo ou na página de preços e depois conecte.

Adicione o plugin Car Dealer Tracker ao ChatGPT, Claude ou Gemini.

A mesma URL MCP alimenta os plugins do ChatGPT, Claude e Gemini, além de Cursor e Claude Code. Depois de adicionar, entre com o e-mail e senha do aplicativo e toque em Permitir.

  1. Abra Plugins na barra lateral do ChatGPT (chatgpt.com/plugins) e pesquise por Car Dealer Tracker.
  2. Adicione Car Dealer Tracker e entre com seu e-mail e senha de concessionário, Google ou Apple.
  3. Toque em Permitir e ative o plugin no chat. O ChatGPT agora pode ler o pátio. Atualizações confirmadas de veículos e despesas chegam com o lançamento de gravações controladas.
  4. Se seu plano ou espaço de trabalho não mostrar plugins, escolha Configurações → Apps e Conectores → Criar e cole a URL MCP.
https://mcp.cardealertracker.app/mcp
  1. No Claude: Configurações → Conectores. Adicione Car Dealer Tracker se estiver listado, ou Adicionar conector personalizado e cole a URL MCP.
  2. Salve, depois Conectar e entre.
  3. No Claude Code, execute o comando à direita e complete o login no navegador quando solicitado.
claude mcp add --transport http car-dealer-tracker https://mcp.cardealertracker.app/mcp
  1. Abra Configurações do Cursor → MCP.
  2. Adicione um novo servidor com o JSON à direita.
  3. Reinicie o Cursor se necessário e complete o login do Car Dealer Tracker no navegador.
{
  "mcpServers": {
    "car-dealer-tracker": {
      "url": "https://mcp.cardealertracker.app/mcp"
    }
  }
}
  1. Adicione Car Dealer Tracker se o Gemini listar o plugin, ou adicione um servidor MCP personalizado e cole a mesma URL.
  2. Complete o login do Car Dealer Tracker e toque em Permitir.
  3. Faça perguntas sobre estoque e lucro, ou solicite uma alteração confirmada de veículo ou despesa, nesse chat do Gemini ou no Gem.
https://mcp.cardealertracker.app/mcp

Leia o pátio ao vivo. Gravações aguardam pré-visualização e seu sim explícito.

Leituras são ao vivo da sua concessionária. Gravações controladas (pré-visualização, sua confirmação e depois aplicação) estão em lançamento controlado após validação de segurança — quando sua conta as receber, toda gravação ainda mostra os valores exatos antes/depois primeiro. Se uma permissão no aplicativo ocultar custo ou lucro de um papel da equipe, o MCP respeita as mesmas regras. Vendas, dívidas, contas e pagamentos permanecem no aplicativo.

get_inventory_summary

Contagens por status, capital em estoque, dias médios e máximos em estoque e taxa de venda em 90 dias.

list_vehicles

Pesquise o pátio por marca, modelo, VIN, número de estoque ou status. Mais recentes primeiro.

get_vehicle

Um veículo por UUID exato, incluindo updated_at, antes de uma alteração confirmada.

get_profit_summary

Receita, lucro e despesas dos últimos 30/90/180 dias, este mês, este ano ou um intervalo personalizado.

list_sales

Vendas recentes de veículos com valor, lucro (se permitido) e nome do veículo. Somente leitura.

list_expenses

Gastos com reforma e administrativos, mais recentes primeiro, filtráveis por categoria e data.

get_expense

Uma despesa por UUID exato, incluindo updated_at, antes de uma alteração confirmada.

list_debts

Contas a pagar e a receber com saldo restante, datas de vencimento e flags de atraso. Somente leitura.

get_accounts_overview

Saldos de caixa e contas financeiras agrupados por tipo de conta. Somente leitura.

preview_vehicle_update / apply_vehicle_update

Lançamento controlado: atualiza campos de veículo na lista de permissões após você confirmar o antes/depois exato. Não pode marcar um veículo como vendido.

preview_expense_create / apply_expense_create

Lançamento controlado: adiciona uma despesa após você confirmar valor, data, categoria e veículo. Sem vinculação de conta ou recibos.

preview_expense_update / apply_expense_update

Lançamento controlado: edita uma despesa não vinculada após você confirmar o antes/depois. Despesas vinculadas a contas permanecem no aplicativo.

preview_expense_delete / apply_expense_delete

Lançamento controlado: exclusão suave de uma despesa não vinculada após você confirmar o registro exato.

Endpoint, ferramentas, erros e limites.

Para desenvolvedores e revisores de conectores. Descreve o servidor de produção em mcp.cardealertracker.app em 6 de outubro de 2026. Todas as nove ferramentas públicas são somente leitura.

Conexão

Endpoint

https://mcp.cardealertracker.app/mcp

Transporte

MCP Streamable HTTP: JSON-RPC 2.0 via POST, mensagens únicas ou em lote. Versões de protocolo 2025-06-18 (padrão), 2025-03-26 e 2024-11-05.

Autorização

OAuth 2.1 código de autorização com PKCE (S256). Descoberta em /.well-known/oauth-protected-resource e /.well-known/oauth-authorization-server em mcp.cardealertracker.app. Registro dinâmico de cliente em /register; autenticação no endpoint de token none ou client_secret_post.

Escopo

dealer:read. O escopo dealer:write pertence ao lançamento de gravações controladas e é emitido apenas para concessionárias habilitadas nele.

Tokens

Token de acesso: 1 hora. Token de atualização: 30 dias, substituído a cada atualização. Revogação em /revoke.

Login

E-mail e senha do Car Dealer Tracker, Google ou Apple. Contas de convidado não podem conectar.

Conta

O usuário deve pertencer a uma concessionária com plano Dealer Pro ativo. A associação é verificada em cada solicitação; uma mudança de plano tem efeito em cerca de um minuto.

Ferramentas

Toda ferramenta retorna um objeto JSON. Sem período ou from, get_profit_summary, list_sales e list_expenses cobrem os últimos 90 dias.

Permissão da equipe

view_inventory

Entradas

  • status: string, opcional. owned, on_sale, available, reserved, in_transit, under_service ou sold
  • search: string, opcional. Marca, modelo, VIN ou número de estoque, até 80 caracteres
  • limit: inteiro 1–100, padrão 50

Retorna

count e vehicles[], mais recentes primeiro: id, inventory_id (número de estoque), name, trim, year, vin, mileage, status, exterior_color, purchase_date, purchase_price, asking_price, sale_price, sale_date, days_in_stock.

Permissão da equipe

view_inventory

Entradas

  • vehicle_id: UUID, obrigatório

Retorna

vehicle: id, updated_at, inventory_id, vin, make, model, trim, engine, exterior_color, year, mileage, status, notes, asking_price, retail_value, wholesale_value, purchase_price, purchase_date.

Permissão da equipe

view_inventory

Entradas

Nenhuma

Retorna

total_vehicles, active_inventory, by_status, capital_invested_in_active_inventory, average_days_in_stock, longest_days_in_stock, sold_last_90_days, average_days_to_sell_last_90_days. Conta os 2.000 registros de veículos mais recentes.

Permissão da equipe

view_financials

Entradas

  • period: last_30_days, last_90_days, last_180_days, this_month, this_year ou all
  • from, to: AAAA-MM-DD, opcional. from substitui period; to assume hoje por padrão

Retorna

period, from, to, sales_count, vehicle_sales_count, part_sales_count, total_revenue, vehicle_revenue, part_revenue, part_profit, total_profit, vehicle_profit, average_profit_per_sale, best_sale, worst_sale, total_expenses.

Permissão da equipe

view_financials

Entradas

  • from, to: AAAA-MM-DD, opcional
  • limit: inteiro 1–200, padrão 50

Retorna

count e sales[], mais recentes primeiro: id, date, amount, profit, vehicle, buyer_name, notes.

Permissão da equipe

view_expenses

Entradas

  • category: string, opcional, correspondência parcial até 60 caracteres
  • from, to: AAAA-MM-DD, opcional
  • limit: inteiro 1–200, padrão 50

Retorna

count e expenses[], mais recentes primeiro: id, date, amount, category, description, vehicle_id.

Permissão da equipe

view_expenses

Entradas

  • expense_id: UUID, obrigatório

Retorna

expense: id, updated_at, amount, date, description, category, expense_type, vehicle_id.

Permissão da equipe

view_financials

Entradas

  • unpaid_only: booleano, padrão true
  • limit: inteiro 1–200, padrão 100

Retorna

count, total_payable_remaining, total_receivable_remaining, overdue_count e debts[] por data de vencimento: id, counterparty, direction, amount, remaining, paid, due_date, overdue, notes.

Permissão da equipe

view_financials

Entradas

Nenhuma

Retorna

count, total_balance, balance_by_type e accounts[]: id, type, balance. Até 200 contas.

Ferramentas de gravação (lançamento controlado)

  • As oito ferramentas preview_* e apply_* não estão em tools/list para conexões públicas. Elas aparecem apenas quando a concessionária está habilitada no lançamento controlado e a conexão aprovou dealer:write.
  • Ferramentas preview_* não alteram nada. Retornam o registro exato, valores antes/depois, avisos e um token de pré-visualização válido por 10 minutos.
  • Ferramentas apply_* são gravações. Precisam do token de pré-visualização não modificado e de uma chave de idempotência de 8–128 caracteres, e o assistente deve obter uma nova confirmação explícita do usuário primeiro. apply_vehicle_update, apply_expense_update e apply_expense_delete são marcadas como destrutivas; excluir uma despesa é uma exclusão suave.
  • Nenhuma ferramenta processa pagamentos, envia mensagens ou movimenta dinheiro.

Erros

Erros HTTP são retornados antes de qualquer ferramenta ser executada. Uma ferramenta com falha retorna um resultado JSON-RPC normal com isError: true e uma mensagem curta.

401 invalid_token

O token de acesso está ausente, expirado, revogado ou emitido para outro recurso. WWW-Authenticate aponta para os metadados do recurso protegido: atualize o token ou entre novamente.

403 access_revoked

O usuário não pertence mais à concessionária.

403 pro_required

A concessionária não tem plano Dealer Pro ativo.

503 pro_check_unavailable

A verificação do plano está temporariamente indisponível. Tente novamente mais tarde.

400 · -32700 / -32600

O corpo não é JSON, ou não é uma solicitação JSON-RPC.

-32601

Método JSON-RPC desconhecido.

permission_denied: <permission>

O papel do usuário na equipe não permite estes dados: view_inventory, view_expenses ou view_financials.

vehicle_id_must_be_a_uuid · expense_id_must_be_a_uuid

O ID não é um UUID. Encontre-o com list_vehicles ou list_expenses primeiro.

vehicle_not_found · expense_not_found

Nenhum registro desse tipo nesta concessionária. Registros de outras concessionárias são relatados da mesma forma.

vehicle_lookup_failed · expense_lookup_failed

Erro temporário de banco de dados. Tente novamente.

Unknown tool: <name>

A ferramenta não está disponível para esta conexão.

Campos que o papel do usuário não pode ver são omitidos do resultado, não definidos como zero: custo de compra e capital (view_vehicle_cost), lucro (view_vehicle_profit, view_part_profit) e totais de despesas (view_expenses).

Limites de taxa

Visualizações da página de autorização

60 por hora

Tentativas de login com e-mail e senha

20 por hora

Tentativas de login com Google ou Apple

20 por hora

Solicitações de token (/token)

60 por minuto

Revogação (/revoke)

60 por minuto

Limites contados por endereço de rede do cliente. Acima do limite, o servidor responde 429; se o limite não puder ser verificado, responde 503 e não deixa passar nada. Chamadas de ferramentas em /mcp não têm cota separada; cada resultado é limitado pelo parâmetro limit.

Convenções de dados

  • Os valores são números na moeda local da concessionária, arredondados para duas casas decimais. O servidor não converte moedas.
  • As datas estão no formato AAAA-MM-DD. Contagens de dias e períodos predefinidos usam UTC.
  • Os resultados vêm tanto como structuredContent quanto como texto JSON em content.
  • Cada ferramenta declara readOnlyHint, destructiveHint, idempotentHint e openWorldHint: false, e seu escopo OAuth em securitySchemes.
  • Ferramentas de leitura nunca alteram registros da concessionária. Uma solicitação apenas atualiza o horário do último uso da conexão.

Copie um prompt. Cole-o no chat conectado.

Esses prompts informam ao agente quais ferramentas chamar e como responder — como um revendedor de carros usados experiente, não um chatbot genérico.

Briefing do pátio

Abra o dia com estoque, tempo de permanência e caixa em uma única resposta.

You are connected to Car Dealer Tracker over MCP. Do not guess numbers.

Give me this morning's dealership briefing:
1. Call get_inventory_summary. Report units in stock, capital invested, average days in stock, and the longest hold.
2. Call list_vehicles with status owned (or available/on_sale if that is how my lot is tagged) limited to 20. Flag anything over 40 days.
3. Call get_accounts_overview and list_debts with unpaid_only true. Note overdue items.
4. Answer in a tight dealer briefing: what needs a price cut, what is healthy, and what cash pressure exists today.

Diagnóstico de estoque envelhecido

Encontre carros que estão prendendo dinheiro e o que fazer com eles.

Using Car Dealer Tracker MCP tools only:

Call get_inventory_summary, then list_vehicles with a high limit.
Identify the slowest units (longest days in stock / held). For each, state make, model, year if present, days held, and a recommended action: keep, cut price, wholesale, or recon-check.
Do not invent asking prices. If a field is missing, say so. End with the three cars that most need a decision this week.

O P&L real deste mês

Receita, lucro e despesas — não uma história de preço de venda.

Using Car Dealer Tracker MCP:

Call get_profit_summary for this_month and last_30_days.
Call list_sales for this month and list_expenses for this month.
Summarize: revenue, expenses, profit, number of deals, and average profit per deal if the data allows.
Call out the best and worst deals by profit. If profit is hidden by my role, say that instead of estimating.

Caixa, dívidas, vencidos

O que devemos, o que nos devem e o que está atrasado.

Using Car Dealer Tracker MCP:

Call get_accounts_overview and list_debts with unpaid_only true.
Split money we owe vs money owed to us. Flag overdue items with due dates.
Tell me the cash picture in plain dealer language: can I buy another car this week, or should I collect first?

Caça a vazamentos de despesas

Onde reformas e custos fixos estão corroendo a margem.

Using Car Dealer Tracker MCP:

Call list_expenses for last_30_days (use from/to as YYYY-MM-DD for the last 30 days) with a high limit, and get_profit_summary for last_30_days.
Group spend by category. Point at the three categories that moved the most money.
If a vehicle is attached to a large expense, name it. Suggest one cost to question this week. Do not invent receipts.

O que impulsionar hoje

Uma lista curta para o salão de vendas.

Using Car Dealer Tracker MCP:

Call get_inventory_summary and list_vehicles for on_sale and owned/available stock.
Build a sales-floor list of 5 vehicles to push today. Prefer aging units and anything that has been sitting.
For each: why this one, who it might fit (body style / likely buyer if the record supports it), and one talking point from the record.
If data is thin, say so. Do not invent buyers or prices.

Velocidade de vendas

Quão rápido estamos girando os carros agora.

Using Car Dealer Tracker MCP:

Call get_inventory_summary and list_sales for last_90_days with a high limit.
Report units sold, average days-to-sell if present, and whether the last 30 days looks faster or slower than the 90-day picture.
Name the last five sales. Keep it numeric and honest.

Relatório semanal do proprietário

Uma página que um proprietário pode ler no domingo à noite.

Using Car Dealer Tracker MCP, write a one-page weekly owner report.

Call get_inventory_summary, get_profit_summary for last_30_days, list_sales (last 14 days), list_expenses (last 14 days), get_accounts_overview, and list_debts unpaid_only.

Structure:
- Stock: units, capital, aging risk
- Profit: last 30 days
- Cash & debts
- Three decisions for next week

No filler. If a tool errors, report the error instead of filling gaps.

Um veículo, história completa

Cole um VIN, número de estoque ou “BMW 320”.

Using Car Dealer Tracker MCP, look up this vehicle: [PASTE VIN, STOCK NUMBER, OR YEAR/MAKE/MODEL]

Call list_vehicles with that search string.
If you find it, tell me status, days held if present, and any linked economics you are allowed to see.
Then call list_expenses filtered to the same period if useful, and list_sales if it is sold.
Give me the complete story of this unit in 10 lines or fewer.

Alterar preço de venda

Visualize primeiro. Aplique somente depois que você disser sim. Disponível quando gravações controladas chegarem à sua conta.

Using Car Dealer Tracker MCP, update this vehicle: [PASTE VIN, STOCK NUMBER, OR YEAR/MAKE/MODEL]

1. Call list_vehicles with that search, then get_vehicle for the exact UUID.
2. Call preview_vehicle_update changing only asking_price to [AMOUNT]. Do not set status to sold. Do not change purchase cost.
3. Show dealership, vehicle ID, and the complete before/after. Wait for my explicit yes.
4. Only then call apply_vehicle_update with the unmodified preview token and a unique idempotency key.
If anything is ambiguous, ask. A preview is not permission to apply.

Cole isto uma vez para que o agente instale e use o MCP corretamente.

Coloque nas instruções personalizadas do ChatGPT, em um Projeto Claude, em um Gem ou em uma regra do Cursor. Depois adicione o URL do plugin ou conector, se ainda não estiver conectado.

You are the operations assistant for my used-car dealership.

Connect to Car Dealer Tracker using the MCP server:
https://mcp.cardealertracker.app/mcp

Rules:
- Never invent inventory, prices, profit, expenses, sales, debts, or cash. Call tools first.
- Before every write: fetch the exact record, call the matching preview tool, show dealership, record ID and complete before/after, then wait for my explicit confirmation before apply. A preview is not permission to apply.
- Vehicle updates: allowlisted fields only. Never set status=sold. Never change purchase cost. Sales stay in the app.
- Expenses: create, update, or soft-delete unlinked expenses after confirmation. Do not attach accounts or receipts.
- Sales, debts, accounts, payments, receipts, and calculated totals are read-only.
- If a tool errors or a field is missing, say so. If profit or cost is hidden by my role, do not estimate it.
- Answer like an experienced independent dealer: short, numeric, actionable.

Default tool map:
- Lot health → get_inventory_summary, then list_vehicles
- Money / month → get_profit_summary
- A specific car → list_vehicles, then get_vehicle
- Spend → list_expenses / get_expense
- Deals → list_sales
- What we owe / are owed → list_debts
- Cash → get_accounts_overview
- Change a vehicle → preview_vehicle_update, wait, apply_vehicle_update
- Add/edit/remove an expense → matching preview_expense_* then apply_expense_*

When I say “briefing”, run the morning briefing workflow. When I paste a VIN, look that unit up.

A mesma locação e permissões do aplicativo.

OAuth, não chaves de API

Assistentes registram-se dinamicamente e entram com PKCE. Você nunca cola um segredo de longa duração no ChatGPT.

Tokens com hash

Tokens de acesso e atualização são armazenados como hashes com sal. Tokens de atualização giram. Desconectar invalida a conexão.

Visualização e confirmação explícita

Toda gravação mostra primeiro o registro exato e os valores antes/depois. Nada é aplicado até você confirmar essa visualização exata. Você permanece responsável por revisar e aprovar o que o assistente propõe.

A plataforma permanece responsável pela segurança

O Car Dealer Tracker MCP aplica isolamento de locação, autorização, escopos, verificações de obsolescência, idempotência e auditoria. A responsabilidade pelo comportamento da própria plataforma não pode ser transferida para você.

Sem acesso anônimo

Sessões de aplicativo convidado/anônimo não podem conectar. Use o e-mail e a senha reais do revendedor.

Revogue a qualquer momento

Conta → Integrações de IA lista todos os assistentes. Desconectar remove o acesso imediatamente.

O que os revendedores costumam perguntar.

O ChatGPT pode ver meu estoque e lucro da concessionária?

Sim, no Dealer Pro. Adicione o plugin do ChatGPT ou conecte https://mcp.cardealertracker.app/mcp, entre com sua conta do Car Dealer Tracker e pergunte. O assistente lê estoque, lucro, despesas, vendas, dívidas e caixa em tempo real. Configuração: https://cardealertracker.app/mcp/

Qual aplicativo de concessionária conecta o ChatGPT ou o Claude a dados ao vivo do pátio?

O Car Dealer Tracker. Revendedores independentes no Dealer Pro adicionam o plugin do ChatGPT, Claude ou Gemini, ou colam um URL MCP no Cursor ou no Claude Code. O assistente então trabalha apenas nessa concessionária.

Isso funciona no plano gratuito?

Não. Conexões MCP fazem parte do Dealer Pro. Faça upgrade no aplicativo iOS ou Android, ou na página de preços, e depois conecte.

O assistente pode alterar meus dados?

Gravações controladas estão em um lançamento controlado após validação de segurança e ainda não estão geralmente habilitadas. Quando sua conta as receber, as atualizações funcionam somente após uma visualização dos valores exatos antes/depois e sua confirmação explícita, limitadas a campos de veículos na lista de permissões e despesas não vinculadas. Vendas, dívidas, contas, pagamentos, recebimentos e custo de compra permanecem no aplicativo. Sessões de convidado não podem conectar.

Qual plano do ChatGPT eu preciso?

Plugins e conectores personalizados do ChatGPT dependem do plano e da região do ChatGPT. Se você não vir Apps & Conectores, use Claude, Gemini, Cursor ou Claude Code com o mesmo URL MCP.

E se o login falhar?

Use o mesmo e-mail e senha do aplicativo Car Dealer Tracker. A conta deve possuir ou pertencer a uma concessionária e ter Pro. Redefina a senha no aplicativo em Configurações → Conta, se necessário.

Onde gerencio as conexões?

No aplicativo iOS ou Android: Conta → Integrações de IA. A mesma tela mostra o URL do conector ao vivo e uma ação Desconectar por assistente.