Skip to main content
Glama

Domly — rentals in Bulgaria

Server Details

Search long-term rentals in Bulgaria, get rent prices by city and district, contact a local realtor.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.2/5.0

Scored across 5 tools

Disambiguation5/5

Each tool targets a distinct purpose: list_cities enumerates coverage, search_listings finds listings, get_listing fetches one detail, get_price_stats returns market aggregates, and request_realtor handles contact. There is no overlap—an agent can pick the right tool from the description alone.

Naming Consistency5/5

All names follow a clean verb_noun snake_case convention (list_cities, search_listings, get_listing, get_price_stats, request_realtor). The pattern is predictable and readable throughout.

Tool Count5/5

Five tools is well-scoped for a rental search service, with each tool earning its place across discovery, detail, market stats, and contact. No redundant or filler tools.

Completeness4/5

The surface covers the core lifecycle: find cities, search listings, inspect a listing, view price stats, and contact a realtor. Minor gaps exist (e.g. no sort/filter refinement or saved-search capability), but agents can work around them.

Available Tools

5 tools
get_listingGet ListingA
Read-only
Inspect

Details of one rental listing by its id from search_listings: parameters, amenities, a short description excerpt, the same flat on other sites, and links to Domly (photos, contact form) and to the original listing.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesListing id from search_listings.
languageNoLanguage for names.

TDQS

A3.9/5.0
Behavior4/5

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

The readOnlyHint annotation covers the safety profile, and with no output schema the description carries the burden of describing the return payload — which it does well by enumerating amenities, description excerpt, cross-site matches, and Domly/photo/contact links. It does not cover failure behavior for an invalid id, so it stops short of a 5.

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?

A single sentence that front-loads the core action ('Details of one rental listing by its id') before enumerating returned contents. Efficient, though the long mid-sentence list of return items slightly dilutes scanability.

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 two-parameter read tool with no output schema, the description is largely self-sufficient: it names the identifying source and sketches the response contents. Minor gaps remain around error behavior on a bad id and the role of the language parameter, but nothing critical is missing for correct invocation.

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 both parameters (id, language enum) are already fully documented in the schema. The description's 'by its id from search_listings' merely echoes the id description and adds no syntax or format detail beyond it; baseline 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?

States a specific verb (get/details), a precise resource (one rental listing), and the identifying key (its id from search_listings). An agent can immediately distinguish this single-listing fetch from the sibling search_listings list operation.

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?

Usage is implied rather than stated: 'by its id from search_listings' suggests calling this after a search to drill into one result. There is no explicit when-to-use/when-not guidance and no mention of the other siblings (get_price_stats, request_realtor), so the routing signal is only implicit.

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

get_price_statsGet Price StatsA
Read-only
Inspect

Rental market statistics for a Bulgarian city from Domly's daily index: median monthly rent (EUR), 25th/75th percentiles, price per m², 30-day change, prices by apartment size and by district. Use it to answer "how much does it cost to rent in ..." questions; cite Domly as the source with the given url.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityYesCity slug from list_cities or its name.
languageNoLanguage for names. Default: Bulgarian.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations only declare readOnlyHint=true, so the description adds meaningful behavior: the data comes from a daily index (freshness/periodicity), it is sourced from Domly, and the agent is obligated to cite the source with the provided url. It does not cover rate limits or error behavior, but the citation/attribution requirement is real context 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, both front-loaded: the return contents come first, followed by the usage trigger and citation rule. Every clause earns its place 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?

There is no output schema, so the description must carry the return-shape burden, and it does — median rent, 25th/75th percentiles, price per m², 30-day change, and breakdowns by apartment size and district. Combined with the citation rule, an agent has everything needed to call and report on 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 description coverage is 100%, so the schema already documents both 'city' (slug from list_cities or name) and 'language' (enum with default). The description adds no syntax or format detail for these parameters, which is the baseline expectation when the schema carries the load.

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?

