Skip to main content
Glama

Ausgabenlimit · Neu anlegen

create_business_budget

Request a new General spending limit for one category and period through its human Owner card. Use update_business_budget to change an existing frame, create_business_role_budget to divide it among roles, and prepare_policy_change for advertising policy.

Build the new frame

Read every get_business_budgets(view=frames,includeArchived=true) page before choosing reachKey+startsOn. That pair identifies a frame: a different label or end date does not make it new. Update an existing pair; an archived overlap cannot be restored.

Choose reachKey as the workspace category identity and reachLabel as its readable name; neither selects a provider account or grants permission. Set limitCents to the whole requested EUR-cent cap, not an addition or available cash. Renaming a category changes its label, not its identity.

Human handoff and recovery

owner_approval_required/activates=false means no spending authority yet. Only a human confirms. requestKey is not journal-idempotency here: repeating the call may create another pending request. After uncertainty, read the same proposalId via get_business_change and check the frame rather than creating again.

Requires operator:prepare, accounting:read, operations:read and current module access; confirmation retains Owner checks. No payment or provider action occurs.

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": {
      "goal": "<goal>",
      "startsOn": "<startsOn>",
      "endsOn": "<endsOn>",
      "reachKey": "<reachKey>",
      "reachLabel": "<reachLabel>",
      "limitCents": "<limitCents>"
    },
    "name": "create_business_budget"
  }
}

Input Schema

NameRequiredDescriptionDefault
goalYesPurpose of the selected spending frame.
endsOnYesLast included UTC calendar day, on or after startsOn.
reachKeyYesWorkspace-local spending category key, not a provider account or permission. Creation may introduce a key; updates and role allocations copy the selected frame’s key.
startsOnYesFirst included UTC calendar day. Together with reachKey identifies a General frame.
limitCentsYesGeneral/role limit in safe integer EUR cents. Zero blocks positive new spending; it does not archive. No currency conversion.
reachLabelYesDisplay label for reachKey.
requestKeyNoOptional legacy reference, not journal-idempotency. After uncertainty read the frame/request instead of repeating the write.

Output Schema

NameRequiredDescriptionDefault
budgetNoExisting SpendLimitRow returned by a direct General change; this is not the measured read projection.
reasonNoRejection reason; no requested change was applied.
statusYesStored General limit/role share, unactivated human request, or rejected change. Archive preparation never reports an archived frame.
activatesNoTrue for an applied General/role change; false for a human request or rejection when present.
nextActionNo
proposalIdNoExisting stored human-request identity, not a budgetId or allocationId.
presentationNoThe persisted receipt survives an unavailable card. Read the same proposal; never prepare another request.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior4/5

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

Annotations declare non-readOnly, non-idempotent, non-destructive, closed-world; the description goes well beyond that by disclosing that owner_approval_required/activates=false means no spending authority until a human confirms, that requestKey is explicitly not journal-idempotency and repeats can spawn duplicate pending requests, and that no payment or provider action occurs. The permission prerequisites (operator:prepare, accounting:read, operations:read, module access) are also spelled out. Only minor gap: it doesn't say what the immediate response returns (though an output schema exists).

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 purpose and sibling routing, then organized under two labelled sections ('Build the new frame', 'Human handoff and recovery'). Dense and mostly earning its space, though the reachKey/reachLabel identity rules are restated twice (in prose and again as 'Renaming a category changes its label, not its identity').

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?

For a 7-parameter mutation tool with human-approval handoff, the description covers prerequisites, identity semantics, duplicate-request risk, and the recovery path; return values are covered by the output schema so need no prose. An agent has everything needed to call it safely or to decide not to.

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 coverage is already 100%, so baseline is 3; the description still adds interpretive meaning the schema does not carry — that limitCents is the whole requested EUR-cent cap rather than an addition or available cash, that a different label or end date does not make a frame new, and that archiving overlap cannot be restored. Much of the reachKey/reachLabel identity discussion duplicates schema text, keeping it below a 5.

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 opening sentence states a specific verb and resource ('Request a new General spending limit for one category and period') and immediately names three siblings (update_business_budget, create_business_role_budget, prepare_policy_change) with the condition that selects each. An agent can route this without opening any schema.

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

Usage Guidelines5/5

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

Explicit when-to-use and when-not-to-use guidance: read every get_business_budgets(view=frames,includeArchived=true) page first, then 'Update an existing pair' rather than create when reachKey+startsOn already exists. It also states the recovery path after uncertainty (get_business_change on the same proposalId) instead of retrying.

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