Skip to main content
Glama
JanKratochvil1

Tu Lugar MCP Server

Tu Lugar MCP Server

MCP server for Tu Lugar — search real estate listings, development projects, companies, and market data in Paraguay and Latin America, straight from Claude, ChatGPT, Cursor, or any MCP client.

Website → tulugar.com · Connector docs & one-click setup → tulugar.com/mcp

Tools

Tool

Description

search_listings

Search listings by city, price, bedrooms, property type, etc.

get_listing

Get full listing detail by ID or slug

search_projects

Search development projects (verified first, available units)

get_project

Get project detail with units, prices, and developer info

search_companies

Search real estate agencies and developers

list_locations

List countries, cities, or neighborhoods with listing counts

get_market_summary

Market stats: avg price, median, price/m², counts

get_str_data

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

mortgage_calculator

Estimate monthly payment, total interest, and debt-to-income

This npm package is read-only. To create / edit / publish listings or contact agents (the agent + buyer write tools), connect the remote OAuth connector instead — see Remote connector (write access) below. Writes require an authenticated Tu Lugar account and aren't available over the local stdio transport.

Related MCP server: mcp-brazil-marketplaces

Install

Claude Desktop (local)

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "tulugar": {
      "command": "npx",
      "args": ["-y", "@tulugar/mcp-server"]
    }
  }
}

Claude Desktop (remote — write access)

Settings → Connectors → Add custom connector → URL: https://tulugar.com/api/mcp

The remote connector serves the same read tools plus the OAuth-gated write tools. Ask Claude to connect (or use the connect_account tool) and it runs the OAuth consent flow once so the connector can act on your behalf:

  • Connect: account_status (is my account connected / can I publish?), connect_account (returns a one-tap link to connect your Tu Lugar account)

  • Agents: create_listing, upload_listing_image, edit_listing, publish_listing, my_listings, my_inquiries, share_listing_whatsapp (ready-to-send WhatsApp message + branded image for a listing)

  • Buyers: create_lead (contact an agent — works without an account)

Claude Code

claude mcp add tulugar -- npx -y @tulugar/mcp-server

Cursor / Windsurf

Same JSON config format as Claude Desktop.

Example Queries

Once connected, try asking:

  • "Find me a 2-bedroom apartment in Asuncion under $100,000"

  • "What are the average apartment prices in Villa Morra?"

  • "Show me development projects under construction"

  • "What's the Airbnb occupancy rate in Asuncion?"

  • "List verified real estate developers in Paraguay"

Configuration

Env Variable

Default

Description

TULUGAR_API_URL

https://tulugar.com/api/v1

API base URL

TULUGAR_SITE_URL

https://tulugar.com

Site URL for listing links

License

MIT

Available Tools

9 tools
get_listingAInspect

Get full details for a specific listing by ID or slug. Includes description, features, agent info.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesListing UUID or slug

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. It usefully states the response includes 'description, features, agent info', but it does not mention error behavior (e.g., what happens if not found), authentication needs, or any rate limits. For a simple read operation, this is moderate transparency.

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 no filler. It communicates the action, target, and key response fields efficiently.

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 1-parameter get tool with no output schema, the description covers the essential purpose and content of the response. However, it omits details like return format and not-found behavior, which would make it fully complete. Sibling context shows this fills a distinct niche, so overall it is nearly sufficient.

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

Parameters3/5

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

The schema already states that 'id' is a 'Listing UUID or slug' (100% coverage). The description repeats this ('by ID or slug') and adds 'full details' but no new parameter syntax or constraints 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 clearly states the verb 'Get' and resource 'full details for a specific listing', and specifies lookup by ID or slug. This distinguishes it from sibling tools like search_listings (which searches) and get_project (which targets projects, not listings).

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 when you already have a listing ID or slug and need full details, but it does not explicitly contrast with search_listings for discovery or mention when not to use it. No alternatives or exclusions are named, so guidance is only implied.

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

get_market_summaryBInspect

Market statistics: average price, median, price per m², listing counts. Filter by city and property type.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNoCity name, e.g. "Asunción"
countryNo
listing_typeNo
neighborhoodNo
property_typeNo

TDQS

B3.4/5.0
Behavior2/5

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

