Skip to main content
Glama

List Plans

plans_list
Read-only

Lists an app's Plan Builder plans: plan_id, handle, name, description, status (draft/active), price_monthly/ price_yearly, trial_days, and the feature/event terms each plan grants. Feature and event terms are keyed by their app-local key, the exact string your @the-meridian/sdk calls use, e.g. isEnabled("<key>") or track({ eventKey: "<key>" }), so you can write correct SDK code directly from this output. Takes the app_id returned by apps_list.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "app_id": "<app_id>"
    },
    "name": "plans_list"
  }
}

Input Schema

NameRequiredDescriptionDefault
app_idYesThe app uuid returned by `apps_list`.
organization_idNoAn organisation uuid or slug. When supplied, `app_id` is resolved within that organisation and may be a slug instead of a uuid, mirroring the Meridian web app.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare a safe, closed-world read, so the description's job is to add context — and it does by disclosing the return shape and the crucial semantic that feature/event terms are keyed by app-local `key` matching the SDK's isEnabled/track calls. It says nothing about pagination, ordering, or whether draft plans are always included, which is a minor gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the action, then a compact field inventory that earns its space because no output schema exists. The single long sentence is dense but readable; the SDK example is well-placed supporting detail rather than filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the burden of explaining returns and does so thoroughly, including the key semantics that let an agent write SDK code directly. It stops short of describing result ordering, volume, or the org-scoping nuance of organization_id.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are already documented there. The description only restates that app_id comes from apps_list and ignores organization_id's org-scoped/slug-resolution behavior, adding essentially no meaning beyond the schema — the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb and resource ('Lists an app's Plan Builder plans') and then enumerates exactly which fields come back (plan_id, handle, name, status, price_monthly/price_yearly, trial_days, feature/event terms). That level of specificity separates it from generic siblings like apps_list or features_list without needing to name them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It establishes the prerequisite and workflow ('Takes the `app_id` returned by `apps_list`') and implies the purpose (writing correct SDK code from the keyed terms). There are no explicit when-not conditions or named alternatives, which keeps it below a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources