Skip to main content
Glama

Tu Lugar

Server Details

Search and manage Paraguay & LatAm real estate from any AI assistant.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
JanKratochvil1/tulugar-mcp-server
GitHub Stars
0
Server Listing
Tu Lugar MCP Server

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.2/5 across 39 of 39 tools scored. Lowest: 2.8/5.

Server CoherenceA
Disambiguation4/5

Most tools have clearly distinct purposes, but there is some overlap between 'search' and 'search_listings', and between 'fetch' and 'get_listing'. However, descriptions effectively differentiate them.

Naming Consistency3/5

Naming follows multiple patterns: verb_noun (create_listing), noun (closing_costs), get_*, search_*, my_*. While each pattern is internally consistent, the mix reduces overall consistency.

Tool Count3/5

39 tools is relatively high, but they cover a broad set of real estate functionalities. The count feels slightly heavy but is justified by the domain scope.

Completeness5/5

The tool set covers the full lifecycle of listings (CRUD, promotion, sharing), account management, search with multiple filters, market data, guides, and lead management. No obvious gaps for the platform's purpose.

Available Tools

39 tools
account_statusAccount StatusA
Read-only
Inspect

REPORT-ONLY status check: returns whether the user's Tu Lugar account is connected and whether they can publish (needs a verified WhatsApp number). It does NOT and CANNOT start a connection. If the user asks to connect / authorize / log in / sign in, or wants to create a listing while not connected, call connect_account instead — that is the tool that opens the Approve prompt. Use account_status only when you purely want to know the current state. Never tell the user to merely visit the login page to authorize Claude — connecting is a one-time Approve, not a website login.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

Annotations already declare readOnlyHint=true. Description adds that it does NOT start a connection and explains what it returns, providing extra context beyond annotations.

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?

Description is well-structured and front-loaded with key info. A few sentences could be slightly shorter, but each sentence serves a purpose.

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?

Despite no output schema, description adequately explains return values (connected, publishable) and behavior. Complete for a simple status-check tool.

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?

No parameters; baseline is 4. Description adds context about the tool's output and constraints, though no parameter details are needed.

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?

Description clearly states it is a report-only status check that returns connection and publish capability. It explicitly distinguishes itself from connect_account, which is a sibling tool.

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?

Provides precise guidance on when to use (purely want to know status) and when not to use (if user asks to connect/authorize/log in, use connect_account). Also advises against misleading users.

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

buy_promotional_creditsBuy Promotional CreditsAInspect

Start a purchase of a promotional-credit pack for the connected account. Returns a secure Stripe checkout link that the USER opens to pay — you never handle card details, and payment happens on Stripe's page, not here. After they pay, the credits are added to their account and can be spent with promote_listing. One pack = 5 credits (each promotes one property for ~14 days).

ParametersJSON Schema
NameRequiredDescriptionDefault
localeNoLanguage for the checkout page (default es)
Behavior5/5

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

The description adds significant behavioral context beyond annotations: it clarifies that payment occurs on Stripe's secure page, the agent never handles card details, and credits are added post-payment. This fully compensates for the absence of detailed annotations.

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 concise and well-structured, front-loading the core purpose. It could be slightly shortened by merging sentences, but each sentence contributes essential information.

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?

Given the tool's complexity (payment flow with external redirect), the description covers all critical aspects: what it does, how payment works, the credit pack value, and its relation to promote_listing. No output schema exists, but the return value is clearly described.

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?

The schema already provides full coverage for the single parameter 'locale' with enum values and description. The description does not add further semantics beyond naming the parameter, so a baseline score of 3 is appropriate.

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?

The description clearly states the tool starts a purchase of a promotional-credit pack, returns a Stripe checkout link, and explains the pack details (5 credits, each promotes for ~14 days). It distinctively separates from sibling tools like promote_listing which spends credits.

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

Usage Guidelines4/5

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

The description explains when to use (to buy credits for promotion) and implicitly suggests not to use promote_listing until credits are purchased. However, it lacks explicit exclusion statements or alternative guidance for members who already have credits.

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

close_listingclose_listingA
Destructive
Inspect

Close (retire) one of the authenticated agent's OWN listings — use when a property is sold, rented, or withdrawn from the market. It disappears from public results. This is NOT reversible (a closed listing cannot be reopened), so confirm with the user before calling. Pass the id from my_listings. Also works on SYNCED listings (synced:true): closing one stops the portal sync from reopening it.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesID of the agent's own listing to close (from my_listings)
Behavior5/5

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

Annotations already flag destructive behavior, but the description adds significant context: the listing disappears from public results, the action is not reversible, and it works on synced listings. No contradictions.

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

Conciseness5/5

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

Four sentences, each serving a distinct purpose: action, effect, warning, and extra behavior. No redundant information.

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 single-parameter tool with no output schema, the description covers purpose, usage, behavioral effects, and parameter source. Nothing essential is missing.

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?

The schema already describes the 'id' parameter with 100% coverage. The description adds practical advice ('Pass the id from my_listings'), which adds value beyond the 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?

The description uses specific verbs ('Close/retire') and clearly identifies the resource ('listing') and scope ('OWN listings'). It distinguishes the tool from siblings by stating its purpose for sold, rented, or withdrawn properties.

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

Usage Guidelines4/5

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

The description explicitly states when to use the tool ('sold, rented, or withdrawn from the market') and provides crucial guidance such as confirming with the user and using the id from my_listings. It lacks explicit when-not-to-use but the irreversibility warning implies caution.

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

closing_costsClosing Costs (Paraguay)A
Read-only
Inspect

Official TuLugar closing-costs breakdown for buying property in PARAGUAY: transfer tax, municipal fees, notary/registry, optional mortgage fixed costs, seller broker fee. Use when the user asks what buying costs beyond the price, or to budget cash-at-closing for a concrete price.

ParametersJSON Schema
NameRequiredDescriptionDefault
price_gsNoProperty price in guaraníes
price_usdNoProperty price in USD (use this OR price_gs)
include_mortgage_costsNoInclude bank appraisal/title/notary fixed fees (default true)
Behavior4/5

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

Annotations indicate readOnlyHint=true, so the tool is safe and read-only. The description adds useful behavioral context by listing included costs (transfer tax, municipal fees, etc.), which helps the agent understand what the tool computes.

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

Conciseness5/5

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

Two sentences: first defines the tool, second tells when to use. No wasted words, front-loaded with key 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 3 parameters and no output schema, the description provides adequate context for a calculation tool. It explains what costs are included and when to use. Minor gap: does not describe return format, but output schema is absent.

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 100%, so the description adds limited value for parameters. It mentions 'optional mortgage fixed costs' which aligns with include_mortgage_costs, but does not significantly enhance understanding beyond the 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?

The description clearly states it provides a closing-costs breakdown for buying property in Paraguay, listing specific fees. It distinguishes itself from siblings like mortgage_calculator and rental_yield by focusing on one-time purchase costs.

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

Usage Guidelines4/5

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

Explicitly says 'Use when the user asks what buying costs beyond the price, or to budget cash-at-closing for a concrete price.' Provides clear usage context but does not mention when not to use or compare to alternatives.

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

