Skip to main content
Glama

Create a draft case

evictions_create_case

Use this when the person wants to start an eviction case and has given you its facts: the ground, where the case starts, the property, the parties and their own attestations. Creates a draft case in the person’s account. Nothing is submitted. Add its documents with evictions_add_case_document. Pass an idempotencyKey and reuse it if you repeat the call, so a retry never makes a second case. For a property manager, landlordId (from evictions_list_landlords) names the owner the case is for and adds its saved management agreement to the case. Do not use this to change a case that already exists (use evictions_update_case). The result is the case, with state and nextAction (who it is waiting on and for what). Next: evictions_validate_case. Needs the person’s account: sign-in or an API key.

Input Schema

NameRequiredDescriptionDefault
leaseNoThe lease, when there is one.
groundYesWhy the case is brought: nonpayment of rent, a lease violation, or holdover (the tenant stayed after the lease ended). Cannot be changed later.
ledgerNoRent charges and payments, for a nonpayment case.
partiesYesThe plaintiff (the owner or manager) and each defendant (tenant).
freeTextNoAnything else the attorney should know.
propertyYesThe rental property and its owner of record.
violationNoFor a lease violation case.
entryPointYesWhere the case starts: `notice` (a notice to the tenant comes first), or `filing` when a notice was already served (then give `priorNotice`). Cannot be changed later.
landlordIdNoFor a property manager: the id (lnd_...) of the landlord, the owner the case is for, from evictions_list_landlords. Its saved management agreement is added to the case as proof of authority. An archived landlord cannot be chosen, and a test-mode case cannot take one.
priorNoticeNoThe notice already served, for a case that starts at filing.
attestationsYesThe person’s own statements about the case. Ask the person for each one; never fill them in yourself. On an update, send all of them again: this object replaces the one stored.
rentOwedCentsNoThe unpaid rent alone, without late fees or other charges; 0 when no rent is owed. A court filing states it as the rent due, and rent claimed is never more, in US cents (150000 is $1,500.00).
idempotencyKeyNoSent as the Idempotency-Key header (printable ASCII, no spaces): a repeat of the same request with the same key returns the first answer instead of a second case. Always pass one, and reuse it if you repeat the call.
amountOwedCentsNoThe total the tenant owes now, in US cents (150000 is $1,500.00).
plaintiffContactNoHow the court reaches the plaintiff (owner or manager): a Texas petition states the address and telephone.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / landlordId
      Added value: +{
      +  "description": "For a property manager: the id (lnd_...) of the landlord, the owner the case is for, from evictions_list_landlords. Its saved management agreement is added to the case as proof of authority. An archived landlord cannot be chosen, and a test-mode case cannot take one.",
      +  "pattern": "^[A-Za-z0-9_-]{1,100}$",
      +  "type": "string"
      +}
  2. Changed2 schema fields changed
    • addedInput schema / properties / ledger / items / properties / kind
      Added value: +{
      +  "description": "For a charge only: what it is for. `other_fee` for any other charge; `eviction_fee`, `attorney_fee` or `court_cost` for a cost of the eviction itself, which no notice demands.",
      +  "enum": [
      +    "rent",
      +    "late_fee",
      +    "utilities",
      +    "other_fee",
      +    "eviction_fee",
      +    "attorney_fee",
      +    "court_cost"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / property / properties / county / description
      Previous value: -"County, when known."New value: +"County, when known, as the US Census Bureau names it (\"Henry County\" or \"Henry\"); one the state does not have is refused."
  3. Changed2 schema fields changed
    • addedInput schema / properties / lease / properties / noticeMethods
      Added value: +{
      +  "description": "In Georgia: the additional ways the rental agreement says a notice must be delivered, exactly as the lease states them, or the word `none`. The notice is posted on the door and states these methods too.",
      +  "maxLength": 500,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedInput schema / properties / priorNotice / properties / sealedEnvelope
      Added value: +{
      +  "description": "In Georgia: whether the notice was posted in a sealed envelope on the door of the premises, as the person states it. The filing says so; a posted notice answered false there does not pass the prior-notice check.",
      +  "type": "boolean"
      +}
  4. Changed3 schema fields changed
    • addedInput schema / properties / lease / properties / monthToMonth
      Added value: +{
      +  "description": "For a holdover in Texas: whether the tenancy is month to month.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / lease / properties / noticePeriodDays
      Added value: +{
      +  "description": "In Texas: the notice period, in days, the written lease sets for this notice; 3 when the lease sets none.",
      +  "maximum": 365,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / lease / properties / terminationNoticeDate
      Added value: +{
      +  "description": "For a month-to-month holdover in Texas: the day written notice ending the tenancy was given, as YYYY-MM-DD.",
      +  "type": "string"
      +}
  5. Changed6 schema fields changed
    • changedInput schema / properties / attestations / description
      Previous value: -"The person’s own statements about the case. Ask the person for each one; never fill them in yourself."New value: +"The person’s own statements about the case. Ask the person for each one; never fill them in yourself. On an update, send all of them again: this object replaces the one stored."
    • addedInput schema / properties / attestations / properties / lateBeforeNoticeMonth
      Added value: +{
      +  "description": "For nonpayment: whether the tenant was late or behind on rent before the month the notice was given. A Texas petition states it.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / parties / items / properties / phone
      Added value: +{
      +  "description": "The party’s telephone number, if known. A Texas petition states the tenant’s.",
      +  "maxLength": 40,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedInput schema / properties / plaintiffContact
      Added value: +{
      +  "description": "How the court reaches the plaintiff (owner or manager): a Texas petition states the address and telephone.",
      +  "properties": {
      +    "address": {
      +      "description": "The plaintiff’s mailing address, on one line.",
      +      "maxLength": 500,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "email": {
      +      "description": "The plaintiff’s email address, if they want it on the filing.",
      +      "format": "email",
      +      "maxLength": 254,
      +      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +      "type": "string"
      +    },
      +    "phone": {
      +      "description": "The plaintiff’s telephone number.",
      +      "maxLength": 40,
      +      "minLength": 1,
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "address",
      +    "phone"
      +  ],
      +  "type": "object"
      +}
    • addedInput schema / properties / priorNotice / properties / type
      Added value: +{
      +  "description": "Which notice it was, as written on it: a notice to vacate, a notice to pay rent or vacate, pay or quit, or cure or quit.",
      +  "enum": [
      +    "notice_to_vacate",
      +    "notice_to_pay_rent_or_vacate",
      +    "pay_or_quit",
      +    "cure_or_quit"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / rentOwedCents
      Added value: +{
      +  "description": "The unpaid rent alone, without late fees or other charges; 0 when no rent is owed. A court filing states it as the rent due, and rent claimed is never more, in US cents (150000 is $1,500.00).",
      +  "maximum": 9007199254740991,
      +  "minimum": 0,
      +  "type": "integer"
      +}
  6. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the annotations: it discloses that nothing is submitted (draft only), that an account/sign-in or API key is required, that 'ground' and 'entryPoint' are immutable, what the response contains ('the case, with state and nextAction'), and how the idempotencyKey makes retries safe. This is meaningful behavioral context that the readOnlyHint=false / destructiveHint=false annotations do not convey.

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?

The text is long but dense and front-loaded: eligibility, effect, idempotency, the landlord special case, the exclusion, the result shape and the next step each carry distinct information. Slightly more sentences than strictly needed, but none are 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?

For a 15-parameter nested mutation with no output schema and no annotations describing consequences, the description covers the essential gaps: what state the record lands in (draft, nothing submitted), auth requirements, immutability, retry safety, the landlord special case, and the returned fields. An agent has what it needs to call this correctly.

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 description coverage is 100%, so the baseline is 3, but the description adds real meaning for the trickiest parameter: landlordId names the owner the case is for and pulls in the saved management agreement, and idempotencyKey is explained as a reuse-on-retry mechanism. Remaining parameters are left to the already-thorough schema.

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 ('Creates a draft case in the person's account') and immediately scopes it against siblings by saying what it does not do ('Do not use this to change a case that already exists (use evictions_update_case)'). An agent can distinguish it from evictions_update_case, evictions_add_case_document and evictions_validate_case without opening any schema.

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?

Explicit when-to-use trigger ('when the person wants to start an eviction case and has given you its facts'), explicit exclusion with a named alternative, and an explicit next step ('Next: evictions_validate_case'). It even names the companion tool for follow-on work (evictions_add_case_document).

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.