There are no annotations, so the description carries full burden. It lists output metrics but does not disclose key behavioral aspects such as behavior when no filters are supplied, whether any parameters are required, data freshness, or the geographical scope of the statistics. For a stats tool, this is insufficient.

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, efficient sentence with the key output metrics front-loaded. It could be slightly more informative by mentioning listing_type, but it contains no unnecessary words.

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?

The tool has no output schema and sparse parameter documentation. The description fails to explain what the return payload looks like, how optional parameters affect results, or whether the statistics are limited to a specific market. This is a significant gap for a summary tool with complex filtering.

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?

Schema description coverage is only 20% (only 'city' has a description). The description adds meaning for city and property type but omits important filters like listing_type (sale vs rent), country, and neighborhood. It does not compensate for the schema's sparse 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 explicitly states the resource ('market summary') and the specific statistics returned (average price, median, price per m², listing counts). It clearly differentiates this tool from sibling tools like search_listings, which return individual listings rather than aggregated statistics.

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 phrase 'Filter by city and property type' provides clear context for typical usage, implying this tool is for obtaining market statistics with optional filters. However, it does not explicitly contrast with alternatives like search_listings or state 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_projectAInspect

Get project detail with available units, prices, site plans, and developer info.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesProject UUID or slug

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the burden of disclosing behavior. It states what the tool returns (units, prices, site plans, developer info) and implicitly indicates a read operation via 'Get'. However, it doesn't mention potential limitations (e.g., missing optional data, authentication requirements) or any side effects, but for a simple get, this is adequate.

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 clear sentence, front-loaded with the key point ('Get project detail') and lists the main components efficiently. No wasted 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?

Given the tool's simplicity (one parameter, no output schema, no annotations), the description provides a reasonable overview of the return content. It could mention more about response structure or edge cases, but for a straightforward get tool it is sufficiently 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?

The schema already fully describes the single parameter 'id' as 'Project UUID or slug' (100% coverage). The description adds no additional parameter-specific meaning, so the baseline of 3 applies.

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 identifies the tool as retrieving project details, specifying the included content (available units, prices, site plans, developer info). This distinguishes it from sibling tools like search_projects (which searches) and get_listing (which deals with listings, not 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?

The description implies usage: provide a project ID to get full details. However, it gives no explicit guidance on when to prefer this tool over alternatives, nor does it state any exclusions or prerequisites.

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

get_str_dataBInspect

Airbnb/short-term rental market data: city-level nightly rates, occupancy, superhost stats.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNoCity name, e.g. "Asunción"
neighborhoodNoNeighborhood name for specific area stats

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the behavioral transparency burden. It discloses data content but does not describe operational behavior such as read-only semantics, response format, default scoping, pagination, or the effect of optional parameters. It adds only limited behavioral insight beyond the data categories listed.

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, tightly written sentence that front-loads the domain ('Airbnb/short-term rental market data') and then specifies the key metrics. There is no filler or redundancy; every word contributes meaning.

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 straightforward two-parameter data retrieval tool, the description lists the data categories and scope, giving reasonable context. However, with no annotations and no output schema, the agent lacks information about return structure, error behavior, or default assumptions. It is adequate but not comprehensive.

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 already provides descriptions for both parameters (city and neighborhood), and schema description coverage is 100%. The description adds little beyond the schema, only reinforcing the city-level scope and listing data fields. Since the schema handles parameter semantics, 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the resource (Airbnb/short-term rental market data) and specifies the key data dimensions (nightly rates, occupancy, superhost stats) at city level. It uses a specific verb ('get') and concrete fields, making the tool's purpose readily understandable. It does not explicitly differentiate from the sibling get_market_summary, so it falls just short of a 5.

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 short-term rental market data needs, which gives some usage context. However, it does not state when to prefer this tool over alternatives such as get_market_summary, search_listings, or list_locations, nor does it mention exclusions or prerequisites. Usage is only implied by the data-content description.

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

list_locationsAInspect

List countries, cities, or neighborhoods with listing counts.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNoCity name to filter neighborhoods (e.g. "Asunción")
typeYesLocation type to list
countryNoCountry name to filter cities (e.g. "Paraguay")

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses that the tool lists locations with counts, indicating a read-only behavior. However, it omits edge cases such as the required type parameter, the behavior of filters when mismatched with the chosen type, or the output structure. The added 'listing counts' context offers some value beyond the schema.

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 unnecessary words. It is concise and front-loaded, immediately stating the tool's purpose. Every word contributes meaning.

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 tool is low complexity and the schema is comprehensive. The description mentions 'listing counts' as the key output, though it does not specify the exact return format (e.g., array of objects with name and count). For a simple listing tool with no output schema, this is nearly complete, but the lack of explicit output structure and filter interaction nuances prevents a 5.

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

Parameters3/5

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

Schema description coverage is 100% with detailed descriptions for each parameter. The description does not add significant meaning beyond restating the enum values (countries, cities, neighborhoods) and does not clarify the filtering logic or relationships between parameters. Therefore, the baseline score of 3 applies.

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), the resource (countries, cities, or neighborhoods), and the output (with listing counts). This distinguishes it from sibling tools like search_listings or get_listing, which focus on individual listings or searches, not location options.

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 obtaining location lists with listing counts, but it does not explicitly state when to use it versus alternatives, nor does it mention any exclusions or specific contexts (e.g., for populating filter dropdowns). No alternatives or when-not guidance is provided.

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

