Lago MCP by usefulapi
by usefulapi.io · remote · no sign-in to list tools · v1.16.3 · published by io.usefulapi
Read Lago customers, subscriptions, invoices, usage and revenue analytics; write events.
24 tools: 2 can delete or cancel things, 4 change things and 18 only read.
Scanned Oct 21, 2026
- Deletes or cancels2Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things4Claude Code: ask: see these tools
- Only reads18Claude Code: allow: see these tools
2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http lago https://lago.usefulapi.io/mcpFindings
Matches of fixed checks, with the text they matched.
- Warnlago_get_plan
The server marks "lago_get_plan" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The name "lago_get_plan" says "get": a word for reading.
The server marks "lago_get_billable_metric" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The name "lago_get_billable_metric" says "get": a word for reading.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
24 tools
Deletes or cancels 2Claude Code: deny
lago_create_customerCreates a customer in Lago (additive).No findings
Why it is in this group
- The name "lago_create_customer" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Creates a customer in Lago (additive). Lago API: POST /customers with body { "customer": { ... } }.
Annotations the server declares
- title: Create customer
- destructiveHint: true
lago_create_eventRecords a usage/metering event in Lago.No findings
Why it is in this group
- The name "lago_create_event" says "create": a word for a change.
- The input takes a statement or command to run (input.code), which can change anything it can reach.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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": { ... } }.
Annotations the server declares
- title: Create usage event
- destructiveHint: true
Changes things 4Claude Code: ask
lago_analytics_gross_revenueMonthly gross revenue (finalized invoice payments + advance fees, net of tax/discounts).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Monthly gross revenue (finalized invoice payments + advance fees, net of tax/discounts). Lago API: GET /analytics/gross_revenue.
Annotations the server declares
- title: Analytics: gross revenue
- readOnlyHint: true
lago_analytics_mrrMonthly recurring revenue (MRR) from subscription fees.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Monthly recurring revenue (MRR) from subscription fees. Lago API: GET /analytics/mrr.
Annotations the server declares
- title: Analytics: MRR
- readOnlyHint: true
lago_get_billable_metricRetrieve a single billable metric by code.1 finding
Why it is in this group
- The name "lago_get_billable_metric" says "get": a word for reading.
- The input takes a statement or command to run (input.code), which can change anything it can reach.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "lago_get_billable_metric" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The name "lago_get_billable_metric" says "get": a word for reading.
Description, as the server wrote it Retrieve a single billable metric by code. Lago API: GET /billable_metrics/{code}.
Annotations the server declares
- title: Get billable metric
- readOnlyHint: true
lago_get_planRetrieve a single plan by code.1 finding
Why it is in this group
- The name "lago_get_plan" says "get": a word for reading.
- The input takes a statement or command to run (input.code), which can change anything it can reach.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "lago_get_plan" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The name "lago_get_plan" says "get": a word for reading.
Description, as the server wrote it Retrieve a single plan by code. Lago API: GET /plans/{code}.
Annotations the server declares
- title: Get plan
- readOnlyHint: true
Only reads 18Claude Code: allow
lago_get_credit_noteRetrieve a single credit note by its Lago id.No findings
Why it is in this group
- The name "lago_get_credit_note" says "get": a word for reading.
Description, as the server wrote it Retrieve a single credit note by its Lago id. Lago API: GET /credit_notes/{lago_id}.
Annotations the server declares
- title: Get credit note
- readOnlyHint: true
lago_get_customerRetrieve a single customer by external id.No findings
Why it is in this group
- The name "lago_get_customer" says "get": a word for reading.
Description, as the server wrote it Retrieve a single customer by external id. Lago API: GET /customers/{external_customer_id}.
Annotations the server declares
- title: Get customer
- readOnlyHint: true
lago_get_customer_current_usageRetrieve a customer's usage-based billing data for the current period.No findings
Why it is in this group
- The name "lago_get_customer_current_usage" says "get": a word for reading.
Description, as the server wrote it Retrieve a customer's usage-based billing data for the current period. Lago API: GET /customers/{external_customer_id}/current_usage.
Annotations the server declares
- title: Get customer current usage
- readOnlyHint: true
lago_get_customer_past_usageRetrieve a customer's usage-based billing data for past periods.No findings
Why it is in this group
- The name "lago_get_customer_past_usage" says "get": a word for reading.
Description, as the server wrote it Retrieve a customer's usage-based billing data for past periods. Lago API: GET /customers/{external_customer_id}/past_usage.
Annotations the server declares
- title: Get customer past usage
- readOnlyHint: true
lago_get_customer_portal_urlGet a customer's billing portal URL.No findings
Why it is in this group
- The name "lago_get_customer_portal_url" says "get": a word for reading.
Description, as the server wrote it Get a customer's billing portal URL. Lago API: GET /customers/{external_customer_id}/portal_url.
Annotations the server declares
- title: Get customer portal URL
- readOnlyHint: true
lago_get_invoiceRetrieve a single invoice by its Lago id.No findings
Why it is in this group
- The name "lago_get_invoice" says "get": a word for reading.
Description, as the server wrote it Retrieve a single invoice by its Lago id. Lago API: GET /invoices/{lago_id}.
Annotations the server declares
- title: Get invoice
- readOnlyHint: true
lago_get_subscriptionRetrieve a single subscription by external id.No findings
Why it is in this group
- The name "lago_get_subscription" says "get": a word for reading.
Description, as the server wrote it Retrieve a single subscription by external id. Lago API: GET /subscriptions/{external_id}.
Annotations the server declares
- title: Get subscription
- readOnlyHint: true
lago_list_add_onsList add-ons, paginated.No findings
Why it is in this group
- The name "lago_list_add_ons" says "list": a word for reading.
Description, as the server wrote it List add-ons, paginated. Lago API: GET /add_ons.
Annotations the server declares
- title: List add-ons
- readOnlyHint: true
lago_list_billable_metricsList billable metrics, paginated.No findings
Why it is in this group
- The name "lago_list_billable_metrics" says "list": a word for reading.
Description, as the server wrote it List billable metrics, paginated. Lago API: GET /billable_metrics.
Annotations the server declares
- title: List billable metrics
- readOnlyHint: true
lago_list_couponsList coupons, paginated.No findings
Why it is in this group
- The name "lago_list_coupons" says "list": a word for reading.
Description, as the server wrote it List coupons, paginated. Lago API: GET /coupons.
Annotations the server declares
- title: List coupons
- readOnlyHint: true
lago_list_credit_notesList credit notes, optionally filtered by customer.No findings
Why it is in this group
- The name "lago_list_credit_notes" says "list": a word for reading.
Description, as the server wrote it List credit notes, optionally filtered by customer. Lago API: GET /credit_notes.
Annotations the server declares
- title: List credit notes
- readOnlyHint: true
lago_list_customer_subscriptionsList a customer's subscriptions.No findings
Why it is in this group
- The name "lago_list_customer_subscriptions" says "list": a word for reading.
Description, as the server wrote it List a customer's subscriptions. Lago API: GET /customers/{external_customer_id}/subscriptions.
Annotations the server declares
- title: List customer subscriptions
- readOnlyHint: true
lago_list_customersList customers in Lago, paginated.No findings
Why it is in this group
- The name "lago_list_customers" says "list": a word for reading.
Description, as the server wrote it List customers in Lago, paginated. Lago API: GET /customers.
Annotations the server declares
- title: List customers
- readOnlyHint: true
lago_list_feesList fees, optionally filtered by customer, subscription, or fee type.No findings
Why it is in this group
- The name "lago_list_fees" says "list": a word for reading.
Description, as the server wrote it List fees, optionally filtered by customer, subscription, or fee type. Lago API: GET /fees.
Annotations the server declares
- title: List fees
- readOnlyHint: true
lago_list_invoicesList invoices, optionally filtered by customer, status, payment status, or issuing date.No findings
Why it is in this group
- The name "lago_list_invoices" says "list": a word for reading.
Description, as the server wrote it List invoices, optionally filtered by customer, status, payment status, or issuing date. Lago API: GET /invoices.
Annotations the server declares
- title: List invoices
- readOnlyHint: true
lago_list_plansList billing plans, paginated.No findings
Why it is in this group
- The name "lago_list_plans" says "list": a word for reading.
Description, as the server wrote it List billing plans, paginated. Lago API: GET /plans.
Annotations the server declares
- title: List plans
- readOnlyHint: true
lago_list_subscriptionsList subscriptions, optionally filtered by customer, plan, or status.No findings
Why it is in this group
- The name "lago_list_subscriptions" says "list": a word for reading.
Description, as the server wrote it List subscriptions, optionally filtered by customer, plan, or status. Lago API: GET /subscriptions.
Annotations the server declares
- title: List subscriptions
- readOnlyHint: true
lago_list_walletsList a customer's prepaid credit wallets.No findings
Why it is in this group
- The name "lago_list_wallets" says "list": a word for reading.
Description, as the server wrote it List a customer's prepaid credit wallets. Lago API: GET /customers/{external_customer_id}/wallets.
Annotations the server declares
- title: List wallets
- readOnlyHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.16.3. Values in angle brackets are yours to fill in.
claude mcp add --transport http lago https://lago.usefulapi.io/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__lago__lago_list_customers",
"mcp__lago__lago_get_customer",
"mcp__lago__lago_get_customer_current_usage",
"mcp__lago__lago_get_customer_past_usage",
"mcp__lago__lago_list_customer_subscriptions",
"mcp__lago__lago_get_customer_portal_url",
"mcp__lago__lago_list_subscriptions",
"mcp__lago__lago_get_subscription",
"mcp__lago__lago_list_plans",
"mcp__lago__lago_list_invoices",
"mcp__lago__lago_get_invoice",
"mcp__lago__lago_list_billable_metrics",
"mcp__lago__lago_list_coupons",
"mcp__lago__lago_list_add_ons",
"mcp__lago__lago_list_wallets",
"mcp__lago__lago_list_credit_notes",
"mcp__lago__lago_get_credit_note",
"mcp__lago__lago_list_fees"
],
"ask": [
"mcp__lago__lago_get_plan",
"mcp__lago__lago_get_billable_metric",
"mcp__lago__lago_analytics_gross_revenue",
"mcp__lago__lago_analytics_mrr"
],
"deny": [
"mcp__lago__lago_create_customer",
"mcp__lago__lago_create_event"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as lago. Review it before you use it.