connect_accountConnect Tu Lugar AccountA
Read-only
Inspect

THE tool to connect/authorize the user's Tu Lugar account. Call this IMMEDIATELY (without first calling account_status) whenever the user asks to "connect", "authorize", "link", "log in to", or "sign in to" Tu Lugar, or wants to create/manage a listing while not connected — do NOT wait for them to create a listing first. When not connected, it returns a clickable "Connect your Tu Lugar account" link — show that link to the user verbatim and tell them to open it (one click if they are already signed in at tulugar.com; no separate Approve step). After they open it they are connected — they can then ask you again. If already connected, it confirms who they are connected as. account_status only REPORTS status and can never start this.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

Annotations declare readOnlyHint=true and openWorldHint=true. The description adds that the tool returns a clickable link (or a confirmation if already connected). It clarifies the tool itself does not perform the connection server-side, aligning with readOnly. This provides useful behavioral context beyond annotations.

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 well-structured with clear sentences, but slightly verbose. It could be more concise without losing meaning. The key info is front-loaded.

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?

Despite no output schema, the description fully explains what the tool returns (link or confirmation) and how the agent should present it. All behavioral nuances are covered, making it complete for an agent.

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?

The tool has no parameters. Schema coverage is 100%. No additional parameter explanation is needed, and description does not add redundant info. Baseline 4 is appropriate.

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?

The description explicitly states the tool connects/authorizes the user's Tu Lugar account, providing a specific verb and resource. It distinguishes from the sibling 'account_status' which only reports status, ensuring the agent knows which tool 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 Guidelines5/5

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

The description offers explicit guidance: call immediately for specific user intents (connect, authorize, link, log in, sign in), even before creating a listing. It also explains what to show the user and the expected flow.

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

create_leadContact AgentA
Destructive
Inspect

Send an inquiry on behalf of the user to the advertiser of a listing, a development project, or a real-estate company. Notifies them (email + WhatsApp) and starts a conversation. Works without an account. This sends a real message to real people — confirm the details with the user before calling.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesBuyer name
emailNoBuyer email (email or phone required)
phoneNoBuyer phone / WhatsApp (email or phone required)
messageYesThe inquiry message
company_idNoCompany/agency to contact directly
listing_idNoListing to inquire about (exactly one of listing_id / project_id / company_id)
project_idNoDevelopment project to inquire about
Behavior5/5

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

Annotations indicate destructiveHint=true, and the description reinforces that 'This sends a real message to real people' and 'Notifies them (email + WhatsApp)'. It adds value by noting 'Works without an account' and advising user confirmation.

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

Conciseness5/5

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

Two efficient sentences: first covers purpose and outcome, second provides a critical usage warning. No extraneous 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?

Adequate for a tool with 7 parameters and destructive side effects. Explains the outcome and prerequisites. Lacks explanation of return value or post-inquiry tracking, but output schema is absent so this is acceptable.

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 100%, so the schema already documents all parameters. The description does not significantly enhance parameter meaning beyond stating the notification method and that it works without an account, which is already implied.

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?

The description clearly states the tool sends an inquiry on behalf of the user to an advertiser, listing, project, or company. It distinguishes from siblings like 'reply_to_inquiry' by specifying it starts a new conversation.

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

Usage Guidelines4/5

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

Explicitly states the tool is for sending inquiries and warns to confirm details with the user before calling. It does not directly compare to alternatives like 'reply_to_inquiry' but the context implies it is for initial contact.

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

create_listingCreate ListingAInspect

Create a real estate listing for the authenticated agent. Always creates a private DRAFT — it is NOT visible publicly. A city or neighborhood is enough to start; NEVER invent coordinates (fabricated pins are discarded). The response returns an edit-page link with a map: ask the user to open it and drop the pin on the exact property location, and wait for their confirmation before publish_listing — publishing is blocked until a human sets the pin and at least one photo. Requires a CONNECTED account with a verified WhatsApp number — if unsure, call account_status FIRST and, if not connected, share the connect steps it returns instead of attempting to create.

ParametersJSON Schema
NameRequiredDescriptionDefault
imagesNoUp to 25 image URLs. Optional for a draft; at least one is required to publish.
locationYesListing location. The country/market is inferred from the city and coordinates — use real place names so it resolves correctly (e.g. Asunción → Paraguay, Montevideo → Uruguay, Buenos Aires → Argentina, Curitiba → Brazil). For a draft, a city or neighborhood is enough; the owner sets the exact pin on the web. Provide latitude/longitude ONLY if you have precise coordinates — never guess them.
descriptionNo
land_detailsNoBedrooms/bathrooms/area for the property.
listing_typeYes
price_amountYesPrice (positive number)
house_detailsNoBedrooms/bathrooms/area for the property.
property_typeYes
price_currencyNoUse the currency local to the market (e.g. PYG in Paraguay, UYU or USD in Uruguay, ARS in Argentina, BRL in Brazil). Defaults to PYG if omitted.
source_languageYesLanguage the title/description are written in
apartment_detailsNoBedrooms/bathrooms/area for the property.
commercial_detailsNoBedrooms/bathrooms/area for the property.
Behavior5/5

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

Discloses that listing is private draft, not public; warns against inventing coordinates; clarifies that publishing is blocked until pin and photo; notes country inference from city/coordinates; no contradiction with annotations.

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?

Well-structured and front-loaded, but slightly verbose with repeated property detail descriptions across multiple objects; still efficient for the tool's complexity.

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?

Covers purpose, workflow, prerequisites, parameter guidance, and return format (edit-page link); missing some error details, but adequate given no output schema.

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?

Adds meaning beyond schema: explains what parameters are optional for draft vs required for publish, advises on location precision, source_language usage, and currency locale.

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?

Clearly states 'Create a real estate listing for the authenticated agent' and specifies it always creates a private draft, distinct from publish_listing and other siblings.

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?

Explicitly explains when to use: creates draft; prerequisites (connected account, verified WhatsApp); advises calling account_status first; instructs to ask user to drop pin and wait before publish_listing.

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

edit_listingEdit ListingAInspect

Update one of the authenticated agent's listings. Pass only the fields to change. Editing images/title/description counts against the edit quota and re-triggers review. Also works on SYNCED listings (auto-imported from the agent's portal, marked synced:true in my_listings): everything is editable, and changing the price makes it stop auto-syncing — the agent's price then always wins over the portal's. Publish state of synced listings cannot be changed here (use close_listing).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesListing ID to update
imagesNo
descriptionNo
land_detailsNoBedrooms/bathrooms/area for the property.
price_amountNo
house_detailsNoBedrooms/bathrooms/area for the property.
price_currencyNo
apartment_detailsNoBedrooms/bathrooms/area for the property.
commercial_detailsNoBedrooms/bathrooms/area for the property.
Behavior5/5

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

Annotations (readOnlyHint=false, destructiveHint=false) are consistent, but the description adds rich context: edit quota and re-review for certain fields, auto-sync behavior, price change implications. This far exceeds what annotations alone convey.

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