mortgage_calculatorAInspect

Estimate a monthly mortgage payment and total interest. Currency-agnostic. Optionally pass monthly_income for a debt-to-income ratio.

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

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden of behavioral disclosure. It adds useful context (currency-agnostic, optional DTI) but does not explicitly state that the tool is a pure calculation with no side effects, nor does it mention the output format or edge-case handling. This is sufficient for a simple calculator but not fully transparent.

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 primary purpose. No redundant information; every sentence adds value (purpose and optional DTI behavior). Excellent conciseness.

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 calculator with no output schema, the description adequately covers return values (monthly payment, total interest, and DTI if monthly_income provided) and adds the currency-agnostic behavior. Missing edge-case handling or exact output structure, but this is not critical for a straightforward calculator.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds the 'currency-agnostic' context, but does not add meaning beyond the schema for individual parameters. The mention that monthly_income enables DTI is already present in the schema 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 a specific action ('Estimate a monthly mortgage payment and total interest') and resource, distinguishing it from sibling tools like search_listings or get_market_summary. The purpose is unambiguous and immediately understandable.

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 (estimate mortgage payments) but does not explicitly state when to use this tool versus alternatives or when not to use it. The only guideline is the optional monthly_income parameter for DTI, which is more parameter-specific than tool-selection guidance.

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

search_companiesCInspect

Search real estate agencies and developers.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNo
sortNo
typeNo
limitNo
verifiedNo

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the search operation and does not mention permissions, return format, pagination, or other behavioral traits. The description adds minimal context beyond the purpose.

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, clear sentence that is efficient and front-loaded, with no wasted words. It communicates the core purpose effectively.

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?

With no output schema and no annotations, the description is too sparse to provide adequate context for a 5-parameter search tool. It does not describe what results look like, how parameters interact, or any default behavior, leaving significant gaps for the agent.

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

Parameters1/5

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

The input schema has 5 parameters with 0% coverage from the description. The description does not explain any parameter semantics, leaving the agent to infer from parameter names and enums alone, which is insufficient.

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 with a specific verb ('Search') and resource ('real estate agencies and developers'). This distinguishes it from sibling tools like search_listings and search_projects, which target different entity types.

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 instead of alternatives. It merely states what it does, without mentioning any exclusions or context for choosing it over other search tools.

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

search_listingsBInspect

Search real estate listings in Paraguay. Filter by city, price, bedrooms, property type, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNoCity name, e.g. "Asunción"
sortNo
limitNoMax results (default 10, max 20)
countryNoCountry name
bedroomsNoNumber of bedrooms
max_areaNoMaximum area in m²
min_areaNoMinimum area in m²
bathroomsNoNumber of bathrooms
max_priceNoMaximum price
min_priceNoMinimum price
listing_typeNoSale or rent
neighborhoodNoNeighborhood name, e.g. "Villa Morra"
property_typeNoapartment, house, land, or commercial
verified_onlyNoOnly verified listings

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only states that it searches and filters, but does not disclose behavioral traits such as default limits, pagination, or what 'etc.' includes. This is insufficient for a tool with no other behavioral information.

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, but it uses a vague 'etc.' and omits a structured breakdown of filter options. It is efficient, with no wasted words, but could be slightly more informative.

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?

