Skip to main content
Glama
paintbrushv

plat-costmodel

by paintbrushv

estimate_property_from_model

Estimate property-level renovation costs using a structured Property model with unit mix, scope, finish tiers, and building context for multifamily analysis.

Instructions

Property-level estimate using the Property entity model.

Accepts a single property dict containing all property context and unit mix. This is the preferred API for Plat — replaces loose kwargs.

Args: property_data: Dict with keys: - property_id (str, required) - total_units (int, required) - unit_mix (list of dicts with: sqft, bedrooms, bathrooms, scope_level, finish_tier, count) - year_built (int, optional) - property_class ("B" or "C", optional) - market (str, optional) - building_type (str, optional) - exterior_items (list of str, optional)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
property_dataYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It documents the input shape thoroughly but says nothing about what the tool returns, whether it has side effects, authentication needs, cost, determinism, or error behavior for an estimation/compute operation.

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 description is front-loaded with the tool's identity and then uses a structured Args block. The length is justified by the zero-coverage nested schema, though the opening sentence could be tightened slightly.

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?

Given a complex nested input and no output schema, the description adequately covers the request shape but omits any description of the response or failure modes. For an estimation tool with multiple sibling alternatives, this leaves a meaningful gap.

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% and the sole parameter is an untyped nested object, so the description is the only source of parameter meaning. It fully enumerates required and optional keys, their types, and the structure of unit_mix, which is exactly what an agent needs to construct a valid call.

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 (estimate) and resource (property-level estimate) plus the underlying model (Property entity model). It signals preference over loose kwargs but does not differentiate itself from siblings like estimate_full_property or estimate_from_deal, so an agent still needs schema inspection to choose among the estimation tools.

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

Usage Guidelines3/5

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

The phrase 'preferred API for Plat — replaces loose kwargs' gives an implied usage cue, but there is no explicit when-to-use/when-not guidance or named alternative. The agent must infer that this is the modern entry point over unspecified older calls.

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