Read Lago customers, subscriptions, invoices, usage and revenue analytics; write events.
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.
Monthly gross revenue (finalized invoice payments + advance fees, net of tax/discounts). Lago API: GET /analytics/gross_revenue.
Number of months to return.
Currency filter (ISO 4217, e.g. USD).
Filter revenue at the customer level.
Monthly gross revenue (finalized invoice payments + advance fees, net of tax/discounts). Lago API: GET /analytics/gross_revenue.
| Argument | Type | Description |
|---|---|---|
| months | integer | Number of months to return. |
| currency | string | Currency filter (ISO 4217, e.g. USD). |
| external_customer_id | string | Filter revenue at the customer level. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"months": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Number of months to return.",
"exclusiveMinimum": 0
},
"currency": {
"type": "string",
"description": "Currency filter (ISO 4217, e.g. USD)."
},
"external_customer_id": {
"type": "string",
"description": "Filter revenue at the customer level."
}
}
}Monthly recurring revenue (MRR) from subscription fees. Lago API: GET /analytics/mrr.
| Argument | Type | Description |
|---|---|---|
| months | integer | Number of months to return. |
| currency | string | Currency filter (ISO 4217, e.g. USD). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"months": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Number of months to return.",
"exclusiveMinimum": 0
},
"currency": {
"type": "string",
"description": "Currency filter (ISO 4217, e.g. USD)."
}
}
}Creates a customer in Lago (additive). Lago API: POST /customers with body { "customer": { ... } }.
| Argument | Type | Description |
|---|---|---|
| url | string | Customer URL. |
| name | string | Full name of the customer. |
| string | Email of the customer. | |
| phone | string | Phone number. |
| country | string | Billing country code (ISO 3166 alpha-2). |
| currency | string | Customer currency (ISO 4217). |
| metadata | array | Structured metadata to attach to the customer (Lago expects an array of {key, value, display_in_invoice?} objects). |
| timezone | string | Customer timezone, e.g. America/New_York. |
| legal_name | string | Legal company name. |
| external_id* |
Records a usage/metering event in Lago. This WILL be counted toward the customer's usage and affects billing. Idempotent via transaction_id. Lago API: POST /events with body { "event": { ... } }.
| Argument | Type | Description |
|---|---|---|
| code* | string | The billable metric code this event targets (required). |
| timestamp | string | number | Unix timestamp in seconds (or ISO); defaults to event reception time. |
| properties | object | Additional event properties used to compute the fee (required for sum/max/unique aggregations). |
| transaction_id* | string | Unique identifier for the event — the idempotency key (required). |
| external_subscription_id* | string | The subscription external id to link the event to (required). |
| precise_total_amount_cents | string | Precise total amount in cents, used by the dynamic pricing model. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"transaction_id",
"code",
"external_subscription_id"
],
"properties": {
"code": {
"type": "string",
"description": "The billable metric code this event targets (required)."
},
"timestamp": {
"type": [
"string",
"number"
],
"description": "Unix timestamp in seconds (or ISO); defaults to event reception time."
},
"properties": {
"type": "object",
"description": "Additional event properties used to compute the fee (required for sum/max/unique aggregations).",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": [
"string",
"number"
]
}
},
"transaction_id": {
"type": "string",
"description": "Unique identifier for the event — the idempotency key (required)."
},
"external_subscription_id": {
"type": "string",
"description": "The subscription external id to link the event to (required)."
},
"precise_total_amount_cents": {
"type": "string",
"description": "Precise total amount in cents, used by the dynamic pricing model."
}
}
}Retrieve a single billable metric by code. Lago API: GET /billable_metrics/{code}.
| Argument | Type | Description |
|---|---|---|
| code* | string | The billable metric's unique code. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"description": "The billable metric's unique code."
}
}
}Retrieve a single credit note by its Lago id. Lago API: GET /credit_notes/{lago_id}.
| Argument | Type | Description |
|---|---|---|
| lago_id* | string | The credit note's Lago id (UUID). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"lago_id"
],
"properties": {
"lago_id": {
"type": "string",
"description": "The credit note's Lago id (UUID)."
}
}
}Retrieve a single customer by external id. Lago API: GET /customers/{external_customer_id}.
| Argument | Type | Description |
|---|---|---|
| external_customer_id* | string | The customer external unique identifier (from your application). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"external_customer_id"
],
"properties": {
"external_customer_id": {
"type": "string",
"description": "The customer external unique identifier (from your application)."
}
}
}Retrieve a customer's usage-based billing data for the current period. Lago API: GET /customers/{external_customer_id}/current_usage.
| Argument | Type | Description |
|---|---|---|
| apply_taxes | boolean | Whether taxes should be applied. Defaults to true. |
| external_customer_id* | string | The customer external unique identifier. |
| external_subscription_id* | string | The subscription's external unique identifier (required). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"external_customer_id",
"external_subscription_id"
],
"properties": {
"apply_taxes": {
"type": "boolean",
"description": "Whether taxes should be applied. Defaults to true."
},
"external_customer_id": {
"type": "string",
"description": "The customer external unique identifier."
},
"external_subscription_id": {
"type": "string",
"description": "The subscription's external unique identifier (required)."
}
}
}Retrieve a customer's usage-based billing data for past periods. Lago API: GET /customers/{external_customer_id}/past_usage.
| Argument | Type | Description |
|---|---|---|
| periods_count | integer | Number of past billing periods to return. |
| billable_metric_code | string | Filter usage to a specific billable metric code. |
| external_customer_id* | string | The customer external unique identifier. |
| external_subscription_id* | string | The subscription's external unique identifier (required). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"external_customer_id",
"external_subscription_id"
],
"properties": {
"periods_count": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Number of past billing periods to return.",
"exclusiveMinimum": 0
},
"billable_metric_code": {
"type": "string",
"description": "Filter usage to a specific billable metric code."
},
"external_customer_id": {
"type": "string",
"description": "The customer external unique identifier."
},
"external_subscription_id": {
"type": "string",
"description": "The subscription's external unique identifier (required)."
}
}
}Get a customer's billing portal URL. Lago API: GET /customers/{external_customer_id}/portal_url.
| Argument | Type | Description |
|---|---|---|
| external_customer_id* | string | The customer external unique identifier. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"external_customer_id"
],
"properties": {
"external_customer_id": {
"type": "string",
"description": "The customer external unique identifier."
}
}
}Retrieve a single invoice by its Lago id. Lago API: GET /invoices/{lago_id}.
| Argument | Type | Description |
|---|---|---|
| lago_id* | string | The invoice's Lago id (UUID). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"lago_id"
],
"properties": {
"lago_id": {
"type": "string",
"description": "The invoice's Lago id (UUID)."
}
}
}Retrieve a single plan by code. Lago API: GET /plans/{code}.
| Argument | Type | Description |
|---|---|---|
| code* | string | The plan's unique code. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"description": "The plan's unique code."
}
}
}Retrieve a single subscription by external id. Lago API: GET /subscriptions/{external_id}.
| Argument | Type | Description |
|---|---|---|
| external_id* | string | The subscription's external unique identifier. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"external_id"
],
"properties": {
"external_id": {
"type": "string",
"description": "The subscription's external unique identifier."
}
}
}List add-ons, paginated. Lago API: GET /add_ons.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| per_page | integer | Number of records per page. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number for pagination.",
"exclusiveMinimum": 0
},
"per_page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Number of records per page.",
"exclusiveMinimum": 0
}
}
}List billable metrics, paginated. Lago API: GET /billable_metrics.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| per_page | integer | Number of records per page. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number for pagination.",
"exclusiveMinimum": 0
},
"per_page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Number of records per page.",
"exclusiveMinimum": 0
}
}
}List coupons, paginated. Lago API: GET /coupons.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| per_page | integer | Number of records per page. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number for pagination.",
"exclusiveMinimum": 0
},
"per_page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Number of records per page.",
"exclusiveMinimum": 0
}
}
}List credit notes, optionally filtered by customer. Lago API: GET /credit_notes.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| per_page | integer | Number of records per page. |
| external_customer_id | string | Filter by customer external id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number for pagination.",
"exclusiveMinimum": 0
},
"per_page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Number of records per page.",
"exclusiveMinimum": 0
},
"external_customer_id": {
"type": "string",
"description": "Filter by customer external id."
}
}
}List a customer's subscriptions. Lago API: GET /customers/{external_customer_id}/subscriptions.
| Argument | Type | Description |
|---|---|---|
| external_customer_id* | string | The customer external unique identifier. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"external_customer_id"
],
"properties": {
"external_customer_id": {
"type": "string",
"description": "The customer external unique identifier."
}
}
}List customers in Lago, paginated. Lago API: GET /customers.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| per_page | integer | Number of records per page. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number for pagination.",
"exclusiveMinimum": 0
},
"per_page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Number of records per page.",
"exclusiveMinimum": 0
}
}
}List fees, optionally filtered by customer, subscription, or fee type. Lago API: GET /fees.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| fee_type | string | Filter by fee type: charge | add_on | subscription | credit | commitment. |
| per_page | integer | Number of records per page. |
| external_customer_id | string | Filter by customer external id. |
| external_subscription_id | string | Filter by subscription external id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number for pagination.",
"exclusiveMinimum": 0
},
"fee_type": {
"type": "string",
"description": "Filter by fee type: charge | add_on | subscription | credit | commitment."
},
"per_page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Number of records per page.",
"exclusiveMinimum": 0
},
"external_customer_id": {
"type": "string",
"description": "Filter by customer external id."
},
"external_subscription_id": {
"type": "string",
"description": "Filter by subscription external id."
}
}
}List invoices, optionally filtered by customer, status, payment status, or issuing date. Lago API: GET /invoices.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| status | string | Filter by a single status: draft | finalized | failed | pending | voided. |
| per_page | integer | Number of records per page. |
| payment_status | string | Filter by a single payment status: pending | failed | succeeded. |
| issuing_date_to | string | Filter invoices issued on/before this date (yyyy-mm-dd). |
| issuing_date_from | string | Filter invoices issued on/after this date (yyyy-mm-dd). |
| external_customer_id | string | Filter by customer external id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number for pagination.",
"exclusiveMinimum": 0
},
"status": {
"type": "string",
"description": "Filter by a single status: draft | finalized | failed | pending | voided."
},
"per_page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Number of records per page.",
"exclusiveMinimum": 0
},
"payment_status": {
"type": "string",
"description": "Filter by a single payment status: pending | failed | succeeded."
},
"issuing_date_to": {
"type": "string",
"description": "Filter invoices issued on/before this date (yyyy-mm-dd)."
},
"issuing_date_from": {
"type": "string",
"description": "Filter invoices issued on/after this date (yyyy-mm-dd)."
},
"external_customer_id": {
"type": "string",
"description": "Filter by customer external id."
}
}
}List billing plans, paginated. Lago API: GET /plans.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| per_page | integer | Number of records per page. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number for pagination.",
"exclusiveMinimum": 0
},
"per_page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Number of records per page.",
"exclusiveMinimum": 0
}
}
}List subscriptions, optionally filtered by customer, plan, or status. Lago API: GET /subscriptions.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| status | string | Filter by a single status: active | pending | canceled | terminated. Default active. |
| per_page | integer | Number of records per page. |
| plan_code | string | Filter by plan code. |
| external_customer_id | string | Filter by customer external id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number for pagination.",
"exclusiveMinimum": 0
},
"status": {
"type": "string",
"description": "Filter by a single status: active | pending | canceled | terminated. Default active."
},
"per_page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Number of records per page.",
"exclusiveMinimum": 0
},
"plan_code": {
"type": "string",
"description": "Filter by plan code."
},
"external_customer_id": {
"type": "string",
"description": "Filter by customer external id."
}
}
}List a customer's prepaid credit wallets. Lago API: GET /customers/{external_customer_id}/wallets.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| per_page | integer | Number of records per page. |
| external_customer_id* | string | The customer external unique identifier. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"external_customer_id"
],
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number for pagination.",
"exclusiveMinimum": 0
},
"per_page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Number of records per page.",
"exclusiveMinimum": 0
},
"external_customer_id": {
"type": "string",
"description": "The customer external unique identifier."
}
}
}| string |
| The customer external unique identifier (required, provided by your application). |
| legal_number | string | Legal company number. |
| tax_identification_number | string | Tax identification number. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"external_id"
],
"properties": {
"url": {
"type": "string",
"description": "Customer URL."
},
"name": {
"type": "string",
"description": "Full name of the customer."
},
"email": {
"type": "string",
"description": "Email of the customer."
},
"phone": {
"type": "string",
"description": "Phone number."
},
"country": {
"type": "string",
"description": "Billing country code (ISO 3166 alpha-2)."
},
"currency": {
"type": "string",
"description": "Customer currency (ISO 4217)."
},
"metadata": {
"type": "array",
"items": {
"type": "object",
"required": [
"key",
"value"
],
"properties": {
"key": {
"type": "string",
"description": "Metadata key."
},
"value": {
"type": "string",
"description": "Metadata value."
},
"display_in_invoice": {
"type": "boolean",
"description": "Show this pair on the customer's invoices."
}
}
},
"description": "Structured metadata to attach to the customer (Lago expects an array of {key, value, display_in_invoice?} objects)."
},
"timezone": {
"type": "string",
"description": "Customer timezone, e.g. America/New_York."
},
"legal_name": {
"type": "string",
"description": "Legal company name."
},
"external_id": {
"type": "string",
"description": "The customer external unique identifier (required, provided by your application)."
},
"legal_number": {
"type": "string",
"description": "Legal company number."
},
"tax_identification_number": {
"type": "string",
"description": "Tax identification number."
}
}
}