Conciseness5/5

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

The description is efficiently structured: primary action first, then side effects, then special cases, then exclusions. Every sentence earns its place with concrete information, no fluff.

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 9 parameters, nested objects, and no output schema, the description covers key behaviors (quota, review, sync) and edge cases. It lacks details about the return value or field constraints (e.g., max length), but it is comprehensive for a complex tool.

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?

The description adds value by advising to 'pass only the fields to change' and by highlighting that editing images/title/description has specific consequences. While schema coverage is 56%, the description does not detail every nested parameter, but the guidance is clear enough for effective use.

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?

The description clearly states 'Update one of the authenticated agent's listings' with a specific verb and resource. It distinguishes from sibling tools like create_listing and close_listing by focusing on updates and explicitly referencing close_listing for publish state changes.

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?

The description provides explicit when-to-use guidance ('Pass only the fields to change'), notes quotas and review triggers, and explains special behavior for synced listings. It also tells when not to use (changing publish state of synced listings) and points to the alternative tool (close_listing).

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

fetchFetchB
Read-only
Inspect

Retrieve the full content of a single Tu Lugar listing by its id (from a search result). Returns title, full text description, specs, and the canonical URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesListing id returned by `search`.
Behavior3/5

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

Annotations already declare readOnlyHint=true, so description adds value by listing returned fields. No contradictions, but does not disclose any additional traits like rate limits or authentication.

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

Conciseness5/5

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

Single sentence packed with all necessary information: action, resource, source of id, and return fields. No waste.

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?

For a simple read-only tool with one parameter and no output schema, the description covers what it does and what it returns. Minor gap: does not distinguish from sibling 'get_listing'.

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 already describes the 'id' parameter as 'Listing id returned by search.' The description repeats this context but adds no new semantic value, so baseline 3.

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?

Clear verb 'Retrieve' and resource 'Tu Lugar listing' with specific return fields. However, it does not differentiate from sibling 'get_listing' which may serve a similar purpose.

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?

Only implies usage after a search but provides no explicit when-to-use or when-not-to-use guidance, nor mentions alternatives.

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

get_agentget_agentA
Read-only
Inspect

Get details about one real estate agent by id or slug: profile, rating, reviews, specialties, and contact info.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesAgent id or slug
Behavior3/5

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

Annotations already provide readOnlyHint=true, and the description confirms this with 'Get details'. No additional behavioral traits (e.g., rate limits, authentication) are disclosed, but for a simple read-only fetch, this meets the baseline.

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

Conciseness5/5

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

The description is a single sentence that front-loads the action and lists key details. Every word is necessary and there is no redundancy.

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 no output schema, the description partially compensates by listing the field categories (profile, rating, reviews, etc.). It lacks details on error handling or format but is sufficient for a simple retrieval tool.

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 100% with the description 'Agent id or slug'. The tool description reiterates 'by id or slug', adding minimal new meaning beyond the schema. Baseline 3 is appropriate.

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?

The description uses a specific verb 'Get details' and identifies the resource as 'one real estate agent'. It clearly lists the fields returned (profile, rating, reviews, specialties, contact info) and specifies the identifier 'by id or slug', distinguishing it from sibling tools like search_agents.

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 explicit guidance on when to use this tool versus alternatives (e.g., search_agents for multiple agents). The description does not state when not to use it or provide context for choosing it over siblings.

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

get_companyget_companyA
Read-only
Inspect

Get details about one agency or developer by id or slug (from search_companies): profile, rating, specialties, languages, service areas, and contact info.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCompany id or slug
Behavior3/5

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

Annotations already provide readOnlyHint=true, so the description doesn't need to restate read-only nature. It adds value by listing the returned data fields (profile, rating, etc.), but doesn't disclose other behavioral traits beyond that.

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

Conciseness5/5

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

The description is a single sentence that efficiently conveys the purpose and details. It is front-loaded and free of unnecessary words.

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 simple, read-only tool with one parameter, the description adequately covers what the tool does, what it returns, and how to use the parameter. It compensates for the lack of output schema by listing the fields.

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 100% with a description for the 'id' parameter. The description adds context by explaining that the parameter can be an id or slug and that it comes from search_companies, which goes beyond the schema's description.

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?

The description clearly states the action ('Get details'), the resource ('agency or developer'), the identifier ('by id or slug from search_companies'), and lists the fields returned. It distinguishes itself from siblings like get_agent or get_listing.

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

Usage Guidelines4/5

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

The description indicates that the id/slug comes from search_companies, implying a prerequisite and context of use. It doesn't explicitly state when not to use it, but the purpose is clear enough to avoid misuse.

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

get_guideTuLugar GuidesA
Read-only
Inspect

Curated TuLugar guides (general education, kept current): buying-process (step-by-step + documents), foreigners (rights + restrictions for non-Paraguayans), closing-costs (what fees exist), renting (contracts, deposits, garante), publishing (listing tips), airbnb (short-term rental basics). ALWAYS use this for "how does buying/renting work" / process / documents questions — the content IS in scope to share; only personalized legal advice is not.

ParametersJSON Schema
NameRequiredDescriptionDefault
topicYes
Behavior4/5

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

Annotations already declare readOnlyHint=true, and the description adds context: the guides are 'general education, kept current' and 'the content IS in scope to share'. This reinforces the safe, non-destructive behavior and adds value beyond the annotation.

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

Conciseness5/5

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

Two sentences: first lists topics with explanations, second gives usage guidelines. No wasted words, front-loaded with purpose. Highly efficient.

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?

With one parameter and no output schema, the description fully explains the tool's purpose, what content it returns, and when to use it. No gaps for an agent to misunderstand.

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?

The input schema has one enum parameter 'topic' with 0% schema description coverage. The description fully compensates by listing each enum value and explaining its content (e.g., 'buying-process (step-by-step + documents)'). This adds rich meaning beyond the raw string values.

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?

The description clearly states the tool retrieves curated TuLugar guides on specific educational topics. It lists the guide names with brief explanations, which distinguishes it from sibling tools like 'closing_costs' and 'neighborhood_guide'. The verb is implied (retrieve/get), and the scope is well-defined.

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?

The description explicitly says 'ALWAYS use this for "how does buying/renting work" / process / documents questions' and clarifies that 'only personalized legal advice is not' in scope. This provides clear when-to-use and when-not-to-use guidance, making it easy for an agent to decide.

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

get_listingGet ListingC
Read-only
Inspect

Get full listing detail by ID or slug.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
Behavior2/5

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

The annotation already declares readOnlyHint=true, indicating a safe read operation. The description adds no behavioral details beyond stating it gets 'full listing detail'. No disclosure of response characteristics, pagination, or any edge cases. The description does not add value beyond the annotation.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with zero filler. Every word contributes directly to understanding the tool's purpose. It achieves maximum conciseness without sacrificing clarity.

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

Completeness2/5

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

Given the complexity (many sibling tools) and absence of an output schema, the description lacks details on what 'full listing detail' includes, error states, or coverage of edge cases like invalid IDs. It is insufficient for an agent to reliably set expectations on the response.

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?

