Pinpoint dealership sales tools

Car dealership sales tools from Pinpoint, the sales intelligence platform for car dealerships

Should I use this

Quality & Safety

A
Description quality
99%
Schema completeness
83%
Naming quality
87%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,373Tokens (tool definitions)
~651 BTypical response size
Moderate attention impact (1.85% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "pinpoint-dealership-tools": {
      "url": "https://usepinpoint.ai/api/mcp"
    }
  }
}

Remote endpoints

https://usepinpoint.ai/api/mcpstreamable-http

What it can do

Tool inventory

Tools (18)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢check_appointment_ask(text)

Deterministic check of one dealership appointment ask using six fixed text-pattern rules: day, clock time, holding the time, confirmation question, vehicle mention or readiness phrase, and follow-up. Returns a structured score, per-part flags and fixes, and a fixed template example that reuses a detected day and time or supplies sample values when absent. Runs without an AI model. Use this for repeatable rule-based scoring; use review_appointment_ask for contextual AI feedback and a tailored rewrite.

Input Schema

{
  "type": "object",
  "properties": {
    "text": {
      "type": "string",
      "description": "What the salesperson said when offering the appointment"
    }
  },
  "required": [
    "text"
  ]
}
🟢check_follow_up_text(text)

Checks a dealership follow-up text message against eight practices: identifies the sender and store, refers to what the customer asked about, one question at most, a specific next step, no price or payment or trade value, an easy way out, two segments or fewer, no all-caps urgency. Returns what passed, what failed and why.

Input Schema

{
  "type": "object",
  "properties": {
    "text": {
      "type": "string",
      "description": "The text message as it would be sent"
    }
  },
  "required": [
    "text"
  ]
}
🟢call_recording_consent(state, dealership, rep)

Whether one party or every party must consent before a phone call is recorded in a US state, the statute, a note for dealerships, and the greeting, outbound and text notices a dealership should use. All 50 states and DC. General information, not legal advice.

Input Schema

{
  "type": "object",
  "properties": {
    "state": {
      "type": "string",
      "description": "State name or two-letter abbreviation, for example \"FL\" or \"Florida\""
    },
    "dealership": {
      "type": "string",
      "description": "Dealership name for the notices"
    },
    "rep": {
      "type": "string",
      "description": "Rep first name for the outbound notice"
    }
  },
  "required": [
    "state"
  ]
}
🟢ai_caller_disclosure(state, dealership)

What a US state requires when an automated or AI voice assistant answers a dealership's missed calls or places an approved outbound call: the AI disclosure rule, the consent rule for automated calls, the statute, the federal baseline, and what the assistant should say. All 50 states and DC. General information, not legal advice.

Input Schema

{
  "type": "object",
  "properties": {
    "state": {
      "type": "string",
      "description": "State name or two-letter abbreviation"
    },
    "dealership": {
      "type": "string",
      "description": "Dealership name for the scripts"
    }
  },
  "required": [
    "state"
  ]
}
🟢follow_up_cadence(situation, customer_first_name, rep, dealership, day_and_time, ...)

The follow-up sequence for a dealership sales situation (new internet lead, missed inbound call, unconfirmed appointment, no-show, quote without an appointment, trade question without an appointment, text thread gone quiet, sold first week): each step's day, time, channel, purpose, message with the names filled in, and the reply that stops it.

Input Schema

{
  "type": "object",
  "properties": {
    "situation": {
      "type": "string",
      "enum": [
        "new-internet-lead",
        "missed-inbound-call",
        "appointment-unconfirmed",
        "no-show",
        "quote-without-appointment",
        "trade-question-without-appointment",
        "text-thread-gone-quiet",
        "sold-first-week"
      ],
      "description": "The situation slug"
    },
    "customer_first_name": {
      "type": "string",
      "description": "The customer's first name"
    },
    "rep": {
      "type": "string",
      "description": "The salesperson's first name"
    },
    "dealership": {
      "type": "string",
      "description": "The dealership name"
    },
    "day_and_time": {
      "type": "string",
      "description": "The day and time on the table, for example \"Saturday at 12:30\""
    },
    "vehicle": {
      "type": "string",
      "description": "The vehicle of interest"
    }
  },
  "required": [
    "situation"
  ]
}
🟢roleplay_card(customer_type, objection)

A practice card for a dealership sales roleplay: a customer type (twelve, from the price shopper to the callback who went quiet) and an objection (eight, from "I need to think about it" to "just email me the numbers"): the customer's opening line, what they want and fear, their tells, the objection as the customer says it, the salesperson's goal, what a strong answer sounds like, and the feedback checklist.

Input Schema

{
  "type": "object",
  "properties": {
    "customer_type": {
      "type": "string",
      "enum": [
        "price-shopper",
        "payment-shopper",
        "spouse-or-co-buyer",
        "trade-in-anchor",
        "out-of-market-buyer",
        "lease-end-shopper",
        "internet-lead-with-quote",
        "service-customer-upgrading",
        "credit-worried-buyer",
        "specific-vehicle-stock-check",
        "just-looking-caller",
        "quiet-callback"
      ]
    },
    "objection": {
      "type": "string",
      "enum": [
        "need-to-think-about-it",
        "best-price-over-the-phone",
        "cheaper-somewhere-else",
        "not-ready-to-come-in",
        "talk-to-my-spouse",
        "what-is-my-trade-worth",
        "credit-is-not-great",
        "just-email-me-the-numbers"
      ]
    }
  },
  "required": [
    "customer_type",
    "objection"
  ]
}
🟢crm_note_checklist

