cenogram-mcp-server
OfficialServer Quality Checklist
Latest release: v0.6.0
- Disambiguation5/5
Each tool has a clearly distinct purpose: spatial searches (search_transactions, search_by_area, search_by_polygon), statistics (get_price_statistics, get_price_distribution, compare_locations), parcel operations (search_parcels, resolve_parcel, get_parcel_report), and enrichment layers (get_building_breakdown, get_transaction_flood, etc.) are all uniquely identifiable. No two tools overlap significantly.
Naming Consistency5/5All tool names follow a consistent verb_noun pattern in snake_case (e.g., get_market_overview, search_transactions, resolve_parcel). The verbs are predictably chosen for the action (get for data retrieval, search for finding records, list for enumeration, compare for comparison, estimate for valuation). No mixing of conventions.
Tool Count5/5With 23 tools, the set is comprehensive but not excessive. Each tool serves a specific function within the Polish real estate domain, from transaction search to parcel enrichment to demographics. The count feels well-scoped for the server's purpose.
Completeness5/5The tool surface covers the full lifecycle of real estate data exploration: searching transactions (by text, area, polygon), statistics, parcel identification, detailed parcel reports (including multiple enrichment layers), demographics, infrastructure signals, and value estimation. There are no obvious gaps for the stated domain.
Average 4.6/5 across 23 of 23 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- 0 of 1 community issues answered or closed in the last 6 months
- 5 commits in the last 12 weeks
- Last stable release on
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is passing
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
This repository includes a glama.json configuration file.
This server has been verified by its author.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The note explains that median/average prices exclude fractional ownership and non-market deeds, while transaction counts remain complete. This adds behavioral context beyond the readOnlyHint and destructiveHint annotations, informing agents about data quality and exclusions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief, front-loaded with the main purpose, and uses a concise note for important exclusions. Every sentence adds value without repetition or verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with two parameters and no output schema, the description fully covers the output (histogram) and key behavioral notes. No gaps are apparent given the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides descriptions and defaults for both parameters (bins and maxPrice). The description does not add further parameter semantics beyond what the schema covers, so baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a price distribution histogram showing transaction counts per price range, distinguishing it from siblings like get_price_statistics and get_market_overview. The title 'Price Distribution Histogram' further reinforces the specific resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions it is 'useful for understanding the overall market price structure in Poland,' providing context but no explicit comparison to alternatives like get_price_statistics or get_market_overview. No when-not-to-use or alternative tool references are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds value by mentioning autocomplete behavior and specific return fields, but does not disclose further behavioral traits like rate limits or response structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences: function, output, example. No wasted words, front-loaded with key information. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description explains return fields (district, area, GPS coordinates). It covers the essential aspects for a simple search tool, though pagination details implicit in limit param are not elaborated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover both parameters (100% coverage). The description adds an example value for 'q' ('146518_8.01') and clarifies it's a prefix search, providing context beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it searches land parcels by parcel ID prefix with autocomplete, specifies return fields (district, area, GPS coordinates), and distinguishes from sibling tools like search_transactions or search_by_area by focusing on ID prefix matching.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage hint: 'Useful for finding exact parcel IDs, then searching transactions nearby.' This implies a workflow and context, though it does not explicitly state when not to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only indicate readOnlyHint=true and destructiveHint=false. The description adds important behavioral context, including data quality issues (marketType unknown for ~55%, transaction_date missing for ~1.7%) and exclusions in price aggregates (fractional shares, non-market deeds). This is valuable beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a lead sentence, a list of returns, and bullet-pointed notes. It is slightly verbose but each sentence adds value (data quality, price exclusions). Front-loading is effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With zero parameters and no output schema, the description fully compensates by detailing return values and caveats. The tool is well-defined for its purpose as a broad overview, and the caveats about data quality and price calculation are critical for correct interpretation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the input schema provides full coverage. The description adds no extra meaning for parameters, but no additional documentation is needed. The description is complete and clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a 'comprehensive overview of the Polish real estate transaction database' and lists specific data elements (total transaction count, date range, breakdowns, top locations, price statistics). This distinguishes it from siblings like get_price_statistics or get_demographics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for high-level summary but does not explicitly state when to use this over alternatives like search_transactions or get_price_statistics. No exclusion criteria or when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint and destructiveHint. Description adds operational details: hierarchical code mapping, precedence of parent over search, and the return of TERYT codes for use in another tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with bullet points and explicit modes. Slightly verbose but front-loads key information. Could be tightened slightly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers both modes, precedence, code length mapping, and connection to search_transactions. Lacks explicit output format details but sufficient for the tool's purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, providing parameter descriptions. Description supplements with behavioral context: the hierarchical code lengths for parent and the legacy nature of search, plus the precedence rule.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the purpose: browsing locations in two modes (TERYT hierarchy and name search). It distinguishes the tool from siblings by explicitly linking to search_transactions and mentioning 'location' tool for quick city searches.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance on when to use each mode and the precedence rule. Recommends using 'location' for quick city searches, implying an alternative, though the alternative is not named as a sibling tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and destructiveHint=false. The description adds behavioral context: fractional ownership and non-market deeds are excluded from price aggregates, but transaction counts remain complete. This goes beyond annotations by clarifying data filtering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured paragraph with no wasted words. It efficiently covers purpose, prerequisites, example, and a behavioral note. The key action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's 18 parameters and no output schema, the description adequately covers the main purpose, required inputs, and a behavioral exclusion. It hints at output metrics (median, average, counts), which is sufficient for tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema provides detailed parameter info. The description adds value by noting the districts parameter requires 2-5 unique names, and that an additional filter (e.g., propertyType) is needed. This aids correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'compare' and resource 'real estate statistics across multiple locations side-by-side'. It specifies the output metrics (median price/m², average area, transaction counts) and differentiates from siblings like list_locations or get_market_overview by requiring 2-5 districts and an extra filter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs to use list_locations first, requires at least one filter besides districts, and provides an example. While it does not explicitly state when not to use, the context implies it is for multi-location comparison, not single-location stats.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds valuable behavioral details: the three-state coverage with honest semantics, explanation of what each state means, and cost/refund behavior. This goes beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured, starting with the main purpose, then detailing output, state system, usage, and cost. Each sentence is valuable, though slightly verbose; could be tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one parameter and no output schema, the description comprehensively covers the return values (zone data, building parameters, overlays), the three-state coverage, usage guidance, and cost. It leaves no critical gaps for an agent to understand the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for the single parameter (transaction_id), so the schema already provides meaning. The description does not add further parameter-specific information, meeting the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves general-plan zoning for a transaction's land, specifying the output details (zone symbol, name, share, building parameters, overlay areas) and the three-state coverage system, making it distinct from any sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly recommends use for feasibility and permitted-use questions on a plot, and mentions cost/refund conditions. While it does not list alternatives or when-not-to-use, the context is clear given no sibling overlaps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. Description adds behavioral details: permalink construction, field provenance, and that area filters work for all property types. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness3/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is informative but lengthy, including permalink construction and field provenance that could be external documentation. Purpose is front-loaded, but verbosity reduces conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description explains result format (id, location) and permalink usage. It also covers data provenance. Missing explicit output field list, but the permalink hint compensates.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds value beyond schema: radius guide, example, and explanation that area filters work for all property types. This enhances understanding of parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'search' with resource 'real estate transactions' and scope 'within a geographic radius'. Differentiates from siblings by specifying it is best for neighborhood/osiedle searches, which cannot be done with TERYT-based tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance for when to use (neighborhood searches) with radius recommendations. However, it does not explicitly mention when not to use or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide readOnlyHint and destructiveHint. The description adds significant behavioral details: use of open GTFS data, distance caps per mode, two-state absence handling, token cost and refund. These go well beyond annotation information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph with no wasted words. It front-loads the core purpose, then provides necessary details in a logical order: process, caps, edge cases, cost.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple input (one parameter) and no output schema, the description fully covers use case, distance caps, absence behavior, token cost, and refund. It leaves no ambiguity about what the tool returns or how it works.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (transaction_id) with schema description covering its source. The tool description does not add further meaning beyond the schema. Schema coverage is 100%, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it gets 'parcel-by-parcel public transport access breakdown for one transaction,' specifying the resource (transaction), action (get), and scope (parcels, modes, stops). It distinguishes itself from sibling transaction tools by focusing on transit details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use (getting transit access for a transaction) and details behavior like two-state returns and cost. It lacks explicit when-not-to-use or alternative tools, but the specificity among many siblings provides implicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint, destructiveHint), description discloses two-state behavior (no match ≠ non-agricultural), cost (4 tokens refunded when no eligible area), and data source freshness (updated weekly). Adds critical interpretative guidance.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with main purpose, followed by details and important notes. Slightly lengthy but each sentence adds value; well-organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, description explains response structure (eligible area, share, source features, match count, snapshot date). Combined with behavioral notes, provides full understanding for a read-only tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage 100% with parameter description. Description adds context that transaction_id comes from specific search tools (search_transactions, search_by_area, search_by_polygon), aiding correct sourcing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Describes a specific action ('get parcel-by-parcel agricultural land-eligibility breakdown for one transaction') with a clear resource and scope. Distinct from sibling tools which cover other transaction aspects (flood, heritage, etc.).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
States the tool is 'useful for due-diligence on land that is actually eligible/maintained as agricultural'. Provides context on when to use, but does not explicitly mention when not to use or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint and destructiveHint, but the description adds substantial behavioral details: the two-state behavior (no return when no flood zone, with warning that absence is not safety), the cost structure (4 tokens, refunded if no flood data), and the exact data returned (worst hazard category, type, share, full per-scenario list).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with three paragraphs: main purpose, usage guidance, and edge case with cost. It is moderately long but front-loaded with core functionality. Could be slightly more concise but earns a 4.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, but the description comprehensively explains returned data (category, type, share, per-scenario list) and the two-state behavior. For a single-parameter tool, this is fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the single parameter having a clear description. The tool description repeats but does not add new information beyond what the schema provides. Baseline 3 is appropriate as schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get the parcel-by-parcel flood-hazard breakdown for one transaction' with a specific verb and resource. It distinguishes from siblings by noting that search_transactions surfaces inline flood_risk, while this tool splits it into parcels, and search_by_polygon lacks inline flood data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance on when to use: 'Use it after a search when a result shows flood_risk.' It also clarifies that search_transactions and search_by_area provide inline flood_risk, while search_by_polygon does not, providing clear context for alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. Description adds important behavioral details: TWO-STATE (returns nothing if no listing), indicative data caveat, and cost/token refund policy, enhancing transparency beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with purpose first, then usage guidance, then caveats. Slightly verbose with the TWO-STATE explanation and disclaimer, but each sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, description completely explains output structure (per parcel: status, share, individual entries with fields), intended use case, limitations, and cost. No gaps for a getter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only parameter transaction_id is fully covered by schema (100%), but description provides crucial context: it must come from a search result (search_transactions/search_by_area/search_by_polygon), adding meaning beyond the schema's format constraint.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'parcel-by-parcel heritage-listing breakdown for one transaction', differentiating it from sibling tools like search_transactions which only surface inline heritage status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use ('after a search when a result shows a heritage listing'), provides exclusions (search_by_polygon does not include heritage inline), and clarifies that absence of detection is not 'not listed'. Also includes cost and refund behavior.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate read-only and non-destructive. Description adds that intersection means overlap, not that the parcel is a landslide; two-state behavior (empty return when no data); cost of 4 tokens refunded when no data. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
Description is thorough but well-structured. Front-loaded with purpose, then details, usage guidance, and cost. Each sentence adds value, though slightly lengthy. Could be trimmed slightly but still effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given one parameter and no output schema, the description covers all needed context: what the tool does, return data details, when to use, behavioral nuances, and cost. Complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter with 100% schema coverage. Description adds context that the ID comes from search results, but schema already specifies pattern and description. Baseline 3 is appropriate as no extra semantics beyond what schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it gets a parcel-by-parcel landslide-hazard breakdown for one transaction. Distinguishes from siblings by noting that search_transactions and search_by_area surface worst-case inline, while this tool splits into parcels. Also notes that search_by_polygon does not include landslide inline.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly say to use it after a search when a result shows a landslide risk. Describes when not to expect results (no mapped zone returns nothing, not a safety assertion). Also mentions cost and refund conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and destructiveHint=false. The description reinforces this by stating it queries an official registry and lists limitations (parcel identifier dependency, only positive cases). It also discloses cost (4 tokens, refunded when no record) and the two-state behavior. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is somewhat lengthy but well-structured, front-loading the main purpose. Every sentence adds value (e.g., data source, limitations, cost). A minor reduction could improve conciseness, but it remains efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description adequately explains return values (kind, building intent, works type, etc.) and behavior (empty results, cost refund). It covers all necessary context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one parameter (transaction_id) with a schema description that is already clear (UUID from search results). The tool description does not add additional semantics for this parameter beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves building-permit history for one transaction's parcels from an official registry. It specifies the verb 'Get', the resource 'building-permit history', and the scope 'for one transaction's parcels', distinguishing it from other transaction-specific tools like get_transaction_flood or get_transaction_heritage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use it after a search to screen what has been built or approved on the transaction's land', indicating when to use. It also warns that matching is by current parcel identifier so splits/merges break the link, and that only positively resolved cases are included, with empty results not confirming absence of planning. This provides clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description extensively discloses behavioral traits: distances are approximate, measured from plot boundary, 0 means touching/overlapping, search is within fixed radii, and the 'two-state' semantic (null vs assessed=false) is explained. This adds significant value beyond the annotations (readOnlyHint, destructiveHint).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured, front-loading the main purpose, then detailing constraints, state interpretation, and cost. It is slightly verbose but every sentence earns its place, and it avoids redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the single parameter, no output schema, and multiple siblings, the description is remarkably complete: it explains output semantics (null vs assessed=false), radius limits, cost, and intended usage, leaving no critical gaps for an agent to decide to call the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage and only one parameter (transaction_id) already described in the schema, the description adds value by clarifying the UUID's source ('from search_transactions / search_by_area / search_by_polygon result'), but does not introduce new parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves a plot-by-plot surroundings profile for one transaction, listing specific distance categories (cemetery, landfill, etc.) and marking it as useful for due-diligence on nearby nuisances. It distinguishes itself from sibling 'get_transaction_*' tools by specifying the exact data returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly frames the tool as 'useful for due-diligence on nearby nuisances,' providing clear context. It does not, however, directly compare to alternatives or state when not to use it, leaving inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds detailed behavioral traits: costs 1 token refunded on non-match, exact case-insensitive locality matching, truncation flag, and not_covered response. This significantly enriches the agent's understanding beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is fairly long but well-structured, front-loading the purpose and then breaking down methods. Every sentence adds value; however, it could be slightly more compact. Suitable for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description explains return format (list with district, area, coordinates) and edge cases (truncated, not_covered). It also covers token cost and integration with a sibling tool. The description is comprehensive for this complex tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all 4 parameters (100% coverage). Description adds meaning: difference between slash and dash forms for parcelId, free-text format for q, and that lat/lng returns parcel(s) containing the point. This provides useful nuance beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool resolves a land parcel to its cadastral identity, specifies three distinct input methods (parcelId, q, lat/lng), and distinguishes it from siblings by explaining the workflow of feeding the result to search_transactions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance on when to use each parameter and notes mutual exclusivity. Also suggests integration with search_transactions. Lacks explicit 'when not to use' compared to siblings like search_parcels, but context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is clear. The description adds substantial context: coordinate ordering [longitude, latitude], first/last point requirement, max 500 vertices, field provenance (notarial deed default vs computed/approximated values flagged), and permalink construction. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: purpose, usage, permalink details, field provenance. It is a bit long due to the detailed permalink and provenance sections, but each part serves a clear function and the purpose is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with 19 parameters, a nested polygon object, and no output schema, the description covers purpose, usage, polygon format, example, permalink interpretation, and data provenance. This is sufficient for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does 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 provides a GeoJSON example and repeats the coordinate format already specified in the schema, but does not add meaningful new parameter semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Search real estate transactions within a geographic polygon.' It explicitly distinguishes from sibling search_by_area by stating 'Use for precise neighborhood/osiedle boundaries' and 'For quick searches, start with search_by_area instead.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-to-use guidance is provided: 'Use for precise neighborhood/osiedle boundaries.' Alternatives are named: 'For quick searches, start with search_by_area instead.' Also explains how to build a permalink from results, which is useful for sharing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only indicate readOnlyHint=true. The description adds rich behavioral context: data provenance (notarial deed vs computed), data quality issues (55% NULL marketType, 1.7% missing dates), location granularity (TERYT districts only), and permalink shareability. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
Description is well-structured with clear sections: purpose, data notes, permalink, provenance, location scope. Some redundancy (e.g., repeated '8M+ records') could be trimmed, but overall efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 27 parameters and no output schema, the description covers essential context: data source, quality, usage tips, permalink, field provenance, and sibling distinction. Very complete for a complex search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does 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 does not add parameter-specific details beyond schema, but provides contextual usage (e.g., 'Use list_locations first') that indirectly helps. No additional parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it searches Polish real estate transactions from the RCN registry, listing return fields (address, date, price, etc.). It distinguishes from sibling tool search_by_area which handles neighborhoods.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance: use list_locations first, example query, data notes on NULL marketType/missing dates, permalink construction, and advice to filter transactionType for market analysis. Clearly distinguishes from search_by_area.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals critical behaviors beyond annotations: data sources, input precedence (terytr wins), cost (1 token), and known caveats (attribution to seat, thresholds, flag vs. counters). No contradiction with readOnlyHint=true.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear main sentence, bulleted sources, and explanatory notes. It is slightly verbose but every part adds value; front-loading the purpose and key method is effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multiple sources, constraints, no output schema), the description covers all necessary aspects: how to input, what data comes from, known limitations, and cost. An agent can use it correctly without gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning beyond schema: explains how teryt and location work, that teryt wins when both given, and that location aggregates municipalities. It also directs to list_locations for codes, which is helpful context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies the exact signals (infrastructure building in Polish municipalities from three public sources) and distinguishes the tool by detailing the input methods (location vs. teryt) and referencing sibling tool list_locations, making the purpose highly distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use (to get infrastructure signals) and provides known limits (e.g., contracts below EU thresholds, attribution by seat, absence not evidence). However, it does not explicitly compare against sibling tools for when to choose this one over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral traits beyond annotations, such as returning all parent levels (gmina query also yields powiat, NUTS3, voivodeship), cost of 1 token, and the default behavior of omitting year for latest data. Annotations already declare readOnlyHint=true, which the description aligns with, and there is no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with the main purpose. It uses clear paragraphs and introduces technical details (L6, NUTS3) appropriately. However, it is slightly verbose with the full list of categories; while informative, it could be more concise. Still, every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (6 parameters, no output schema, hierarchical location resolution), the description covers the key aspects: data coverage, addressing, behavior, and optional filters. It references sibling tool list_locations. However, it lacks explicit description of the output format (e.g., structure of returned data), which would be helpful for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds significant meaning beyond schema descriptions. It explains mutual exclusivity of year with yearFrom/yearTo, the resolution levels for teryt (voivodeship, county, gmina), and that location resolves to county level unless a 6/7-digit teryt is given. This context greatly aids parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves demographic, economic, housing and other local statistics for Polish locations from GUS BDL. It specifies the data source, coverage (~50 indicators across 11 categories), and the addressing methods (location name or TERYT code). This distinguishes it from sibling tools like search_transactions or get_market_overview.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use location vs teryt, the resolution levels (county vs gmina), and that neighborhoods are not addressable. It explains the behavior when both parameters are given (teryt wins), the optional year/category filtering, and recommends list_locations to find TERYT codes. It also notes the cost of 1 token.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and destructiveHint, but description adds critical context: data source (notarial deeds), coverage gaps, exclusion of fractional ownership and non-market deeds from price aggregates, and retention of transaction counts.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with clear notes, though slightly verbose. Every sentence earns its place, providing essential context without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, description thoroughly covers what statistics are provided, data quality, and exclusions, making it complete for usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter, but description adds valuable behavioral details about auto-expansion and partial matching, going beyond the schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool retrieves price per m² statistics for residential apartments in Poland, distinguishing it from sibling tools like search_transactions which handle other property types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly specifies it only covers residential units and directs to search_transactions for other property types. Also details auto-expansion for major cities and partial match behavior.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds transparency about beta status, token cost, refund on no estimate, data freshness lag, and exclusion of fractional shares, providing a complete picture of behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with sections for purpose, constraints, parameters, returns, and disclaimers. It is slightly verbose but front-loads the main purpose effectively.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 parameters, no output schema), the description covers all aspects: what it returns, how it works, limitations, token cost, and edge cases like insufficient comparables. It is comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds value by explaining why area is required (no floor-area source in Poland), the mutual exclusivity of location parameters, and the effect of optional parameters on narrowing comparables.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool estimates market value of an apartment from comparable transactions. It distinguishes itself from a certified appraisal and from sibling tools like search_transactions or get_price_statistics by focusing on estimation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says when to use (orientation estimate) and when not (not a certified appraisal). It also specifies required parameter (area) and mutually exclusive location parameters (lat/lng or parcelId), providing clear guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true and destructiveHint=false. The description adds important behavioral details: cost of 4 tokens, returns nothing for transactions with no buildings, and explains the output structure. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and well-structured. The first sentence defines purpose and output, the second explains relation to siblings, and the final two provide cost and edge case. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description covers all necessary aspects: purpose, usage, parameter source, cost, and edge case behavior. It is fully self-contained and actionable for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter, and the description adds context beyond the schema regex by stating that transaction_id is 'the id shown on a search result that has building data'. This clarifies the parameter's source and usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'building-by-building breakdown for one transaction', and lists the specific fields returned (footprint area, storeys, total floor area). It distinguishes from sibling search tools by explaining that they return per-transaction sums while this tool provides individual building detail.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool ('after a search when a result has building data and you need the detail'), provides an example ('developed-land deed'), and indirectly tells when not to use it (if the inline sum suffices). It also specifies that the transaction_id comes from search results.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false, so safety is clear. The description adds extensive behavioral detail: cost of 35 tokens, billing model based on outcome (full refund, partial refund, full charge), explanation of section states (covered, covered_no_data, not_covered, not_computed), and input format variations. This goes well beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is comprehensive yet efficient. It front-loads the main purpose, then systematically explains input format, output states, usage recommendations, and billing. Every sentence adds value, and the length is appropriate for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (many layers, sections, sibling tools), the description is remarkably complete. It covers input, output structure (section states), billing, and when to use alternative tools (resolve_parcel). No obvious gaps remain for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage for the single parameter 'parcelId', but the description adds value by explaining the acceptable input forms (natural '/', URL-safe '-', internal UUID) and their origin from search/resolve results. This extra context justifies a 4 over the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves a comprehensive dossier for one land parcel, listing all included data (core, nine enrichment layers, transaction history, price context, municipal context). It distinguishes from sibling tools like per-layer parcel tools by explicitly recommending this tool over calling them individually.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance: 'Prefer this over calling the per-layer parcel tools one by one' and instructions to 'Use resolve_parcel first when you only have an address, a coordinate, or a locality + number'. This directly addresses usage context and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/cenogram/mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server