With 0% schema description coverage, the description attempts to compensate by stating the 'id' parameter can be a listing ID or slug. This adds meaning beyond the bare schema. However, it is ambiguous whether slug is truly supported or if slug values are passed as the 'id' string, and no format hints are provided.

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?

The description clearly states the tool retrieves 'full listing detail' by specifying an identifier. The verb 'Get' and resource 'listing detail' are specific. However, the mention of 'slug' as an alternative is not reflected in the input schema, which only has an 'id' string parameter, causing slight ambiguity.

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?

The description provides no guidance on when to use this tool versus siblings like 'search_listings' or 'my_listings'. There is no mention of prerequisites, context, or alternative tools, leaving the agent to infer usage without explicit direction.

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

get_market_summaryMarket SummaryB
Read-only
Inspect

Market stats: avg price, median, price/m². Scope with neighborhood for zone-level numbers.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNo
countryNo
listing_typeNo
neighborhoodNoNeighborhood/barrio name for zone-scoped stats
property_typeNo
Behavior3/5

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

The description implies a read-only operation, which aligns with the readOnlyHint annotation. However, it does not disclose any additional behavioral traits (rate limits, data freshness) beyond what annotations already provide.

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

Conciseness5/5

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

The description is only 12 words, front-loaded with key information, and contains no superfluous words. Every sentence earns its place.

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

Completeness2/5

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

Without an output schema, the description should clarify what exactly is returned (e.g., a single number or an object). It does not address the behavior when parameters are omitted, leaving the agent uncertain about default behavior.

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

Parameters2/5

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

The schema has low description coverage (20%), with only the neighborhood parameter described. The description mentions 'scope with neighborhood' but fails to explain city, country, listing_type, and property_type, leaving ambiguity.

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?

The description clearly states it provides market statistics (avg price, median, price/m²) and can be scoped by neighborhood. However, it lacks an explicit verb like 'retrieves' or 'gets', so it falls short of the highest standard.

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 guidance is given on when to use this tool versus sibling tools (e.g., mortgage_calculator, rental_yield). The description only hints at neighborhood scoping but does not address when not to use it.

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

get_projectGet ProjectC
Read-only
Inspect

Get project detail with units and prices.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
Behavior2/5

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

The annotation readOnlyHint: true already indicates a read operation, and the description's use of 'Get' aligns with this. However, the description adds no additional behavioral traits beyond what the annotation provides, such as required permissions, rate limits, or side effects.

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 a single, concise sentence that front-loads the key information. It is efficient with no wasted words, though it could be slightly more informative without losing conciseness.

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 simple tool with one required parameter and no output schema, the description adequately states what it returns ('project detail with units and prices'). However, it could mention that the id parameter is required or provide minimal context about the output.

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

Parameters2/5

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

The input schema has 0% coverage (no schema descriptions), and the description does not add any details about the 'id' parameter, such as its format or what it represents. This fails to compensate for the lack of schema documentation.

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?

The description specifies the verb 'Get' and the resource 'project detail', and mentions that it includes 'units and prices'. This clearly indicates the tool's function, though it does not explicitly differentiate from sibling tools like get_listing or get_agent.

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?

The description provides no guidance on when to use this tool versus alternatives. There is no mention of context, prerequisites, or situations where this tool is preferred.

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

get_str_dataShort-Term Rental DataB
Read-only
Inspect

Airbnb/STR city-level data: nightly rates, occupancy.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNoCity name or slug, accents optional (e.g. "Asunción" or "asuncion")
countryNoCountry name or slug — disambiguates duplicate city names across countries
neighborhoodNoNeighborhood name for specific area stats
Behavior3/5

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

The annotation readOnlyHint=true already indicates this is a safe read operation. The description adds that the data includes nightly rates and occupancy, but does not disclose other behavioral traits such as data freshness, historical availability, or whether results are aggregated or per-property. Given the annotation coverage, a score of 3 is appropriate.

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

Conciseness5/5

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

The description is a single sentence with no fluff. Every word carries meaning: it specifies the domain (Airbnb/STR), scope (city-level), and data types (nightly rates, occupancy). Ideal conciseness.

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 simple data retrieval tool with no output schema, the description is minimal. It states the data fields but omits any mention of response structure, pagination, or filtering behavior. While the parameters are well-documented in the schema, the description does not fully contextualize the tool's usage in the broader system (e.g., no hint that it may return historical trends or current snapshots).

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 100% and the parameter descriptions in the input schema are detailed (e.g., city with accent flexibility, country for disambiguation). The tool description does not add further semantic value beyond what the schema provides. Baseline is 3 per the scoring guide.

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?

The description clearly identifies the tool as providing Airbnb/STR city-level data (nightly rates and occupancy). It uses specific terms ('city-level data') and distinguishes from sibling tools like get_listing or get_market_summary. However, it lacks an explicit verb like 'Retrieve' or 'Get', leaving the action implied.

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 guidance is provided on when to use this tool versus alternatives (e.g., get_listing for individual listings, rental_yield for investment metrics). There is no mention of prerequisites, context, or exclusions. The agent has to infer usage from the name and parameters alone.

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

list_locationsList LocationsA
Read-only
Inspect

List countries, cities, or neighborhoods with listing counts.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNoCity name for neighborhoods (alternative to parent_id)
typeYes
parent_idNocountry_id for cities, city_id for neighborhoods
Behavior3/5

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

Annotations already declare readOnlyHint=true, which aligns with the description's 'List' verb. The description adds mention of 'listing counts' but does not disclose other behavioral traits like pagination, sorting, or rate limits. With annotations covering safety, the description provides minor added context.

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

Conciseness5/5

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

The description is extremely concise—one sentence with 8 words—and front-loaded with the core action and resources. Every word earns its place, with no redundancy or filler.

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 three parameters and no output schema, the description is minimally adequate. It mentions the return includes listing counts but does not explain how to use parent_id versus city, or detail output structure. More context would improve completeness for a hierarchical listing tool.

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?

The input schema has 67% parameter description coverage. The description does not add additional meaning beyond the schema; it focuses on the output format ('with listing counts') rather than parameter details. Baseline score of 3 is appropriate.

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?

The description clearly states the verb 'List' and the resource types 'countries, cities, or neighborhoods' with the added detail 'with listing counts'. It is specific and distinguishes itself from sibling tools, as no other tool lists locations.

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 description implies usage for retrieving location hierarchies, but it does not explicitly state when to use this tool versus alternatives or provide exclusions. Sibling tools like search_listings serve different purposes, so context is adequate but not explicit.

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

mortgage_calculatorMortgage CalculatorA
Read-only
Inspect

Estimate a monthly mortgage payment and total interest for a buyer. Currency-agnostic. Optionally pass monthly_income for a debt-to-income ratio. This is an informational arithmetic estimate only — not financial advice, a loan offer, or a rate quote.

ParametersJSON Schema
NameRequiredDescriptionDefault
principalYesLoan amount
term_yearsYesLoan term in years (1–50)
annual_rateYesAnnual interest rate, as a decimal (0.065) or percent (6.5)
monthly_incomeNoOptional — enables a debt-to-income ratio
Behavior4/5

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

