Skip to main content
Glama

update_cospend_bill

Idempotent

Update an existing Cospend bill in Nextcloud by modifying only the fields you pass, such as amount, payer, owers, date, or category, leaving others unchanged.

Instructions

Update a Cospend bill. Requires PARTICIPANT access.

Pass only fields you want to change. See create_cospend_bill for field semantics.

Args: project_id: String project id. bill_id: Integer bill id. what: New description. amount: New amount. payer: New payer member id. payed_for: New non-empty list of ower member ids (replaces, doesn't merge). Passing [] raises ValueError — the server no-ops silently on empty payedFor, which would look like a successful update but leave owers unchanged. date: New "YYYY-MM-DD" date. timestamp: Alternative to date. comment: New comment. category_id: New category id (0 = uncategorized). payment_mode_id: New payment mode id (0 = unset). repeat: New repeat mode ("n", "d", "w", "b", "s", "m", "y"). repeat_freq: New repeat frequency. repeat_until: New stop date "YYYY-MM-DD". Pass empty string to clear (repeat indefinitely). repeat_all_active: New owers behavior on repeat. deleted: 0 = restore from trash, 1 = move to trash. Use delete_cospend_bill for trashing in normal flow.

Returns: JSON {"bill_id": } confirming the updated bill id.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dateNo
whatNo
payerNo
amountNo
repeatNo
bill_idYes
commentNo
deletedNo
payed_forNo
timestampNo
project_idYes
category_idNo
repeat_freqNo
repeat_untilNo
payment_mode_idNo
repeat_all_activeNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.7.0

TDQS

A4.8/5.0
Behavior5/5

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

The description goes far beyond the annotations by disclosing partial-update semantics, the payed_for replace-not-merge behavior, the silent server no-op on empty payedFor (with a ValueError safeguard), the deleted parameter's restore/trash dual meaning, and the exact return payload. This adds substantial context that annotations alone do not provide.

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 purpose and access requirement, then organized as a clear Args list. Each parameter explanation is terse yet informative, and the extended note on payed_for is justified because it warns of a dangerous silent failure. No sentence is filler.

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?

Given the tool's 16 parameters and zero schema description coverage, the description covers purpose, auth level, all parameter semantics, a critical gotcha, and the return format. It also references create_cospend_bill for deeper field semantics, avoiding unnecessary duplication. The agent has everything needed to invoke the tool correctly.

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?

With schema description coverage at 0%, the description carries the full burden of explaining all 16 parameters. Every parameter has at least a one-line semantic explanation, including special constraints (e.g., repeat modes, category_id 0 meaning uncategorized, repeat_until empty string to clear, deleted values). This fully compensates for the schema's lack of 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 opens with 'Update a Cospend bill,' which is a specific verb and resource that clearly distinguishes it from siblings like create_cospend_bill, delete_cospend_bill, and get_cospend_bill. It also states the required access level (PARTICIPANT), further narrowing the tool's role.

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?

There is clear guidance on when not to use the deleted parameter ('Use delete_cospend_bill for trashing in normal flow') and a reference to create_cospend_bill for field semantics. It also advises 'Pass only fields you want to change.' However, it does not explicitly frame when to choose update over create, though the verb and context make this obvious.

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

Deploy Server

Other Tools