Skip to main content
Glama
Zen Money MCP

Zen Money MCP

by bulava92

apply_zenmoney_diff

Applies batch creates and updates to accounts, categories, merchants, budgets, reminders, markers, and transactions, merging partial records and requiring explicit confirmation for deletions.

Instructions

Полный низкоуровневый доступ к /v8/diff/: создаёт и изменяет любые поля счетов, категорий, контрагентов, бюджетов, напоминаний, маркеров напоминаний и операций; принимает массивы записей для пакетных изменений. Частичная запись объединяется с текущей, чтобы сохранить пропущенные поля. Для удаления обязательно confirmDeletes: true. Системные сущности user, instrument и company доступны только для чтения. Для бюджета передавай date первого числа месяца и tag (ID категории, null для без категории или нулевой UUID для общего бюджета).

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "apply_zenmoney_diff"
  }
}

Input Schema

NameRequiredDescriptionDefault
tagNo
budgetNo
accountNo
deletionNo
merchantNo
reminderNo
transactionNo
confirmDeletesNo
reminderMarkerNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses the partial-write merge semantics ('Частичная запись объединяется с текущей, чтобы сохранить пропущенные поля'), the deletion confirmation requirement, and the write-protection on system entities. Missing are any warning about irreversibility or the response/error shape, which would matter for a destructive bulk tool.

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?

A single dense paragraph with the access level and affected entities front-loaded, followed by merging, deletion, read-only, and budget specifics. No filler sentences; every clause adds a constraint an agent needs.

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

Completeness3/5

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

Given nine untyped parameters, no annotations, and no output schema, the description covers the operational rules well but leaves the payload field shapes and the return value unspecified. An agent knows how to frame a call but not what fields to put in each record object.

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 coverage is 0% and all seven entity arrays are opaque `additionalProperties: {}` objects, so the description is the only source of meaning. It adds real value for `budget` (first-of-month date, tag semantics with null / zero UUID) and `confirmDeletes`, but says nothing about which fields the account/transaction/merchant record objects accept, leaving the largest payload surface undocumented.

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?

States a specific verb and resource ('Полный низкоуровневый доступ к /v8/diff') and enumerates exactly which entities it creates and modifies (accounts, tags, merchants, budgets, reminders, reminder markers, transactions). This distinguishes it from the many single-entity siblings like create_transaction or set_budget without the agent needing to open the schema.

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?

Establishes the use case (low-level full access, batch arrays of records) and states hard preconditions: confirmDeletes: true is mandatory for deletion, and user/instrument/company are read-only. It doesn't explicitly say 'prefer create_transaction for a single record', so the alternative routing is only implied by 'низкоуровневый' and batch framing.

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