Skip to main content
Glama
StreamEstate

stream-estate

Official
by StreamEstate

Stream.estate MCP Server

MCP server for the Stream.estate French real estate API. Search properties, get market statistics, manage saved searches with webhook notifications, and more.

Prerequisites

Related MCP server: HomeHarvest MCP Server

Quick Start

Claude Code (one command)

claude mcp add -e STREAM_ESTATE_API_KEY=your-api-key stream-estate -- npx mcp-stream-estate

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "stream-estate": {
      "command": "npx",
      "args": ["mcp-stream-estate"],
      "env": {
        "STREAM_ESTATE_API_KEY": "your-api-key"
      }
    }
  }
}

Configuration

Environment Variable

Required

Default

Description

STREAM_ESTATE_API_KEY

Yes

Your Stream.estate API key (sign up)

STREAM_ESTATE_BASE_URL

No

https://api.stream.estate

API base URL

Available Tools

Properties

Tool

Description

search-properties

Search properties with 50+ filters (location, price, size, energy, etc.)

get-property

Get full property details by UUID

find-similar-properties

Find properties similar to a given one

Indicators

Tool

Description

get-cities

Search cities by name, zipcode, or INSEE code

location-autocomplete

Autocomplete city/department names (returns IDs for filters)

get-points-of-interest

Find nearby schools, hospitals, restaurants, etc.

get-price-per-meter

Price/m² statistics with average, median, and time series

Saved Searches

Tool

Description

create-search

Create a saved search with webhook notifications

list-searches

List all saved searches

get-search

Get a specific saved search

update-search

Update saved search criteria

delete-search

Delete a saved search

Webhooks

Tool

Description

test-webhook

Send a test payload to a webhook endpoint

Key Concepts

  • Property types: 0=Flat, 1=House, 2=Building, 3=Parking, 4=Office, 5=Land, 6=Shop

  • Transaction types: 0=Sell, 1=Rent

  • Publisher types: 0=Individual, 1=Professional

  • Energy categories: A (most efficient) through G (least efficient)

  • Use location-autocomplete first to find city/department IDs for search filters

Development

pnpm run dev    # Watch mode
pnpm run build  # Production build
pnpm start      # Run server

License

MIT

Available Tools

13 tools
find-similar-propertiesA

Find properties similar to a given property. Useful for market comparisons and finding alternatives.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesReference property UUID
pageNoPage number (default: 1)
fromDateNoCreation start date (ISO 8601)
itemsPerPageNoItems per page (max: 30)
orderByPriceNoSort by price
orderBySurfaceNoSort by surface area
orderByCreatedAtNoSort by creation date
orderByUpdatedAtNoSort by last update date
orderByPricePerMeterNoSort by price per m²

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only states the high-level action without explaining what 'similar' means, how results are ordered, or any side effects. This is a significant gap for a tool with pagination and sorting parameters.

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, with the core action front-loaded in the first sentence. The second sentence adds usage context but is somewhat generic. Overall, it is appropriately sized without unnecessary verbosity.

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 9 parameters, the description should explain what results look like and how similarity is determined. It only states 'find properties similar' without detailing the return structure, pagination behavior, or sorting options, 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.

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description does not add parameter-level meaning, but the schema already documents all 9 parameters including the required 'id' field. No further compensation is 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?

The description specifies a clear verb ('Find') and resource ('properties similar to a given property'), differentiating it from siblings like search-properties (general search) and get-property (single property by ID). It uniquely identifies the tool's purpose for similarity-based lookup.

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 by stating the tool is 'useful for market comparisons and finding alternatives,' which implies when to use it. However, it does not explicitly mention alternatives or when not to use it, falling short of a 5.

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

get-citiesA

