Skip to main content
Glama

list_cospend_members

Read-onlyIdempotent

Fetch members of a Cospend project by project ID, returning member names, weights, activation status, and colors for managing bill splits.

Instructions

List members of a Cospend project.

Requires VIEWER access.

Args: project_id: String project id. last_changed: If provided, only return members modified after this Unix timestamp (used for incremental sync by clients).

Returns: JSON array of members. Each entry has id (integer member id, used as memberId in other tools), name, weight (share weight, default 1), activated (bool — false means soft-disabled but kept for bill history), userid (linked Nextcloud user id, or null for free-form members), color (RGB dict), lastchanged.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
project_idYes
last_changedNo

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?

Beyond the readOnlyHint/idempotentHint/destructiveHint annotations, the description adds meaningful behavior context: it requires VIEWER access, defines last_changed as an incremental-sync filter, and explains nuanced semantics like activated=false meaning soft-disabled but retained for bill history, userid=null meaning free-form member, and weight defaulting to 1. This is rich, non-redundant disclosure.

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 organized into clear sections: a one-sentence purpose, an access requirement, parameter definitions, and return-value details. Every sentence carries useful information, and the structure is easy to scan. Nothing feels redundant or padded.

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 read-only list tool with two parameters, the description is complete: it covers access requirements, both parameters, return structure, field meanings, defaults, and cross-tool usage of the member id. An agent has everything needed to invoke it correctly and interpret the result.

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?

Schema description coverage is 0%, so the description fully compensates. It documents both parameters: project_id as a string project id, and last_changed as an optional Unix timestamp filter with a clear behavioral meaning. It also clarifies the role of the id field as the memberId used in other tools, adding semantic value beyond the schema's bare type declarations.

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 starts with a specific verb and resource: 'List members of a Cospend project.' It clearly distinguishes itself from sibling tools like list_cospend_bills, list_cospend_projects, and member mutation tools by naming the exact object (members of a Cospend project). The return-field details further confirm the tool's scope.

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 clearly establishes the tool's context: it lists members, requires VIEWER access, and requires a project_id. It explains the optional last_changed parameter's incremental-sync use case. It does not explicitly enumerate alternatives or say 'use list_cospend_bills for bills,' but the resource naming makes the appropriate use case clear enough.

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