> ## Documentation Index
> Fetch the complete documentation index at: https://docs.curbwaste.com/llms.txt
> Use this file to discover all available pages before exploring further.

# MCP

> Understand CurbWaste MCP — the same company API keys and scopes as REST, exposed as tools for AI agents over Streamable HTTP.

## What MCP is

**MCP** (Model Context Protocol) is how AI clients call CurbWaste. The partner endpoint is Streamable HTTP at `https://api.curbwaste.com/mcp`. Tools use the **same company API keys and scopes** as the partner REST API and invoke the same services underneath — not a separate data plane.

Use REST when your application calls CurbWaste directly. Use MCP when an MCP-compatible agent should discover and invoke those capabilities as tools.

## Tools

A tool is available when your API key includes its scope. `mcp:tools:*` covers every `mcp:tools:…` scope, including `mcp:tools:connect`, which is required to open a session. Resource scopes (`customers:read`, `catalog:write`, and so on) unlock the matching REST-style tools.

Where a name exists both as a resource tool and as an `mcp:tools:` tool, the server exposes the `mcp:tools:` tool.

### Customers

| Tool | Description | Scope |
| - | - | - |
| `list_customers` | List customers | `customers:read` |
| `get_customer` | Get a customer | `customers:read` |
| `update_customer` | Update a customer | `customers:write` |
| `create_customer` | Create a customer | `mcp:tools:create_customer` |
| `search_customers` | Search customers | `mcp:tools:search_customers` |

### Catalog and pricing

| Tool | Description | Scope |
| - | - | - |
| `list_skus` | List SKUs | `catalog:read` |
| `get_sku` | Get a SKU | `catalog:read` |
| `list_services` | List services | `catalog:read` |
| `search_skus` | Search SKUs | `mcp:tools:search_skus` |
| `search_services` | Search services | `mcp:tools:search_services` |
| `search_materials` | Search configured materials | `mcp:tools:search_materials` |
| `list_pricelists` | List price lists | `mcp:tools:list_pricelists` |
| `get_pricelist_skus` | Get price list SKUs | `mcp:tools:get_pricelist_skus` |
| `get_pricelist_charges` | Get price list charges | `mcp:tools:get_pricelist_charges` |
| `get_customer_pricelist_skus` | Get a customer's price list SKUs | `mcp:tools:get_customer_pricelist_skus` |
| `create_customer_pricelist` | Create a customer price list | `mcp:tools:create_customer_pricelist` |
| `search_billing_templates` | Search routing billing templates | `mcp:tools:search_billing_templates` |
| `search_payment_policies` | Search payment policies | `mcp:tools:search_payment_policies` |

### Locations and zones

| Tool | Description | Scope |
| - | - | - |
| `list_locations` | List locations | `locations:read` |
| `get_location` | Get a location | `locations:read` |
| `list_zones` | List service zones | `locations:read` |
| `update_location` | Update a location | `locations:write` |
| `search_locations` | Search locations | `mcp:tools:search_locations` |
| `create_location` | Create a customer location | `mcp:tools:create_location` |
| `validate_address` | Validate an address | `mcp:tools:validate_address` |
| `match_customer_locations` | Match a spoken site to a customer's saved locations | `mcp:tools:match_customer_locations` |

### Orders

| Tool | Description | Scope |
| - | - | - |
| `search_orders` | Search orders | `mcp:tools:search_orders` |
| `list_orders` | List orders by board bucket | `mcp:tools:list_orders` |
| `search_order_archive` | Search archived orders | `mcp:tools:search_order_archive` |
| `order_counts` | Order counts by service line and state | `mcp:tools:order_counts` |
| `find_customer_live_orders` | Find a customer's live orders matching a spoken site, size, or asset | `mcp:tools:find_customer_live_orders` |
| `search_labels` | Search configured order labels | `mcp:tools:search_labels` |
| `create_ecommerce_order` | Create an e-commerce order | `mcp:tools:create_ecommerce_order` |
| `create_draft_order` | Create a draft order | `mcp:tools:create_draft_order` |
| `create_routing_draft_order` | Create a routing draft order | `mcp:tools:create_routing_draft_order` |
| `terminate_routing_order` | Terminate a routing order | `mcp:tools:terminate_routing_order` |

### Billing

| Tool | Description | Scope |
| - | - | - |
| `search_invoices` | Search invoices | `mcp:tools:search_invoices` |
| `get_open_invoices` | Get open invoices | `mcp:tools:get_open_invoices` |

### Dispatch

| Tool | Description | Scope |
| - | - | - |
| `list_drivers` | List drivers | `mcp:tools:list_drivers` |
| `list_haulers` | List haulers | `mcp:tools:list_haulers` |
| `list_routes` | List routes | `mcp:tools:list_routes` |

Exact REST contracts for the same resources are in the [API Reference](/api-reference/overview).

## Auth and scopes

Create keys and choose scopes in the [Developer Platform](https://platform.curbwaste.com) under **API Keys**. Clients authenticate with:

```http theme={null}
Authorization: Bearer cw_live_YOUR_API_KEY
```

See [Authentication](/authentication) for key lifecycle, `401` / `403`, and scope meaning. Prefer the minimum scopes the agent needs.

## Connect an AI client

1. Open the [Developer Platform](https://platform.curbwaste.com)
2. Create an API key under **API Keys** with the scopes your agent needs
3. Open **MCP** and copy the configuration for your AI client
4. Keep the `cw_live_…` key in a secure secret store

Endpoint:

```text theme={null}
https://api.curbwaste.com/mcp
```

## Safety

<Warning>
  MCP tools can perform real actions when the key includes write scopes. Grant only the scopes the agent needs and review tool calls before approving changes.
</Warning>

Successful writes through MCP use the same services as REST, so they can emit the same [webhooks](/concepts/webhooks) (for example `customer.created` / `location.updated`).

Authenticated MCP tool calls share your company's partner API [rate limit](/api-reference/usage) with REST `/v1`.

## Related

<CardGroup cols={2}>
  <Card title="Usage" icon="gauge-high" href="/api-reference/usage">
    Company rate limits shared by REST and MCP.
  </Card>

  <Card title="Authentication" icon="key" href="/authentication">
    Company API keys, Bearer auth, and scopes shared with REST.
  </Card>

  <Card title="Customers" icon="users" href="/concepts/customers">
    Account hub agents work with via customer tools.
  </Card>

  <Card title="API Reference" icon="code" href="/api-reference/overview">
    REST contracts for the resources MCP tools call.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.