Tools Reference
The CRM MCP server exposes 13 read-only diagnostic tools scoped to a single TagadaPay account. All tools are backed by the official @tagadapay/node-sdk.
All tools are implicitly account-scoped — you never pass an accountId. The API key in your MCP config determines which account you see.
The tools are organized in six categories: Orders, Stores, Processors, Funnels, Customers, Webhooks & domains.
Orders
orders.list
List orders for the account with optional filters and pagination.
| Parameter | Type | Required | Default | Description |
|---|
storeId | string | No | — | Filter by store id |
status | string[] | No | — | Filter by order status |
page | number | No | 1 | Page number, 1-indexed |
pageSize | number | No | 25 | Page size, max 100 |
Returns: { total, page, pageSize, count, items: [...] }
orders.retrieve
Retrieve a single order by id.
| Parameter | Type | Required | Description |
|---|
orderId | string | Yes | Order id, e.g. ord_xxx |
Returns: the order object.
Stores
stores.list
List stores on the account.
| Parameter | Type | Required | Default | Description |
|---|
page | number | No | 1 | Page number |
pageSize | number | No | 25 | Page size, max 100 |
Returns: { total, page, pageSize, items: [...] }
stores.retrieve
Retrieve a single store by id.
| Parameter | Type | Required | Description |
|---|
storeId | string | Yes | Store id, e.g. store_xxx |
Returns: the store object.
Processors
Useful first call when an agent is asked about declined payments or routing.
processors.list
List payment processors configured on the account, with their active flag, supported currencies, and countries.
No parameters.
Returns: { count, items: [...] }
processors.retrieve
Retrieve a single processor by id.
| Parameter | Type | Required | Description |
|---|
processorId | string | Yes | Processor id, e.g. proc_xxx |
Returns: the processor object.
Funnels
funnels.list
List funnels for a store. Use to diagnose checkout issues (wrong default currency, inactive funnel, missing steps).
| Parameter | Type | Required | Description |
|---|
storeId | string | Yes | Store id, e.g. store_xxx |
Returns: { count, items: [...] }
funnels.retrieve
Retrieve a single funnel by id with its full configuration.
| Parameter | Type | Required | Description |
|---|
funnelId | string | Yes | Funnel id, e.g. fnl_xxx |
Returns: the funnel object with steps and offer config.
Customers
customers.list
List customers with optional email filter and pagination.
| Parameter | Type | Required | Default | Description |
|---|
email | string | No | — | Filter by exact email match |
page | number | No | 1 | Page number |
pageSize | number | No | 25 | Page size, max 100 |
Returns: { total, page, pageSize, items: [...] }
customers.retrieve
Retrieve a single customer by id.
| Parameter | Type | Required | Description |
|---|
customerId | string | Yes | Customer id, e.g. cus_xxx |
Returns: the customer object.
Webhooks & domains
webhooks.list
List webhook endpoints configured on a store. Use to diagnose missing or misconfigured endpoints.
| Parameter | Type | Required | Description |
|---|
storeId | string | Yes | Store id, e.g. store_xxx |
Returns: { count, items: [...] }
domains.list
List custom domains on the account with their verification status.
No parameters.
Returns: { count, items: [...] }
domains.getDnsLookup
Live DNS lookup for a domain — returns the actual A/CNAME/TXT records observed on the public internet, run from TagadaPay infrastructure. Use to diagnose DNS misconfiguration without making the merchant run dig.
| Parameter | Type | Required | Description |
|---|
domain | string | Yes | Domain name, e.g. shop.example.com |
recordType | enum | No | One of A, AAAA, CNAME, TXT, MX, NS |
Returns: the DNS lookup result.
Errors
| Error code | When it happens | What to do |
|---|
unauthorized | API key missing or revoked | Re-issue from Settings → API Keys |
forbidden | Key exists but lacks read scope | Update the key’s scope |
rate_limited | Too many calls from one key | Back off; retry with exponential backoff |
internal_error | Transient server error | Retry once; report if persistent |
Errors are surfaced to the MCP client with isError: true and a human-readable message.
Versioning
The tool surface follows semantic versioning of @tagadapay/crm-mcp:
- Patch (
1.x.y): bug fixes, schema clarifications.
- Minor (
1.x.0): new tools, additive fields. Existing tools never break.
- Major (
x.0.0): breaking changes, telegraphed in the changelog at least one minor release ahead.
Tools never silently change their input or output schema between minor versions.
The MCP surface is strictly read-only. If a proposed tool mutates server state, it belongs in the in-app auto-fix agent’s proposal flow — not here. New tool PRs must:
- Call a TagadaPay Node SDK method that does not mutate server state.
- Validate inputs with Zod.
- Use
txt() / err() helpers for consistent response shapes.
- Not introduce new SDK dependencies beyond
@tagadapay/node-sdk.