Search French cities by name, zipcode, INSEE code, or geographic polygon. Returns city IDs needed for property search filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoFilter by city name
pageNo
slugNo
labelNoFilter by display name
polygonNoGPS coordinate polygon
zipcodeNo
zipcodesNo
inseeCodeNoFilter by single INSEE code
inseeCodesNoFilter by multiple INSEE codes
sortByNameNo
excludeGroupedCitiesNo

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are present, so the description carries full burden. It tells the core behavior (searching cities and returning IDs), but lacks details about pagination, result limits, or side effects. It is not misleading, but it does not disclose much beyond the basic function.

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 action and criteria, and a second sentence on purpose. Every word earns its place; no repetition of schema details.

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 the tool has 11 parameters, no output schema, and no annotations, the description is somewhat minimal. It clarifies the primary use case and return value, but does not mention pagination, sorting, or other filter options, leaving the agent without full context for a more complex search.

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 only 45%, and the description partially compensates by listing search criteria (name, zipcode, INSEE code, polygon). However, it does not explain parameters like page, slug, sortByName, or excludeGroupedCities, leaving gaps for an agent to interpret.

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 function: 'Search French cities by name, zipcode, INSEE code, or geographic polygon.' It also specifies the output's purpose ('Returns city IDs needed for property search filters'), which distinguishes it from sibling tools like search-properties or get-points-of-interest.

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 implies when to use the tool: when city IDs are needed for property search filters. It provides context by mentioning the search criteria and the output, but it does not explicitly rule out alternatives like location-autocomplete, which could also be used for city lookups.

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

get-points-of-interestA

Find points of interest (schools, hospitals, restaurants, parking) near a location. Returns facilities within a radius of given coordinates.

ParametersJSON Schema
NameRequiredDescriptionDefault
latYesLatitude
lonYesLongitude
radiusNoSearch radius in km
facilitiesNoCategories: "kindergarten", "school", "restaurant", "hospital", "parking"

TDQS

A3.7/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 states 'Returns facilities within a radius' but does not disclose read-only nature, auth requirements, default radius, or edge cases, leaving gaps.

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 concise sentences, front-loaded with the purpose. No redundant wording.

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 lookup tool, it states it returns facilities within a radius, but lacks details on response format, radius defaults, or pagination. Since no output schema exists, the description should provide more, but it is not severely incomplete.

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 baseline is 3. The description rephrases the coordinate/radius concept but does not add meaningful details beyond what the schema already provides.

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 'Find' with a clear resource 'points of interest' and lists examples (schools, hospitals, restaurants, parking). It is distinct from sibling tools which are property-related.

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 clearly implies usage for finding facilities near a location within a radius. It doesn't explicitly exclude alternatives, but the context is clear and no similar sibling exists.

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

get-price-per-meterB

Get price per m² statistics (average, median, time series) for properties matching filters. Useful for market analysis and property valuation.

