Skip to main content
Glama

taxapp.nz

Change a tenancy

update_tenancy
DestructiveIdempotent

Changes a tenancy, by its id from list_properties: its tenants, landlords, term, dates, weekly rent, bond, room or notes, such as a rent rise, a tenancy ending, or the bond being lodged or refunded. Its property never changes. tenant_contact_ids and landlord_contact_ids replace the lists it has now. Dates are New Zealand dates, yyyy-MM-dd; money is in NZD. Give only what changes: every parameter left out keeps the value the record has now. Read the record first, and confirm the change with the person before making it. Needs the rental module switched on. Only for an organisation where this connection may add and change records (list_organisations says which). The answer is the changed tenancy.

Input Schema

NameRequiredDescriptionDefault
clearNoOptional fields to empty, by parameter name, any of: landlord_contact_ids, end_date, bond_refunded_amount, bond_number, room_label, notes.
notesNoFree text kept with the tenancy.
end_dateNoThe New Zealand date it ends or ended, yyyy-MM-dd.
term_typeNofixed (an agreement with an end date) or periodic (ongoing until notice is given).
room_labelNoThe room rented, for a room-by-room tenancy.
start_dateNoThe New Zealand date the tenancy starts, yyyy-MM-dd.
tenancy_idYesThe tenancy's id, from list_properties.
bond_amountNoThe bond in NZD.
bond_numberNoThe Tenancy Services bond number, such as BN-12345678.
bond_statusNoWhere the bond stands: not-lodged, lodged (with Tenancy Services), refunded, or partially-refunded (give bond_refunded_amount).
weekly_rentNoThe weekly rent in NZD.
organisation_idNoThe id of the organisation to use, from list_organisations. Leave it out when the connection covers only one organisation; it is required when it covers more than one.
tenant_contact_idsNoEvery tenant from now on: contact ids from list_contacts (contact type tenant).
bond_refunded_amountNoFor a partially refunded bond: how much was refunded, in NZD.
landlord_contact_idsNoEvery landlord on the bond from now on: contact ids from list_contacts (contact type landlord).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations (destructiveHint, idempotentHint, openWorldHint=false). It discloses partial-update semantics ('every parameter left out keeps the value the record has now'), replacement rather than merge for contact id lists, immutability of property, required module/org capability, and that the response is the changed tenancy. This is exactly the extra context the annotations cannot carry.

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-loads the core verb/resource/scope and each sentence carries information (immutability, replacement semantics, formats, prerequisites). The opening sentence is a somewhat dense field-list, but the density is functional rather than 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 15-parameter mutation tool with no output schema, the description covers everything an agent needs: scope, partial-update rule, list-replacement rule, formatting conventions, prerequisites, and the return value ('The answer is the changed tenancy').

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 100%, so the 3 baseline applies, but the description genuinely adds meaning the schema does not encode: contact id lists replace the existing lists, left-out parameters are preserved, dates are New Zealand yyyy-MM-dd, and money is NZD. The 'clear' mechanics are clarified against the schema's parameter-name list.

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 ('Changes a tenancy, by its id from list_properties') and enumerates exactly which fields it can alter (tenants, landlords, term, dates, rent, bond, room, notes). It also draws a hard boundary ('Its property never changes'), which cleanly distinguishes it from update_property and create_tenancy.

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?

Gives real workflow and precondition guidance: 'Read the record first, and confirm the change with the person before making it', 'Needs the rental module switched on', and 'Only for an organisation where this connection may add and change records'. It does not explicitly name sibling tools to route away from (e.g. create_tenancy vs update_property), so it falls just short of the 5 bar for alternatives.

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.