Skip to content

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.

Deletes · 2Changes · 4

24 tools: 2 can delete or cancel things, 4 change things and 18 only read.

Scanned Oct 21, 2026

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/mcp

Findings

Matches of fixed checks, with the text they matched.

2 warn
  • The server marks "lago_get_plan" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true}; The name "lago_get_plan" says "get": a word for reading.

    What this check looks for
  • The server marks "lago_get_billable_metric" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true}; The name "lago_get_billable_metric" says "get": a word for reading.

    What this check looks for

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".

      Matched text

      annotations: {"readOnlyHint":true}; The name "lago_get_billable_metric" says "get": a word for reading.

      What this check looks for
    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".

      Matched text

      annotations: {"readOnlyHint":true}; The name "lago_get_plan" says "get": a word for reading.

      What this check looks for
    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/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.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.