---
title: "Connect Housecall Pro to Claude: Track Leads & Sales Estimates"
slug: connect-housecall-pro-to-claude-track-leads-sales-estimates
date: 2026-10-10
author: Nidhi KN
categories: ["AI & Agents"]
excerpt: "Learn how to connect Housecall Pro to Claude using a managed MCP server. Automate field service workflows, track leads, and manage estimates via AI."
tldr: "Connect Housecall Pro to Claude via Truto's managed MCP server. This guide covers how to bypass field service API complexities, configure the MCP server, and automate lead conversions and estimates using natural language."
canonical: https://truto.one/blog/connect-housecall-pro-to-claude-track-leads-sales-estimates/
---

# Connect Housecall Pro to Claude: Track Leads & Sales Estimates


If you need to connect Housecall Pro to Claude to automate lead tracking, manage field service dispatching, or generate complex sales estimates, you need a Model Context Protocol (MCP) server. This server acts as the translation layer between Claude's LLM tool calls and Housecall Pro's REST API. You can either [build and maintain this infrastructure yourself](https://truto.one/the-hands-on-guide-to-building-mcp-servers-for-ai-agents-2026), or use a managed integration platform like Truto to dynamically generate a secure, authenticated MCP server URL. If your team uses ChatGPT, check out our guide on [connecting Housecall Pro to ChatGPT](https://truto.one/connect-housecall-pro-to-chatgpt-manage-jobs-field-dispatch/) or explore our broader architectural overview on [connecting Housecall Pro to AI Agents](https://truto.one/connect-housecall-pro-to-ai-agents-automate-invoices-inventory/).

Giving a Large Language Model (LLM) read and write access to a specialized field service management system like Housecall Pro is a serious engineering challenge. You have to manage strict OAuth token lifecycles, handle domain-specific constraints around dispatch windows, and map massive, nested JSON schemas into MCP tool definitions. Every time Housecall Pro updates an endpoint, you have to update your server code, redeploy, and test the integration.

This guide breaks down exactly how to use Truto to generate a secure, managed MCP server for Housecall Pro, connect it natively to Claude Desktop, and execute complex field service workflows using natural language.

> Want to give your AI agents secure, authenticated access to Housecall Pro and 100+ other SaaS APIs? Let's talk about [managed MCP architecture](https://truto.one/managed-mcp-for-claude-full-saas-api-access-without-security-headaches).
>
> [Talk to us](https://truto.one/book-a-demo/)

## The Engineering Reality of the Housecall Pro API

A custom MCP server is essentially a self-hosted integration layer. While the open MCP standard provides a predictable way for models to discover tools, implementing it against B2B field service APIs is notoriously difficult. Housecall Pro is built to manage the real-world chaos of moving trucks, changing schedules, and complex job costing. Its API design reflects that exact complexity.

If you decide to [build a custom Housecall Pro MCP server from scratch](https://truto.one/the-hands-on-guide-to-building-mcp-servers-for-ai-agents-2026), you will run into several domain-specific integration hurdles.

### Forward-Only Pipeline States and Resource Conversion
In a standard CRM, changing a record's state is usually a simple `PATCH` request to update a string field. Housecall Pro enforces strict domain logic on pipeline transitions. The Pipeline domain only allows forward movement to statuses with equal or higher order values. Furthermore, converting a Lead into a Job or an Estimate requires hitting a dedicated state-machine endpoint (`/leads/convert`). An LLM has no inherent context on these workflow rules. A managed MCP server exposes specialized tools like `housecall_pro_leads_convert` with strictly defined schemas that explicitly guide Claude on how to advance state legally.

### Bulk Mutations vs. Rate Limit Exhaustion
Field service estimates and jobs often involve dozens of line items (parts, labor, materials). If you expose a standard "create line item" tool to Claude, it will iteratively call the API 30 times to build an estimate, rapidly exhausting your Housecall Pro API rate limits. To solve this, Housecall Pro provides the `housecall_pro_job_line_items_bulk_update` endpoint, which allows you to create, update, and replace line items in a single massive payload. Exposing this bulk interface to Claude via MCP allows the model to assemble the entire estimate in memory and dispatch it in one efficient network call.

### Handling Upstream Rate Limits
It is critical to understand how API quotas behave when connecting an LLM to a production system. **Truto does not magically retry, throttle, or absorb rate limit errors.** When the upstream Housecall Pro API returns an HTTP 429 Too Many Requests error, Truto passes that 429 directly back to the caller. 

Truto does normalize the upstream rate limit data into standard IETF headers (`ratelimit-limit`, `ratelimit-remaining`, `ratelimit-reset`). The caller - whether that is Claude Desktop or your custom LangGraph agent framework - is entirely responsible for reading those headers and implementing the necessary backoff and retry logic. Do not assume your MCP integration layer will buffer traffic indefinitely.

## Creating Your Managed MCP Server

Truto's MCP architecture turns any connected Housecall Pro account into an MCP-compatible JSON-RPC 2.0 tool server. Tools are not hardcoded; they are [generated dynamically from Truto's integration documentation records and resource schemas](https://truto.one/openapi-to-mcp-how-mcp-servers-auto-generate-tools-from-api-docs). If an endpoint is documented in Truto, it becomes an AI tool automatically.

You can generate an MCP server for Housecall Pro using two methods: the Truto dashboard UI or the Truto REST API.

### Method 1: Via the Truto UI

For quick prototyping and manual setups, you can generate the server directly from your dashboard.

1. Navigate to the **Integrated Accounts** page in Truto and select your connected Housecall Pro account.
2. Click the **MCP Servers** tab.
3. Click **Create MCP Server**.
4. Select your desired configuration. You can name the server, filter allowed operations (e.g., read-only), and set an optional expiration date.
5. Click Save and **copy the generated MCP server URL** (e.g., `https://api.truto.one/mcp/a1b2c3d4e5f6...`).

### Method 2: Via the Truto API

For programmatic deployment - such as dynamically provisioning an AI agent for a specific franchise location - you can use the Truto API. This validates that tools are available, stores a hashed token in a distributed key-value store at the edge, and returns a ready-to-use URL.

```bash
curl -X POST https://api.truto.one/integrated-account/{integrated_account_id}/mcp \
  -H "Authorization: Bearer YOUR_TRUTO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Housecall Pro Dispatch AI",
    "config": {
      "methods": ["read", "write"],
      "tags": ["jobs", "estimates", "leads"]
    },
    "expires_at": "2026-12-31T23:59:59Z"
  }'
```

The API returns a secure, authenticated URL containing a cryptographic token. This URL is completely self-contained. 

## Connecting the MCP Server to Claude

Once you have your Truto MCP server URL, connecting it to Claude is a straightforward process. You can do this via the Claude application interface or by manually editing the configuration file.

### Method A: Via the Claude UI

If you are using a managed Claude workspace or a compatible environment like ChatGPT's advanced integrations:
1. Open **Settings**. 
2. Navigate to **Integrations** or **Connectors**.
3. Click **Add MCP Server** or **Add custom connector**.
4. Paste the Truto MCP URL (`https://api.truto.one/mcp/...`) and click Add.
Claude will immediately execute a protocol handshake (`initialize`) and fetch the available Housecall Pro tools.

### Method B: Via Manual Config File

If you are using Claude Desktop locally as a developer, you configure external MCP servers via the `claude_desktop_config.json` file. Because Truto's managed MCP operates over HTTP SSE (Server-Sent Events) rather than local stdio, you utilize the official `@modelcontextprotocol/server-sse` proxy package.

Update your config file as follows:

```json
{
  "mcpServers": {
    "housecall-pro-truto": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-sse",
        "https://api.truto.one/mcp/YOUR_TRUTO_TOKEN"
      ]
    }
  }
}
```

Restart Claude Desktop. The application will boot the SSE client, connect to Truto's edge network, authenticate the token, and ingest the Housecall Pro tool definitions.

## Housecall Pro MCP Hero Tools

When Claude connects to the server, Truto exposes Housecall Pro's endpoints as strictly typed functions. Here are the highest-leverage tools available for field service automation.

### create_a_housecall_pro_lead
Captures top-of-funnel interest. This tool creates a new lead in Housecall Pro, binding it to a customer object and an address. It supports tagging, lead source attribution, and assigned employees.

> "A new customer named Sarah Jenkins just called in from our Yelp ad. Her email is sarah@example.com and her phone is 555-0192. She needs a quote for a leaky roof at 123 Maple St, Austin TX. Create a lead for her, tag it 'urgent', and attribute it to 'Yelp'."

### list_all_housecall_pro_company_booking_windows
This tool is critical for AI booking agents. It calculates available time windows to book a Housecall Pro job or estimate based on the company's Online Booking settings, open employee slots, and the configured duration of the requested service.

> "Check the booking windows for this coming Tuesday. I need a 2-hour slot available for an HVAC inspection. What times can we offer the customer?"

### create_a_housecall_pro_estimate
Transitions a conversation into a formal proposal. This tool generates an estimate attached to a customer ID. You can include a schedule window and detailed line items.

> "Take the lead for Sarah Jenkins and create a formal estimate. Add a service line item for 'Initial Roof Inspection' at $150, and schedule the estimate window for tomorrow at 10 AM."

### housecall_pro_leads_convert
A crucial workflow tool. Once a lead is ready to move forward, this tool handles the strict state-machine transition required to convert the lead record into an actual estimate or job.

> "The customer approved the preliminary discussion. Please convert lead ID 8910 into an active Job in the system so we can start dispatching."

### housecall_pro_job_line_items_bulk_update
Optimizes API usage by replacing or adding multiple line items to a job in a single network request. If a line item UUID is omitted in the payload, Housecall Pro treats it as a new entry. 

> "Update the line items for Job ID 452. Keep the existing diagnostic fee, but add a new material line item for 'Copper Piping' (quantity 4, $25 each) and a labor line item for 2 hours at $85/hr."

### housecall_pro_jobs_dispatch
Handles workforce orchestration. This tool takes a job ID and a list of employee IDs, formally dispatching the field technicians to the site and triggering their mobile application notifications.

> "The emergency plumbing job (ID 902) needs to go out now. Dispatch employee ID 12 (Mike) and employee ID 15 (Dave) to the site immediately."

### get_single_housecall_pro_invoice_by_id
Retrieves the complete financial picture of a completed job, including subtotal, due amounts, applied taxes, discounts, and payment history.

> "Pull up the invoice for Job ID 771. Check if the customer has made a payment yet, and tell me the remaining due amount."

*To view the complete inventory of available endpoints, schemas, and required parameters, visit the [Housecall Pro integration page](https://truto.one/integrations/detail/housecallpro).*

## Workflows in Action

Individual tools are useful, but the real power of connecting Claude to Housecall Pro via MCP lies in autonomous, multi-step orchestration.

### Scenario 1: AI-Driven Dispatching from Inbound Lead
An AI voice agent or SMS bot handles an emergency customer request. Claude must evaluate the request, check availability, create the lead, and dispatch a tech.

> "A customer at 404 Industrial Blvd just reported a burst pipe. Find our next available booking window for today, create the customer lead, convert it immediately to an emergency job, and dispatch the first available technician."

1. Claude calls `list_all_housecall_pro_company_booking_windows` to find immediate availability today.
2. Claude calls `list_all_housecall_pro_employees` to cross-reference who is available.
3. Claude calls `create_a_housecall_pro_lead` to register the customer and address in the CRM.
4. Claude calls `housecall_pro_leads_convert` to push the lead into an active Job state.
5. Claude calls `housecall_pro_jobs_dispatch` to assign the selected employee to the newly created Job ID.

The AI handles the entire triage and dispatch loop autonomously in seconds, moving data cleanly through Housecall Pro's strict state requirements.

```mermaid
sequenceDiagram
    participant Claude as Claude
    participant Truto as Truto MCP Server
    participant HCP as "Housecall Pro API"

    Claude->>Truto: call tool: list_all_housecall_pro_company_booking_windows
    Truto->>HCP: GET /booking_windows
    HCP-->>Truto: Available Slots
    Truto-->>Claude: JSON Schedule
    
    Claude->>Truto: call tool: create_a_housecall_pro_lead
    Truto->>HCP: POST /leads
    HCP-->>Truto: Lead ID 883
    Truto-->>Claude: Success
    
    Claude->>Truto: call tool: housecall_pro_leads_convert
    Truto->>HCP: POST /leads/883/convert
    HCP-->>Truto: Job ID 992
    Truto-->>Claude: Success
```

### Scenario 2: Field Tech Voice Notes to Accurate Invoicing
A field technician finishes a job, leaves a messy voice note summarizing what they did, and Claude interprets the unstructured text to update the job's line items and generate an accurate invoice.

> "I just read the field tech's transcript for Job ID 331: 'Replaced the main valve, took about 3 hours, also had to swap out a broken flange.' Use the bulk update tool to add 3 hours of labor at $95/hr, 1 main valve at $120, and 1 flange at $45 to the job. Then retrieve the updated invoice to confirm the new total."

1. Claude parses the unstructured text to identify the entities (Labor: 3 hrs, Valve: 1, Flange: 1).
2. Claude structures a JSON array and calls `housecall_pro_job_line_items_bulk_update`, passing the array to Job ID 331 to update the financial record in one clean API request.
3. Claude calls `get_single_housecall_pro_invoice_by_id` to verify the math.

The user gets back a confident confirmation: *"I have updated the line items. The new invoice total for Job ID 331 is $450.00, and it is ready to be sent to the customer."*

## Security and Access Control

When exposing a critical system of record like Housecall Pro to an LLM, least-privilege access is paramount. Truto provides several configuration layers to lock down your MCP servers:

*   **Method Filtering:** Limit Claude's capabilities at the protocol layer. Pass `config: { methods: ["read"] }` during creation to generate an MCP server that only exposes `get` and `list` tools. Claude literally cannot hallucinate a `create` or `delete` command because those tools will not exist in the server.
*   **Tag Filtering:** Restrict access to specific functional areas. For example, pass `tags: ["jobs", "schedules"]` to prevent Claude from accessing financial data or company-level configurations.
*   **Require API Token Auth:** By default, possessing the MCP URL grants access. For higher security, setting `require_api_token_auth: true` forces Claude to also pass a valid Truto API token in the `Authorization` header, adding a secondary authentication layer.
*   **Ephemeral Servers:** Set an `expires_at` timestamp. The server token and its associated tools will automatically be purged from Truto's edge storage via scheduled cleanup tasks when the timestamp is reached, ensuring temporary AI workers do not leave orphaned access routes.

## Orchestrating Field Operations with AI

Building a custom integration between an LLM and a robust field service API requires managing complex state transitions, fragmented endpoints, and aggressive rate limits. By leveraging Truto to generate a managed MCP server, you abstract away the API mechanics.

Instead of writing and maintaining TypeScript schemas for dozens of Housecall Pro endpoints, your engineering team can focus on crafting the business logic and prompts that guide Claude's behavior. The AI discovers the tools, understands the schemas, and executes the workflows natively.

> Ready to stop hand-coding API integrations for your AI agents? Get a demo of Truto's managed MCP architecture today.
>
> [Talk to us](https://truto.one/book-a-demo/)
