Skip to main content
Glama

update_cospend_member

Idempotent

Modify a Cospend member's name, share weight, activity status, color, or linked user. Requires maintainer access and only changes specified fields.

Instructions

Update a Cospend member. Requires MAINTAINER access.

Pass only the fields you want to change.

IMPORTANT: Setting activated=False on a member who has no bills will permanently delete them, not just disable them. To always keep a recoverable record, ensure the member has at least one associated bill first, or use delete_cospend_member which is unambiguous.

Args: project_id: String project id. member_id: Integer member id (from list_cospend_members). name: New display name. weight: New share weight. activated: True = active, False = disabled (or deleted if no bills). color: New hex color (with or without leading "#"). Pass empty string to clear the color (server picks one on next display). user_id: Link/unlink to a Nextcloud user id. Pass empty string to unlink.

Returns: JSON of the updated member, or null if the member was deleted as described above.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNo
colorNo
weightNo
user_idNo
activatedNo
member_idYes
project_idYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.7.0

TDQS

A4.2/5.0
Behavior1/5

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

The description usefully discloses auth requirements, partial updates, and a permanent-deletion side effect, but those behaviors contradict the annotations, which declare destructiveHint=false. Under the rubric, a description that contradicts its annotations scores 1 regardless of the added detail.

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 operation and auth, then the critical warning, then a compact Args list, then return behavior. Each sentence earns its place; the length is justified by the dangerous edge case.

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 mutation tool with an output schema, the description covers access control, partial-update semantics, the destructive edge case and its mitigation, exact parameter sentinels, and return behavior. Nothing needed to invoke the tool correctly is missing.

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 0% schema description coverage, the description carries the full burden and succeeds: every parameter is explained, including special values (empty string to clear color or unlink user_id), the source of member_id, and the conditional meaning of activated. An agent can construct every argument correctly without external knowledge.

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 action and resource ('Update a Cospend member') and clarifies scope through the MAINTAINER requirement and partial-update behavior. It also distinguishes itself from delete_cospend_member by explaining the deletion edge case.

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?

It explicitly instructs callers to pass only the fields they want to change and gives an unambiguous when-not case: if a recoverable record is required, ensure the member has a bill or use delete_cospend_member instead. This is direct alternative routing, not just implied context.

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