ParametersJSON Schema
NameRequiredDescriptionDefault
latNoLatitude for radius search
lonNoLongitude for radius search
pageNoPage number (default: 1)
radiusNoSearch radius in km (requires lat+lon)
toDateNoProperty creation end date (ISO 8601)
roomMaxNoMaximum number of rooms
roomMinNoMinimum number of rooms
fromDateNoProperty creation start date (ISO 8601)
priceMaxNoMaximum advert price
priceMinNoMinimum advert price
sortModeNo"property" or "advert" sorting mode
budgetMaxNoMaximum price/budget
budgetMinNoMinimum price/budget
floorsMaxNoMaximum number of floors
floorsMinNoMinimum number of floors
furnishedNoFilter for furnished properties
geoShapesNoGeographic polygon coordinates for area search
isExpiredNoFilter expired/active properties
bedroomMaxNoMaximum number of bedrooms
bedroomMinNoMinimum number of bedrooms
ghgLettersNoGreenhouse gas categories: A through G
surfaceMaxNoMaximum surface area in m²
surfaceMinNoMinimum surface area in m²
expressionsNoFull-text search expressions for property title/description
ghgValueMaxNoMaximum GHG value
ghgValueMinNoMinimum GHG value
lotCountMaxNoMaximum lot count in condominium
lotCountMinNoMinimum lot count in condominium
toUpdatedAtNoProperty update end date (ISO 8601)
itemsPerPageNoItems per page (max: 30)
fromUpdatedAtNoProperty update start date (ISO 8601)
propertyTypesNo0=Flat, 1=House, 2=Building, 3=Parking, 4=Office, 5=Land, 6=Shop
renterFeesMaxNoMaximum renter fees
renterFeesMinNoMinimum renter fees
energyValueMaxNoMaximum energy value
energyValueMinNoMinimum energy value
excludedCitiesNoCity IRIs to exclude
includedCitiesNoCity IRIs, e.g. ["/cities/30953"]. Use location-autocomplete to find IDs.
publisherTypesNo0=Individual, 1=Professional
rentalPledgeMaxNoMaximum rental pledge/deposit
rentalPledgeMinNoMinimum rental pledge/deposit
transactionTypeNo0=Sell, 1=Rent
withVirtualTourNoOnly properties with virtual tour
energyCategoriesNoEnergy efficiency categories: A through G
excludedZipcodesNoZipcodes to exclude
includedZipcodesNoZipcodes, e.g. ["75017", "75018"]
priceEventToDateNoPrice event end date (ISO 8601)
pricePerMeterMaxNoMaximum price per m²
pricePerMeterMinNoMinimum price per m²
rentalChargesMaxNoMaximum rental charges
rentalChargesMinNoMinimum rental charges
feesPercentageMaxNoMaximum fees percentage
feesPercentageMinNoMinimum fees percentage
geocodingAccuracyNo1=house-number, 2=neighborhood
inventoryPriceMaxNoMaximum inventory price
inventoryPriceMinNoMinimum inventory price
withCoherentPriceNoFilter for coherent/realistic prices
condominiumFeesMaxNoMaximum condominium fees
condominiumFeesMinNoMinimum condominium fees
excludedInseeCodesNoINSEE codes to exclude
excludedPropertiesNoProperty IRIs to exclude
feesResponsibilityNo0=seller, 1=buyer
includedInseeCodesNoINSEE codes, e.g. ["75117"]
priceEventFromDateNoPrice event start date (ISO 8601)
surfaceEventToDateNoSurface event end date (ISO 8601)
constructionYearMaxNoMaximum construction year
constructionYearMinNoMinimum construction year
includedDepartmentsNoDepartment IRIs, e.g. ["/departments/77"]
surfaceEventFromDateNoSurface event start date (ISO 8601)
withResolvedLocationNoOnly properties with resolved GPS coordinates
priceExcludingFeesMaxNoMaximum price excluding fees
priceExcludingFeesMinNoMinimum price excluding fees
priceEventVariationMaxNoMaximum price variation %
priceEventVariationMinNoMinimum price variation %
dateHistogramGranularityNoGranularity for date histogram
surfaceEventVariationMaxNoMaximum surface variation %
surfaceEventVariationMinNoMinimum surface variation %

TDQS

B3.4/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 full behavioral transparency. It states the output is statistics but does not disclose whether filters are required, how aggregation works, or what the time series structure looks like. This leaves the agent uncertain about invocation prerequisites.

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 action and output, and the second sentence provides a relevant use case. Every word earns its place with no redundancy.

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 77 optional parameters and no output schema, the description is too thin. It does not explain the response structure, whether any location or date filters are required, or how time series data is grouped. Additional context about the aggregated nature and expected response format is needed.

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 all 77 parameters, so the description adds no additional parameter-specific meaning. Since schema coverage is 100%, the baseline applies; the description only generically refers to 'filters' without highlighting which parameters are most relevant for price-per-meter analysis.

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' and identifies the exact resource 'price per m² statistics' with output types (average, median, time series). It clearly distinguishes this from sibling tools like search-properties or get-property by focusing on 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 Guidelines3/5

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

The description gives a use case ('market analysis and property valuation') but no explicit guidance on when to use this tool versus alternatives like search-properties. It implies overlap by mentioning 'filters' but does not clarify the key distinction between aggregate stats and individual listings.

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

get-propertyA