Beyond the readOnlyHint annotation, the description clarifies the tool is an 'informational arithmetic estimate' and not financial advice, adding important behavioral context.

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

Conciseness5/5

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

Three sentences, each carrying distinct value: main purpose, key attribute (currency-agnostic), and disclaimer. No redundancy, front-loaded.

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?

The description covers purpose, usage, and limitations well. Although no output schema exists, the tool's straightforward arithmetic nature and the clear parameter descriptions compensate.

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?

With 100% schema coverage, the baseline is 3. The description adds meaning by noting currency-agnosticism, the optional DTI capability, and the flexible format for annual_rate (decimal or percent).

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?

The description uses precise verbs ('estimate') and specific nouns ('monthly mortgage payment and total interest'), clearly distinguishing from sibling tools like 'closing_costs' or 'rental_yield'.

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

Usage Guidelines4/5

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

The description states when to use (to estimate mortgage payments) and provides optional parameters for DTI, but does not explicitly say when not to use or contrast with alternatives.

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

my_inquiriesMy InquiriesA
Read-only
Inspect

List buyer inquiries (leads) received on the authenticated agent's listings, newest first.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax 100 (default 50)
Behavior4/5

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

The description adds value beyond the 'readOnlyHint' annotation by specifying the ordering ('newest first') and the scope ('authenticated agent's listings'). It does not mention pagination or rate limits, but the annotation already covers safety.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that efficiently conveys the tool's purpose, scope, and ordering. No extraneous words.

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?

For a simple list tool with one optional parameter and good annotations, the description covers key aspects (ordering, scope). Could mention pagination, but the limit parameter implies it. No output schema, but not required for this tool.

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 100% with a clear description of the 'limit' parameter (max 100, default 50). The description does not add any additional parameter information, so the baseline score of 3 is appropriate.

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?

The description clearly specifies the verb 'List', the resource 'buyer inquiries (leads)', the scope 'received on the authenticated agent's listings', and the ordering 'newest first'. This uniquely identifies the tool and distinguishes it from siblings like 'create_lead' or 'reply_to_inquiry'.

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 description implies the tool is for viewing the agent's own leads, but does not explicitly state when to use it versus alternatives like the general 'search' tool. No exclusions or when-not-to-use guidance is provided.

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

my_listingsMy ListingsA
Read-only
Inspect

List the authenticated agent's own listings across all statuses (draft, pending review, active, closed), so they can see what is live and what is awaiting moderation. Includes SYNCED listings (auto-imported from the agent's portal and kept up to date automatically) — those carry synced:true plus a sync block with the source platform, source URL and last check time. Synced listings can be edited, promoted and closed like any other.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax 100 (default 50)
statusNoOptional status filter
Behavior4/5

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

Beyond readOnlyHint annotation, adds details about synced listings and their mutability, though missing pagination/ordering behavior.

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

Conciseness5/5

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

Two sentences, front-loaded with purpose, no fluff, efficient information density.

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?

Covers key aspects for a read tool, but lacks return format/pagination details; adequate given simplicity.

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 100%, description adds value by explaining default behavior (all statuses) and context for synced listings, enhancing parameter understanding.

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?

Description clearly states 'List the authenticated agent's own listings' with specific verb and resource, and distinguishes from siblings like search_listings by specifying scope and statuses.

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

Usage Guidelines4/5

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

Implies use for personal listings vs. broader search, but lacks explicit when-to-use/alternatives guidance.

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

my_saved_searchesmy_saved_searchesA
Read-only
Inspect

List the connected user's saved searches and their alert settings.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior3/5

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

The description adds that the tool also lists 'alert settings', which is beyond the readOnlyHint annotation. It does not disclose other behavioral traits such as pagination or data limits, but the annotation already signals read-only behavior.

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

Conciseness5/5

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

Single sentence with no extraneous words. Directly states the purpose without repetition, earning its place.

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 no output schema and zero parameters, the description is mostly complete for a simple list tool. It does not mention return format or whether the list is paginated, but such details are not critical for this simple tool.

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?

There are no parameters, so schema coverage is 100%. The description does not need to add parameter details. Baseline 4 for zero parameters.

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?

The description clearly states the tool lists the connected user's saved searches and their alert settings. It specifies both the verb (list) and the resource (saved searches and alert settings), and it distinguishes from siblings like save_search and delete_saved_search.

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 description implies it is for the 'connected user' but does not provide explicit guidance on when to use this tool versus alternatives like save_search or delete_saved_search. No exclusions or contextual hints are given.

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

neighborhood_guideNeighborhood GuideA
Read-only
Inspect

What a neighborhood/zone is actually like, grounded in live data: sale + rent prices, listing counts, Airbnb occupancy when available, plus curated local context. ALWAYS use this for "¿cómo es ?" / "is X a good area?" questions instead of answering from memory.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNoCity the neighborhood belongs to (recommended)
countryNo
neighborhoodYesNeighborhood/barrio name (accents optional)
Behavior5/5

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

Annotations already indicate readOnlyHint=true. The description goes beyond by specifying the exact data sources and types (live data, sale/rent prices, listing counts, Airbnb occupancy, local context), giving agents a clear behavioral model without contradiction.

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

Conciseness5/5

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

The description is two sentences with no wasted words. The most important information (what the tool provides and when to use it) is front-loaded, making it efficient for agent parsing.

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?

Given the tool's simple structure (3 parameters, no output schema, read-only), the description thoroughly explains the return data (sale/rent prices, listing counts, Airbnb occupancy, local context), which is sufficient for agents to understand the tool's output without an output schema.

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 67% (2 of 3 parameters have descriptions). The description does not add parameter-level details beyond the schema, such as clarifying the country parameter's role. With high coverage, baseline 3 is appropriate; no extra value from description.

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?

The description clearly states it provides grounded, live data about neighborhoods (sale/rent prices, listing counts, Airbnb occupancy, local context), and includes explicit usage guidance for common queries. It distinguishes itself from sibling tools by focusing on neighborhood quality assessment.

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?

The description explicitly tells agents when to use this tool: for queries like '¿cómo es <barrio>?' or 'is X a good area?', and instructs to use it instead of answering from memory. This provides clear context and exclusions.

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

open_web_sessionOpen Signed-in Web SessionAInspect

Give the signed-in user a ONE-TAP link that opens tulugar.com already logged in to their account — no code, no password. Use when a WhatsApp user needs the website: upload photos, finish a listing in the wizard, manage their account. The link is single-use and expires in 10 minutes; share it verbatim. Only works for accounts with a verified WhatsApp number.

ParametersJSON Schema
NameRequiredDescriptionDefault
return_toNoOptional site path to land on (e.g. "/es/account/listings"). Defaults to the account home.
Behavior5/5

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

Discloses critical behaviors beyond annotations: link is single-use, expires in 10 minutes, requires verified WhatsApp number. No contradictions with readOnlyHint=false or destructiveHint=false.

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

Conciseness5/5

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