What a complete CRM note carries after a dealership sales call or text thread, in five sections, with an example of a strong note and the lead statuses that mislead managers.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢call_scorecard

The eighteen-item pass-or-fail scorecard for a dealership sales call, in five groups (open, discovery, the ask, control, close and record), with the scoring rules and the four-minute review method.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢conversation_signals(signal)

The 40 moments in a dealership sale worth acting on, in six groups (buying signals, appointment handling, follow-up gaps, coaching moments, record gaps, agent handoffs). Without a signal, returns the list; with a signal slug, returns what it sounds like, why it matters, what to do next, how to coach it and how to practice it.

Input Schema

{
  "type": "object",
  "properties": {
    "signal": {
      "type": "string",
      "description": "A signal slug from the list"
    }
  }
}
🟢dealership_glossary(term)

Plain definitions of 100 terms dealership sales teams use, from appointment set rate and BDC to approved action and human handoff. Returns the matching term, or the closest matches.

Input Schema

{
  "type": "object",
  "properties": {
    "term": {
      "type": "string",
      "description": "The term or a word in it"
    }
  },
  "required": [
    "term"
  ]
}
🟢review_appointment_ask(ask)

Uses the configured AI assistant to review one dealership appointment ask in context. Returns prose with a verdict, present and missing parts, a tailored rewrite in the rep's voice, and one coaching line. Choose this for phrasing and coaching; use check_appointment_ask for deterministic six-part scoring and a fixed template example. Available only when an assistant provider is configured.

Input Schema

{
  "type": "object",
  "properties": {
    "ask": {
      "type": "string"
    }
  },
  "required": [
    "ask"
  ]
}
🟢write_follow_up_texts(situation, rep, dealership, customer_first_name, day_and_time, ...)

Writes two dealership follow-up texts for a situation you describe: under 300 characters, names the rep and store, one question, a way out, no price or payment or trade value.

Input Schema

{
  "type": "object",
  "properties": {
    "situation": {
      "type": "string",
      "description": "What happened with the customer"
    },
    "rep": {
      "type": "string"
    },
    "dealership": {
      "type": "string"
    },
    "customer_first_name": {
      "type": "string"
    },
    "day_and_time": {
      "type": "string"
    },
    "vehicle": {
      "type": "string"
    }
  },
  "required": [
    "situation"
  ]
}
🟢rewrite_follow_up_text(text)

Checks a follow-up text against eight practices and rewrites it to pass them.

Input Schema

{
  "type": "object",
  "properties": {
    "text": {
      "type": "string"
    }
  },
  "required": [
    "text"
  ]
}
🟢score_crm_note(note)

Scores a CRM note written after a sales call or text thread against what a complete note carries, and rewrites it complete with brackets for missing facts.

Input Schema

{
  "type": "object",
  "properties": {
    "note": {
      "type": "string"
    }
  },
  "required": [
    "note"
  ]
}
🟢score_call(transcript)

Scores a dealership sales call transcript, notes or summary against the eighteen-item BDC scorecard: pass, fail or not observable per item with evidence, and a coaching note.

Input Schema

{
  "type": "object",
  "properties": {
    "transcript": {
      "type": "string",
      "description": "Transcript, notes or a summary of one call, up to 6,000 characters"
    }
  },
  "required": [
    "transcript"
  ]
}
🟢tailor_follow_up_cadence(situation, customer, rep, dealership, customer_first_name, ...)

Rewrites every step of a situation's follow-up cadence for the customer you describe, keeping the days, times and channels.

Input Schema

{
  "type": "object",
  "properties": {
    "situation": {
      "type": "string",
      "enum": [
        "new-internet-lead",
        "missed-inbound-call",
        "appointment-unconfirmed",
        "no-show",
        "quote-without-appointment",
        "trade-question-without-appointment",
        "text-thread-gone-quiet",
        "sold-first-week"
      ]
    },
    "customer": {
      "type": "string",
      "description": "Who the customer is and what they care about"
    },
    "rep": {
      "type": "string"
    },
    "dealership": {
      "type": "string"
    },
    "customer_first_name": {
      "type": "string"
    },
    "day_and_time": {
      "type": "string"
    },
    "vehicle": {
      "type": "string"
    }
  },
  "required": [
    "situation",
    "customer"
  ]
}
🟢answer_recording_question(state, question)

Answers a dealership manager's question about recording phone calls in one US state from the state's consent entry. General information, not legal advice.

Input Schema

{
  "type": "object",
  "properties": {
    "state": {
      "type": "string"
    },
    "question": {
      "type": "string"
    }
  },
  "required": [
    "state",
    "question"
  ]
}
🟢answer_ai_caller_question(state, question)

Answers a question about an automated or AI voice assistant answering missed calls or placing approved outbound calls in one US state, from the federal baseline and the state entry. General information, not legal advice.

Input Schema

{
  "type": "object",
  "properties": {
    "state": {
      "type": "string"
    },
    "question": {
      "type": "string"
    }
  },
  "required": [
    "state",
    "question"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded18 tools