The tool has 14 parameters and no output schema or annotations. The description provides only a high-level purpose, failing to clarify output format, search behavior, or limitations. Given the complexity, this description is insufficient for a complete understanding.

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 93%, with detailed descriptions for most parameters (e.g., 'city', 'limit', 'min_price'). The description's mention of 'city, price, bedrooms, property type' adds no new semantic detail 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 the specific verb 'search' and identifies the resource as 'real estate listings in Paraguay', clearly distinguishing it from sibling tools like search_projects and get_listing. It also lists some filter options, providing a clear understanding of the tool's function.

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 provides clear context for searching real estate listings in Paraguay, but does not explicitly state when to use this tool over alternatives or when not to use it. Usage is implied from the purpose, but no exclusions or alternative tools are mentioned.

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

search_projectsAInspect

Search development projects (towers, gated communities). Shows verified projects with available units by default.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNoCity name
sortNo
limitNoMax results (default 10)
statusNo
verifiedNoOnly verified projects
max_priceNoMax unit price (USD)
min_priceNoMin unit price (USD)
include_sold_outNoInclude sold-out projects

TDQS

A3.5/5.0
Behavior3/5

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

The description discloses a key behavioral trait: by default, only verified projects with available units are shown. Since no annotations are provided, this adds useful context beyond the schema. However, it does not fully cover other behavioral aspects like read-only safety or response format, leaving room for improvement.

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. The first states the primary purpose, and the second adds a valuable default behavior. It is front-loaded, concise, and free of 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?

The tool has 8 parameters and no output schema, but the description is brief. It conveys purpose and a key default, while the schema covers parameter details. Still, it lacks information about return format or how filters combine, making it only minimally complete for this 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 the schema already documents most parameters. The description does not add parameter-specific meaning beyond the default filter behavior, which indirectly relates to 'verified' and 'include_sold_out'. This matches the baseline of 3 for high schema 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 the verb 'Search' and the resource 'development projects', with concrete examples ('towers, gated communities'). This differentiates it from siblings like search_listings and get_project, which target individual listings or specific projects.

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 does not mention when to use this tool versus alternatives, nor does it provide any exclusion criteria. With siblings like search_listings and get_project present, guidance on when to choose search_projects would be helpful, but it is absent.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 9 tool updatesv1.0.0
    • First observedget_listing
    • First observedget_market_summary
    • First observedget_project
    • First observedget_str_data
    • First observedlist_locations
    • First observedmortgage_calculator
    • First observedsearch_companies
    • First observedsearch_listings
    • First observedsearch_projects

TDQS

A3.6/5.0

Scored across 9 tools

Disambiguation4/5

Most tools are clearly separated by resource: listings, projects, companies, locations, market summary, STR data, and mortgage calculator. Minor overlap exists between list_locations and get_market_summary since both report listing counts, but descriptions are enough to guide selection.

Naming Consistency4/5

The naming is mostly consistent with verb-first patterns like get_, search_, and list_. The exceptions are mortgage_calculator, which uses a noun-first name, and get_str_data, which uses an abbreviation and 'data' suffix inconsistently with get_market_summary.

Tool Count5/5

Nine tools is a well-scoped set for this domain. Each tool serves a distinct use case: searching and retrieving listings/projects/companies, exploring locations, market analysis, STR statistics, and mortgage calculations.

Completeness4/5

The server covers the main read-only workflows for a real estate information platform: search, detail lookup, location browsing, and market analysis. A notable gap is the lack of a get_company detail tool to complement search_companies, but agents can generally work around this.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    MCP server for querying real estate agents registered with CRECI-SP. Enables searching by name, CRECI number, city, or status, retrieving agent details, and getting statistics.
    -
  • A
    license
    A
    quality
    D
    maintenance
    MCP server for querying Taiwan's real estate transaction registry via web scraping of the Ministry of the Interior's official portal. Enables natural language queries for real estate sales, rentals, and pre-sale housing data.
    1
    1
    MIT
  • A
    license
    C
    quality
    D
    maintenance
    Enterprise-level MCP server integrating with Vista CRM (Loft Edition) for real estate operations, offering 40+ tools for property search, pipeline management, lead capture, and agenda control.
    42
    MIT