---
url: /relyagent-whmcs/features/mcp-tools.md
description: >-
  Relyagent exposes 62 WHMCS tools across 10 groups, each read or write. Scopes
  are derived automatically from the tools you tick, and state-changing tools
  stay off behind a dangerous-operations gate.
---

# MCP tools

Relyagent turns WHMCS into an **MCP server** — the Model Context Protocol is an open standard
that lets AI assistants call external tools. Each thing an AI client can do in your WHMCS is a
**tool**, and tools are organised into **groups** so you can reason about them by area of your
business.

There are **62 tools** in total across **10 groups**. Every tool is either **read** (fetches
information) or **write** (changes something). You pick tools per connection on the
**MCP Clients** tab; see [Connections & OAuth](/relyagent-whmcs/features/connections-oauth).

![Tool picker with groups expanded](/relyagent-whmcs/img/relyagent-mcp-tools-picker.png)
*Addons → Relyagent → MCP Clients → New connection*

## The 10 groups

| Group | What it covers | Representative tools | Read/Write |
| --- | --- | --- | --- |
| **Clients** | Client records and contacts | search clients, get client, list contacts/products/invoices, client groups, add contact (read); create client, *update client* (write) |
| **Tickets** | Support desk | list/get tickets, departments, statuses, counts, notes (read); create ticket, reply, update status, add note (write) |
| **Invoices** | Billing | list/get invoices, transactions, credits, payment methods (read); apply credit, *create invoice*, *add credit* (write) |
| **Services** | Client products/services | list client products, get product (read); update service, *suspend / unsuspend / change package* (write) |
| **Domains** | Domain management | list client domains, get domain, lock status (read); update nameservers (write) |
| **Admin** | System overview | system health, activity log, stats, due invoices (read) |
| **Affiliates** | Affiliate program | list affiliates (read); activate affiliate (write) |
| **Email** | Messaging | email templates, client emails (read); send email (write) |
| **Quotes** | Sales quotes | list quotes (read); create/update/send quote, *accept / delete quote* (write) |
| **Orders** | Orders | list orders, order statuses (read) |

## Scopes are automatic

OAuth **scopes** are named `<group>:read` and `<group>:write` — for example `clients:read` or
`invoices:write`. You never hand-edit scopes. When you tick tools for a connection, Relyagent
**derives the scopes automatically** from exactly the tools you selected. Tick a read tool and
that group's `:read` scope is granted; tick a write tool and `:write` is added.

::: info Enforced on list and call
Only the ticked tools are ever exposed. Relyagent enforces each connection's allowlist both when
a client asks *which tools exist* (`tools/list`) and when it tries to *run one* (`tools/call`) —
a tool that isn't ticked is neither listable nor callable for that connection.
:::

## Dangerous operations

State-changing tools that can materially alter your WHMCS are treated as **dangerous** and kept
**off by default**. Even if you tick one on a connection, it will not run until you deliberately
turn on the gate in **Settings → MCP Settings → Dangerous Operations**.

The tools the interface marks as dangerous — each shown with a red **dangerous** badge in the
tool picker — are:

* `update_client`
* `create_invoice`
* `add_credit`
* `suspend_service`
* `unsuspend_service`
* `change_package`
* `accept_quote`
* `delete_quote`

Two conditions must both be true for a dangerous tool to run: **Dangerous Operations** is turned
on in MCP Settings **and** the tool is ticked on the connection. If a dangerous tool is called
while the gate is off, the client is told the tool is disabled and pointed at the setting.

::: warning
Turn on Dangerous Operations only when you truly want AI clients to be able to change state —
suspend services, create invoices, apply credits, and so on. Leave it off to keep every
connection effectively read-only regardless of what is ticked.
:::

If a connection is missing a tool it needs, or a whole group is toggled off in MCP Settings, the
tool simply won't appear or run for that connection. Adding a tool to a connection requires the
client to reconnect and re-consent — see
[Connections & OAuth](/relyagent-whmcs/features/connections-oauth).
