# LeadPerfection MCP connector

Connect LeadPerfection to Claude, ChatGPT, Cursor, or any MCP client through Elaichi, so your team can create leads, book and review appointments, and update job details in plain language, with every action logged to the person who signed in.

Source: https://elaichi.ai/connectors/leadperfection/

## Facts

| | |
| --- | --- |
| Application | LeadPerfection |
| Category | CRM |
| AI tools | 59 |
| Authentication | Connects with an API key |
| Needs your own OAuth app | No |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | No. 59 tools is past the 30-tool threshold, so clients use `search_tools` and `execute_tool` |

## What you can ask once LeadPerfection is connected

- Which leads booked appointments this week?
- List sales jobs with payments added yesterday.
- Show forward looks for the Midwest sales reps.

## Connect LeadPerfection in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick LeadPerfection.
2. Optionally set Share with, then press Connect.
3. Paste a LeadPerfection API key. One person generates a token in LeadPerfection and pastes it once. Everyone else works through Share with, and never sees it.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which LeadPerfection tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Connect LeadPerfection to Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Connect LeadPerfection to ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Connect LeadPerfection to Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect LeadPerfection to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a LeadPerfection tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with LeadPerfection through Elaichi

### Enter a new lead while still on the phone

Call center. Create the LeadPerfection lead from the caller's details, then book the appointment for the right sales rep before the call ends.

### See today's appointments before leaving the office

Sales. Pull the day's sales appointments with their details, then record the result of each visit once it is done.

### Review last week's appointment results

Sales management. List appointments across a date range with their outcomes, so you can see which reps closed and which leads need a follow-up.

### Trace where a lead came from

Marketing. Look up a lead's inbound history and lookup values to see which sources are actually turning into appointments.

### Catch a job up after the sale

Operations. Find the job, update its sales detail, and attach measurement photos or signed paperwork as images on the record.

### Answer a homeowner who calls about their job

Office. Find the job by its ID, read back the sales detail and any images on file, and confirm the next appointment without opening LeadPerfection.

## Frequently asked questions

### How do I connect LeadPerfection to Claude?

Connect LeadPerfection in Elaichi first: pick it from the catalog and paste in your LeadPerfection API key, which is the only sign-in step LeadPerfection asks for. There is no OAuth application to register and no client ID or secret to generate. Then in Claude open Customize, then Connectors, then Add, and paste the Elaichi endpoint https://api.elaichi.ai/mcp. Sign in as yourself when Claude asks, and LeadPerfection leads, appointments, and jobs are available in your chat.

### Does LeadPerfection work with ChatGPT and Cursor as well as Claude?

Yes. Once LeadPerfection is connected in Elaichi, the same endpoint, https://api.elaichi.ai/mcp, works in Claude, ChatGPT, Cursor, any other MCP client, and the Elaichi Agent. You connect LeadPerfection once and every client you use picks it up.

### What can an AI agent actually do with my LeadPerfection data?

An agent can create a new LeadPerfection lead, book an appointment for a lead and assign it to a sales rep, pull the appointments on a given day or across a date range, and record the result after a visit. It can also find a job, read and update its sales detail, and add or list the images attached to a job or appointment. Because LeadPerfection has a large set of actions, short concrete asks like "show tomorrow's appointments" work better than long paragraphs.

### Does connecting LeadPerfection give the AI access to every lead and job in our system?

No. Every call into LeadPerfection runs under the API key and person who signed in, so the AI can only see and change the leads, appointments, and jobs that account can already reach. Elaichi can narrow that further, for example to read-only or to a specific set of actions, but it can never grant more than LeadPerfection itself allows.

### Can my team share one LeadPerfection connection?

Yes. One person connects LeadPerfection with the API key and shares the connection with a team in Elaichi, and nobody else ever sees or handles that key. Each teammate still signs in to Elaichi as themselves, so the audit log names the actual person who created a lead or updated a job, not a shared account.

### Can I stop an agent from deleting or changing things in LeadPerfection?

Yes. Restrictions in Elaichi apply per action, so you can allow reading LeadPerfection appointments and jobs while blocking creating leads, updating results, or changing sales detail. A blocked action is never advertised to Claude, ChatGPT, or any other client, so no prompt, however worded, can reach it.

### What happens to a LeadPerfection connection when someone leaves?

Offboard the person in Elaichi and their access to LeadPerfection through every client ends at once, with their past actions still in the audit log. A LeadPerfection connection shared with a team keeps working for everyone else on it. If you want to remove LeadPerfection entirely, disconnecting it once in Elaichi removes it from Claude, ChatGPT, Cursor, and every other connected client.

## All 59 LeadPerfection tools

Every tool below is callable through https://api.elaichi.ai/mcp once LeadPerfection is connected, subject to the toolbox it is in and the restrictions on the caller.

