# TurfHop MCP

> TurfHop connects your field service operations—lawn care, landscaping, and groundskeeping—directly to your AI client. Manage customer records, schedule jobs, check invoices, and plan routes all from natural conversation. It centralizes billing, job status updates, and service history retrieval for any physical work site.

## Overview
- **Category:** erp-operations
- **Price:** Free
- **Tags:** lawn-care, scheduling, route-planning, billing, service-management, work-orders

## Description

You run a field service business—landscaping, lawn care, groundskeeping. You don't want to jump into the full TurfHop app just to check an invoice or schedule a trim job. This MCP server hooks your AI client directly into your operations. It lets you handle everything from scheduling and billing to customer history retrieval using only natural conversation.

When you talk to your agent, it treats all twelve available functions like tools. You ask what you need—'What jobs are due next week?'—and the agent calls **`list_jobs`** and formats the data for you immediately. It centralizes billing details, job status updates, and service history for every physical site.

***

**Managing Your Client Accounts.**

You can check out your entire client roster anytime by calling **`list_customers`**. Need something specific? Use **`get_customer`** to pull up all the details for a single client ID. If you're working with a brand-new property, just run **`create_customer`**, feeding it structured JSON data to build the record straight away. If a customer moves or changes their phone number, you simply use **`update_customer`**; it modifies existing contact details without touching anything else.

**Scheduling and Updating Field Jobs.**

To see what's on the books, run **`list_jobs`**. For deep-dive status checks, call **`get_job`** with a specific job ID to pull all operational details. If you gotta schedule work for next Tuesday, **`create_job`** handles it, assigning and booking the service right away. And if a crew needs to change their plan—maybe the scope changed or the worker got reassigned—you use **`update_job`**. It modifies the status, assigned person, or job description of an existing assignment.

**Financial Tracking: Invoices and Quotes.**

You gotta keep track of the money coming in. You can get a summary list of all outstanding invoices by calling **`list_invoices`**, seeing which ones are paid and what's overdue. For the full scoop on one specific bill, run **`get_invoice`** with the invoice number to pull every line item detail. If you’re dealing with pending work, use **`list_quotes`** to see a list of client quotes that need approval or conversion into actual invoices. These tools make sure you never lose track of where your business stands financially.

**Cataloging Services and Materials.**

Before you bill anything out, you gotta know what you're selling. Run **`list_products`** to browse your entire service catalog. This tool lists every service, material, and product you offer, letting you check current pricing and availability references for any job.

This setup lets you run the whole operational cycle—from finding a new client profile using **`create_customer`** or locating an old one with **`get_customer`**, scheduling the work via **`list_jobs`** and **`create_job`**, checking the materials needed using **`list_products`**, to finally confirming payment by pulling details from **`get_invoice`**. You keep everything in chat, keeping your workflow tight.

## Tools

### create_customer
Creates a new client record in the system using structured JSON data.

### create_job
Schedules and assigns a brand new service job to a client.

### get_customer
Retrieves all specific details for a single customer ID.

### get_invoice
Pulls the complete records and line items for one invoice number.

### get_job
Fetches all operational details related to a specific service job ID.

### list_customers
Provides a list of every customer currently in the TurfHop database.

### list_invoices
Generates a summary list of all invoices, showing status and amounts due.

### list_jobs
Shows a comprehensive listing of every active and past service job assignment.

### list_products
Lists all services, materials, and products offered by the business for pricing reference.

### list_quotes
Retrieves a summary list of pending quotes that need client approval or conversion to an invoice.

### update_customer
Modifies existing customer contact details or operational records.

### update_job
Changes the status, assigned worker, or scope of an already scheduled job.

## Prompt Examples

**Prompt:** 
```
List all active service jobs in my TurfHop account.
```

**Response:** 
```
I've retrieved your jobs. You have 3 active assignments: 'Weekly Mowing' for John Doe, 'Gutter Cleaning' for Smith Residence, and 'Fertilization' for Tech Campus. Which one would you like details on?
```

**Prompt:** 
```
Search for a customer named 'Michael Scott'.
```

**Response:** 
```
I've found the record. Michael Scott (ID: cust_10293) is a registered customer. He has an outstanding balance of $120 and his last service was completed last Tuesday. Shall I retrieve his full history?
```

**Prompt:** 
```
Show me all unpaid invoices from this month.
```

**Response:** 
```
Fetching invoices... I found 2 unpaid invoices: #INV-8823 ($250.00) and #INV-8824 ($45.50). Both are marked as 'Sent' but not yet paid. Would you like to check the associated customer details?
```

## Capabilities

### Check and manage all customer accounts
Retrieve complete client profiles, search by name or ID, and create new records using tools like `get_customer` and `create_customer`.

