Autumn MCP by usefulapi
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
MCP server for Autumn — read customers, plans, balances & invoices; track usage and attach plans.
| Author | io.usefulapi |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 173 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"Autumn MCP by usefulapi": {
"url": "https://autumn.usefulapi.io/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (18)
autumn_get_customerread-onlyFetch a single Autumn customer by id, optionally expanding related data (invoices, entities, subscriptions, balances). Autumn API: POST /v1/customers.get.
Parameters:
customer_id(required) — string — Your unique identifier for the customer.expand— array — Related data to expand, e.g. invoices, entities, subscriptions.plan, purchases.plan, balances.feature.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
autumn_list_customersread-onlyList/filter customers with cursor pagination. Autumn API: POST /v1/customers.list. Returns { list, next_cursor }.
Parameters:
limit— integer — Page size, 1-5000. Default 50.plans— array — Filter by plan: array of { id, versions? } objects.search— string — Search customers by id, name, or email.processors— array — Filter by processor type: stripe, revenuecat, vercel.start_cursor— string — Pagination cursor from a prior response's `next_cursor` (omit / empty for first page).subscription_status— string — Filter by status: "active" or "scheduled". Defaults to both.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
autumn_checkread-onlyREAD-ONLY entitlement check: does a customer have access to (or enough balance of) a feature? Autumn API: POST /v1/balances.check. This tool never records usage — it does not expose send_event or lock.
Parameters:
customer_id(required) — string — The ID of the customer.feature_id(required) — string — The ID of the feature to check.entity_id— string — Entity id for entity-scoped balances (e.g. per-seat limits).with_preview— boolean — Include upgrade/upsell (paywall) info in the response when access is denied.required_balance— number — Minimum balance required for access. Returns allowed:false if below. Defaults to 1.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
autumn_list_invoicesread-onlyList invoices with cursor pagination and optional filters. Autumn API: POST /v1/invoices.list. Returns { list, next_cursor }.
Parameters:
limit— integer — Page size, 1-5000. Default 50.status— array — Filter by invoice status: draft, open, paid, void, uncollectible.entity_id— string — Filter to a single entity by id (must be paired with customer_id).customer_id— string — Filter to a single customer by id.start_cursor— string — Pagination cursor from a prior response's `next_cursor` (omit / empty for first page).processor_types— array — Filter by processor: stripe, revenuecat.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
autumn_get_entityread-onlyFetch a single entity (e.g. a seat) belonging to a customer. Autumn API: POST /v1/entities.get.
Parameters:
customer_id(required) — string — The ID of the customer that owns the entity.entity_id(required) — string — The ID of the entity.expand— array — Related data to expand, e.g. invoices, entities, subscriptions.plan, purchases.plan, balances.feature.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
autumn_list_entitiesread-onlyList a customer's entities with cursor pagination and optional filters. Autumn API: POST /v1/entities.list. Returns { list, next_cursor }.
Parameters:
customer_id(required) — string — Restrict the response to entities owned by this customer id.limit— integer — Page size, 1-5000. Default 50.plans— array — Filter by plan: array of { id, versions? } objects.search— string — Search entities by id or name.processors— array — Filter by parent customer processor: stripe, revenuecat, vercel.start_cursor— string — Pagination cursor from a prior response's `next_cursor` (omit / empty for first page).subscription_status— string — Filter by status: "active" or "scheduled". Defaults to both.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
autumn_list_featuresread-onlyList all features in the current environment. Autumn API: POST /v1/features.list. Returns { list }.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
autumn_get_featureread-onlyFetch a single feature by id. Autumn API: POST /v1/features.get.
Parameters:
feature_id(required) — string — The ID of the feature.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
autumn_list_plansread-onlyList all plans (products) in the current environment. Autumn API: POST /v1/plans.list. Returns { list }.
Parameters:
entity_id— string — Entity id for entity-scoped plans.customer_id— string — Include eligibility info (trial availability, attach scenario) for this customer.all_versions— boolean — If true, include all plan versions.include_archived— boolean — If true, include archived plans.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
autumn_get_planread-onlyFetch a single plan by id (optionally a specific version). Autumn API: POST /v1/plans.get.
Parameters:
plan_id(required) — string — The ID of the plan to retrieve.version— integer — The plan version to get. Defaults to the latest.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
autumn_preview_attachread-onlyPreview the cost/effect of attaching a plan to a customer WITHOUT charging or changing anything. Read-only. Autumn API: POST /v1/billing.preview_attach.
Parameters:
customer_id(required) — string — The ID of the customer to attach the plan to.plan_id(required) — string — The ID of the plan.version— integer — The version of the plan to attach.customize— object — Optional plan overrides (price, items, licenses, free trial).entity_id— string — The ID of the entity to attach the plan to.feature_quantities— array — Prepaid feature quantities: array of { feature_id, quantity?, adjustable? }.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
autumn_requestread-onlyPower-user escape hatch: POST to any Autumn read/preview endpoint not wrapped by a dedicated tool. READ-ONLY — the path is validated to only allow .get / .list / .check / .preview_* actions; write actions are rejected. Autumn API: POST {path}.
Parameters:
path(required) — string — Full API path, e.g. "/v1/customers.get". Only read/preview suffixes are allowed.body— object — JSON body object to POST (the endpoint's params).
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
autumn_get_or_create_customerdestructiveMUTATES Autumn billing data — fetches a customer by id, creating them if they do not exist. Autumn API: POST /v1/customers.get_or_create.
Parameters:
customer_id(required) — ['string', 'null'] — Your unique identifier for the customer (null to create an anonymous customer).name— string — Customer's name.email— string — Customer's email address.expand— array — Related data to expand, e.g. invoices, entities, subscriptions.plan, purchases.plan, balances.feature.currency— string — Currency to bill this customer in (e.g. usd, eur).metadata— object — Arbitrary key/value metadata for the customer.stripe_id— string — Existing Stripe customer id, if any.fingerprint— string — Unique identifier to detect duplicate customers / prevent free-trial abuse.create_in_stripe— boolean — Whether to create the customer in Stripe.
Hints: read-only not declared · destructive yes · idempotent not declared · open-world not declared
autumn_update_customerdestructiveMUTATES Autumn billing data — partially updates a customer. Only provided fields change. Autumn API: POST /v1/customers.update.
Parameters:
customer_id(required) — string — ID of the customer to update.name— ['string', 'null'] — Customer's name.email— ['string', 'null'] — Customer's email address.currency— ['string', 'null'] — Currency to bill this customer in (e.g. usd, eur).metadata— Arbitrary key/value metadata for the customer.stripe_id— ['string', 'null'] — Stripe customer id.fingerprint— ['string', 'null'] — Duplicate-detection fingerprint.new_customer_id— string — New id for the customer.
Hints: read-only not declared · destructive yes · idempotent not declared · open-world not declared
autumn_track_usagedestructiveMUTATES Autumn billing data — records a usage event (deducts/credits a feature balance). Provide EITHER feature_id OR event_name. Autumn API: POST /v1/balances.track.
Parameters:
customer_id(required) — string — The ID of the customer.value— number — Amount of usage to record. Defaults to 1. Negative values credit the balance.entity_id— string — Entity id for entity-scoped balances.timestamp— integer — Unix timestamp (ms) for the event. Defaults to now.event_name— string — Event name to track usage for. Provide this OR feature_id.feature_id— string — The feature to track usage for. Provide this OR event_name.properties— object — Additional properties to attach to the usage event.idempotencyKey— string — Optional key to dedupe retried events.
Hints: read-only not declared · destructive yes · idempotent not declared · open-world not declared
autumn_attach_plandestructiveMUTATES Autumn billing data — attaches (subscribes) a plan to a customer; may create an invoice / return a payment URL. Autumn API: POST /v1/billing.attach. Returns { customer_id, invoice, payment_url, required_action }.
Parameters:
customer_id(required) — string — The ID of the customer to attach the plan to.plan_id(required) — string — The ID of the plan.version— integer — The version of the plan to attach.customize— object — Optional plan overrides (price, items, licenses, free trial).entity_id— string — The ID of the entity to attach the plan to.success_url— string — URL to redirect to after a successful checkout.invoice_mode— object — Invoice-mode configuration object (send an invoice instead of auto-charging).redirect_mode— string — Checkout redirect mode: always, if_required, or never.feature_quantities— array — Prepaid feature quantities: array of { feature_id, quantity?, adjustable? }.checkout_session_params— object — Extra Stripe checkout session params (can carry metadata).
Hints: read-only not declared · destructive yes · idempotent not declared · open-world not declared
autumn_create_entitydestructiveMUTATES Autumn billing data — creates an entity (e.g. a seat) under a customer, tied to a feature. Autumn API: POST /v1/entities.create.
Parameters:
customer_id(required) — string — The ID of the customer to create the entity for.entity_id(required) — string — The ID of the entity.feature_id(required) — string — The ID of the feature this entity is associated with.name— ['string', 'null'] — The name of the entity.billing_controls— object — Optional billing controls for the entity (spend/usage limits).
Hints: read-only not declared · destructive yes · idempotent not declared · open-world not declared
autumn_open_customer_portaldestructiveMUTATES Autumn billing data — creates a Stripe billing-portal session for a customer to manage their subscription. Autumn API: POST /v1/billing.open_customer_portal. Returns { customer_id, url }.
Parameters:
customer_id(required) — string — The ID of the customer to open the billing portal for.return_url— string — URL to redirect to when the back button is clicked in the portal.configuration_id— string — Stripe billing-portal configuration id.
Hints: read-only not declared · destructive yes · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.