Extremely concise: two sentences front-loading the core action and adding usage guidance. Every sentence adds value with no redundancy.

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 tool with one optional parameter and no output schema, the description covers purpose, usage context, behavioral constraints, and parameter defaults completely.

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 100% with description for 'return_to'. The description adds the default value ('account home') which is not in schema. Provides additional context beyond 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?

The description clearly states the tool provides a one-tap link for signed-in access to tulugar.com. It uses a specific verb ('give') and resource ('one-tap link') and distinguishes itself from sibling tools by focusing on session creation.

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

Usage Guidelines4/5

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

Explicitly states when to use (WhatsApp user needs website). Provides use cases (upload photos, finish listing, manage account). Lacks explicit when-not-to-use or alternative tools, but context is clear enough.

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

promote_listingPromote ListingA
Destructive
Inspect

Promote (feature) one of the authenticated agent's OWN listings by spending ONE promotional credit. A featured listing is highlighted and ranked ahead of regular results for ~14 days (extends the window if already featured). This SPENDS a paid credit, so confirm with the user before calling. If the account has no credits, this returns a message telling the user to buy some — use buy_promotional_credits for that. Pass listing_id from my_listings. Synced listings (synced:true) are promotable too.

ParametersJSON Schema
NameRequiredDescriptionDefault
listing_idYesID of the agent's own listing to feature (from my_listings)
Behavior5/5

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

Beyond annotations (destructiveHint, readOnlyHint=false), description discloses that the tool spends a paid credit, extends the promotional window if already featured, and returns a message if credits are zero. This provides essential behavioral context not captured in structured fields.

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

Conciseness5/5

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

Four sentences, each essential. Front-loaded with the core action. No redundant information. Efficiently covers all critical aspects.

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?

Given a single parameter, no output schema, but destructive side effects, the description is complete: it covers prerequisites (own listing), cost (one credit), effect (~14 days featured), edge cases (no credits, synced listings), and references sibling tools.

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 coverage is 100%, but description adds value by clarifying that 'listing_id' should come from 'my_listings' and that synced listings (synced:true) are also promotable, which is not inferable from the schema alone.

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?