### Schedule and update field jobs
Create new service assignments (`create_job`), list all active jobs (`list_jobs`), and get specific details for any job ID (`get_job`).

### Monitor invoicing and quotes
Pull lists of pending invoices and quotes, or fetch the full details of a single invoice using `list_invoices` and `get_invoice`.

### List available services and products
Browse your entire service catalog to check pricing and availability via the `list_products` tool.

### Keep client data accurate
Update existing customer information or job statuses directly through AI prompts using `update_customer` and `update_job`.

## Use Cases

### The Billing Check:
It’s the last day of the month. The owner needs to know if any high-value jobs were missed on billing. They ask their agent, 'Show me all unpaid invoices from this quarter.' The agent calls `list_invoices`, filters by status, and gives a clear summary, saving hours of manual spreadsheet work.

### The Emergency Job Change:
A client calls with an immediate request to change the scope of next week's service. Instead of calling the office manager, the ops manager asks their agent to run `get_job` by ID, review details, and then execute `update_job` with the new parameters. The update happens in seconds.

### The New Client Onboarding:
A salesperson closes a deal on site. They use their agent to call `get_customer` (to check for existing records) and, if none exist, they run `create_customer`. Then they immediately follow up with `create_job` so the work gets scheduled instantly.

### The Service Audit:
An administrator needs to audit service offerings. They ask their agent for 'all available services and pricing.' The agent runs `list_products`, pulling up a clean, categorized list they can use for training new staff or adjusting current quotes.

## Benefits

- Check real-time status on all jobs. Instead of clicking through job boards, you can ask the AI agent to run `list_jobs` and know exactly what's active today.
- Keep billing accurate. Quickly check who owes money by running `list_invoices`. You don't have to open the finance portal; just ask your agent.
- Never lose client data again. Use `get_customer` or `list_customers` to pull up full service histories and contact details on demand, right in your workflow.
- Plan ahead with quotes. Before sending an invoice, use `list_quotes` to see potential revenue streams and confirm pricing using `list_products`.
- Handle changes instantly. If a job gets rescheduled or a client address changes, run `update_job` or `update_customer` directly via simple commands.

## How It Works

The bottom line is: your AI client handles all the API calling boilerplate so you just get a direct answer in the chat window.

1. Subscribe to the TurfHop MCP Server and input your API key. This links your agent to all 12 available tools.
2. Ask your AI client a task (e.g., 'Find unpaid invoices for John Doe'). The agent translates this into multiple tool calls.
3. The server executes the required functions (like `list_invoices` then `get_customer`), and sends the final, clean data back to you.

## Frequently Asked Questions

**How do I check job statuses using TurfHop MCP Server?**
Run `list_jobs` to see every current and past assignment. If you need details on a single, specific service call, use the `get_job` tool with the corresponding ID.

**Can I create new customers using TurfHop MCP Server?**
Yes, just run `create_customer`. You pass the client data as a JSON string, and it builds the record right away. This is useful when you sign up a brand new site.

**What tools do I use to check overdue invoices?**
Start with `list_invoices` to get an overview of everything due. If you need details on one specific invoice, run `get_invoice` and provide the number.

**How does TurfHop MCP Server help me schedule a job?**
You call `create_job`. You must pass all necessary JSON parameters—client ID, service type, date. This tool makes sure the assignment is logged correctly in your system.

**Is there a way to see what services I can offer?**
Use `list_products`. It pulls up every product and service listed in your catalog, so you don't have to remember the SKUs or pricing manually.

**How do I connect my AI agent to the TurfHop MCP Server?**
You first subscribe to the server and then provide your unique API key, found in your account settings. This connection establishes secure access so your AI client can run operations on behalf of you.

**Using the TurfHop MCP Server, how do I check a specific customer's complete profile details?**
You use the `get_customer` tool and pass in the customer ID. This pulls all current records, including service history and contact information, without listing every single client.

**What is the best way to track potential future job costs using TurfHop MCP Server?**
The `list_quotes` tool lets you view all quotes. This helps you monitor services that haven't become paid invoices yet, keeping your cash flow projections accurate.

**Can I search for a customer by their name?**
Yes! Use the `list_customers` tool. While it returns the full list, you can ask the AI agent to find a specific person or retrieve details for a specific ID using `get_customer`.

**How do I schedule a new service job via AI?**
Use the `create_job` action. You'll need to provide a JSON string containing the job details like `customer_id`, `title`, and `start_date` to register the new assignment.

**Is it possible to see the payment status of an invoice?**
Absolutely. Use the `get_invoice` tool and provide the Invoice ID. The agent will retrieve the complete metadata, including whether the invoice is paid, pending, or overdue.