Skip to main content
Glama
ninetails-io

gnucash-mcp

create_budget

Create a budget with custom periods, start dates, and descriptions to plan and track income and expenses against actuals in GnuCash.

Instructions

Create a new budget.

Args: name: Budget name (e.g., "2026 Budget"). year: Budget year. Defaults to current year. Ignored when start_date is provided. num_periods: Number of periods. Default 12 (monthly for a year). period_type: Period length: - "monthly" (default) - "quarterly" - "weekly" description: Optional description. start_date: Optional ISO date (YYYY-MM-DD) when the budget's first period begins. When omitted, falls back to January 1 of year. Use this to author a historical budget for comparison against past actuals (e.g. start_date="2024-01-01") or to start mid-year.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYes
yearNo
start_dateNo
descriptionNo
num_periodsNo
period_typeNomonthly

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.4.2

TDQS

A4.4/5.0
Behavior3/5

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

Annotations are all false, so the description carries the burden of behavioral disclosure. It discloses a key behavioral detail: the `year` parameter is ignored when `start_date` is provided, and `start_date` falls back to January 1 of `year` when omitted. This is beyond simple parameter semantics and reveals interaction behavior. However, it does not describe side effects (e.g., whether an existing budget with the same name is overwritten), error handling, or any prerequisites. The description adds some value but could be more transparent about the mutation's full implications.

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 a well-organized docstring with a clear one-line summary and a bulleted Args list. Every sentence adds value—there is no filler. The most important behavioral note (year vs start_date) is placed early in the parameter list, and the format is immediately scannable. It is appropriately sized for a tool with six parameters and does not restate schema basics.

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

Completeness5/5

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

The description fully covers all six parameters with defaults, interdependencies, and usage examples. An output schema exists (as indicated) to handle return values, so the description does not need to explain the response. It is complete enough for an agent to confidently construct a valid call, including handling edge cases like historical budgets and mid-year starts. There are no critical gaps in context.

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

Parameters5/5

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

The description adds substantial meaning to every parameter beyond the bare schema. It explains the purpose of `name` with an example, the default behavior of `year` and its dependency on `start_date`, the default and options for `period_type`, the use of `num_periods` with an example, and the historical use case for `start_date`. This goes well beyond the type/default information in the schema and significantly improves an agent's ability to select correct values.

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 opens with the explicit statement 'Create a new budget.' This pairs a specific verb ('create') with a clear resource ('budget'), and it is immediately distinct from sibling tools like list_budgets, get_budget, and delete_budget. The purpose is unambiguous and gives the agent no reason to confuse it with related budget-management operations.

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?

The description does not explicitly name alternatives or state when *not* to use this tool, but it provides strong contextual guidance for the optional `start_date` parameter, explaining that it is used for historical budgets or mid-year starts. This implicitly tells the agent when to set that parameter, and the overall purpose is clear enough that an agent can infer appropriate usage relative to sibling tools. No exclusions are given, but the core usage context is solid.

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