Skip to main content
Glama

Yuppsy

property_add

Add a new property to the system. This endpoint accepts a PropertyEntity object in the request body, which contains details about the property, including its address, agent information, price, sale type, and other relevant attributes. The method handles address validation, agent verification, and media management (images and videos) for the property. If successful, it returns a success response along with the newly created property's ID.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "data": "<data>"
    },
    "name": "property_add"
  }
}

Input Schema

NameRequiredDescriptionDefault
dataYesThe property data.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / data / description
      Added value: +"The property data."
  2. Changed1 schema field changed
    • addedInput schema / properties / data / required
      Added value: +[
      +  "address"
      +]
  3. Changed41 schema fields changed
    • addedInput schema / properties / data / properties / address / description
      Added value: +"One line address, e.g. 29 Main St Apt 4B, City, State ZIP"
    • addedInput schema / properties / data / properties / agentExternalId / description
      Added value: +"Agent is required when adding a property. If external id is associated with an agent, it will be used. The priority is AgentId over AgentExternalId."
    • addedInput schema / properties / data / properties / agentId / description
      Added value: +"Agent is required when adding a property. This is the agent id of the agent who will be associated with this property. This can be null if the AgentExternalId is provided."
    • addedInput schema / properties / data / properties / bathroom / description
      Added value: +"The number of bathrooms in the property."
    • addedInput schema / properties / data / properties / bathroomHalf / description
      Added value: +"The number of half bathrooms in the property."
    • addedInput schema / properties / data / properties / bedroom / description
      Added value: +"The number of bedrooms in the property."
    • addedInput schema / properties / data / properties / constructionQuality / description
      Added value: +"The construction quality of the property."
    • addedInput schema / properties / data / properties / cooling / description
      Added value: +"The cooling type of the property. Possible values: NONE = 0, Central = 1, Window = 2"
    • addedInput schema / properties / data / properties / description / description
      Added value: +"The description of the property."
    • addedInput schema / properties / data / properties / exteriorMaterial / description
      Added value: +"The exterior material of the property. Possible values: NONE = 0, Brick = 1, Stucco = 2, Vinyl = 3, Aluminum = 4, Wood = 5, Log = 6, GlassBlock = 7, Composite = 8, Stone = 9"
    • addedInput schema / properties / data / properties / externalId / description
      Added value: +"Property external id, if any."
    • addedInput schema / properties / data / properties / fireplace / description
      Added value: +"The fireplace type of the property. Possible values: NONE = 0, Woodburning = 1, Gas = 2, GasLogs = 3"
    • addedInput schema / properties / data / properties / garage / description
      Added value: +"The garage type of the property. Possible values: NONE = 0, Attached = 1, BuiltIn = 2, Detached = 3"
    • addedInput schema / properties / data / properties / garageDepth / description
      Added value: +"The depth of the garage in the property."
    • addedInput schema / properties / data / properties / garageWidth / description
      Added value: +"The width of the garage in the property."
    • addedInput schema / properties / data / properties / heating / description
      Added value: +"The heating type of the property. Possible values: NONE = 0, WarmAir = 1, Hydronic = 2, Steam = 3, Electric = 4"
    • addedInput schema / properties / data / properties / heatingFuel / description
      Added value: +"The heating fuel type of the property. Possible values: NONE = 0, Coal = 1, Electric = 2, Gas = 3, Oil = 4, PropaneOrButane = 5, Solar = 6, WoodOrPellet = 7"
    • addedInput schema / properties / data / properties / homeType / description
      Added value: +"The home type of the property. Possible values: Unspecified = 0, SingleFamily = 1, Multifamily = 2, TownHouse = 3, Apartment = 4, Loft = 5, Condo = 6, Mobile = 7, Houseboat = 8, Lot = 9, Farm = 10, Cooperative = 11, TenantInCommon = 12, Investment = 13"
    • addedInput schema / properties / data / properties / lastYearRemodel / description
      Added value: +"The year the property was last remodeled."
    • addedInput schema / properties / data / properties / legalDesc / description
      Added value: +"The legal description of the property."
    • addedInput schema / properties / data / properties / livingSize / description
      Added value: +"The living size of the property."
    • addedInput schema / properties / data / properties / livingTotalSize / description
      Added value: +"The total living size of the property."
    • addedInput schema / properties / data / properties / lotDepth / description
      Added value: +"The lot depth of the property."
    • addedInput schema / properties / data / properties / lotSize / description
      Added value: +"The lot size of the property."
    • addedInput schema / properties / data / properties / lotWidth / description
      Added value: +"The lot width of the property."
    • addedInput schema / properties / data / properties / parking / description
      Added value: +"The parking type of the property. Possible values: Unspecified = 0, Owned = 1, ExclusiveUse = 2, Leasehold = 3, PrivateDrivewayGarage = 4, FrontPad = 5, RearParkingLaneway = 6"
    • addedInput schema / properties / data / properties / pool / description
      Added value: +"The pool type of the property. Possible values: NONE = 0, InGroundGunite = 2, InGroundVinyl = 3, AboveGround = 4"
    • addedInput schema / properties / data / properties / poolLocation / description
      Added value: +"The pool location type of the property. Possible values: NONE = 0, Outside = 1, Inside = 2, Covered = 3"
    • addedInput schema / properties / data / properties / price / description
      Added value: +"The price of the property."
    • addedInput schema / properties / data / properties / propertyId / description
      Added value: +"The id of the property. Can be ignored if ExternalId is provided."
    • addedInput schema / properties / data / properties / public / description
      Added value: +"Set the property public status."
    • addedInput schema / properties / data / properties / roof / description
      Added value: +"The roof type of the property. Possible values: NONE = 0, Gable = 1, Hip = 2, Saltbox = 3, Shed = 4, Flat = 5, Gambrel = 6, Mansard = 7"
    • addedInput schema / properties / data / properties / roofMaterial / description
      Added value: +"The roof material of the property. Possible values: NONE = 0, CompositionShingle = 1, WoodShake = 2, ClayConcreteTile = 3, Slate = 4, Metal = 5, TarGravel = 6, Synthetic = 7"
    • addedInput schema / properties / data / properties / roofYear / description
      Added value: +"The year the roof was installed."
    • addedInput schema / properties / data / properties / saleByType / description
      Added value: +"The sale by type of the property. Possible values: NONE = 0, ByAgent = 1, ByOwner = 2, NewHome = 3, ShortSale = 4, PreForeclosure = 5, Foreclosure = 6"
    • addedInput schema / properties / data / properties / saleForeclosureType / description
      Added value: +"The sale foreclosure type of the property. Possible values: NONE = 0, NoticeOfDefault = 1, Auction = 2, BankOwned = 3"
    • addedInput schema / properties / data / properties / saleType / description
      Added value: +"The sale type of the property. Possible values: NotForSale = 0, ForSale = 1, ForSalePending = 2, ForSaleWithContract = 3, Sold = 4, MightSale = 5"
    • addedInput schema / properties / data / properties / stories / description
      Added value: +"The number of stories in the property."
    • addedInput schema / properties / data / properties / units / description
      Added value: +"The number of units in the property."
    • addedInput schema / properties / data / properties / view / description
      Added value: +"The view type of the property. Possible values: NONE = 0, City = 1, Mountain = 2, Park = 3, Territorial = 4, Water = 5"
    • addedInput schema / properties / data / properties / yearBuilt / description
      Added value: +"The year the property was built."
  4. First observed

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations, the description carries the full burden; it does disclose meaningful behavior beyond the name — address validation, agent verification, media handling, and that a success response returns the new property's ID. However it omits failure modes (what happens on duplicate address or invalid agent), permission requirements, and side effects such as creating image/video records, which matters for a mutation tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, but two of the four sentences contain implementation-level filler ('accepts a PropertyEntity object in the request body', 'and other relevant attributes') that does not help an agent decide or invoke.

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 complex nested-object creation tool with no output schema and no annotations, the description covers the happy path and return shape, but leaves out validation failure behavior, whether the property is published, and how it relates to the dedicated image/video tools that share the same payload concept.

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 description coverage is 100% across a deeply nested 40+ field object, so the schema already documents every field. The description merely summarizes a few of them ('address, agent information, price, sale type') without adding format rules, defaults, or the agent-vs-agentExternalId priority logic beyond what the schema states.

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?

Uses a specific verb+resource ('Add a new property to the system') and enumerates the payload's content areas (address, agent, price, sale type). It never distinguishes this from the sibling property_try_add or the property_add_images/videos tools, so an agent cannot tell from the description alone which creation entry point to use.

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?

No when-to-use or when-not-to-use guidance is given, and no prerequisites are stated as guidance even though a sibling (property_try_add) clearly overlaps. The reader is left to infer usage purely from the tool name.

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.

Resources