> For the complete documentation index, see [llms.txt](https://requiply.gitbook.io/requiply-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://requiply.gitbook.io/requiply-docs/knowledge/settings/integrations/ai.md).

# AI

The **AI** integration is Requiply's MCP server for connecting your organization data to AI assistants that support Model Context Protocol (MCP). It lets an assistant answer practical business questions using your live Requiply catalog, bookings, clients, pricing, availability, and reports.

You can find this page under **Settings -> Integrations -> AI**.

![AI integration page showing Claude and ChatGPT MCP setup cards](/files/ppYpqldC5rkRmWSRo1DF)

The MCP server URL is:

```
https://app.requiply.com/api/mcp
```

Requiply uses **OAuth** for MCP connector access. When a supported assistant connects, the user signs in to Requiply and approves access; there is no API key or secret token to copy into the URL.

{% hint style="info" %}
The current setup cards are **Claude** and **ChatGPT**. Each card opens a setup dialog with the MCP URL, a copy button, an optional link to that assistant's connector settings, and short connection steps.
{% endhint %}

## Connecting

Click **Setup** on the assistant you want to connect. The dialog shows the assistant logo, the MCP server URL, and the steps for that client.

![Claude MCP setup dialog with server URL, copy button, open settings button, and connection steps](/files/PJ9UaXP6q1CCUzfYIe0I)

Authentication is via OAuth. When you connect, you sign in to Requiply and approve access. **You must have the Admin role** in the organization you are connecting. Non-admin users are rejected with "Admin role required".

{% hint style="warning" %}
Copy the MCP server URL exactly as shown in Requiply. The app builds it from the current Requiply origin and appends `/api/mcp`.
{% endhint %}

{% tabs %}
{% tab title="Claude" %}
{% stepper %}
{% step %}

#### Open the setup dialog

On **Settings -> Integrations -> AI**, click **Setup** on the **Claude** card.
{% endstep %}

{% step %}

#### Copy the MCP server URL

Copy the URL from the **MCP server URL** field.
{% endstep %}

{% step %}

#### Open Claude connector settings

Use **Open Claude settings** from the dialog, or open Claude connector settings manually.
{% endstep %}

{% step %}

#### Add a custom connector

Add a custom connector, paste the Requiply URL, and name it `Requiply`.
{% endstep %}

{% step %}

#### Sign in with Requiply

Choose OAuth when prompted, sign in to Requiply as an Admin, and allow the connector.
{% endstep %}

{% step %}

#### Start using the tools

The Requiply tools appear in Claude after the connector is approved.
{% endstep %}
{% endstepper %}
{% endtab %}

{% tab title="ChatGPT" %}
{% stepper %}
{% step %}

#### Turn on Developer Mode

In ChatGPT, go to **Settings -> Connectors -> Advanced settings** and turn on **Developer Mode**.
{% endstep %}

{% step %}

#### Open the setup dialog

On **Settings -> Integrations -> AI**, click **Setup** on the **ChatGPT** card.
{% endstep %}

{% step %}

#### Copy the MCP server URL

Copy the URL from the **MCP server URL** field.
{% endstep %}

{% step %}

#### Create the connector

Back in **Settings -> Connectors**, click **Create**, paste the MCP server URL, and give the connector a clear name such as `Requiply`.
{% endstep %}

{% step %}

#### Sign in and enable

Choose OAuth authentication, sign in to Requiply as an Admin, save the connector, and toggle it on in a new chat.
{% endstep %}
{% endstepper %}
{% endtab %}
{% endtabs %}

![ChatGPT MCP setup dialog showing the Requiply MCP URL and ChatGPT-specific connection steps](/files/86l9ztZ1YFZZlFwPOk0I)

## Why AI integration matters

The AI integration gives an assistant a structured way to work with Requiply instead of guessing from exported spreadsheets or screenshots. After access is approved, the assistant can call Requiply MCP tools to inspect your organization, look up inventory, check availability, calculate quotes, find clients, review bookings, and answer reporting questions.

Typical uses include:

* Asking what equipment is available for a date range.
* Estimating a booking total before drafting or confirming a booking.
* Finding a client by email, phone, or name.
* Drafting a booking request for a customer (pending staff approval).
* Reviewing booking details and payment status.
* Checking revenue, utilization, overdue bookings, outstanding balances, and top clients.
* Understanding the business context, such as currency, timezone, locations, active bookings, and upcoming bookings.

Most tools are read-only. Three tools can write data, and they only ever **create** records — they never edit, delete, or overwrite: **`clients_create`** (a client), **`bookings_create_request`** (a booking request), and **`bookings_add_note`** (an internal note).

{% hint style="warning" %}
**Three tools write to Requiply, and all three are create-only.** They never edit, delete, or overwrite existing data:

* **`clients_create`** creates a client record. It is duplicate-safe — when a client with the same email or phone already exists, that client is returned instead of a duplicate being made.
* **`bookings_create_request`** creates a booking **request** in the `Request` status, pending staff approval. No payment is taken and no inventory is held until a staff member approves it.
* **`bookings_add_note`** adds an internal, staff-only note to a booking. It is never visible to the customer.
  {% endhint %}

## What MCP means in Requiply

MCP is the protocol layer that lets AI assistants use Requiply as a connected tool source. Instead of the assistant only reading a static page, it can request structured JSON from Requiply tools and use those results in its answer.

Access is scoped to the authenticated Requiply account and organization. That means the assistant works with organization data available through the signed-in user's approved connection.

## Business overview

| Tool              | What it helps the assistant answer                                                                                                                                 |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **`org_summary`** | Summarizes the organization context: business profile, currency, timezone, locations, payment and delivery methods, scale, active bookings, and upcoming bookings. |

Use this at the start of a conversation when the assistant needs to understand the business before answering more specific questions.

## Catalog tools

Catalog tools help an assistant understand what the business rents and which add-on services are available.

| Tool                      | What it can do                                                                                                                          |
| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| **`categories_list`**     | List equipment categories and provide category IDs that can be used when filtering inventory.                                           |
| **`inventory_list`**      | List rentable item groups with stock, prices, pricing tiers, images, and optional availability for a date range.                        |
| **`inventory_get_group`** | Inspect one item group in detail, including category, images, quantity, and pricing tiers.                                              |
| **`inventory_status`**    | Show a current fleet snapshot: total units, units on rent, available units, active bookings, and items currently out.                   |
| **`services_list`**       | List active add-on services, such as delivery, setup, operators, or insurance, each with a price type: fixed, per-day, or custom quote. |

These tools are useful for questions like "What do we rent?", "Which cameras are available?", or "Do we offer delivery or setup as a service?"

## Availability and quote tools

Availability and quote tools let an assistant reason about specific rental dates and possible booking totals.

| Tool                              | What it can do                                                                                                                                   |
| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| **`availability_check_calendar`** | Check day-by-day availability for one or more item groups across a date range.                                                                   |
| **`availability_check_items`**    | Find item groups with at least one available unit for the entire requested date range.                                                           |
| **`pricing_quote`**               | Calculate a precise hypothetical booking quote using selected inventory, services, pricing tiers, rental dates, and an optional client discount. |

These tools are best for planning and sales conversations, such as "What is available this weekend?" or "How much would two cameras plus delivery cost from Friday to Monday?"

## Customer tools

Customer tools let an assistant find an existing client or create a new client record before a booking flow.

| Tool                 | Access | What it can do                                                                                                                                                          |
| -------------------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **`clients_lookup`** | Read   | Find an existing client by exact email, exact phone, or fuzzy search across names, emails, and phone numbers.                                                           |
| **`clients_create`** | Write  | Create a client with name, last name, email, and phone. It requires at least an email or phone and returns an existing matching client instead of creating a duplicate. |

The write behavior of **`clients_create`** is covered by the [write-tools note above](#why-ai-integration-matters).

## Booking tools

Booking tools help an assistant browse bookings, inspect one in detail, draft a new booking request, and record internal notes.

| Tool                          | Access | What it can do                                                                                                                                                                                                           |
| ----------------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **`bookings_list`**           | Read   | List bookings filtered by booking dates, creation dates, status, or client, with pagination. Pending requests appear with the `Request` status.                                                                          |
| **`bookings_get`**            | Read   | Show one booking in detail, including dates, status, client, rented items, services, and payments. Accepts the internal id or the user-visible booking number.                                                           |
| **`bookings_create_request`** | Write  | Create a booking **request** (status `Request`, pending staff approval). Validates availability and the working-hours window at creation; no payment is taken and no inventory is held until a staff member approves it. |
| **`bookings_add_note`**       | Write  | Add an internal, staff-only note to a booking. It is never visible to the customer.                                                                                                                                      |

These tools are useful for questions like "What bookings are coming up next week?", "Show this client's bookings", "What is included in booking X?", or "Draft a booking request for these dates."

## Reporting tools

Reporting tools let an assistant answer analytics questions without manually exporting reports.

| Tool                           | What it can answer                                                                                                                                   |
| ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| **`reports_revenue`**          | Revenue totals, booking count, average order value, and breakdowns by time, category, or booking status.                                             |
| **`reports_bookings_summary`** | Operational booking metrics such as revenue, average and median order value, cancellation and completion rates, lead time, duration, and status mix. |
| **`reports_utilization`**      | Fleet utilization overall or by item group/category, including dead stock and top performers.                                                        |
| **`reports_top_items`**        | Item rankings by revenue, booking count, rented days, or units rented.                                                                               |
| **`reports_top_clients`**      | Best clients by spend or booking count, including contact details and average order value.                                                           |
| **`reports_outstanding`**      | Unpaid balances, total billed, total paid, total owed, and bookings with outstanding balances.                                                       |
| **`reports_overdue`**          | Bookings whose end date has passed but are not completed or cancelled, grouped by severity.                                                          |
| **`reports_pipeline`**         | Confirmed upcoming bookings and pipeline revenue by day, week, or month.                                                                             |

These tools are useful for questions like "How did we do last month?", "Which items are under-used?", "Who owes us money?", or "What revenue is already confirmed for the next 30 days?"

## Example questions

| What you can ask an assistant                            | Requiply MCP tools likely used                                                                                                  |
| -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| "How did we do last month?"                              | **`org_summary`**, **`reports_bookings_summary`**, **`reports_revenue`**                                                        |
| "What equipment is available this weekend?"              | **`availability_check_items`**, **`inventory_list`**                                                                            |
| "How much would two cameras cost from Friday to Monday?" | **`inventory_list`**, **`pricing_quote`**                                                                                       |
| "Which items are under-used?"                            | **`reports_utilization`**, **`reports_top_items`**                                                                              |
| "Who owes us money?"                                     | **`reports_outstanding`**                                                                                                       |
| "What is overdue right now?"                             | **`reports_overdue`**                                                                                                           |
| "Who are our best customers?"                            | **`reports_top_clients`**                                                                                                       |
| "Draft a booking request for two cameras next Friday"    | **`availability_check_items`**, **`pricing_quote`**, **`clients_lookup`** / **`clients_create`**, **`bookings_create_request`** |

## Use cases with example returns

Each use case below shows what a tester might ask the assistant, which tool answers it, and a trimmed example of the structured JSON the tool returns. The assistant turns that JSON into a plain-language answer.

{% hint style="info" %}
Examples are illustrative. Long fields (image URLs, ids) are shortened, client details are anonymized, and lists are trimmed. The field names and shapes match what the tools actually return.
{% endhint %}

### Understand the business

**Ask:** "Give me an overview of the business." → **`org_summary`**

<details>

<summary>Example return</summary>

```json
{
  "organization": {
    "name": "Acme Rentals",
    "currency": "USD",
    "language": "en",
    "timezone": "UTC",
    "tier": "core"
  },
  "locations": [
    { "name": "Main Studio", "city": "Lviv", "country": "Ukraine", "isDefault": true }
  ],
  "supportedDeliveryTypes": ["pickup", "delivery"],
  "supportedPaymentMethods": ["payOnPickup", "monobank"],
  "stats": {
    "totalClients": 30,
    "totalItemGroups": 9,
    "totalItems": 25,
    "totalCategories": 2,
    "totalLifetimeBookings": 19,
    "bookingsActiveNow": 0,
    "bookingsUpcoming": 1
  }
}
```

</details>

### Check what's free for a date range

**Ask:** "What can we offer June 19–21?" → **`availability_check_items`**

Returns only item groups with at least one unit free across every day of the range.

<details>

<summary>Example return</summary>

```json
{
  "items": [
    {
      "id": "61f3f7a3-…",
      "name": "ATEM Mini Pro",
      "sku": "ATEM-MIPR",
      "itemType": "equipment",
      "priceType": "day",
      "basePrice": 7,
      "currency": "USD",
      "totalQuantity": 1,
      "availableQuantity": 1,
      "pricingTiers": []
    },
    {
      "id": "4136f376-…",
      "name": "Blackmagic Studio Camera 4k Plus",
      "sku": "BLAC-STCA",
      "itemType": "equipment",
      "priceType": "day",
      "basePrice": 19.99,
      "currency": "USD",
      "totalQuantity": 2,
      "availableQuantity": 2,
      "pricingTiers": []
    }
  ],
  "nextCursor": "eyJuYW1l…"
}
```

</details>

### Quote a booking

**Ask:** "How much for two Blackmagic cameras, June 19–21?" → **`pricing_quote`**

Applies pricing tiers, any selected services, and the client's discount (here none), and returns a per-line breakdown.

<details>

<summary>Example return</summary>

```json
{
  "currency": "USD",
  "itemsSubtotal": 79.96,
  "servicesSubtotal": 0,
  "discountPercentage": 0,
  "total": 79.96,
  "lineItems": [
    {
      "groupId": "4136f376-…",
      "name": "Blackmagic Studio Camera 4k Plus",
      "quantity": 2,
      "unitPrice": 19.99,
      "unitCount": 2,
      "subtotal": 79.96
    }
  ],
  "lineServices": []
}
```

</details>

### See what's out right now

**Ask:** "What's on rent right now?" → **`inventory_status`**

When units are out, `currentlyOut` lists each one (returning soonest first) with its booking, client, quantity, and return date.

<details>

<summary>Example return</summary>

```json
{
  "asOf": "2026-06-13T05:02:07Z",
  "totals": {
    "totalUnits": 25,
    "unitsOnRent": 0,
    "unitsAvailable": 25,
    "activeBookingCount": 0
  },
  "currentlyOut": []
}
```

</details>

### Review a period's performance

**Ask:** "How did we do so far this year?" → **`reports_bookings_summary`**

<details>

<summary>Example return</summary>

```json
{
  "currency": "USD",
  "dateFrom": "2026-01-01",
  "dateTo": "2026-06-13",
  "dateField": "startDate",
  "totals": {
    "totalBookings": 11,
    "totalRevenue": 2338.56,
    "avgOrderValue": 232.06,
    "medianOrderValue": 144.97
  },
  "rates": {
    "cancellationRate": 0.09,
    "completionRate": 0.27
  },
  "timing": {
    "avgLeadTimeDays": 0.8,
    "avgDurationDays": 4.1
  },
  "byStatus": [
    { "statusName": "Completed", "count": 3, "percentage": 27.3 },
    { "statusName": "In Progress", "count": 3, "percentage": 27.3 },
    { "statusName": "Confirmed", "count": 3, "percentage": 27.3 },
    { "statusName": "New", "count": 1, "percentage": 9.1 },
    { "statusName": "Cancelled", "count": 1, "percentage": 9.1 }
  ]
}
```

</details>

### Find who owes money

**Ask:** "Who owes us money?" → **`reports_outstanding`**

Totals plus the bookings with the largest balances. `paidAmount` counts only completed payments; `reservationOrgId` is the user-visible booking number.

<details>

<summary>Example return</summary>

```json
{
  "currency": "USD",
  "dateFrom": "2025-06-13",
  "dateTo": "2026-06-13",
  "totals": {
    "totalReservations": 14,
    "reservationsWithBalance": 7,
    "totalBilled": 3342.30,
    "totalPaid": 2239.60,
    "totalOwed": 1222.70
  },
  "topByBalance": [
    {
      "reservationOrgId": 14,
      "startDate": "2026-04-03T07:00:00+00:00",
      "endDate": "2026-04-06T09:00:00+00:00",
      "statusName": "Confirmed",
      "clientName": "Jordan",
      "clientLastName": "Lee",
      "clientEmail": "jordan.lee@example.com",
      "totalCost": 445.92,
      "paidAmount": 0,
      "balanceDue": 445.92
    },
    {
      "reservationOrgId": 8,
      "statusName": "Completed",
      "clientName": "Sam",
      "clientLastName": "Rivera",
      "clientEmail": "sam.rivera@example.com",
      "totalCost": 187.96,
      "paidAmount": 0,
      "balanceDue": 187.96
    }
  ]
}
```

</details>

### Draft a booking request (write)

**Ask:** "Reserve two Blackmagic cameras for June 19–21 for <jordan.lee@example.com>."

A typical multi-step flow:

1. **`availability_check_items`** — confirm the cameras are free for the dates.
2. **`pricing_quote`** — get the exact total (`$79.96` above).
3. **`clients_lookup`** then **`clients_create`** — resolve or create the client.
4. **`bookings_create_request`** — draft the request. It returns the new booking number; the booking stays in the `Request` status until staff approve it.

<details>

<summary>Example return (bookings_create_request)</summary>

```json
{
  "reservationId": 318,
  "reservationOrgId": 24,
  "totalCost": 79.96,
  "currency": "USD"
}
```

</details>

{% hint style="warning" %}
**`bookings_create_request` creates a real booking request.** Start and end times must fall on a working day inside the organization's working hours, or the call fails with a message describing the allowed window. The request does not hold inventory until a staff member approves it.
{% endhint %}

## Things to know

* Tool results are returned as structured JSON, so the assistant can summarize, compare, filter, and combine results.
* Most tools only read Requiply data. Three tools write — **`clients_create`**, **`bookings_create_request`**, and **`bookings_add_note`** — and all three only create records (a client, a booking request, or an internal note). They never delete or overwrite.
* A booking request created by an assistant lands in the `Request` status and waits for staff approval. Approval re-checks availability, takes payment, and holds inventory; until then the request does none of those.
* The AI integration works with organization-scoped data for the authenticated Requiply account.
* The MCP URL does not include a secret key. Authentication happens through OAuth sign-in and approval.

## Troubleshooting

**Connector won't connect / "Authentication required" (401)** The MCP endpoint requires a valid OAuth token. Re-run sign-in from your assistant's connector settings. Access tokens expire after 30 days — after that you are prompted to sign in again.

**"Admin role required" during sign-in** Only users with the Admin role in the organization can authorize an MCP connection. Ask an org admin to connect, or have your role upgraded.

**Redirected to login and nothing happens** You must be signed in to Requiply in the same browser. Complete the Requiply login; the authorization then continues automatically.

**A booking request fails with a working-hours message** **`bookings_create_request`** requires start and end to fall on working days within the organization's working hours (evaluated in the org timezone). The error message includes the allowed window — adjust the times and retry. A date with no time (e.g. `2026-07-01`) is treated as midnight UTC and is usually rejected; always include a time.

**"Items already fully booked" / availability errors** Check availability first with **`availability_check_items`** for the dates, then create the request. A booking request does not hold inventory until staff approve it.

**Tools don't appear after connecting** Disconnect and reconnect. Ensure the URL is exactly `https://app.requiply.com/api/mcp` (HTTPS, no trailing slash).