- **Create a LeadPerfection token** (Create). Create an authentication token required by all other LeadPerfection REST API requests. The token expires 24 hours after generation and must be refreshed periodically.
- **Create a LeadPerfection lead** (Create). Add a lead to the inbound lead queue in LeadPerfection, the preferred API method with access to all lead fields including contact info, phones, product interest, and appointment details. Returns the created lead record with content-type-specific fields (id, attributes).
- **List all LeadPerfection leads** (List). Retrieve limited information on all leads added to the inbound leads queue during the current day in LeadPerfection. Returns inbound lead records with content-type-specific fields (id, attributes). Deprecated — use GetInboundLeadInfo instead.
- **LeadPerfection leads list inbound history** (List). Retrieve inbound lead history from LeadPerfection within a date range, optionally filtered by promoter or log number. Returns: data (array of inbound lead status records for the Source codes you have access to). Dates must be in MM/DD/YYYY format.
- **List all LeadPerfection lead data** (List). Retrieve a list of leads from LeadPerfection by date range or Issued Lead ID. Returns: data. This endpoint is deprecated; use Customers/GetLead for the current version.
- **List all LeadPerfection lead forward look** (List). Retrieve Forward Look data in LeadPerfection for sales rep appointment availability over the upcoming 14 days. Returns: SDate, TMS_Descr1–TMS_Descr6 (time slot descriptions), T1–T6 (appointments needed per slot with overbooking), X1–X6 (appointments needed without overbooking). Specify either branchid (Market) or productid and zip.
- **List all LeadPerfection lead lookup tables** (List). Retrieve lists of valid values from LeadPerfection lookup tables (SubSources, Promoters, Branches, or Products) for use during lead capture. Returns records with id and table-specific attributes. The type parameter selects the source table and defaults to S (SubSources).
- **Create a LeadPerfection lead appointment** (Create). Set a new appointment on an existing data lead in LeadPerfection. The lead must be in a set-able status, cannot be out of area, and must not have an existing future appointment. Returns an empty response on success. The upstream spec specifies an empty response schema.
- **LeadPerfection lead appointments create with sales rep** (Create). Set a new appointment on an existing data lead in LeadPerfection with an optional sales rep and product assignment. The lead must be in a set-able status, cannot be out of area, and must not have an existing future appointment. Returns an empty response on success. The upstream spec specifies an empty response schema.
- **List all LeadPerfection sales appointments** (List). List all issued sales appointments within a specified date range in LeadPerfection. Returns a list of appointments for the given date range; the upstream OpenAPI spec does not document the response schema.
- **LeadPerfection sales appointments list calendar** (List). View the appointment calendar for the logged-in sales rep in LeadPerfection. For the current month, lists each day that the rep has at least one appointment scheduled, along with the total number of appointments for each day. Returns the appointment calendar with day-level appointment counts via attributes. Limited to the current month only.
- **LeadPerfection sales appointments list by day** (List). List all appointments for a specified day for the logged-in sales rep in LeadPerfection. Returns: id.
- **LeadPerfection sales appointments get detail** (Get). Get detailed information about a single sales appointment in LeadPerfection by specifying a date and issued lead id. The upstream spec does not document the response fields. Required: apptdate, issuedleadid.
- **LeadPerfection sales appointments list details by date range** (List). Retrieve a list of issued sales appointments within a specified date range from LeadPerfection, spanning all sales reps rather than just the logged-in user. The upstream API does not document the response body fields.
- **LeadPerfection sales appointments update results** (Update). Update the results of an issued sales appointment in LeadPerfection (version 3, adding sale type and vendor parameters over version 2). Returns an empty 200 response on success. Follow-up date/time fields require the IncludeFollowUpinPresentation config key set to Y. The upstream spec specifies an empty response schema.
- **LeadPerfection sales appointments add image** (Add). Add an image to a sales appointment in LeadPerfection. If the appointment disposition is SALE the image attaches to the associated job record, otherwise it attaches to the prospect. Returns an empty 200 response on success. The upstream spec specifies an empty response schema.
- **List all LeadPerfection sales lookup tables** (List). Enumerate static lookup tables in LeadPerfection by specifying a type code. Returns records with id and type-specific attributes whose field structure varies by the requested data type (e.g., dispositions, products, sales reps, call results).
- **List all LeadPerfection jobs** (List). Pull basic information about a job in LeadPerfection by providing at least one search criterion. Returns the job detail data object. At least one of JobID, JobNumber, IssuedAppointmentID, StartContractDate, or EndContractDate must be provided.
- **LeadPerfection jobs find ID** (Action). Search for jobs in LeadPerfection by prospect id or job number and receive back a list of matching JobIDs. Returns: JobID. At least one of prospectid or contractid should be supplied.
- **LeadPerfection jobs find ID v 2** (Action). Search for jobs in LeadPerfection by prospect id, job number (contractid), or issued lead id. Returns a list of matching JobIDs. At least one of prospectid, contractid, or issued_appt_id should be provided.
- **LeadPerfection jobs get sales detail** (Get). Get sales job detail information in LeadPerfection for a given JobID. Returns job detail info about the job; the upstream spec does not enumerate individual response fields. Required: jobid.
- **LeadPerfection jobs update sales detail** (Update). Update the paperwork status, commission type, total commission amount, and user fields (job_user_11, job_user_12) on a LeadPerfection job record. Returns an empty 200 response on success. The upstream spec specifies an empty response schema.
- **LeadPerfection jobs add image** (Add). Add an image to a job in LeadPerfection by uploading the file's raw byte array along with the target job id and filename. The filename must exactly match the original file's name and extension or the file may be flagged as improperly saved. Optional: docdescr, dtyid. Use /api/SalesApi/GetSalesApptDispProd with type=y to enumerate valid dtyid values. Returns…. The upstream spec specifies an empty response schema.
- **LeadPerfection jobs list images** (List). Get documents associated with a job in LeadPerfection. Returns a list of documents that appear on the DOCS tab for the specified job, customer, or issued lead record.
- **LeadPerfection jobs list status changes** (List). Search for jobs with status changes in LeadPerfection within a specified date range, optionally filtering by customer, job, or job status ID. Returns job status change records for matching jobs; the specific response fields are not documented in the API specification.
- **List all LeadPerfection job notes** (List). Get notes associated with a job in LeadPerfection. For a given job ID and appointment date, returns the notes that appear on the Notes tab for that job. Returns: notes.
- **Create a LeadPerfection job note** (Create). Add notes to a job in LeadPerfection matching a given jobid number. Returns an empty 200 response on success. The upstream spec specifies an empty response schema.
- **Create a LeadPerfection job commission** (Create). Add a commission record on a job in LeadPerfection. Returns an empty 200 response on success. The upstream spec specifies an empty response schema.
- **Create a LeadPerfection job payment** (Create). Add a payment record on a job in LeadPerfection. Returns an empty 200 response on success. The upstream spec specifies an empty response schema.
- **Create a LeadPerfection job cost** (Create). Add a job cost record to a job in LeadPerfection, including quantity, cost, price, commission and invoice details. Returns an empty response on success. The upstream spec specifies an empty response schema.
- **LeadPerfection job costs update cost** (Update). Update a job cost record for a job in LeadPerfection. Returns an empty 200 response on success. invoiceDate must be in YYYY-MM-DD format. The upstream spec specifies an empty response schema.
- **List all LeadPerfection sales open** (List). List recent sales for the logged-in sales rep in LeadPerfection. Returns: status for each sale. No request parameters are required.
- **List all LeadPerfection sales schedule** (List). Get the sales schedule in LeadPerfection broken down by day and then by rep, showing each rep's available time slots and whether an appointment is already scheduled. Returns: day, rep (including slots and appointment-scheduled status for each slot). If no date range is supplied, defaults to the current month; SlrID 0 returns all reps and BrnID 'ALL' returns all markets.
- **List all LeadPerfection employees** (List). Get a list of employees in LeadPerfection. Returns employee records with EmpID, FirstName, LastName, Active, and Email. Pagination is handled via StartIndex and PageSize parameters.
- **List all LeadPerfection customers** (List). Search customers in LeadPerfection by last name or prospect ID. Returns: name. At least one of custnumber or lastname should be provided. This endpoint is deprecated.
- **LeadPerfection customers list v 2** (List). Search for prospects in LeadPerfection by last name, phone, job number, or prospect ID. Returns: custnumber, name, phone. This endpoint is deprecated.
- **LeadPerfection customers list v 3** (List). Search prospects in LeadPerfection by last name, phone, job number, prospect ID, or email. Returns matching records with custnumber, name, and phone for any found matches. All search criteria are optional.
- **LeadPerfection customers list by prospect ID** (List). Search for prospects in LeadPerfection by Prospect ID, job number, first name, last name, or phone. Returns matching prospects with prospectid, name, address, and phone.
- **LeadPerfection customers list lead info** (List). Search for prospects in LeadPerfection by lastname, phone, jobnumber, or prospectid. Returns lead information including EntryDate, PromoterName, Source, SubSourceDescription, and Disposition. Provide at least one search criterion.
- **LeadPerfection customers update customer** (Update). Update basic prospect information in LeadPerfection — first name, last name, and phone for a given prospect ID. Returns an empty 200 response on success. The upstream spec specifies an empty response schema.
- **LeadPerfection customers update prospect info** (Update). Update basic prospect information in LeadPerfection by prospect ID. Supports updating first name, last name, address, address2, city, state, zip, phone, and email. Returns an empty 200 response on success. The upstream spec specifies an empty response schema.
- **LeadPerfection customers update dnc status** (Update). Update the internal DNC (Do Not Call) status on a prospect in LeadPerfection. The newDncStatus parameter accepts C (Do Not Call), M (Do Not Mail), T (Do Not Text), E (Do Not Email), or P (Do Not Promote). Returns an empty 200 response on success. The upstream spec specifies an empty response schema.
- **Create a LeadPerfection call history** (Create). Add call history results back into LeadPerfection. Returns an empty 200 response on success. Valid values for these fields can be enumerated via the GetSalesApptDispProd API. The upstream spec specifies an empty response schema.
- **LeadPerfection call history process XML** (Action). Import call history records into LeadPerfection by submitting an XML payload. Returns an empty 200 response on success. The upstream spec specifies an empty response schema.
- **Create a LeadPerfection note** (Create). Add a note to a Prospect, Issued Lead, or Job record in LeadPerfection. The note appears on the Notes tab for the specified record. Returns an empty 200 response on success. The upstream spec specifies an empty response schema.
- **LeadPerfection notes process XML** (Action). Import note records into LeadPerfection by submitting a call history XML payload. Returns an empty 200 response on success. The upstream spec specifies an empty response schema.
- **List all LeadPerfection prospect data** (List). Retrieve full prospect, lead, appointment, and job data from LeadPerfection by prospect id, lead id, issued lead id, or date range. Returns a data array of prospect records, each potentially including hundreds of elements such as alternate contacts, lead history, appointment history, job history, milestones, payments, and notes. Specify at least one selector: cst_id, lds_id, ils_id, or a date…
- **LeadPerfection prospect data list lead** (List). Retrieve full prospect, lead, appointment, and job data from LeadPerfection by prospect id, lead id, issued lead id, or date range. Returns a full set of data for each matching prospect, potentially including hundreds of data elements such as alternate contacts, lead history, appointment history, job history, milestones, payments, and notes.
- **LeadPerfection prospect data list milestones** (List). Retrieve prospect, lead, appointment, and job milestone data from LeadPerfection by specifying a prospect ID, lead ID, issued lead ID, or date range. Returns the data array of full prospect records including milestones, lead history, appointment history, job history, and notes.
- **LeadPerfection prospect data list sales appointments** (List). Get sales appointments with full prospect, lead, appointment, and job data from LeadPerfection by specifying a date range and optional prospect, lead, or issued lead IDs. Returns the data array containing full prospect records including alternate contacts, lead history, appointment history, job history, milestones, payments, and notes.
- **LeadPerfection prospect data list service appointments** (List). Retrieve full prospect, lead, appointment, and job data from LeadPerfection by prospect id, lead id, issued lead id, or date range. Returns the prospect data object with id and content-specific attributes including alternate contacts, lead history, appointment history, job history, milestones, payments, service, and notes.
- **LeadPerfection installer appointments list calendar** (List). Get the installer appointment calendar for the current month in LeadPerfection, listing each day the installer has at least one appointment scheduled along with the total appointment count for that day. Returns: apptdate. No request parameters are required.
- **LeadPerfection installer appointments list by day** (List). List installer appointments for a given day in LeadPerfection. For the specified date, returns all appointments for the logged-in sales rep; the LeadPerfection API does not document the specific response fields.
- **LeadPerfection installer appointments get detail** (Get). Get detailed information about a single installer appointment in LeadPerfection by specifying an appointment date and job ID. Returns a 200 response; the upstream spec does not document specific response fields. Required: apptdate, jobid.
- **LeadPerfection installer jobs get detail** (Get). Get detailed information about a single installer job appointment in LeadPerfection by specifying an appointment date and job ID. The upstream API does not document the response schema for this endpoint. Required: apptdate, jobid.
- **LeadPerfection installer jobs list open** (List). Get a list of open installs assigned to the logged-in user in LeadPerfection. Returns: id. No required parameters.
- **List all LeadPerfection dialer queue leads** (List). Retrieve a list of leads to dial from a specified call queue in LeadPerfection. Returns a list of leads in the given queue that are available to be dialed; the response shape is not documented in the upstream API specification. Pulls are restricted to a max of 1000 records at a time.
- **LeadPerfection dialer queue leads list long** (List). Retrieve a list of leads available to be dialed from a specific call queue in LeadPerfection, optionally filtered by a call filter. The upstream API does not document the response field structure. Pulls are restricted to a max of 1000 records at a time.
- **LeadPerfection web files download** (Download). Download a web file from a URL in LeadPerfection. If the account has an associated Amazon S3 account, uploads the file to S3 and returns the final storage path. Returns: path.
