Skip to main content
Glama

create_subscription

Create a new subscription, recurring bill, or installment plan. Use type="subscription" for SaaS/streaming services, type="bill" for utilities, and type="installment" for a finite financed purchase paid off over a fixed number of payments. An installment requires maxOccurrences (number of payments) and dueDate (first payment date). expectedAmount is a decimal in the subscription currency. Requires finance:write scope.

Input Schema

NameRequiredDescriptionDefault
nameYesDisplay name of the subscription (e.g. "Netflix", "Electricity")
typeNoType: "subscription" (default), "bill", or "installment"
notesNoAdditional notes about the subscription
dueDateNoFirst payment date (ISO 8601). Required for installments; enables a payment schedule.
endDateNoEnd date if the subscription is finite (ISO 8601)
accountIdNoAccount ID to associate with this subscription
frequencyYesBilling frequency: weekly, biweekly, monthly, quarterly, semi_annual, annual
startDateYesStart date of the subscription (ISO 8601, e.g. "2024-01-01")
categoryIdNoCategory ID to associate with this subscription
expectedAmountNoExpected payment amount as a decimal (e.g. 9.99). Use with expectedCurrencyCode
maxOccurrencesNoTotal number of payments. Required for installments; null/omitted means an indefinite schedule.
transactionTypeNoTransaction type: "expense" (default) or "income"
expectedCurrencyCodeNoCurrency code for expectedAmount (e.g. "USD", "EUR")

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It discloses the required auth scope (`finance:write`) and installment-specific constraints (`maxOccurrences` and `dueDate`), which are valuable. But it omits other behavioral details such as idempotency, side effects (e.g., schedule creation), or what happens on duplicate input, leaving gaps.

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

Conciseness5/5

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

The description is front-loaded with the core purpose, then flows logically through type guidance, installment requirements, amount format, and auth scope. Every sentence earns its place with no redundancy, and the size is appropriate for a 13-parameter tool.

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?

Given 13 parameters, no output schema, and no annotations, the description covers purpose, type usage, key installment constraints, amount semantics, and auth scope. It could do more to explain side effects or return behavior, but for a create tool it is largely complete.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds meaning by explaining the use cases for each `type` enum value (SaaS/streaming, utilities, financed purchase) and clarifying that `expectedAmount` is a decimal in the subscription currency, going beyond the schema's brief descriptions.

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?

The description states a specific verb (Create) and resource (subscription, recurring bill, or installment plan), and clearly distinguishes the three subtypes. The resource is distinct from siblings like create_transaction or create_budget.

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

Usage Guidelines3/5

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

It gives clear context for choosing the `type` parameter (SaaS/streaming vs utilities vs financed purchase), which is helpful. However, it does not mention when to use this tool versus alternatives like `detect_subscription_candidates` or `link_transactions_to_subscription`, and offers no exclusions. Usage is implied rather than explicitly guided.

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.