Get full details for a single property by UUID, including all adverts, price history events, photos, contact info, and nearby transit stations.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesProperty UUID

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 clearly states the data included (adverts, price history, photos, contact info, transit stations), which gives useful context. However, it does not disclose potential error cases, authorization requirements, or whether the operation is strictly read-only, leaving some transparency gaps.

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, focused sentence that front-loads the purpose ('Get full details for a single property') and then lists specifics. Every clause adds value with no filler.

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 single-parameter lookup tool, the description is largely complete: it names the input (UUID) and describes the output scope in enough detail to inform use. While there is no output schema, the enumerated content list compensates. Minor lack of error/edge-case handling prevents a perfect score.

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 documents the sole parameter 'id' as 'Property UUID', and the description reinforces that by saying 'by UUID.' Since schema description coverage is 100%, the description adds no additional parameter-level meaning beyond emphasizing the identifier's role.

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' with a clear resource 'single property by UUID' and enumerates the scope: 'full details ... including all adverts, price history events, photos, contact info, and nearby transit stations.' This distinguishes it from sibling tools like search-properties and get-points-of-interest, which target different operations or resources.

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

Usage Guidelines3/5

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

The phrase 'by UUID' implicitly tells the agent to use this when a known property ID is available, but there is no explicit statement about when to prefer it over siblings such as search-properties or find-similar-properties. No exclusions or alternative conditions are given.

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

list-searchesA

List all saved searches for the authenticated user. Can filter by notification status and title.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number
titleNoFilter by title
orderByTitleNoSort by title
notificationEnabledNoFilter by notification status

TDQS

A3.9/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. It discloses that the operation is scoped to the authenticated user and supports filtering, but it does not specify behavior such as pagination defaults, whether the list is empty-safe, or if this is a read-only operation, though 'List' implies non-mutating.

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 concise sentence that immediately states the core function and provides useful filter context without extraneous words.

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 list operation with no annotations or output schema, the description gives the essential purpose but omits details about the return structure or pagination behavior, which the page parameter hints at but doesn't clarify.

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 baseline is 3. The description mentions filtering by notification status and title, echoing two parameters, but adds no extra semantic detail 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?

The description uses a specific verb 'List' and identifies the resource 'saved searches for the authenticated user' with the ability to filter, distinguishing it clearly from sibling tools like get-search or create-search.

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 clearly states this tool lists saved searches for the authenticated user, providing context on when it should be used. It does not explicitly exclude alternatives like get-search for individual searches, but the scope is clear enough.

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

location-autocompleteA

Autocomplete cities and departments by search query. Returns IDs needed for location filters in search-properties and create-search.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch term (e.g. 'Paris', 'Lyon', 'Marseille')
excludeCitiesNoCity IRIs to exclude
excludeDepartmentsNoDepartment IRIs to exclude

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the burden of behavioral disclosure. It mentions that it returns IDs needed for filters, which is useful, but it doesn't describe the response structure, whether cities and departments are returned together, ordering, pagination, or edge cases like empty results.

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, well-structured sentence that immediately states the purpose and the output's role, with no filler or 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?

For a simple autocomplete tool with full schema coverage, the description adequately explains what the tool does and how the output is used downstream. However, without an output schema, a bit more detail about the response format would improve 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?

The input schema has 100% coverage, with clear descriptions for all three parameters (query, excludeCities, excludeDepartments). The tool description itself doesn't add meaning beyond the schema, 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 states it autocompletes cities and departments by search query, and explicitly mentions that it returns IDs needed for location filters in search-properties and create-search. This specific verb+resource combination distinguishes it from sibling tools like get-cities.

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?

It explicitly says the returned IDs are needed for location filters in search-properties and create-search, giving clear context on when to use the tool. While it doesn't mention when not to use it or name alternatives, the downstream consumer tools are referenced, providing sufficient guidance.

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

search-propertiesA

