MatchOffice — Commercial Real Estate Search
Server Details
Search for office space, coworking, meeting rooms, warehouses, and retail units available for lease or sale in Denmark, Sweden, Norway, and Germany. Powered by MatchOffice (Lokalebasen), Scandinavia's leading commercial real estate marketplace.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
TDQS
Scored across 3 tools
The three tools have clearly distinct purposes: search_locations finds locations, get_location retrieves a specific location by ID, and create_order submits an inquiry. There is no functional overlap, and an agent can easily select the correct tool.
All tool names follow a consistent snake_case verb_noun pattern (create_order, get_location, search_locations). This makes the set predictable and easy to remember.
Three tools is a focused, minimal set that covers search, detail retrieval, and inquiry submission. It is slightly thin for a commercial real estate platform, but each tool earns its place and the count is reasonable for a search-centric server.
The search domain is well covered (search and get), but the order sub-domain lacks any retrieval or management operations (e.g., get_order). This is a minor gap that does not block core search workflows but could limit agents needing to reference submitted inquiries.
Available Tools
3 toolscreate_orderCInspect
Submit an inquiry for a location
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Full name of the inquirer (max 200 chars) | |
| Yes | Valid email address | ||
| phone | Yes | Phone number (min 6 chars) | |
| comment | No | Message to the provider (optional, max 2000 chars) | |
| company | No | Company name (optional, max 200 chars) | |
| location_id | Yes | Location ID to inquire about |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=true, so the safety profile is covered. The description adds little beyond the annotation set: it does not say the inquiry is delivered to the provider, whether resubmission creates duplicates (relevant given non-idempotent), or what confirmation 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no padding, but it is so terse that it omits behavior an agent needs. Conciseness is achieved at the cost of substance rather than through efficient packing of useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a six-parameter, non-idempotent open-world write with no output schema, the description should say more about submission behavior and outcome. The schema documents the inputs, but nothing covers what happens after submission or how to detect success versus duplicate submission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all six parameters carry their own descriptions with constraints, so the baseline is 3. The description contributes nothing further about parameter meaning (e.g., what location_id must reference or how comment is used).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ("submit an inquiry for a location"), but it conflicts with the tool name `create_order`, which implies order creation rather than a contact inquiry. The schema fields (name, email, phone, comment, company) support the inquiry reading, so the description does clarify intent, yet the mismatch with the name leaves room for an agent to be confused about what is actually created.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus alternatives. The siblings (`get_location`, `search_locations`) are read-only lookups, so the agent must infer that this is the follow-up action after finding a location. No prerequisites, exclusions, or routing conditions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_locationBRead-onlyIdempotentInspect
Get full details for a single location by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Location ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is fully covered structurally. The description adds only that the return is 'full details' rather than a summary, which is mild extra signal but no auth, rate-limit, or not-found behavior context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with the action and the required input front-loaded, no filler. It is appropriately sized, though extremely terse for a tool whose return shape is undocumented.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial single-fetch read tool with rich annotations and full schema coverage, the description is nearly sufficient; the only meaningful gap is that no output schema exists and 'full details' never enumerates what is returned or what a missing ID yields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with a single integer id parameter that is fully documented as 'Location ID' in the schema. The description adds no format, range, or sourcing detail beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Get) and resource (location) with scope ('single location by ID') and clarifies it returns 'full details'. It does not, however, distinguish itself from the sibling search_locations, leaving the boundary between single-fetch and search implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no mention of the sibling search_locations as the alternative for lookup-by-other-criteria. The only implied usage is 'you already have an ID', which the schema already conveys via the required id.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_locationsCRead-onlyIdempotentInspect
Search for available commercial real estate locations
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number starting at 1. Returns 20 results per page. Use ceil(total / 20) to calculate total pages. | |
| kinds | No | Property type filter (OR logic). Matches locations where the primary kind OR any secondary kind is in the list — a business_center with secondary_kind 'office' will appear for kinds: ['office']. Lease kinds: office, business_center, warehouse, store, coworking, meeting_room, virtual_office, parking. Sale kinds: housing, office, warehouse, store, lot. | |
| query | No | City, district, neighborhood, or street name — resolved via autocomplete search. Examples: 'Copenhagen', 'København', 'Østerbro', 'Vesterbro', 'Nørrebro'. | |
| section | No | Property section. 'lease' (default) for rentals; 'sale' for properties for sale. | |
| sort_by | No | Sort order in 'column|direction' format. E.g. 'yearly_rent_per_m2_amount_from|asc', 'area_from|asc', 'created_at|desc'. | |
| area_max | No | Maximum area in m² (inclusive). Must be greater than or equal to area_min when both are provided. | |
| area_min | No | Minimum area in m² (inclusive). Uses overlap semantics: a location is included if its available range overlaps [area_min, area_max], e.g. a listing offering 50–500 m² will appear for area_min: 400. | |
| currency | No | Currency for rent_min/rent_max values, e.g. EUR, DKK, SEK. Defaults to country's native currency. | |
| rent_max | No | Maximum rent (see rent_format and currency). | |
| rent_min | No | Minimum rent (see rent_format and currency). | |
| facilities | No | Facility keys to filter by (OR logic). Common aliases accepted: cctv, wheelchair, 24h, ev_charging, internet, moving. | |
| rent_format | No | Lease only. 'monthly' (default) = total rent per month; 'yearly' = rent per m²/year. | |
| suitable_for | No | Tenant type suitability filter. | |
| energy_rating | No | Energy rating filter. | |
| country_alpha2 | Yes | ISO 3166-1 alpha-2 country code (lowercase). Always infer from the city or country name — 'Kyiv' or 'Ukraine' → 'ua', 'Stockholm' or 'Sweden' → 'se', 'Berlin' or 'Germany' → 'de', 'Paris' or 'France' → 'fr'. Uppercase is accepted and normalized. Use 'global' ONLY for country-agnostic searches with no location query (e.g. browsing all available countries). Never combine 'global' with a query — geo resolution requires a country. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile fully. The description adds nothing behavioral on top — no result shape, no pagination behavior, no rate limits — so it contributes no value beyond what the structured fields already convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no waste. It is terse to the point of under-specification rather than bloated, so it is concise but arguably too sparse for a 15-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter search tool with no output schema, the description is adequate but thin: it says nothing about what results look like, how filtering combines, or how it relates to get_location. The unusually rich schema descriptions compensate for most parameter gaps, keeping this at a minimum-viable 3.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: all 15 parameters, including complex enum filters, currency handling, and the country_alpha2 inference rules, are documented in the schema itself. The description adds no parameter meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb+resource ('Search for available commercial real estate locations'), which is specific enough to understand the operation. However, it does nothing to distinguish this tool from the sibling get_location, leaving the search-vs-detail boundary to inference from the names alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of alternatives like get_location, and no prerequisites or exclusions. An agent must infer entirely from the tool name that this is the broad listing/search entry point.
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.
3 tool updates
- First observed
create_order - First observed
get_location - First observed
search_locations
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables detection and analysis of pre-public product launches through web search, content extraction, AI-powered scoring, and automated alerting. Provides comprehensive tools for surfacing stealth startup signals before they trend publicly.MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT- AlicenseNot gradedqualityBmaintenanceAnalyze LinkedIn & email outreach campaigns, track pipeline performance, and review lead conversations for RevOps, Sales Managers, and SDR teams.Apache 2.0
- AlicenseAqualityAmaintenanceDetects hiring intent signals by scanning job boards for specific companies. Returns structured role data for outbound sales targeting.1129 npm1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.