The description clearly states the action ('Promote (feature)'), the resource ('one of the authenticated agent's OWN listings'), and the condition ('by spending ONE promotional credit'). It distinguishes from siblings like 'buy_promotional_credits' and 'my_listings' by specifying it acts on own listings and uses credits.

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?

Explicitly advises to confirm with the user before calling due to spending a credit, and directs to 'buy_promotional_credits' if no credits. Also specifies that 'listing_id' should come from 'my_listings', providing clear when-to-use and when-not-to-use guidance.

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

publish_listingPublish ListingA
Destructive
Inspect

Submit a draft listing for moderation review, making it eligible to go public once approved. This is an irreversible submission — confirm with the user before calling.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesListing ID to submit for review
Behavior4/5

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

Description discloses irreversibility, aligning with destructiveHint=true in annotations. Adds context that submission makes listing eligible for public approval, providing behavioral insight beyond annotations.

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

Conciseness5/5

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

Two sentences, no superfluous words. First sentence states purpose, second provides critical usage warning. Front-loaded and efficient.

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 simple tool with one parameter and no output schema, the description covers all necessary context: action, irreversibility, and confirmation requirement. No gaps.

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 100% with one parameter 'id' documented. Description does not add extra parameter details beyond what the schema provides, meeting baseline but not exceeding.

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?

Clearly states the verb (submit) and resource (draft listing) and the purpose (moderation review for public eligibility). Distinguishes from sibling tools like close_listing or edit_listing.

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

Usage Guidelines4/5

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

Explicitly states it is irreversible and requires user confirmation before calling. Provides clear usage guidance for a single-purpose tool, though no explicit alternatives are mentioned.

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

rental_yieldRental YieldA
Read-only
Inspect

Gross rental yield for a zone, computed from live medians (sale vs long-term rent, plus Airbnb when available). Zone-level market reference ONLY — never a valuation of a specific property. Use for "¿conviene invertir?" / rentabilidad / yield questions.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityYesCity (required)
countryNo
neighborhoodNoOptional neighborhood scope; falls back to the city when data is thin
property_typeNoDefault apartment
Behavior4/5

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

Annotations already declare readOnlyHint=true, and description adds that data comes from 'live medians (sale vs long-term rent, plus Airbnb when available).' It reinforces that it's not a property valuation. No contradiction; adds useful behavioral context beyond annotations.

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

Conciseness5/5

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

Two sentences, front-loaded with the core purpose, then scope clarification. No unnecessary words; every sentence adds value.

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?

For a simple computation tool with 4 parameters and no output schema, the description is complete: explains data sources, scope, and limitations. Hints at return type ('gross rental yield'). Adequate for the complexity.

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 75%, so baseline is 3. The description does not add extra meaning beyond the schema; it mentions data sources but not parameter specifics like property_type enum or neighborhood fallback. No improvement over 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?

Description states 'Gross rental yield for a zone, computed from live medians' with a specific verb (computes) and resource (rental yield). It distinguishes from valuation ('never a valuation of a specific property') and from sibling tools like mortgage_calculator or closing_costs.

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

Usage Guidelines4/5

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

Explicitly says 'Zone-level market reference ONLY' and 'Use for "¿conviene invertir?" / rentabilidad / yield questions,' providing clear context. Does not list alternative tools for when not to use, but the sibling list includes other real estate tools, so context is strong.

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

reply_to_inquiryreply_to_inquiryAInspect

Reply to a buyer inquiry (lead) on one of the agent's listings. Compose a helpful, professional reply as message, and this returns a one-tap WhatsApp link (wa.me) to the buyer with your message pre-filled — share that link with the agent to tap and send. Pass inquiry_id from my_inquiries. If the buyer left only an email, it returns the email to reply to instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYesThe reply to send to the buyer
inquiry_idYesThe inquiry/lead id (from my_inquiries)
Behavior4/5

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

The description discloses that the tool returns a WhatsApp link or email instead of directly sending the message, and that the agent must tap to send. It also explains the email fallback behavior, adding value beyond annotations which only indicate a mutation and open world.

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

Conciseness5/5

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

The description is two sentences with no wasted words. It front-loads the purpose and provides essential details efficiently.

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?

Given the low complexity (2 required params, no output schema), the description covers all necessary aspects: how to use, what to pass, and the output format. It is complete for the task.

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?

With 100% schema coverage, baseline is 3. The description adds meaning by specifying that message should be a professional reply and that inquiry_id comes from my_inquiries, enhancing the agent's understanding beyond the 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?

The description clearly states the tool replies to a buyer inquiry on a listing, distinguishing it from sibling tools like create_lead and my_inquiries. The verb 'reply' and resource 'inquiry' are specific and unambiguous.

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

Usage Guidelines4/5

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

The description provides clear context for when to use (when replying to a buyer inquiry) and references my_inquiries for obtaining the inquiry_id. It does not explicitly state when not to use or list alternatives, but the guidance is sufficient.

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

search_agentssearch_agentsA
Read-only
Inspect

Search REGISTERED real-estate agents and professionals on Tu Lugar by name, city, or company. Only covers people who created a public profile on the platform — there is no data about anyone else.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoAgent name (or part of it)
cityNo
limitNoMax 20
verifiedNoOnly verified agents
company_idNo
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the description does not need to repeat that. It adds value by specifying that the tool only returns data for agents with public profiles, which is a key behavioral constraint beyond what annotations provide.

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

Conciseness5/5

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

Two sentences, no fluff. The first sentence states the purpose and searchable fields; the second clarifies the limitation. Every word is necessary and well-placed.

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?

For a search tool with 5 parameters and no output schema, the description covers the core function and an important limitation (only registered agents). It could be improved by mentioning pagination or result format, but it is sufficient given the annotations and schema.

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 60% (q and limit have descriptions). The description adds context by grouping parameters (q, city, company_id) as search filters, clarifying their role. However, city and company_id lack individual descriptions in both the schema and the description.

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?

The description clearly specifies the verb 'Search' and the resource 'REGISTERED real-estate agents and professionals on Tu Lugar'. It lists search dimensions (name, city, company) and distinguishes from siblings by noting it only covers public profiles on this platform.

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 description implies usage scope by stating 'Only covers people who created a public profile on the platform'. However, it does not explicitly state when to use this tool versus alternatives like get_agent or search_companies, nor does it provide exclusions.

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

search_companiesSearch Agencies & DevelopersA
Read-only
Inspect

Search agencies and developers BY NAME (or city/type). Use q with the company/agency name — e.g. q="RE/MAX Urbana" — punctuation and accents are ignored. This is how you answer "properties by " (find the company here, then search_listings with company set to its name; for a DEVELOPER also check search_projects with company set — developer inventory is usually projects/units, not listings).

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoCompany/agency name (partial ok; punctuation/accents ignored)
cityNo
typeNo
limitNo
verifiedNo
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the tool is known to be safe. The description adds value by explaining ignoring of punctuation/accents and the typical workflow for chaining with other tools, which are behavioral details beyond the annotation.

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 main purpose, and additional details are provided in a logical order. It is not overly verbose, though the parenthetical chaining notes could be slightly more compact.

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?

Despite lacking an output schema and having several parameters, the description covers essential usage context, chaining instructions, and query behavior. It misses parameter details for limit and verified, but overall provides sufficient guidance for an agent to use the tool correctly.

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 only 20% (only 'q' has a description). The description adds meaning for 'q' (example and matching behavior) and mentions city/type as filters, but does not explain 'limit' or 'verified'. This partially compensates for the low coverage.

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?

The description clearly states it searches agencies and developers by name, city, or type. It distinguishes from sibling tools like search_listings and search_projects by explaining the workflow of how to use this tool to find a company and then search for listings or projects.

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?

Explicitly provides when to use (to answer 'properties by <agency>'), and gives alternatives for developers (also check search_projects). Includes an example query and notes that punctuation/accents are ignored.

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

search_listingsSearch ListingsA
Read-only
Inspect

Search real estate listings. Filter by city, price, bedrooms, property type, or a specific agency/company.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNoCity name, e.g. "Asunción"
sortNo
limitNoMax 20
companyNoAgency/company NAME to list only their properties, e.g. "RE/MAX Urbana" (resolved automatically; punctuation/accents ignored).
bedroomsNo
buildingNoBuilding/tower NAME to list the actual units for sale/rent in it, e.g. "Petra Tower" (punctuation/accents ignored). Use this — not search_projects — when the user wants the real listings in a named building.
amenitiesNoComma-separated amenities/features the property must have, in the user's own words and language, e.g. "piscina, cochera" or "pool, gym". Common ones: pool/piscina, gym/gimnasio, garden/jardín, balcony/balcón, terrace/terraza, parking/cochera, furnished/amoblado, airConditioning/aire, security/seguridad, elevator/ascensor, bbq/parrilla/quincho, laundry/lavadero. Multiple = must have all.
max_priceNo
min_priceNo
listing_typeNo
neighborhoodNo
property_typeNoapartment, house, land, commercial
Behavior3/5

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

Annotations already declare readOnlyHint=true, so description aligns. No additional behavioral details beyond filtering, such as pagination, sorting, or default limits. Acceptable but minimal.

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?

Single, front-loaded sentence that efficiently conveys purpose and key filters. Could add more context without becoming verbose, but current length is reasonable.

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

Completeness2/5

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

No output schema provided; description omits result structure, sorting defaults, or pagination info. For a parameter-rich search tool, this lacks completeness.

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 50%; description mentions several filter fields (city, price, bedrooms, property type, company) but does not elaborate on all 12 parameters. Adds some context but not comprehensive.

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?

Clearly states 'Search real estate listings' with a specific verb and resource. Lists filter criteria (city, price, bedrooms, property type, company), distinguishing it from sibling tools like search_agents or search_projects.

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?

Implies usage for general listing search but lacks explicit when-to-use or alternatives. No guidance on when not to use or comparisons with similar sibling tools like 'fetch' or 'get_listing'.

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

search_projectsSearch ProjectsA
Read-only
Inspect

Search development projects/buildings BY NAME (or city, or DEVELOPER). Use q with the project or building name — e.g. q="Petra Tower" — punctuation/accents ignored, and a name lookup also finds completed/sold-out buildings. This is how you answer "apartments in <building/tower name>" and "is there a project called X". For "projects by " use company with the developer's name (NOT q — project names rarely contain the developer).

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoProject/building name (partial ok; punctuation/accents ignored)
cityNo
sortNo
limitNo
statusNo
companyNoDeveloper/company name to list that developer's projects, e.g. "Pro Invest"
verifiedNo
max_priceNo
min_priceNo
Behavior4/5

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

Annotations declare readOnlyHint=true, consistent with search. The description adds that punctuation/accents are ignored and that name lookup also finds completed/sold-out buildings, which are useful behavioral details beyond what annotations provide. No contradictions.

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

Conciseness5/5

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

The description is concise (120 words) and front-loaded with the primary purpose. Every sentence adds value: first sentence states purpose, second gives examples, third explains parameter distinction. No fluff.

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?

The tool has 9 parameters and no output schema. The description only covers the two main parameters (q, company) in depth. Other important parameters like sort, limit, status, price range, and verified are left unexplained. Given low schema coverage and no output schema, the description should be more comprehensive to fully guide the agent.

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 22%, so the description must compensate. It adds significant meaning for the `q` and `company` parameters, explaining their usage and giving examples. However, it does not explain other parameters (sort, limit, status, etc.), which limits completeness. Baseline 3 is raised to 4 for the added value on key parameters.

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?

The description clearly states the tool searches projects/buildings by name, city, or developer. It distinguishes between using `q` for name lookups and `company` for developer searches, and gives concrete examples like 'Petra Tower' and 'Pro Invest'. The verb 'search' and resource 'development projects/buildings' are specific.

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?

The description provides explicit guidance on when to use each parameter: `q` for project/building name, `company` for developer name. It warns against using `q` for developer names and gives example queries. This helps the agent select the correct parameter for different user intents.

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

send_whatsapp_verificationsend_whatsapp_verificationAInspect

Send a WhatsApp verification code to the agent's mobile number. Publishing listings requires a verified WhatsApp number — if account_status shows can_publish=false, use this to start verification. A 6-digit code is delivered to the number over WhatsApp; then call verify_whatsapp_code with it.

ParametersJSON Schema
NameRequiredDescriptionDefault
phoneYesMobile number in international format, e.g. +595981234567
languageNoMessage language (default es)
Behavior4/5

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

Annotations show readOnlyHint=false and destructiveHint=false. Description adds that a 6-digit code is delivered via WhatsApp and that verification is required, explaining the side effect transparently.

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

Conciseness5/5

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

Three concise sentences, front-loaded with the primary action, no wasted words.

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 simple tool with two params and no output schema, the description fully covers purpose, trigger condition, expected behavior, and follow-up action.

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 100% with descriptions for both params. Description adds meaningful context by explaining the output ('6-digit code delivered') and the required next step (call verify_whatsapp_code), which goes beyond the 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?

Clearly states 'Send a WhatsApp verification code to the agent's mobile number' with specific verb and resource. Distinguishes from sibling verify_whatsapp_code by describing the follow-up step.

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

Usage Guidelines4/5

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

Provides explicit condition: 'if account_status shows can_publish=false, use this to start verification.' Clearly indicates when to use, though does not state when not to use.

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

share_listing_whatsappShare Listing on WhatsAppA
Read-only
Inspect

Generate a ready-to-send WhatsApp message for one of the authenticated agent's OWN listings: a polished, WhatsApp-tuned caption + a one-tap wa.me link (optionally pre-addressed to a client phone) + the property's main photo to attach. Use whenever the agent wants to send, share, or forward a listing to a client (or to their WhatsApp status). Pass listing_id (from my_listings); optionally client_phone to pre-address the chat. After calling, you can personalize the message for a specific client and rebuild the wa.me link yourself (URL-encode the new text into https://wa.me/?text=...).

ParametersJSON Schema
NameRequiredDescriptionDefault
localeNoMessage language (default es)
listing_idYesID of the agent's own listing (from my_listings)
client_phoneNoOptional client phone, international format (e.g. +595981234567), to pre-address the WhatsApp chat
Behavior5/5

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

Describes the tool as generating a message and link, which aligns with readOnlyHint: true (no mutation). Details what is produced (caption, wa.me link, photo) and optional pre-addressing, adding transparency beyond the annotations.

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?

Two well-structured sentences with key information front-loaded. Slightly verbose with the detailed URL encoding instruction, but overall efficient and clear.

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?

Despite no output schema, the description fully explains the output (message, link, photo) and optional personalization. Complete enough for an agent to use correctly without ambiguity.

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 100% and the description adds significant value: it explains listing_id must be from my_listings, client_phone format, and locale default. This goes beyond the schema descriptions.

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?

Clearly states the tool generates a WhatsApp message for the agent's own listing. Differentiates from siblings like send_whatsapp_verification and other listing tools by specifying 'OWN listings' and WhatsApp-specific output.

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?

Explicitly says 'Use whenever the agent wants to send, share, or forward a listing to a client (or to their WhatsApp status).' Also provides post-call guidance on personalizing the message and rebuilding the link, making when-to-use and follow-up actions clear.

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

upload_listing_imageUpload Listing ImageAInspect

Upload a listing image by URL. Fetches the image, optimizes it, and returns hosted Tu Lugar image URLs to pass into create_listing.images[] or edit_listing.images[]. Rejected if the image fails property-photo moderation.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesPublic https URL of the source image
Behavior4/5

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

Annotations already indicate the tool is not read-only (readOnlyHint=false) and not destructive (destructiveHint=false). The description adds valuable behavioral context: the image is fetched, optimized, and subject to moderation, which helps the agent anticipate side effects beyond what annotations provide.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the primary action, and contains no extraneous information. Every sentence adds value.

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?

Given the tool has one parameter, no output schema, and a straightforward purpose, the description fully covers what an agent needs: input type, processing steps, output usage, and failure condition. It is complete.

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 100% with a clear description for the 'url' parameter. The description repeats 'by URL' but adds no further format or constraint details. Baseline 3 is appropriate as schema already covers parameter meaning.

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?

The description clearly states the action ('Upload a listing image by URL'), specifies the process (fetches, optimizes, returns hosted URLs), and indicates the output's purpose (for use in create_listing or edit_listing). This distinguishes it from sibling tools like create_listing or edit_listing.

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

Usage Guidelines4/5

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

The description provides context on when to use the tool (before create_listing or edit_listing) and mentions a failure condition (moderation rejection). However, it does not explicitly state when not to use it or name alternatives, which is acceptable given the clear purpose.

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

verify_whatsapp_codeverify_whatsapp_codeAInspect

Complete WhatsApp verification by submitting the 6-digit code the agent received on WhatsApp (after send_whatsapp_verification). On success the account can publish listings.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesThe 6-digit code sent to the WhatsApp number
Behavior3/5

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

The description adds that successful verification enables publishing listings, which is helpful. Annotations already declare readOnlyHint=false and destructiveHint=false, so the description doesn't contradict. However, it doesn't disclose details like error handling, retries, or rate limits, which are not critical but could be useful.

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

Conciseness5/5

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

The description is two short sentences that front-load the purpose and outcome. No wasted words; every sentence adds value.

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 simple tool with one required parameter and no output schema, the description provides essential context: the flow (after send_whatsapp_verification) and the result (account can publish listings). This is sufficient for an agent to select and invoke the tool correctly.

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 100% for the single parameter. The description repeats the schema's description ('6-digit code sent to the WhatsApp number') without adding significant new meaning. Baseline score of 3 is appropriate as the schema already handles parameter documentation.

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?

The description clearly states the tool's purpose: completing WhatsApp verification by submitting the 6-digit code, explicitly linking it to the prerequisite action (send_whatsapp_verification) and the outcome (account can publish listings). This distinguishes it well from sibling tools.

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

Usage Guidelines4/5

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

The description specifies that this tool is used after send_whatsapp_verification, providing clear context. It does not explicitly state when not to use it or mention alternatives, but the sequential relationship is sufficient.

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

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    -
    quality
    B
    maintenance
    Enables AI assistants to operate property management systems via natural language, covering repair orders, owner info, payments, notices, and inspections. Features a full agentic workflow with human-in-the-loop and observability.
    MIT
  • A
    license
    -
    quality
    C
    maintenance
    Provides AI assistants access to real-time MLS data via the Repliers API, enabling natural language property search, market statistics, and listing details.
    270
    17
    MIT
  • A
    license
    -
    quality
    D
    maintenance
    Integrates Zillow real estate data with AI assistants, enabling property search, neighborhood insights, and affordability calculations through natural language.
    13
    1
    MIT
  • A
    license
    -
    quality
    D
    maintenance
    Enables AI assistants to look up real estate agents, search MLS listings, submit buyer/seller leads, and access proprietary seller-intent signals in SC and GA.
    MIT

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.