LandLens rental records
Server Details
Owner of record, code violations, evictions and tenant reviews for US college-town rentals.
- Status
- Healthy
- Uptime
- 100.0% over 43 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
The three search_* tools each target distinct entities (campus, owner, property), and get_property is a clear single-address detail lookup. Slight potential confusion between search_properties (listing) and get_property (single record), but descriptions clarify the boundary well.
All tools follow a clean verb_noun snake_case pattern: search_colleges, search_owners, search_properties, get_property. The get_/search_ distinction is used consistently and predictably.
Four tools is on the lean side but each one earns its place in the read-only discovery flow (find campus, list addresses, inspect a property, find owners). Nothing feels redundant or missing from a count perspective.
The read-only surface covers the main lookup workflow: campus → property list → property detail, plus owner lookup. Minor gaps exist (e.g. no way to fetch a full owner profile or search properties directly by owner), but core agent workflows are supported.
Available Tools
4 toolsget_propertyARead-onlyIdempotentInspect
Everything on file for one address: grade, safety flags, every public record with its source, tenant-reported landlords, aggregate tenant answers, plus the verified reviews.
| Name | Required | Description | Default |
|---|---|---|---|
| property_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnlyHint, idempotentHint, and destructiveHint, and the description adds meaningful context about what the returned payload includes, such as sources and verified reviews. It does not contradict the annotations, and what it adds is genuinely useful for setting agent expectations.
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?
The entire description is a single dense sentence with the main idea front-loaded ('Everything on file for one address') and a concise, delimited list of content groups. There is no filler, repetition, or unnecessary explanation.
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 one-argument read tool, the description gives a reasonably complete picture of the call result without requiring an output schema. It just lacks an explicit note that the property_id should come from a search tool, which is a meaningful gap for a new agent.
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?
The schema has one required property_id with 0% description coverage, so the description should fully clarify the parameter. It suggests the lookup is by address, which creates ambiguity because the parameter name is property_id rather than address, and it does not explain where to obtain a properly formatted property_id.
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 is specific about the resource ('everything on file for one address') and lists distinct content categories such as grade, safety flags, public records, tenant reports, and verified reviews. This clearly differentiates it from the search_* siblings without needing to open any schema.
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?
The description implies it is for retrieving a complete record when a property is already identified, but it never explicitly says to use search_properties first to obtain a property_id. It provides no explicit when-not-to-use guidance or alternative routing, leaving the choice to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_collegesARead-onlyIdempotentInspect
Find a campus id by school name (e.g. "Ohio State" → osu.edu). Campuses with listings come first, with propertyCount. Required before searching addresses.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, closed-world behavior, so the bar is lower. The description still adds real context beyond them: results are ranked so campuses with listings come first, and each hit carries a propertyCount. It omits what happens on no match, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, zero filler, and the core purpose plus example are front-loaded before the workflow note. Every sentence earns its place.
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?
With no output schema, the description usefully discloses the returned identifier and propertyCount plus result ordering. For a single-parameter lookup this is nearly complete; only edge behavior (no results, tie-breaking) is unaddressed.
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 coverage is 0%, so the description must carry the parameter burden, and it largely does: the example shows the query is a free-text school name and hints at fuzzy/abbreviated matching. It does not specify matching rules (partial, case sensitivity), leaving a small gap.
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?
States a concrete verb+resource ('Find a campus id by school name') and reinforces it with a worked example ('Ohio State' → osu.edu). The resource is clearly distinct from the property/owner siblings, though it never names or contrasts them explicitly, which is what a 5 would require.
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?
'Required before searching addresses' gives an explicit workflow prerequisite, telling the agent when this tool must be called. It does not name an alternative or state when-not to use it, so it falls short of a full routing guide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_ownersARead-onlyIdempotentInspect
Find registered owners / contacts from city rental registries by name; returns how many licensed properties each holds near which campus and the page listing them.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds that the tool queries city rental registries and returns licensed-property counts plus a page listing, which is genuinely useful context, but it does not go beyond basic search behavior.
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 dense sentence covers the action, the target source, the input keyword, and the output shape. It is scannable and non-redundant, though it is wordier than strictly necessary.
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?
There is no output schema, so the description rightly explains the return shape—how many licensed properties each owner holds, near which campus, and the page listing. For a one-parameter read-only search tool, this is reasonably complete, though it omits details about match semantics and empty-result behavior.
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?
There is only one required parameter, `query`, and the schema gives no description for it. The description contributes the important semantic that the query is a name, but it does not give formatting, partial-match, or edge-case guidance, so the compensation for the 0% schema coverage is only partial.
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 names a specific verb and resource—search registered owners/contacts in city rental registries by name—and states the return outcomes: licensed property counts, campuses, and the page listing. This distinguishes it clearly from sibling tools like `search_properties` and `search_colleges`.
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?
The description's phrase 'by name' implies the tool is for owner/contact lookup by name. It does not explicitly compare against sibling tools or state when not to use them, leaving alternative routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_propertiesARead-onlyIdempotentInspect
List rental addresses near a campus, filtered by street or house number text. Returns grade (null if unreviewed), review count and record counts.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | ||
| college_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, and non-destructive behavior. The description adds meaningful behavioral details beyond those annotations, including the return fields (grade, review count, record counts) and the null grade behavior for unreviewed properties.
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?
The description is two sentences with no redundancy: the purpose is front-loaded, followed by filtering detail and return-value specifics. Every sentence earns its place.
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?
Given the simple tool shape, rich safety annotations, and no output schema, the description covers the core purpose, filter, and return values. It is complete enough for an agent to make a correct call, though it could add more explicit college_id context or limit semantics.
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?
With 0% schema description coverage, the description must compensate for parameter meaning. It explains query as street/house number text and implies college_id via 'near a campus', but it does not explicitly define college_id or address the limit parameter, leaving a partial semantic gap.
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 clearly states the action ('List rental addresses near a campus') and the resource ('rental addresses'), with a specific filtering mechanism ('street or house number text'). This distinguishes it from siblings like search_colleges and search_owners, which target different entities.
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?
The description implies when to use the tool: when listing rental addresses near a campus and filtering by text. However, it does not explicitly compare it to alternatives like get_property or state when not to use it, leaving the routing decision somewhat implicit.
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.
4 tool updates
- First observed
get_property - First observed
search_colleges - First observed
search_owners - First observed
search_properties
Related MCP Connectors
Building intelligence for NYC, LA, Chicago rentals: violations, 311, reviews, rents, landlords.
U.S. real-estate data: property records, AVM value + rent estimates, sale/rental listings.
US parcels, owners, sales, zoning rules, building permits and zoning cases.
US parcel, zoning, ordinance and permit data, with a Python sandbox to query and map it
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables tenants to report rental repair issues by voice and landlords to be notified instantly, keeping both sides on one append-only, hash-chained timeline with photos, follow-ups, disputes, and dated response-time reports that neither party can quietly alter.MIT
- AlicenseAqualityCmaintenanceEnables apartment hunters to look up any NYC address and pull its public records—HPD housing violations, bed bug filings, 311 heat/noise complaints, and DOB complaints—plus a plain-English red-flag verdict with the top concerns. Read-only, requires no API keys, and works over stdio in any MCP client.3MIT
- FlicenseNot gradedqualityBmaintenanceProvides free property and parcel intelligence using official US government data APIs, county assessor records, and live listings, with tools for hazard risk checks, affordability calculations, and parcel ranking.-
- AlicenseNot gradedqualityDmaintenanceSubmarket-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.1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.