States a specific verb+resource (rental market statistics for a Bulgarian city from Domly's daily index) and enumerates exactly what is returned, which cleanly separates it from sibling listing/city tools. An agent can distinguish it from search_listings or get_listing without opening a schema.

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?

Gives an explicit triggering question pattern ('how much does it cost to rent in ...') and adds a citation obligation with the given url. It stops short of naming alternatives or stating when-not to use it, so it is clear context without exclusions.

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

list_citiesList CitiesA
Read-only
Inspect

Lists Bulgarian cities covered by Domly with the number of active rental listings and the median monthly rent in EUR. Call this first to get city slugs for the other tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
languageNoLanguage for city names. Default: Bulgarian.

TDQS

A4.2/5.0
Behavior4/5

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

readOnlyHint=true already establishes this is a safe read. The description adds genuine behavioral context the annotation does not: the covered domain (Bulgarian cities only), the metric shape (active listing count, median rent in EUR), and the dependency role (source of city slugs). It does not state freshness or ordering of the data, which is a minor gap.

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, both earning their place: the first describes content, the second describes the calling workflow. The most actionable instruction (call first) is placed last but is short and easy to retain; nothing is padded or redundant.

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?

With no output schema, the description correctly compensates by describing the return fields and the slug concept, which is what downstream tools consume. For a one-optional-parameter lookup tool this is nearly complete; only data freshness/ordering is left implicit, which is acceptable given the structure.

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% and the single 'language' parameter has a documented enum with a stated default, so the schema fully carries parameter semantics. The description adds nothing about the language option, so the baseline 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?

States a specific verb ('Lists') and resource ('Bulgarian cities covered by Domly') and goes further to name the return payload: active listing counts and median monthly rent in EUR. An agent can immediately distinguish this from get_listing, get_price_stats, search_listings, and request_realtor.

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?

Gives explicit sequencing guidance: 'Call this first to get city slugs for the other tools,' which tells the agent exactly when this tool is appropriate relative to its siblings. It does not name a tool to avoid or a when-not condition, but the entry-point role is unambiguous.

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

request_realtorRequest RealtorAInspect

Sends the user's request to a local partner realtor in the city (or to the Domly team where there is no partner), who will contact the user and pick rental options for free. Only call it after the user explicitly agreed to share their contact (phone, Telegram @username or email) for this purpose. The realtor's own services may be paid; the user agrees terms with the realtor.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityYesCity slug from list_cities or its name.
nameNoUser's name.
roomsNoWanted number of rooms; 5 means 5 or more.
commentNoOther wishes: district, pets, parking, term of the lease, etc.
contactYesHow the realtor can reach the user: phone with country code, Telegram @username or email.
move_inNoWhen the user wants to move in: now, within a month, or later.
languageNoLanguage the user speaks.
budget_maxNoMaximum monthly rent, EUR.
listing_idNoListing id if the request is about a specific listing.
user_consentedYestrue only if the user explicitly agreed to share this contact with a realtor.

TDQS

A4.2/5.0
Behavior4/5

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

With no behavioral annotations, the description carries the burden well: it discloses that the user's contact is shared with a third-party realtor, that a fallback team may handle the request, and that realtor services may be paid. It does not cover whether the request can be cancelled or what response the caller receives.

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 efficient sentences: purpose first, consent prerequisite second, cost/terms caveat third. Every sentence earns its place and there is no wasted text.

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 10-parameter side-effect tool with no output schema and no behavioral annotations, the description covers the critical privacy, consent, third-party, and cost context. It leaves return behavior and cancellation unspecified, but the schema handles parameter 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 description coverage is 100%, so the schema already documents all 10 parameters in detail. The description reinforces the contact and consent semantics but adds little parameter-specific detail beyond what the schema 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 states a specific action: sending the user's request to a local partner realtor or the Domly team, with the outcome that the realtor contacts the user and picks rental options. This is clearly distinct from the read/search/list siblings and leaves no ambiguity about what the tool does.

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 gives a clear prerequisite: call only after the user explicitly agrees to share their contact for this purpose. It also explains the realtor may charge for their own services, but it does not explicitly name alternatives or when not to use this tool beyond the consent condition.

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

Searches active long-term rental listings in a Bulgarian city (collected daily from imot.bg, alo.bg and homes.bg, duplicates merged). Returns up to 10 listings with price, rooms, area, district and a link to view photos and details on Domly. Always show the user the "url" of each listing.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityYesCity slug from list_cities (e.g. "varna", "burgas", "sofia") or its name.
sortNoDefault: newest.
limitNoDefault: 5.
roomsNoNumber of rooms (Bulgarian style: 1 = studio/one-bedroom "едностаен", 2 = "двустаен"); 5 means 5 or more.
languageNoLanguage for city and district names.
near_seaNoOnly listings within walking distance of the sea (Varna, Burgas).
districtsNoDistrict slugs or names, from get_price_stats.
max_priceNoMaximum monthly rent, EUR.
min_priceNoMinimum monthly rent, EUR.
from_ownerNoOnly listings from owners, no agency.
pets_allowedNo
property_typeNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, and the description adds useful behavior: daily collection from three sources, duplicate merging, a 10-listing cap, and the requirement to show URLs. It does not cover pagination or rate limits, but adds meaningful context 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 three compact sentences, front-loaded with the core search behavior and followed by return details and a key display instruction. Every sentence adds useful information 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?

Given 12 parameters, high schema coverage, and no output schema, the description adequately explains the search scope, data sources, return fields, and URL display requirement. It could say more about retrieving additional results beyond the 10-listing cap, but is otherwise complete enough for an agent to call it.

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 high at 83%, so the schema already documents most parameters. The description mentions city scope and return fields but does not add parameter-specific meaning beyond what the schema provides, making baseline 3 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?

States a specific verb and resource: "Searches active long-term rental listings" in a Bulgarian city, including data sources and deduplication. It is clearly a search tool, though it does not explicitly name sibling tools such as get_listing or get_price_stats to differentiate use cases.

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 clear context for when this tool applies: finding active long-term rentals in a Bulgarian city, with an explicit instruction to show each listing URL. It does not state exclusions or explicitly route to alternatives, so it falls short of full usage 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.

  1. 5 tool updates
    • First observedget_listing
    • First observedget_price_stats
    • First observedlist_cities
    • First observedrequest_realtor
    • First observedsearch_listings

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Gives AI agents read-only access to Bulgarian real-estate data from imotai.bg, letting them list districts, search and fetch active listings, pull district-level market statistics, and estimate values from current asking prices. All results are field-allowlisted and rate limited, with no credentials, broker contact details, or written descriptions exposed.
    5
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Live search of apartment rentals in any Romanian city or town across storia.ro, publi24.ro and lajumate.ro, with duplicates and sale ads removed. Reads each ad for heating type, parking and private owner, and filters by price, rooms and walking time to a place.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Submarket-level US residential rental intelligence for AI agents. Search, compare, rank, and analyze rent data, trends, vacancy, affordability, and days on market across 1,000+ named submarkets in the 20+ largest US metros. ZIP-level and metro-level queries included. Always current, always expanding. Free tier available.
    1
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources