The SolvaPay MCP Server exposes 38 tools across 8 domains. Every tool is scoped to your account — you can only access data belonging to your API key.
Customer Management
| Tool | Description |
|---|
create_customer | Create a new customer |
get_customer | Retrieve a customer by reference |
list_customers | List customers with search and pagination |
update_customer | Update a customer's details |
delete_customer | Delete a customer |
ensure_customer | Create or retrieve a customer by email (idempotent) |
create_customer
| Parameter | Type | Required | Description |
|---|
email | string | Yes | Customer email address |
name | string | No | Customer display name |
telephone | string | No | Customer telephone number |
metadata | object | No | Arbitrary key-value metadata |
get_customer
| Parameter | Type | Required | Description |
|---|
reference | string | Yes | Customer reference (e.g. cus_A1B2C3D4) |
list_customers
| Parameter | Type | Required | Default | Description |
|---|
limit | number | No | 20 | Maximum results to return |
offset | number | No | 0 | Pagination offset |
search | string | No | — | Search by name or email |
update_customer
| Parameter | Type | Required | Description |
|---|
reference | string | Yes | Customer reference |
name | string | No | Updated name |
email | string | No | Updated email |
telephone | string | No | Updated telephone |
metadata | object | No | Updated metadata |
delete_customer
| Parameter | Type | Required | Description |
|---|
reference | string | Yes | Customer reference |
ensure_customer
Creates a customer if one doesn't exist for the given email. Returns the existing customer if found.
| Parameter | Type | Required | Description |
|---|
email | string | Yes | Customer email (used as unique key) |
name | string | No | Customer name (used only on creation) |
externalRef | string | No | Your system's ID for this customer |
Agent Management
| Tool | Description |
|---|
create_agent | Create a new AI agent |
get_agent | Retrieve an agent by reference |
list_agents | List agents with search and filters |
update_agent | Update an agent's details |
delete_agent | Delete an agent |
create_agent
| Parameter | Type | Required | Description |
|---|
name | string | Yes | Agent name |
description | string | No | Agent description |
categories | string[] | No | Category tags |
get_agent
| Parameter | Type | Required | Description |
|---|
reference | string | Yes | Agent reference (e.g. agt_P9Q0R1S2) |
list_agents
| Parameter | Type | Required | Default | Description |
|---|
limit | number | No | 20 | Maximum results |
offset | number | No | 0 | Pagination offset |
search | string | No | — | Search by name |
status | string | No | — | Filter by status |
update_agent
| Parameter | Type | Required | Description |
|---|
reference | string | Yes | Agent reference |
name | string | No | Updated name |
description | string | No | Updated description |
categories | string[] | No | Updated categories |
delete_agent
| Parameter | Type | Required | Description |
|---|
reference | string | Yes | Agent reference |
Plan Management
| Tool | Description |
|---|
create_plan | Create a pricing plan |
get_plan | Retrieve a plan by reference |
list_plans | List plans with filters |
update_plan | Update a plan |
delete_plan | Delete a plan |
list_plans_for_agent | List plans assigned to a specific agent |
create_plan
| Parameter | Type | Required | Default | Description |
|---|
name | string | Yes | — | Plan name |
type | string | Yes | — | Plan type (recurring, one-time, usage-based) |
price | number | Yes | — | Price in smallest currency unit (e.g. cents) |
currency | string | No | USD | ISO 4217 currency code |
interval | string | No | — | Billing interval (month, year) |
description | string | No | — | Plan description |
features | string[] | No | — | Feature descriptions |
usageLimit | number | No | — | Maximum usage units per period |
get_plan
| Parameter | Type | Required | Description |
|---|
reference | string | Yes | Plan reference (e.g. pln_F1G2H3J4) |
list_plans
| Parameter | Type | Required | Default | Description |
|---|
limit | number | No | 20 | Maximum results |
offset | number | No | 0 | Pagination offset |
type | string | No | — | Filter by plan type |
status | string | No | — | Filter by status |
update_plan
| Parameter | Type | Required | Description |
|---|
reference | string | Yes | Plan reference |
name | string | No | Updated name |
price | number | No | Updated price |
features | string[] | No | Updated features |
description | string | No | Updated description |
delete_plan
| Parameter | Type | Required | Description |
|---|
reference | string | Yes | Plan reference |
list_plans_for_agent
| Parameter | Type | Required | Description |
|---|
agentRef | string | Yes | Agent reference |
Purchase Management
| Tool | Description |
|---|
list_purchases | List all purchases |
get_purchase | Retrieve a purchase by ID |
get_purchases_by_customer | Purchases for a customer |
get_purchases_by_agent | Purchases for an agent |
cancel_renewal | Cancel renewal of a purchase |
check_limits | Check usage limits for a customer/agent pair |
list_purchases
| Parameter | Type | Required | Description |
|---|
status | string | No | Filter by status |
get_purchase
| Parameter | Type | Required | Description |
|---|
id | string | Yes | Purchase ID or reference |
get_purchases_by_customer
| Parameter | Type | Required | Description |
|---|
customerRef | string | Yes | Customer reference |
status | string | No | Filter by status |
get_purchases_by_agent
| Parameter | Type | Required | Description |
|---|
agentRef | string | Yes | Agent reference |
status | string | No | Filter by status |
cancel_renewal
| Parameter | Type | Required | Description |
|---|
purchaseRef | string | Yes | Purchase reference |
reason | string | No | Cancellation reason |
check_limits
Returns usage limit status. If limits are exceeded, includes a checkout URL for the customer to upgrade.
| Parameter | Type | Required | Description |
|---|
customerRef | string | Yes | Customer reference |
agentRef | string | Yes | Agent reference |
Payment & Checkout
| Tool | Description |
|---|
create_checkout_session | Generate a checkout URL |
create_customer_session | Generate a customer billing portal URL |
create_checkout_session
| Parameter | Type | Required | Description |
|---|
customerRef | string | Yes | Customer reference |
agentRef | string | Yes | Agent reference |
planRef | string | No | Plan reference (uses default if omitted) |
returnUrl | string | No | Redirect URL after checkout |
create_customer_session
Generates a URL where the customer can manage their billing, payment methods, and purchases.
| Parameter | Type | Required | Description |
|---|
customerRef | string | Yes | Customer reference |
Wallet & Revenue
| Tool | Description |
|---|
get_wallet_balance | Get your wallet balance |
get_agent_balance | Get revenue for a specific agent |
get_wallet_stats | Get aggregated wallet statistics |
get_wallet_balance
No parameters required. Returns your current wallet balance.
get_agent_balance
| Parameter | Type | Required | Description |
|---|
agentRef | string | Yes | Agent reference |
get_wallet_stats
No parameters required. Returns aggregated wallet statistics.
Usage Tracking
| Tool | Description |
|---|
record_usage | Record a single usage event |
record_bulk_usage | Record multiple usage events |
record_usage
| Parameter | Type | Required | Description |
|---|
customerRef | string | Yes | Customer reference |
agentRef | string | Yes | Agent reference |
outcome | string | Yes | Outcome (e.g. success, failure) |
action | string | No | Action name |
requestId | string | No | Correlation ID for tracing |
actionDuration | number | No | Duration in milliseconds |
record_bulk_usage
| Parameter | Type | Required | Description |
|---|
events | array | Yes | Array of usage event objects (same fields as record_usage) |
Transactions & Refunds
| Tool | Description |
|---|
list_transactions | List transactions with filters |
get_transaction | Retrieve a transaction |
get_transaction_stats | Get transaction statistics |
create_refund | Refund a transaction |
list_transactions
| Parameter | Type | Required | Default | Description |
|---|
limit | number | No | 20 | Maximum results |
offset | number | No | 0 | Pagination offset |
status | string | No | — | Filter by status |
fromDate | string | No | — | Start date (ISO 8601) |
toDate | string | No | — | End date (ISO 8601) |
get_transaction
| Parameter | Type | Required | Description |
|---|
transactionId | string | Yes | Transaction ID |
get_transaction_stats
| Parameter | Type | Required | Description |
|---|
fromDate | string | No | Start date (ISO 8601) |
toDate | string | No | End date (ISO 8601) |
create_refund
| Parameter | Type | Required | Description |
|---|
sourceTransactionId | string | Yes | Transaction ID to refund |
amount | number | No | Partial refund amount (full refund if omitted) |
reason | string | No | Refund reason |