# Housecall Pro MCP connector

Connect Housecall Pro once in Elaichi and Claude, ChatGPT, Cursor, and the Elaichi Agent can look up customers, create and dispatch jobs, add line items and notes, draft estimates, and read invoices under each person's own access.

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

## Facts

| | |
| --- | --- |
| Application | Housecall Pro |
| Category | CRM |
| AI tools | 95 |
| Authentication | Connects with an API key |
| Bring 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. Connected tools are never listed one by one, however few there are. The endpoint advertises `search_tools` and `execute_tool` instead |

## What you can ask once Housecall Pro is connected

- Dispatch the 2 pm water heater job to Marco.
- Draft an estimate for the Hendersons' furnace replacement.
- Which invoices from last week are still unpaid?

## Connect Housecall Pro in Elaichi

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

1. Open Connections, choose Add connection, and pick Housecall Pro.
2. Optionally set Share with, then press Connect.
3. Paste a Housecall Pro API key. One person generates a token in Housecall Pro 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 Housecall Pro tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Housecall Pro MCP connector for 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.

## Housecall Pro MCP connector for 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.

## Housecall Pro MCP connector for 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 Housecall Pro 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

Every scope the client asks for starts ticked except "Delete data and remove access", which you tick yourself. Calling a Housecall Pro tool needs "Run your connected tools". 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. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with Housecall Pro through Elaichi

### Book and dispatch a job from a call

Dispatch. A customer calls about a leaking water heater and the dispatcher asks for a job to be created at their address and sent to the nearest available technician. The job lands on the board without anyone leaving the phone.

### Add a new customer and service address

Office. When a first-time caller books, the office adds the customer and their service address to Housecall Pro by describing it in plain words. Repeat callers are found by name or phone number before anything is duplicated.

### Draft an estimate while the lead is warm

Sales. After a site visit, the salesperson asks for an estimate for the furnace replacement they just scoped. It is ready to review before they are back in the truck.

### See which invoices are still open

Finance. Billing asks which invoices from last week have not been paid and gets the list with amounts and customers. A preview of any single invoice is a question away.

### Catch the job up after the visit

Field. Technicians add the parts they used as line items and leave a note about what they found, so the office sees the full picture before invoicing.

### Lock finished jobs at week's end

Management. The owner asks to lock every completed job from the week so nobody edits line items after the numbers have been reviewed.

## Elaichi vs Zapier MCP vs Composio for Housecall Pro

All three can connect Housecall Pro to an AI assistant, and all three have admin controls. They differ in where access lives and how you pay.

| What to check | Elaichi | Zapier MCP | Composio |
| --- | --- | --- | --- |
| Where the AI connects | One address for the whole organization. Endpoint: https://api.elaichi.ai/mcp | A server per member, created at sign-in. | An MCP endpoint per team, or an SDK. |
| Control over Housecall Pro tools | Allow or restrict single Housecall Pro tools, per role or user. | App and action restrictions on the account. | Role permissions, down to the action. |
| Record of calls | One audit entry per Housecall Pro call. | A History tab of tool calls. | A log of every tool call. |
| Single sign-on | SAML or OIDC, plus SCIM, on Gold. | SAML on Enterprise. | SAML and OIDC on Enterprise. |
| Price | $15 per user per month. | 2 tasks per successful call. | Billed per tool call. |

