MCP server for Recurly — accounts, subscriptions, invoices, plans; cancel & pause subs.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Cancel a subscription. By default it stays active until the end of the current term (`term_end`); pass timeframe `bill_date` to cancel effective the next bill date. This changes billing state. Recurly: PUT /subscriptions/{subscription_id}/cancel.
Subscription id (no prefix) or "uuid-<uuid>".
When cancellation takes effect. Default term_end (end of current term).
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
Cancel a subscription. By default it stays active until the end of the current term (`term_end`); pass timeframe `bill_date` to cancel effective the next bill date. This changes billing state. Recurly: PUT /subscriptions/{subscription_id}/cancel.
| Argument | Type | Description |
|---|---|---|
| timeframe | string | When cancellation takes effect. Default term_end (end of current term). |
| subscription_id* | string | Subscription id (no prefix) or "uuid-<uuid>". |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"subscription_id"
],
"properties": {
"timeframe": {
"enum": [
"term_end",
"bill_date"
],
"type": "string",
"description": "When cancellation takes effect. Default term_end (end of current term)."
},
"subscription_id": {
"type": "string",
"minLength": 1,
"description": "Subscription id (no prefix) or \"uuid-<uuid>\"."
}
}
}Fetch one account by its id (no prefix, e.g. e28zov4fw0v2) or by your own code prefixed with `code-` (e.g. code-bob). Recurly: GET /accounts/{account_id}.
| Argument | Type | Description |
|---|---|---|
| account_id* | string | Account id (no prefix) or "code-<your account code>". |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"account_id"
],
"properties": {
"account_id": {
"type": "string",
"minLength": 1,
"description": "Account id (no prefix) or \"code-<your account code>\"."
}
}
}Fetch one subscription by its id (no prefix) or by uuid prefixed with `uuid-`. Recurly: GET /subscriptions/{subscription_id}.
| Argument | Type | Description |
|---|---|---|
| subscription_id* | string | Subscription id (no prefix) or "uuid-<uuid>". |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"subscription_id"
],
"properties": {
"subscription_id": {
"type": "string",
"minLength": 1,
"description": "Subscription id (no prefix) or \"uuid-<uuid>\"."
}
}
}List customer accounts on the site. Supports cursor pagination and filtering. Recurly: GET /accounts.
| Argument | Type | Description |
|---|---|---|
| sort | string | Field to order by. Default created_at. |
| string | Filter by account email (filter_account_email). | |
| limit | integer | Page size, 1–200. Default 20 (Recurly default). |
| order | string | Sort direction. Default desc. |
| end_time | string | ISO 8601 upper bound (exclusive) for the `sort` field. |
| past_due | boolean | If true, only past-due accounts. |
| begin_time | string | ISO 8601 lower bound (inclusive) for the `sort` field, e.g. 2026-01-01T00:00:00Z. |
| subscriber | boolean | If true, only accounts with a subscription; if false, only without. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"sort": {
"enum": [
"created_at",
"updated_at"
],
"type": "string",
"description": "Field to order by. Default created_at."
},
"email": {
"type": "string",
"description": "Filter by account email (filter_account_email)."
},
"limit": {
"type": "integer",
"maximum": 200,
"minimum": 1,
"description": "Page size, 1–200. Default 20 (Recurly default)."
},
"order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort direction. Default desc."
},
"end_time": {
"type": "string",
"description": "ISO 8601 upper bound (exclusive) for the `sort` field."
},
"past_due": {
"type": "boolean",
"description": "If true, only past-due accounts."
},
"begin_time": {
"type": "string",
"description": "ISO 8601 lower bound (inclusive) for the `sort` field, e.g. 2026-01-01T00:00:00Z."
},
"subscriber": {
"type": "boolean",
"description": "If true, only accounts with a subscription; if false, only without."
}
}
}List invoices across the site, or for one account when `account_id` is given (GET /accounts/{account_id}/invoices). Recurly: GET /invoices.
| Argument | Type | Description |
|---|---|---|
| sort | string | Field to order by. Default created_at. |
| type | string | Filter by invoice type. |
| limit | integer | Page size, 1–200. Default 20 (Recurly default). |
| order | string | Sort direction. Default desc. |
| state | string | Filter by invoice state. |
| end_time | string | ISO 8601 upper bound (exclusive) for the `sort` field. |
| account_id | string | Optional: scope to one account. Id (no prefix) or "code-<code>". |
| begin_time | string | ISO 8601 lower bound (inclusive) for the `sort` field, e.g. 2026-01-01T00:00:00Z. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"sort": {
"enum": [
"created_at",
"updated_at"
],
"type": "string",
"description": "Field to order by. Default created_at."
},
"type": {
"enum": [
"charge",
"credit",
"non-legacy",
"legacy"
],
"type": "string",
"description": "Filter by invoice type."
},
"limit": {
"type": "integer",
"maximum": 200,
"minimum": 1,
"description": "Page size, 1–200. Default 20 (Recurly default)."
},
"order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort direction. Default desc."
},
"state": {
"enum": [
"pending",
"processing",
"past_due",
"paid",
"failed",
"open",
"closed"
],
"type": "string",
"description": "Filter by invoice state."
},
"end_time": {
"type": "string",
"description": "ISO 8601 upper bound (exclusive) for the `sort` field."
},
"account_id": {
"type": "string",
"description": "Optional: scope to one account. Id (no prefix) or \"code-<code>\"."
},
"begin_time": {
"type": "string",
"description": "ISO 8601 lower bound (inclusive) for the `sort` field, e.g. 2026-01-01T00:00:00Z."
}
}
}List the site's subscription plans, optionally filtered by state. Recurly: GET /plans.
| Argument | Type | Description |
|---|---|---|
| sort | string | Field to order by. Default created_at. |
| limit | integer | Page size, 1–200. Default 20 (Recurly default). |
| order | string | Sort direction. Default desc. |
| state | string | Filter by plan state. |
| end_time | string | ISO 8601 upper bound (exclusive) for the `sort` field. |
| begin_time | string | ISO 8601 lower bound (inclusive) for the `sort` field, e.g. 2026-01-01T00:00:00Z. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"sort": {
"enum": [
"created_at",
"updated_at"
],
"type": "string",
"description": "Field to order by. Default created_at."
},
"limit": {
"type": "integer",
"maximum": 200,
"minimum": 1,
"description": "Page size, 1–200. Default 20 (Recurly default)."
},
"order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort direction. Default desc."
},
"state": {
"enum": [
"active",
"inactive"
],
"type": "string",
"description": "Filter by plan state."
},
"end_time": {
"type": "string",
"description": "ISO 8601 upper bound (exclusive) for the `sort` field."
},
"begin_time": {
"type": "string",
"description": "ISO 8601 lower bound (inclusive) for the `sort` field, e.g. 2026-01-01T00:00:00Z."
}
}
}List subscriptions across the site, optionally scoped to one account and/or filtered by state. Provide `account_id` to use GET /accounts/{account_id}/subscriptions; otherwise GET /subscriptions.
| Argument | Type | Description |
|---|---|---|
| sort | string | Field to order by. Default created_at. |
| limit | integer | Page size, 1–200. Default 20 (Recurly default). |
| order | string | Sort direction. Default desc. |
| state | string | Filter by subscription state. |
| end_time | string | ISO 8601 upper bound (exclusive) for the `sort` field. |
| account_id | string | Optional: scope to one account. Id (no prefix) or "code-<code>". |
| begin_time | string | ISO 8601 lower bound (inclusive) for the `sort` field, e.g. 2026-01-01T00:00:00Z. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"sort": {
"enum": [
"created_at",
"updated_at"
],
"type": "string",
"description": "Field to order by. Default created_at."
},
"limit": {
"type": "integer",
"maximum": 200,
"minimum": 1,
"description": "Page size, 1–200. Default 20 (Recurly default)."
},
"order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort direction. Default desc."
},
"state": {
"enum": [
"active",
"canceled",
"expired",
"future",
"in_trial",
"live",
"paused"
],
"type": "string",
"description": "Filter by subscription state."
},
"end_time": {
"type": "string",
"description": "ISO 8601 upper bound (exclusive) for the `sort` field."
},
"account_id": {
"type": "string",
"description": "Optional: scope to one account. Id (no prefix) or \"code-<code>\"."
},
"begin_time": {
"type": "string",
"description": "ISO 8601 lower bound (inclusive) for the `sort` field, e.g. 2026-01-01T00:00:00Z."
}
}
}Pause a subscription for a number of upcoming billing cycles. Set `remaining_pause_cycles` to 0 to resume/cancel an existing pause. This changes billing state. Recurly: PUT /subscriptions/{subscription_id}/pause.
| Argument | Type | Description |
|---|---|---|
| subscription_id* | string | Subscription id (no prefix) or "uuid-<uuid>". |
| remaining_pause_cycles* | integer | Number of billing cycles to pause. 0 resumes/cancels a scheduled pause. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"subscription_id",
"remaining_pause_cycles"
],
"properties": {
"subscription_id": {
"type": "string",
"minLength": 1,
"description": "Subscription id (no prefix) or \"uuid-<uuid>\"."
},
"remaining_pause_cycles": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Number of billing cycles to pause. 0 resumes/cancels a scheduled pause."
}
}
}