Skip to main content
Glama
paintbrushv

plat-costmodel

by paintbrushv

register_property

Register properties idempotently for cost modeling: assign a property ID, deduplicate by external alias, and attach floor plans without creating duplicates.

Instructions

Idempotent property registration.

Accepts a Property-shaped dict (and optional inline floor_plans). Mints property_id if missing or returns the existing row when external_alias matches.

Inline floor_plans are deduped by (sqft, bedrooms, bathrooms): an existing match is reused, otherwise a new FloorPlan is created. This means calling register_property twice with the same alias and a NEW floor plan in the payload correctly creates the new floor plan on the second call (the previous behavior silently dropped it).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
property_dataYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

B3.4/5.0
Behavior4/5

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

With zero annotations, the description carries the full burden and does it well: it discloses idempotency, the identity key (external_alias), the property_id minting, the FloorPlan dedup key, and the create-on-miss side effect, plus a behavior-change note about previously dropped floor plans. Missing only auth/permission requirements and a fuller return description, which the absent output schema would otherwise require.

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 single most important fact ('Idempotent property registration') and keeps supporting detail tight. The trailing sentence recounting 'the previous behavior silently dropped it' reads as changelog rather than call guidance, costing a bit of economy.

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

Completeness3/5

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

For a write tool with no annotations, no output schema, and an opaque nested parameter, the description covers behavior and idempotency well but leaves gaps: the structure of the Property dict, required fields, and error/failure behavior are not addressed. It is adequate but not fully self-sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% for a single nested property_data object (additionalProperties=true), so the schema is effectively opaque. The description compensates by naming the payload shape ('Property-shaped dict') and the optional inline floor_plans key, but it never enumerates the required Property fields or the floor_plan fields, so an agent still can't construct a valid payload from the definition alone.

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 ('property registration') and immediately qualifies it as idempotent, plus names the concrete effects (mints property_id, dedupes floor_plans). No sibling is a registration/write tool, so differentiation is not the binding constraint here, but the description never explicitly contrasts with the estimation siblings.

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 explicit when-to-use or when-not guidance and no alternative tool is named. The idempotency and dedup explanation implies repeat-call behavior but leaves the agent to infer when registration (vs. estimation) is the right call.

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