# Recurpay MCP by usefulapi (remote · recurpay.usefulapi.io)

Read subscriptions, subscribers and orders; manage renewals, billing skips and payment links.

- Trust score: 18/100 (low)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `recurpay.usefulapi.io`: 18/100 (this document), [markdown](https://verifymcp.io/servers/io-usefulapi-recurpay/recurpay.md), [page](https://verifymcp.io/servers/io-usefulapi-recurpay/recurpay)

## Channel facts

- Endpoint: `https://recurpay.usefulapi.io/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.7.1`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 46/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not yet verified: we couldn't confirm whether this endpoint requires it.
  - HTTPS enforcement could not be verified: the plaintext port redirected somewhere other than https, so enforcement is unproven.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 0/100
  - Transport check failed: declared streamable-http, but the endpoint redirected instead of responding directly.
- **Schema Quality & AI Usability**: 0/100
  - Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 0/100
  - Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- **Tool Safety**: 0/100
  - Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- **Capabilities**: 0/100
  - Capabilities not yet verified: we couldn't read the endpoint's capabilities.

**Unverified: 5 categories.** Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.

## Install

### How do I install the Recurpay MCP by usefulapi server?

Recurpay MCP by usefulapi is a hosted endpoint at https://recurpay.usefulapi.io/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http io-usefulapi-recurpay 'https://recurpay.usefulapi.io/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "io-usefulapi-recurpay": {
      "url": "https://recurpay.usefulapi.io/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "io-usefulapi-recurpay": {
      "type": "http",
      "url": "https://recurpay.usefulapi.io/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.io-usefulapi-recurpay]
url = "https://recurpay.usefulapi.io/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "io-usefulapi-recurpay": {
      "type": "remote",
      "url": "https://recurpay.usefulapi.io/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add io-usefulapi-recurpay --url 'https://recurpay.usefulapi.io/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  io-usefulapi-recurpay:
    url: "https://recurpay.usefulapi.io/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "io-usefulapi-recurpay": {
      "Transport": "http",
      "Url": "https://recurpay.usefulapi.io/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add io-usefulapi-recurpay -t streamable-http -u 'https://recurpay.usefulapi.io/mcp'
```

### Other

```json
{
  "mcpServers": {
    "io-usefulapi-recurpay": {
      "type": "http",
      "url": "https://recurpay.usefulapi.io/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-02 (score 18, −48)

- [security regression] Endpoint reachability: reachable → not serving MCP
- [security regression] Tool safety: pass → unverified
- [security regression] Authorization: pass → unverified
- [security regression] Stability: 0.03 → unverified
- [functional regression] Schema quality: 100 → unverified
- [functional regression] Capabilities: pass → unverified
- [functional regression] Tool coverage: 100 → unverified

### 2026-11-01 (score 66, +1)

- [functional improvement] Stability: unverified → 0.03

### 2026-10-31 (score 65)

First indexed and scored.

## MCP tools (18)

### `recurpay_get_access_scopes` (~51 tokens)

Show the API scopes of the custom app whose token is connected (read-/write- subscriptions, customers, orders, plans, payments, webhooks). Use it when a tool answers 403.

### `recurpay_list_subscriptions` (~257 tokens)

List the store's subscriptions (status active/paused/halted/cancelled/draft, subscriber, plan policies, line items, next_billing_at). Filter by status, plan, subscriber email and dates. Use status=halted to find subscriptions whose renewal payment failed. Page with next_page.

Input parameters:

- `created_at_max` (string): Only subscriptions created on or before this date.
- `created_at_min` (string): Only subscriptions created on or after this date.
- `email` (string): Only subscriptions of the subscriber with this email.
- `limit` (integer): Results per page, 1-100 (default 100).
- `page` (integer): Page number, 1-based (default 1). Use next_page from the previous reply.
- `plan_id`: Only subscriptions of this plan (id from recurpay_list_plans).
- `sort_by` (string): Sort direction (default asc).
- `sort_key` (string): Field to sort by (default id).
- `status` (string): Only subscriptions with this status.
- `updated_at_max` (string): Only subscriptions updated on or before this date.
- `updated_at_min` (string): Only subscriptions updated on or after this date.

### `recurpay_get_subscription` (~54 tokens)

Get one subscription with its subscriber, addresses, line items, discount codes, billing/delivery policy, payment method and billing dates.

Input parameters:

- `subscription_id` (required): Recurpay subscription id (from recurpay_list_subscriptions).

### `recurpay_list_subscribers` (~229 tokens)

List the store's subscribers (customers with at least one subscription): name, email, phone, addresses, total spent. Filter by name, email and dates. Page with next_page.

Input parameters:

- `created_at_max` (string): Only subscribers created on or before this date.
- `created_at_min` (string): Only subscribers created on or after this date.
- `email` (string): Only the subscriber with this email.
- `first_name` (string): Only subscribers with this first name.
- `last_name` (string): Only subscribers with this last name.
- `limit` (integer): Results per page, 1-100 (default 100).
- `page` (integer): Page number, 1-based (default 1). Use next_page from the previous reply.
- `sort_by` (string): Sort direction (default asc).
- `sort_key` (string): Field to sort by (default id).
- `updated_at_max` (string): Only subscribers updated on or before this date.
- `updated_at_min` (string): Only subscribers updated on or after this date.

### `recurpay_get_subscriber` (~44 tokens)

Get one subscriber (customer) with contact data, addresses and total spent.

Input parameters:

- `subscriber_id` (required): Recurpay subscriber id (from recurpay_list_subscribers).

### `recurpay_list_orders` (~226 tokens)

List the orders generated by subscriptions (name, subscriber, status, totals). Filter by order name, subscriber email, subscription and dates. Page with next_page.

Input parameters:

- `created_at_max` (string): Only orders created on or before this date.
- `created_at_min` (string): Only orders created on or after this date.
- `email` (string): Only orders of the subscriber with this email.
- `limit` (integer): Results per page, 1-100 (default 100).
- `name` (string): Only orders with this name (the store's order number).
- `page` (integer): Page number, 1-based (default 1). Use next_page from the previous reply.
- `sort_by` (string): Sort direction (default asc).
- `sort_key` (string): Field to sort by (default id).
- `subscription_id`: Only orders of this subscription.
- `updated_at_max` (string): Only orders updated on or before this date.
- `updated_at_min` (string): Only orders updated on or after this date.

### `recurpay_get_order` (~37 tokens)

Get one order with its subscriber and line items.

Input parameters:

- `order_id` (required): Recurpay order id (from recurpay_list_orders).

### `recurpay_list_order_subscriptions` (~178 tokens)

List the subscriptions that belong to one order.

Input parameters:

- `created_at_max` (string): Only subscriptions created on or before this date.
- `created_at_min` (string): Only subscriptions created on or after this date.
- `limit` (integer): Results per page, 1-100 (default 100).
- `order_id` (required): Recurpay order id (from recurpay_list_orders).
- `page` (integer): Page number, 1-based (default 1). Use next_page from the previous reply.
- `sort_by` (string): Sort direction (default asc).
- `sort_key` (string): Field to sort by (default id).
- `updated_at_max` (string): Only subscriptions updated on or before this date.
- `updated_at_min` (string): Only subscriptions updated on or after this date.

### `recurpay_list_plans` (~233 tokens)

List the subscription plans (selling plan groups) with their delivery/billing policies and discounts. Filter by plan title, product title/handle and dates. Page with next_page.

Input parameters:

- `created_at_max` (string): Only plans created on or before this date.
- `created_at_min` (string): Only plans created on or after this date.
- `limit` (integer): Results per page, 1-100 (default 100).
- `page` (integer): Page number, 1-based (default 1). Use next_page from the previous reply.
- `plan_title` (string): Only plans with this title.
- `product_handle` (string): Only plans attached to a product with this handle.
- `product_title` (string): Only plans attached to a product with this title.
- `sort_by` (string): Sort direction (default asc).
- `sort_key` (string): Field to sort by (default id).
- `updated_at_max` (string): Only plans updated on or before this date.
- `updated_at_min` (string): Only plans updated on or after this date.

### `recurpay_get_plan` (~46 tokens)

Get one plan with its selling plans (delivery policy, billing policy, anchors, discounts).

Input parameters:

- `plan_id` (required): Recurpay plan id (from recurpay_list_plans).

### `recurpay_list_plan_products` (~88 tokens)

List the products attached to one plan, with the variants excluded from it.

Input parameters:

- `limit` (integer): Results per page, 1-100 (default 100).
- `page` (integer): Page number, 1-based (default 1). Use next_page from the previous reply.
- `plan_id` (required): Recurpay plan id (from recurpay_list_plans).

### `recurpay_list_webhooks` (~112 tokens)

List the webhook subscriptions of the store (topic, address, status). Needs the read-webhooks scope.

Input parameters:

- `created_at_max` (string): Only webhooks created at or before this date.
- `created_at_min` (string): Only webhooks created at or after this date.
- `limit` (integer): Results per page, 1-100 (default 100).
- `page` (integer): Page number, 1-based (default 1). Use next_page from the previous reply.

### `recurpay_cancel_customer_subscription` (~112 tokens)

WRITE: cancel one subscriber's subscription in Recurpay (status becomes cancelled; billing and deliveries stop). This is the merchant's action on a customer's subscription, not the cancellation of this MCP server's own plan. Only the merchant can re-activate it. Ask the user to confirm the subscription first.

Input parameters:

- `cancelled_reason` (string, required): Reason shown on the subscription, e.g. 'Customer asked to cancel'.
- `subscription_id` (required): Recurpay subscription id (from recurpay_list_subscriptions).

### `recurpay_skip_next_billing` (~58 tokens)

WRITE: skip the subscription's next billing/delivery cycle (the next order is not generated). Ask the user to confirm the subscription first.

Input parameters:

- `subscription_id` (required): Recurpay subscription id (from recurpay_list_subscriptions).

### `recurpay_renew_subscription` (~124 tokens)

WRITE, MAY CHARGE THE CUSTOMER: renew the subscription now. Recurpay runs the billing cycle immediately, which can charge the subscriber's saved payment method and create an order. Use it e.g. to retry a halted subscription. Only call it when the user explicitly asks for it and set confirm=true. Repeated calls may repeat the charge or notification.

Input parameters:

- `confirm` (boolean, required): Set true only after the user explicitly approved this action and its customer/charge effects.
- `subscription_id` (required): Recurpay subscription id (from recurpay_list_subscriptions).

### `recurpay_send_payment_link` (~116 tokens)

WRITE, CONTACTS THE CUSTOMER: generate a payment link for the subscription (renewal payment or payment-method update); Recurpay notifies the subscriber with it. Use it for halted subscriptions. Only call it when the user explicitly asks for it and set confirm=true. Repeated calls may repeat the charge or notification.

Input parameters:

- `confirm` (boolean, required): Set true only after the user explicitly approved this action and its customer/charge effects.
- `subscription_id` (required): Recurpay subscription id (from recurpay_list_subscriptions).

### `recurpay_update_subscriber` (~119 tokens)

WRITE: change a subscriber's contact data (email, first name, last name, phone). Only the fields you pass are sent. Ask the user to confirm the new values.

Input parameters:

- `email` (string): New email address.
- `first_name` (string): New first name.
- `last_name` (string): New last name.
- `phone` (string): New phone number in international format, e.g. +12025550151.
- `subscriber_id` (required): Recurpay subscriber id (from recurpay_list_subscribers).

### `recurpay_update_subscription_coupon` (~97 tokens)

WRITE: add or remove a discount code (coupon) on one subscription; it changes what the subscriber pays on the next billings. Ask the user to confirm.

Input parameters:

- `action` (string, required): add = apply the code, remove = take it off.
- `code` (string, required): The discount code title, e.g. TEST20.
- `subscription_id` (required): Recurpay subscription id (from recurpay_list_subscriptions).

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/io-usefulapi-recurpay/recurpay#diagnostics

## Score history

- 2026-11-05: 18
- 2026-11-04: 18
- 2026-11-03: 18
- 2026-11-02: 18
- 2026-11-01: 66
- 2026-10-31: 65

## Common questions

### What is the Recurpay MCP by usefulapi server?

Recurpay MCP by usefulapi is listed in the public MCP registry as io.usefulapi/recurpay. Read subscriptions, subscribers and orders; manage renewals, billing skips and payment links. This page covers its hosted endpoint (https://recurpay.usefulapi.io/mcp).

### Is the Recurpay MCP by usefulapi server safe to use?

Recurpay MCP by usefulapi scores 18 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Recurpay MCP by usefulapi server expose?

Recurpay MCP by usefulapi exposes 18 tools: recurpay_get_access_scopes, recurpay_list_subscriptions, recurpay_get_subscription, recurpay_list_subscribers, recurpay_get_subscriber, and 13 more. Their descriptions and schemas cost roughly 2,181 tokens of context every time the server is loaded.

### Does the Recurpay MCP by usefulapi server require authentication?

Its publisher declares no required credentials for Recurpay MCP by usefulapi. We have not been able to confirm that against the live endpoint, and a server can require authorisation without declaring it here.

### Is the Recurpay MCP by usefulapi server still maintained?

Recurpay MCP by usefulapi is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://recurpay.usefulapi.io/mcp
- Repository: https://github.com/m190/usefulapi-mcp
- Website: https://usefulapi.io/recurpay/
- Changelog RSS feed: https://verifymcp.io/servers/io-usefulapi-recurpay/recurpay.xml
- Changelog JSON feed: https://verifymcp.io/servers/io-usefulapi-recurpay/recurpay.json
- HTML version of this page: https://verifymcp.io/servers/io-usefulapi-recurpay/recurpay
