shinnslist
Server Details
Public-record parcel signals for off-market real estate. Free beta; only proven signals listed.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 7 tools
Each tool has a distinct role: single-parcel lookup (check_parcel), multi-parcel search (find_parcels), aggregate counts (town_stats), coverage (list_coverage), signal discovery vs. execution (list_signals vs run_signal), and methodology (explain_grading). The only mild overlap is find_parcels vs. town_stats, both keyed by trade and geography, but the descriptions clearly separate returning parcels from returning counts.
Nearly all names follow a clean verb_noun snake_case pattern (check_parcel, find_parcels, list_coverage, list_signals, run_signal, explain_grading). The lone deviation is town_stats, a noun_noun name, but it remains intuitive and readable alongside the rest.
Seven tools is well within the ideal 3-15 range for a read-only parcel research service. Every tool maps to a needed capability — discovery, detail, aggregate counts, coverage, signal listing/execution, and self-grading — with no filler.
The surface covers the full research lifecycle for off-market parcels: coverage check, area stats, trade-based search, per-parcel detail with signals, signal execution, and grading transparency. Minor gaps exist (no batch/export of a saved list, no pagination or sorting controls mentioned, owner names intentionally excluded for privacy), but core workflows have no dead ends.
Available Tools
7 toolscheck_parcelCheck one parcelARead-onlyIdempotentInspect
One parcel's stored record and its checks: the county value, last sale, years held, lot, zoning line, water, outbuildings, the recorded signs an owner may sell, and (Colorado) every stored check such as tax delinquency, estate records, code cases, permits, wildfire and flood. Find it by shinnslist key, by street address (with ZIP when you have it), or by latitude and longitude.
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | The shinnslist parcel key, like CO|Boulder|R0012345, from an earlier answer. | |
| lat | No | Latitude in decimal degrees, with lng. | |
| lng | No | Longitude in decimal degrees, with lat. | |
| zip | No | The five-digit ZIP, with address. | |
| address | No | A street address, like 874 Cold Spring Rd. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the description's job is to add context — and it does, disclosing the breadth of the returned record and flagging that some checks are Colorado-specific. It stops short of saying what happens on no-match or multiple-match, but against annotation coverage this is solid.
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?
Front-loaded with the core purpose, then a dense but purposeful enumeration of returned fields and lookup modes. The field list is long but each item signals a distinct checkable attribute, so little is wasted; a two-sentence split would improve scanability.
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 carries the burden of describing return content and does so thoroughly, including jurisdiction caveats. The remaining gap is failure/ambiguity behavior and whether results differ when looked up by coordinates versus address.
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 100% and each parameter already documents its own format, so the baseline applies. The description adds only modest value: the pairing hints (lat with lng, zip with address) and the note that the key comes from an earlier answer.
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?
Opens with a precise statement of the resource and scope: 'One parcel's stored record and its checks', then enumerates exactly what is returned (county value, last sale, years held, lot, zoning, water, outbuildings, sellable signs, plus Colorado checks). The singular 'one parcel' implicitly contrasts with the plural sibling find_parcels, so an agent can tell which to reach for.
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 final sentence gives three lookup routes and a conditional hint ('with ZIP when you have it', key 'from an earlier answer'), which is useful invocation guidance. However, it never states when to use this tool instead of find_parcels or run_signal, nor what to do if the address is ambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_gradingExplain gradingARead-onlyIdempotentInspect
How shinnslist grades itself, in plain words: personas open only after a hand check against county records, signals proven only by a test against their live source, the daily ranking graded against what actually sells, and how close the value estimate comes to real sale prices (the buyer-price floor is the bar). Returns the current numbers and the page to cite.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, openWorldHint=false, and destructiveHint=false, so safety is covered. The description adds useful behavioral context by disclosing the grading criteria, that it returns current numbers, and that it returns a page to cite.
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?
It front-loads the purpose, then elaborates the grading dimensions in a compact sentence and closes with return information. The wording is dense but has no filler; the main criteria and return behavior are stated efficiently.
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 parameters, strong safety annotations, and no output schema, the description provides enough detail for an agent to understand the tool's explanatory scope and what it returns. It covers the grading components, current numbers, and citation page, leaving no significant gap for this simple read-only tool.
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 tool has zero parameters, so the rubric baseline is 4. There are no parameters for the description to explain, and the schema is empty, so no additional parameter semantics are needed.
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?
It states a specific resource and action: explaining how shinnslist grades itself, naming personas, signals, ranking, and value estimates. This is clearly distinct from sibling data-access tools such as check_parcel, list_signals, and find_parcels because it provides methodology rather than raw retrieval.
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 should be used when an agent needs to explain or cite the grading methodology, but it does not explicitly say when to use it versus alternatives or when not to use it. No sibling tools or exclusions are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_parcelsFind off-market parcelsARead-onlyIdempotentInspect
Find off-market parcels in a Colorado or Virginia county, town or ZIP from county records: who is likely to sell and why. Pick a trade for a buyer's list: wholesaler (absentee owners, held 10+ years, bought for under half of today's value), flipper (dated homes next to updated sales), str_investor (mountain-town homes with absentee owners), developer (land is most of the value), cash_investor and brrr (rent against value), land (empty lots), two_households (a family compound: room for two households), realtor (estate, tax lien, code case or stalled permit). Returns parcels with address, county value, last sale, years held and a shinnslist link; never owner names.
| Name | Required | Description | Default |
|---|---|---|---|
| zip | No | A five-digit ZIP code. | |
| town | No | A Colorado or Virginia town or city name, for example Lyons or Estes Park. Matched to the parcels within about five miles of the town. | |
| limit | No | How many parcels to return, at most 25 (default 10). | |
| state | No | CO or VA. Optional when county or zip is given. | |
| trade | No | The buyer's trade: one of the doors above. Omit for every parcel in the area. | |
| wells | No | Colorado only: a well permit on the lot. | |
| county | No | County name as the county files it, for example Boulder, Larimer, Weld, Jefferson, Adams, Broomfield, Summit, Eagle, Grand (Colorado) or Henrico, Chesterfield (Virginia). | |
| offset | No | Skip this many parcels first (paging). | |
| min_beds | No | At least this many bedrooms on the assessor's record. | |
| teardown | No | A teardown: an old or small house on land worth most of the value. | |
| duplex_ok | No | Zoning allows a duplex on the lot by right. | |
| max_value | No | The county value is at most this many dollars. | |
| min_value | No | The county value is at least this many dollars. | |
| max_tenure | No | Held at most this many years. | |
| min_tenure | No | Held at least this many years since the last recorded sale. | |
| water_rights | No | Colorado only: a decreed water right whose point of diversion is on the lot. Virginia has no water rights to own. | |
| max_year_built | No | Built in this year or earlier. | |
| min_year_built | No | Built in this year or later. | |
| max_finished_sf | No | At most this many finished square feet. | |
| min_finished_sf | No | At least this many finished square feet. | |
| max_drive_city_mins | No | At most this many minutes by road to the nearest city. | |
| max_drive_town_mins | No | At most this many minutes by road to the nearest town with a grocery store. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly, idempotent, non-destructive), so the description appropriately spends its effort on domain-specific behavior: it returns address, county value, last sale, years held, and a shinnslist link, and it explicitly states 'never owner names.' That privacy constraint is meaningful context beyond the annotations, though it does not discuss rate limits or paging 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?
The definition is front-loaded with purpose and has no filler sentences, and the trade definitions are relevant for a 22-parameter tool. The second sentence is very dense and could be more scannable as a list, but it still earns its space by explaining the trade enum.
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 tool's complexity, 22 optional parameters, and lack of an output schema, the description is complete enough to support selection and invocation. It defines the domain concept, explains the trade filter, lists the returned fields, and notes the owner-name limitation.
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 100%, so most parameter documentation is already handled. The description still adds real meaning beyond the enum by defining what each trade value means in underwriting terms — e.g., wholesaler as absentee owners held 10+ years, developer as land being most of value — which helps an agent choose the right enum value.
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 and resource — 'Find off-market parcels' — plus geographic scope (Colorado or Virginia county, town, or ZIP) and source (county records). It also clarifies the output intent by framing results as buyer-list candidates ranked by likely sellers, which distinguishes it from a single-parcel detail or town-statistics tool.
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?
It gives clear selection guidance for the main behavioral choice: pick a trade category for a buyer's list, or omit trade to return every parcel in the area. The trade definitions provide concrete when-to-use context. It does not explicitly name sibling tools or state when not to use this tool, which keeps it below a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_coverageList coverageARead-onlyIdempotentInspect
Which counties and cities shinnslist covers, how many parcels each holds, how fresh they are, which buyer's trades are open, and how many signals are proven. Call it first when unsure whether an area is covered.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the safe-read profile (readOnly, idempotent, non-destructive, closed-world), so the description needn't repeat it. It adds value by disclosing the actual content returned — parcel volumes, data freshness, open trades, proven signals — which is important since there is no output schema. It doesn't mention result size, pagination, or formatting.
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 sentence that front-loads the resource and then the contents, ending with the call-first advice. Dense but every clause adds information; only minor trimming would improve it.
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 parameters, no output schema, and annotations already covering safety, the description carries the return-value burden and does so by enumerating the fields an agent can expect. Missing only detail on output shape or size, which is a minor gap for a zero-arg discovery tool.
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 are zero input parameters, so there is nothing to disambiguate; baseline 4 applies. The description correctly implies the tool takes no arguments by framing itself as a global coverage inventory.
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 the concrete resource (coverage of counties/cities in shinnslist) and enumerates what the listing reports: parcel counts, data freshness, open buyer trades, and proven signal counts. It's clearly a read-oriented inventory tool, distinguishable from siblings like find_parcels or list_signals, though it never names a sibling explicitly.
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?
Provides an explicit trigger: 'Call it first when unsure whether an area is covered.' That gives the agent a clear entry-point condition. It stops short of stating when NOT to use it or naming which sibling to use for specific lookups once coverage is confirmed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_signalsList proven signalsARead-onlyIdempotentInspect
The signals shinnslist has proven against their live public source, with the date, precision and recall of each proof. Only proven signals are listed; run one with run_signal. Nothing pending or planned appears here.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds genuine value beyond that by disclosing the return contents (date, precision, recall per proof) and the strict filtering rule that only proven signals appear. It does not mention ordering, size limits, or whether results can change over time, 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, front-loaded with what is returned and its fields, then the sibling pointer, then the exclusion. Every sentence carries distinct information with no repetition of the tool name or title.
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 parameters, no output schema and annotations covering the safety profile, the description supplies the remaining essentials: what each record contains and what is deliberately omitted. Nothing an agent needs in order to call this correctly is missing.
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 tool takes zero parameters, so the baseline is 4. There is nothing for the description to disambiguate, and it correctly does not invent any input guidance.
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 clearly that this returns signals proven against a live public source, along with proof date, precision and recall, and explicitly excludes pending or planned items. The verb is implied rather than stated (it reads as a noun phrase, 'The signals ... has proven'), and the term 'shinnslist' is an unexplained proper noun, so an agent gets the resource and scope but must infer the list action from the tool name.
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?
It names the sibling that takes over the next step ('run one with run_signal'), which is a concrete when-to-use-this-vs-alternative pointer. It also carves out what is not here ('Nothing pending or planned appears here'), but gives no guidance about the other siblings (check_parcel, find_parcels, list_coverage) that an agent might confuse with this one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_signalRun a proven signalARead-onlyIdempotentInspect
Run one proven signal adapter live at a point in Colorado or Virginia (see list_signals for the ids). Needs an API key (x-api-key; a free key from POST /api/keys) and counts against its daily quota; the aggregate tools above do not.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | Latitude in decimal degrees. | |
| lng | Yes | Longitude in decimal degrees. | |
| signal | Yes | A proven signal id from list_signals, like tax_delinquency_early_warning. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description adds critical operational context: authentication via x-api-key, a free key source at POST /api/keys, and the fact that this tool consumes daily quota while aggregate tools do not. It also makes clear the call is live and geographically scoped.
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 dense sentences with zero filler. The core action and location scoping are front-loaded, followed by the essential authentication, quota, and sibling reference details.
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 live read-only tool with no output schema and fully described parameters, the definition covers authentication, quota impact, geographic scope, and how to find valid signal ids. The only notable gap is that it does not describe what a live signal run returns, which would help an agent interpret the result.
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 100% schema description coverage, the schema already documents lat, lng, and signal. The description adds value by restricting the point to Colorado or Virginia and giving an example signal id, but it does not add further meaning beyond that geographic constraint.
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 and resource: running one proven signal adapter live at a point in Colorado or Virginia. It also differentiates from siblings by pointing to list_signals for ids and contrasting with aggregate tools, so an agent can distinguish its role immediately.
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?
It clearly says to see list_signals for valid signal ids and notes that aggregate tools do not count against the daily quota, implying when to choose this live single-point tool over aggregates. The guidance is strong, though it does not explicitly state when not to use it beyond the aggregate contrast.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
town_statsArea parcel countsARead-onlyIdempotentInspect
How many parcels shinnslist tracks in a county, town or ZIP, with the count behind each buyer's trade (wholesaler, flipper, STR investor, developer, cash investor, land, family compound, realtor) and the as-of date. Counts come from county records, never estimates.
| Name | Required | Description | Default |
|---|---|---|---|
| zip | No | A five-digit ZIP code. | |
| town | No | A town or city name (parcels within about five miles). | |
| state | No | CO or VA. Optional when county or zip is given. | |
| county | No | County name as the county files it. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, closed-world and non-destructive, so safety is covered. The description adds genuinely new behavioral context: counts derive from county records and are 'never estimates', and results carry an as-of date, which sets accuracy and freshness expectations beyond structured fields.
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?
Two sentences, front-loaded with the core count action; the buyer-trade list is long but informative. Slightly run-on structure keeps it from a 5, but no sentence is wasted.
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 sketches the return shape (per-buyer-trade counts plus as-of date) and data provenance. The remaining gap is that all parameters are optional and the description never says which locator is required or what happens with no arguments.
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 each parameter (zip, town, state, county) is documented there, so baseline 3 applies. The description restates county/town/ZIP but omits the state enum and the precedence between overlapping locators, adding nothing the schema lacks.
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 specific verb+resource (count parcels tracked) and the geographic grains (county, town, ZIP), plus the breakdown dimension (buyer trade) and as-of date. It never names the sibling it is contrasted with (find_parcels, check_parcel, list_coverage), so the aggregate-vs-list distinction must be inferred.
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?
Usage is only implied: 'How many parcels...' signals a counting/summary call rather than a parcel listing. There is no explicit when-to-use/when-not guidance against find_parcels, check_parcel, or list_coverage, and no statement about what to do when an area has no coverage.
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.
7 tool updates
- First observed
check_parcel - First observed
explain_grading - First observed
find_parcels - First observed
list_coverage - First observed
list_signals - First observed
run_signal - First observed
town_stats
Related MCP Connectors
Typed US real-estate feeds: deals, signals, leads. Empty is explained, never pay for a blank.
- mcpOAuthai.parceled
Real estate data for AI agents: US parcel boundaries (tiles), owners, sale history, permits, hail.
US parcels and building permits from public sources. No owner data. Pay per record or monthly plan.
DwellData: typed US real-estate feeds — deals, distress, auctions, leads, address lookup.
Related MCP Servers
- 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.-

EstateTrace MCP Serverofficial
AlicenseNot gradedqualityCmaintenanceEnables Claude Desktop, Cursor, and autonomous AI agents to discover, score, and purchase exclusive off-market pre-probate and inheritance property signals before court filings, with per-lead exclusivity, zero PII at rest, and Base L2 USDC machine settlement. Provides tools for inventory search, signal discovery, machine checkout via HTTP 402, on-chain settlement verification, and reservation status checks across 44 states.MIT- FlicenseNot gradedqualityFmaintenanceFrench real estate data platform for AI agents. Identifies property owners likely to sell and tracks behavioral signals on active listings. Coverage: metropolitan France.-
- AlicenseAqualityAmaintenanceOwner, APN and address lookup across 479 US counties (494 verified ArcGIS REST endpoints, all 50 states plus DC), plus city code-violation, building-permit and zoning-case datasets. No API key; built on public county GIS data.44930 npm1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.