Skip to main content
Glama

Add tenant

add_tenant

Create a tenant record for a Lendlord property, capturing contact details, lease dates, rent schedule, deposit scheme, and optional guarantor or compliance fields.

Instructions

Add a tenant to a property. Optional fields may include: phone, mobile, dob, notes, unitName, tenancyStartDate, tenancyEndDate, firstPaymentDate, rentReviewDate (dates YYYY-MM-DD), rentReviewFrequency (Quarterly|Semi-Annually|Annually|Every 2 Years|Every 3 Years|Every 5 Years), generatePaymentScheduleFor (3 months|6 months|12 months|24 months), depositScheme (TDS|DPS|Mydeposits|Zerodeposits|FlatFair|SafeDeposits|Other), depositAmount, guarantor/rollingTenancy/inventoryUndertaken/legionellaInspectionRequired (Yes|No).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYes
emailNo
fieldsNo
statusNoActual
confirmNoSet true once the user has approved writes for this session
propertyIdYes
rentPaymentNoRent amount per payment
paymentFrequencyNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

B3.2/5.0
Behavior2/5

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

Annotations declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the safety profile is partly covered, but the description adds nothing beyond that. For a write tool with no output schema it never explains the session-approval/confirm behavior, what happens on duplicate tenants, or that a payment schedule may be generated as a side effect.

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?

Purpose is front-loaded in the first sentence and the dense field list is kept to one clause rather than padded with prose. Slightly hard to scan given the run-on enumeration, but every token carries information.

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

Completeness4/5

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

Given a nested free-form object and no output schema, the description covers the highest-risk surface (the `fields` payload) thoroughly. The remaining gap is the write-confirmation workflow, which is at least documented in the schema's `confirm` parameter.

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 only 25%, and the riskiest parameter is `fields`, a free-form object with additionalProperties and no per-key documentation in the schema. The description compensates well by enumerating the accepted keys and the full enumeration sets for rentReviewFrequency, generatePaymentScheduleFor, depositScheme and the Yes/No flags, plus the date format.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource+scope ('Add a tenant to a property'), which is unambiguous against siblings like add_property or update_tenant. It does not explicitly name an alternative, but the name and opening sentence alone are enough to route correctly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance at all: nothing about when to prefer add_tenant over update_tenant, nothing about prerequisites (an existing propertyId), and no mention that this is a write that may require the confirm flag. The agent must infer usage entirely from the name.

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