Search French real estate properties with extensive filters for location, price, size, rooms, energy rating, and more. Returns paginated results with property details, adverts, photos, and nearby stations. Use location-autocomplete first to resolve city/department IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
latNoLatitude for radius search
lonNoLongitude for radius search
pageNoPage number (default: 1)
radiusNoSearch radius in km (requires lat+lon)
toDateNoProperty creation end date (ISO 8601)
roomMaxNoMaximum number of rooms
roomMinNoMinimum number of rooms
fromDateNoProperty creation start date (ISO 8601)
priceMaxNoMaximum advert price
priceMinNoMinimum advert price
sortModeNo"property" or "advert" sorting mode
budgetMaxNoMaximum price/budget
budgetMinNoMinimum price/budget
floorsMaxNoMaximum number of floors
floorsMinNoMinimum number of floors
furnishedNoFilter for furnished properties
geoShapesNoGeographic polygon coordinates for area search
isExpiredNoFilter expired/active properties
bedroomMaxNoMaximum number of bedrooms
bedroomMinNoMinimum number of bedrooms
ghgLettersNoGreenhouse gas categories: A through G
surfaceMaxNoMaximum surface area in m²
surfaceMinNoMinimum surface area in m²
expressionsNoFull-text search expressions for property title/description
ghgValueMaxNoMaximum GHG value
ghgValueMinNoMinimum GHG value
lotCountMaxNoMaximum lot count in condominium
lotCountMinNoMinimum lot count in condominium
toUpdatedAtNoProperty update end date (ISO 8601)
itemsPerPageNoItems per page (max: 30)
orderByPriceNoSort by price
fromUpdatedAtNoProperty update start date (ISO 8601)
propertyTypesNo0=Flat, 1=House, 2=Building, 3=Parking, 4=Office, 5=Land, 6=Shop
renterFeesMaxNoMaximum renter fees
renterFeesMinNoMinimum renter fees
energyValueMaxNoMaximum energy value
energyValueMinNoMinimum energy value
excludedCitiesNoCity IRIs to exclude
includedCitiesNoCity IRIs, e.g. ["/cities/30953"]. Use location-autocomplete to find IDs.
orderBySurfaceNoSort by surface area
publisherTypesNo0=Individual, 1=Professional
rentalPledgeMaxNoMaximum rental pledge/deposit
rentalPledgeMinNoMinimum rental pledge/deposit
transactionTypeNo0=Sell, 1=Rent
withVirtualTourNoOnly properties with virtual tour
energyCategoriesNoEnergy efficiency categories: A through G
excludedZipcodesNoZipcodes to exclude
includedZipcodesNoZipcodes, e.g. ["75017", "75018"]
orderByCreatedAtNoSort by creation date
orderByUpdatedAtNoSort by last update date
priceEventToDateNoPrice event end date (ISO 8601)
pricePerMeterMaxNoMaximum price per m²
pricePerMeterMinNoMinimum price per m²
rentalChargesMaxNoMaximum rental charges
rentalChargesMinNoMinimum rental charges
feesPercentageMaxNoMaximum fees percentage
feesPercentageMinNoMinimum fees percentage
geocodingAccuracyNo1=house-number, 2=neighborhood
inventoryPriceMaxNoMaximum inventory price
inventoryPriceMinNoMinimum inventory price
withCoherentPriceNoFilter for coherent/realistic prices
condominiumFeesMaxNoMaximum condominium fees
condominiumFeesMinNoMinimum condominium fees
excludedInseeCodesNoINSEE codes to exclude
excludedPropertiesNoProperty IRIs to exclude
feesResponsibilityNo0=seller, 1=buyer
includedInseeCodesNoINSEE codes, e.g. ["75117"]
priceEventFromDateNoPrice event start date (ISO 8601)
surfaceEventToDateNoSurface event end date (ISO 8601)
constructionYearMaxNoMaximum construction year
constructionYearMinNoMinimum construction year
includedDepartmentsNoDepartment IRIs, e.g. ["/departments/77"]
orderByPricePerMeterNoSort by price per m²
surfaceEventFromDateNoSurface event start date (ISO 8601)
withResolvedLocationNoOnly properties with resolved GPS coordinates
priceExcludingFeesMaxNoMaximum price excluding fees
priceExcludingFeesMinNoMinimum price excluding fees
priceEventVariationMaxNoMaximum price variation %
priceEventVariationMinNoMinimum price variation %
surfaceEventVariationMaxNoMaximum surface variation %
surfaceEventVariationMinNoMinimum surface variation %

TDQS