Sources: Zapier MCP [docs](https://docs.zapier.com/mcp/get-started/quickstart), [security](https://docs.zapier.com/mcp/manage/security), [usage](https://docs.zapier.com/mcp/features/usage); Composio [docs](https://docs.composio.dev/docs/composio-connect), [gateway](https://composio.dev/mcp-gateway), [enterprise](https://composio.dev/enterprise), [pricing](https://composio.dev/pricing). Checked September 2026.

Longer take: [Zapier MCP alternative](/blog/zapier-mcp-alternative/) and [when you don't need an MCP gateway](/blog/when-you-dont-need-an-mcp-gateway/).

## Frequently asked questions

### How do I connect Housecall Pro to Claude?

First connect Housecall Pro in Elaichi by pasting your Housecall Pro API key, which you can copy from your Housecall Pro account settings. There is no OAuth application to register and no client ID or secret to generate. Then open Claude, go to Customize, then Connectors, then Add, and paste https://api.elaichi.ai/mcp as the endpoint. Claude asks you to sign in to Elaichi and Housecall Pro is ready.

### Does Housecall Pro work with ChatGPT and Cursor as well as Claude?

Yes. Once Housecall Pro 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 Housecall Pro once and every client uses it.

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

An agent connected to Housecall Pro can find a customer by name, add a new customer and service address, create a job and dispatch it to a technician, add line items and notes to a job, draft an estimate, and look up invoices including a preview of a single one. Short concrete asks work best, such as asking it to dispatch the 2 pm job to Marco rather than writing a long paragraph.

### Does connecting Housecall Pro give the AI access to every job and customer?

The AI only sees what the person who signed in can see in Housecall Pro, because every call runs under that person's own access. Elaichi can narrow that further by restricting specific actions, but it can never widen it. Someone who cannot lock jobs in Housecall Pro cannot lock them through Claude either.

### Can my team share one Housecall Pro connection?

Yes. One person connects Housecall Pro in Elaichi with the API key and shares the connection with a team, and nobody else ever handles the key. Each teammate still signs in to Elaichi as themselves, so the audit log names the dispatcher who booked the job, not a shared account.

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

Yes. Restrictions in Elaichi apply per action, so you can allow reading Housecall Pro jobs and invoices while blocking deleting line items or notes. A restricted action is left out of the AI client's list entirely and cannot be called, whatever the prompt says.

### What happens to a Housecall Pro connection when someone leaves?

Offboarding a person in Elaichi ends their access to Housecall Pro through every AI client at once. A shared Housecall Pro connection keeps working for everyone else on the team. If you want to remove Housecall Pro altogether, disconnecting it once in Elaichi removes it from Claude, ChatGPT, Cursor and every other client.

### Does the Housecall Pro MCP connector work with Gemini, Codex, Claude Code or other MCP clients?

Yes. Housecall Pro is reached over the same MCP endpoint every client uses, so anything that speaks MCP can call it — Gemini, Codex, Claude Code, Windsurf, Cline, Zed and OpenCode among them — alongside Claude, ChatGPT, Cursor, and the Elaichi Agent. The tools on offer and the access behind them are identical whichever client asks. Only the setup screen differs.

### Is Elaichi an alternative to Zapier MCP for Housecall Pro?

Yes. Both let Claude, ChatGPT or Cursor use Housecall Pro. Zapier MCP fits a team that already automates in Zapier, since each person signs in and acts as themselves in that account. Elaichi fits when IT wants one address for the whole company, per-tool rules by role, and a record of every Housecall Pro call.

### How is Elaichi different from Composio for Housecall Pro?

Composio gives AI agents tools and sign-in handling across 1,000+ apps, for developers building agents or people using an assistant, billed per tool call. Elaichi gives a company's own people governed access to Housecall Pro: one address, restrictions per role or user, and $15 per user per month. Both have role permissions and a log of every call.

## All 95 Housecall Pro tools

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

- **Create a Housecall Pro customer address** (Create). Create a new address on a Housecall Pro customer. Returns the created address record with id, type, street, street_line_2, city, state, zip, and country. Required: customer_id, street, city, state, zip, country.
- **Get single Housecall Pro customer address by ID** (Get). Get a customer's address via customer ID and address ID. Returns: id, type, street, street_line_2, city, state, zip, country. Required: customer_id, id.
- **List all Housecall Pro customer addresses** (List). List addresses for a Housecall Pro customer. Returns address records with id, type, street, street_line_2, city, state, zip, and country. Note: the vendor spec leaves the 200 response empty and shows this list shape only under a request body, so the shape is inferred and unconfirmed. Required: customer_id.
- **Create a Housecall Pro customer** (Create). Create a customer in Housecall Pro with name, email, phone numbers, lead source, tags, and addresses. Returns the created customer including id, first_name, last_name, email, tags, and addresses.
- **Get single Housecall Pro customer by ID** (Get). Get a single Housecall Pro customer by id. Returns the customer including id, first_name, last_name, email, tags, addresses, and created_at; pass expand to include attachments or do_not_service. Required: id.
- **List all Housecall Pro customers** (List). List Housecall Pro customers. Returns each customer's id, first_name, last_name, email, mobile_number, tags, and addresses.
- **Update a Housecall Pro customer by ID** (Update). Update an existing Housecall Pro customer by id. Returns the updated customer with id, first_name, last_name, email, mobile_number, tags, and addresses. Required: id.
- **Housecall Pro jobs bulk lock** (Action). Lock Housecall Pro jobs whose schedule start or completion time falls within a time range. Returns jobs with id and locked_at. statuses must include at least one of scheduled, in_progress, completed. Required: starting_at, ending_at, statuses.
- **Create a Housecall Pro job** (Create). Create a job in Housecall Pro from an existing customer and address. Returns the created job including id, invoice_number, work_status, schedule, customer, and totals. Required: customer_id, address_id.
- **Housecall Pro jobs dispatch** (Action). Dispatch a Housecall Pro job to employees. Returns assigned_employees including each employee's id, first_name, last_name, email, role, and permissions. Required: job_id, dispatched_employees.
- **Get single Housecall Pro job by ID** (Get). Get a single Housecall Pro job by id. Returns the full job including id, invoice_number, work_status, schedule, customer, assigned_employees, and totals. Required: id.
- **List all Housecall Pro jobs** (List). List Housecall Pro jobs, sorted by created_at descending by default. Returns jobs with id, invoice_number, work_status, schedule, customer, and totals.
- **Housecall Pro jobs lock** (Action). Lock a single Housecall Pro job by id. Returns the locked job, including locked_at. Required: job_id.
- **Housecall Pro job line items bulk update** (Update). Bulk create, update, and replace a Housecall Pro job's line items in a single request. Returns: url, data. Required: job_id. Entries without an id are treated as new line items; append_line_items defaults to false, which deletes existing items omitted from the request.
- **Create a Housecall Pro job line item** (Create). Add a line item to a Housecall Pro job. Returns the created line item including id, name, unit_price, quantity, kind, and taxable. Required: job_id, name. Creating multiple items for the same job is rate limited — use bulk_update instead.
- **Delete a Housecall Pro job line item by ID** (Delete). Delete a single line item from a Housecall Pro job. Returns: id, deleted. Required: job_id, id.
- **List all Housecall Pro job line items** (List). List all line items for a Housecall Pro job. Returns each line item's id, name, description, unit_price, unit_cost, quantity, kind, taxable, amount, and order_index. Required: job_id.
- **Update a Housecall Pro job line item by ID** (Update). Update a single line item on a Housecall Pro job. Returns the updated line item including id, name, unit_price, quantity, kind, and taxable. Required: job_id, id, name.
- **Create a Housecall Pro job note** (Create). Add a note to a Housecall Pro job. Returns the created note including its id and content. Required: job_id, content.
- **Delete a Housecall Pro job note by ID** (Delete). Deletes a specific job note. Returns no documented response body. Required: job_id, id.
- **Get single Housecall Pro invoice by ID** (Get). Get a single Housecall Pro invoice by id (UUID). Returns the full invoice object including id, status, invoice_number, amount, subtotal, due_amount, due_at, items, taxes, discounts, payments, and job_id. Required: id.
- **List all Housecall Pro invoices** (List). List Housecall Pro invoices. Returns: id, status, invoice_number, amount, subtotal, due_amount, due_at, display_due_concept, due_concept, paid_at, sent_at, service_date, invoice_date, taxes, discounts, payments, job_id. Filter and sort results via query parameters.
- **Housecall Pro invoices preview** (Action). Preview a Housecall Pro invoice as HTML by its id. Returns the rendered invoice as an HTML document (text/html), not a JSON object. Required: invoice_id.
- **Create a Housecall Pro estimate** (Create). Create an estimate in Housecall Pro for a customer (customer_id), optionally including options with line items, tax, a schedule, and estimate fields. Returns the created estimate including id, estimate_number, work_status, customer, schedule, and options.
- **Get single Housecall Pro estimate by ID** (Get). Get a single estimate by id from Housecall Pro. Returns the full estimate including id, estimate_number, work_status, customer, address, schedule, assigned_employees, and options. Required: id.
- **List all Housecall Pro estimates** (List). List Housecall Pro estimates, filterable by customer, assigned employees, locations, work status, and schedule window; sortable by created_at, updated_at, or id. Returns id, estimate_number, work_status, customer, address, schedule, assigned_employees, and options.
- **Housecall Pro estimate options approve** (Approve). Approve one or more estimate options in Housecall Pro. Returns: status, last_updated_at, copied_on_approval_to_job_id. Required: option_ids.
- **Housecall Pro estimate options bulk update** (Update). Update the schedule of a Housecall Pro estimate option. Returns the updated schedule with start_time, end_time, arrival_window_minutes, and assigned_employees. Required: estimate_id, option_id, start_time.
- **Create a Housecall Pro estimate option** (Create). Create a new option on an existing Housecall Pro estimate. Returns the created option with id, name, option_number, total_amount, approval_status, status, notes, created_at, and updated_at. Required: estimate_id, name.
- **Housecall Pro estimate options decline** (Decline). Decline one or more estimate options in Housecall Pro. Returns: status, last_updated_at. Required: option_ids.
- **Create a Housecall Pro estimate option attachment** (Create). Create a new estimate option attachment in Housecall Pro by uploading a file to an estimate option. Returns: estimate_url. Required: estimate_id, option_id, file.
- **Housecall Pro estimate option line items bulk update** (Update). Bulk update line items for a Housecall Pro estimate option in a single request; entries without an id are added as new line items for the option. Returns: line_items. Required: estimate_id, option_id.
- **List all Housecall Pro estimate option line items** (List). List line items for a Housecall Pro estimate option. Returns each line item's id, name, description, unit_price, unit_cost, quantity, kind, taxable, amount, and order_index. Required: estimate_id, option_id.
- **Create a Housecall Pro estimate option link** (Create). Create a new link attached to a Housecall Pro estimate option. Returns the created link's id, title, and url. Required: estimate_id, option_id, title, url.
- **Create a Housecall Pro estimate option note** (Create). Create a new note on a Housecall Pro estimate option. Returns: id, content. Required: estimate_id, option_id, content.
- **Delete a Housecall Pro estimate option note by ID** (Delete). Delete a specific note on a Housecall Pro estimate option. Returns an empty 204 response on success. Required: estimate_id, option_id, id.
- **List all Housecall Pro company** (List). Get the Housecall Pro company profile for the authenticated account, including child locations for multi-location businesses. Returns id, name, support_email, phone_number, address, website, time_zone, and locations. Takes no parameters.
- **Create a Housecall Pro lead source** (Create). Create a new lead source in Housecall Pro for categorizing where leads originate. Returns the created lead source with id, name, and editable. Required: name.
- **List all Housecall Pro lead sources** (List). List Housecall Pro lead sources, optionally searched by name (q). Returns each lead source with id, name, and editable.
- **Update a Housecall Pro lead source by ID** (Update). Update a specific lead source. Only lead sources marked as editable can be updated. Returns: id, name, editable. Required: id.
- **Housecall Pro leads convert** (Convert). Convert a Housecall Pro lead into an estimate or job. Returns job_id when the lead was converted to a job, or estimate_id when it was converted to an estimate. Required: lead_id.
- **Create a Housecall Pro lead** (Create). Create a new Housecall Pro lead. Returns the created lead including id, number, customer, address, status, tags, assigned_employee, lost_at, and total_amount. An associated customer (customer_id or a customer object) must be provided.
- **Get single Housecall Pro lead by ID** (Get). Get a single Housecall Pro lead by id. Returns the lead including id, number, customer, address, lead_source, tags, assigned_employee, status, pipeline_status, company_id, lost_at, total_amount, conversions, and job_fields. Required: id.
- **List all Housecall Pro leads** (List). List Housecall Pro leads, filterable by customer_id, employee_ids, lead_source, location_ids, status, and tag_ids; sorted by created_at descending by default. Returns lead records including id, number, customer, address, status, pipeline_status, lost_at, total_amount, conversions, and job_fields.
- **Housecall Pro job schedules bulk delete** (Delete). Delete the schedule from a Housecall Pro job. Returns a confirmation with object ("schedule") and deleted. Required: job_id.
- **Housecall Pro job schedules bulk update** (Update). Update a Housecall Pro job's schedule. Returns: start_time, end_time, arrival_window_minutes, assigned_employees, company_name, company_id, appointments. Required: job_id, start_time. Jobs with multi-day schedules containing more than 1 appointment cannot be updated here — use the appointments endpoints instead.
- **Housecall Pro applications disable** (Disable). Disable the application for a company. Returns: name, state, organization_id.
- **Housecall Pro applications enable** (Enable). Enable the application for a company. Returns: name, state, organization_id.
- **List all Housecall Pro applications** (List). Get the application for a company. Returns: name, state, organization_id.
- **List all Housecall Pro checklists** (List). List checklists that belong to a Housecall Pro job or estimate. Returns: id, title, job_uuid, estimate_uuid, sections. The vendor's parameter list marks both job_uuids and estimate_uuids as required, while its own text says at least one is enough; both are listed as required here to match the parameter list. Required: job_uuids, estimate_uuids.
- ...and 45 more tools. Call `tools/list` via the MCP endpoint, or see the full catalog via the API, for the complete set.