A4.4/5.0
Behavior4/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 reveals that results are paginated and include property details, adverts, photos, and nearby stations. It also hints at a dependency on location-autocomplete for ID resolution. It does not mention auth, rate limits, or read-only nature, but 'search' implies non-mutating 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?

The description is three sentences, front-loaded with purpose, then return content, then a practical tip. Every sentence 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.

Completeness4/5

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

For a complex tool with 81 parameters and no output schema, the description provides a solid overview of the search capability and return payload. It covers filter categories and pagination, but does not detail parameter combinations (e.g., radius requires lat/lon), though the schema handles those details.

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 100%, giving a baseline of 3. The description adds value by advising to use location-autocomplete for city/department IDs, which directly informs parameters like includedCities and includedDepartments. This extra guidance goes beyond the schema's 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?

The description clearly states the tool 'Search French real estate properties' with a specific verb and resource, and enumerates extensive filter categories. It distinguishes itself from siblings like get-property (single property) and find-similar-properties by framing this as a general search tool. The return content (pagination, details, adverts, photos, nearby stations) further clarifies scope.

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 gives a clear usage context: searching properties with filters, and provides a prerequisite: 'Use location-autocomplete first to resolve city/department IDs.' However, it does not explicitly state when not to use this tool or name alternatives, so it lacks explicit exclusions.

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

test-webhookA

Test webhook delivery by sending a simulated match or event payload to an endpoint. Useful for verifying webhook integration.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesEvent type to simulate
endpointYesHTTPS webhook URL to test

TDQS

A4/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 full burden. It discloses that the tool sends a simulated payload, which is a test action with no persistent side effects. However, it does not mention potential response behavior, authentication requirements, or error handling, leaving some behavioral ambiguity.

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 core action, and every word earns its place. No fluff or 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?

The tool is simple with 2 parameters, both fully described in the schema, and an enum for event type. The description covers purpose and usage. It might be slightly improved by noting the response format after sending, but given the low complexity, it is largely 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 description coverage is 100%: both 'endpoint' and 'type' have descriptions in the schema. The description adds minimal extra meaning beyond the schema, only framing the payload as 'simulated match or event.' The baseline of 3 applies because the schema already documents the parameters adequately.

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: 'Test webhook delivery by sending a simulated match or event payload to an endpoint.' It uses a specific verb ('Test') and resource ('webhook delivery'), and the mention of 'simulated payload' distinguishes it from sibling tools, which are all property-related.

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 usage context: 'Useful for verifying webhook integration.' This implies when to use the tool, and the sibling tools (e.g., search-properties, get-property) are unrelated, so no explicit alternatives are needed. However, it lacks explicit 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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 13 tool updatesv1.0.3
    • First observedcreate-search
    • First observeddelete-search
    • First observedfind-similar-properties
    • First observedget-cities
    • First observedget-points-of-interest
    • First observedget-price-per-meter
    • First observedget-property
    • First observedget-search
    • First observedlist-searches
    • First observedlocation-autocomplete
    • First observedsearch-properties
    • First observedtest-webhook
    • First observedupdate-search

TDQS

A3.7/5.0
Disambiguation4/5

Most tools target distinct resources and actions. The only potential confusion is between get-cities and location-autocomplete, which both resolve location identifiers, but their descriptions clarify different use cases (exact search vs autocomplete).

Naming Consistency4/5

The majority follow a consistent verb_noun pattern (search-properties, create-search, update-search). However, location-autocomplete deviates from this pattern by placing the noun first, which is a minor inconsistency.

Tool Count5/5

13 tools is well within the appropriate range for a real estate search API, covering property discovery, saved search management, location resolution, and auxiliary features like webhooks and pricing stats. Each tool has a clear role.

Completeness5/5

The tool set provides full CRUD for saved searches, comprehensive property search and detail retrieval, location resolution, and market analysis. No significant gaps for the stated domain of French real estate search.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    An MCP server for accessing the Fotocasa1 API to search real estate listings and retrieve detailed property information in Spain. It supports location suggestions, property filtering by type and price, and fetching specific property details.
    3
    MIT
  • 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.
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/StreamEstate/mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server