Wisconsin: Parcel Search by Attribute
wisconsinparcels/query-features
Searches Wisconsin parcels by site address, municipality, ZIP, parcel id, tax parcel id or county, from the Wisconsin Statewide Parcel Map Database (V12) polygon layer, about 3.6 million parcels aggregated from county land records. Returns up to 100 records per page with the parcel and tax parcel ids, tax roll year, site address, municipality, ZIP and county, assessed total, land and improvement values, property class, assessed acres and the parcel centre coordinates (owner names and mailing addresses are not returned). Matching is case-insensitive and finds the text anywhere in the chosen column. Says when more rows remain. Data from the Wisconsin Statewide Parcel Map Database (V12), created by the Wisconsin State Cartographer's Office and administered by the Wisconsin Land Information Program. Passed through unmodified and served by Eden Engine; not an official State of Wisconsin product.
Price
$0.0026 per call
You pay the price shown. If a call turns out to cost more than its quote, you pay the actual price, capped at twice the quote. No monthly minimum. Top-ups start at $0.50.
Data source
Wisconsin State Cartographer's Office
Data from the Wisconsin Statewide Parcel Map Database (V12), created by the Wisconsin State Cartographer's Office and administered by the Wisconsin Land Information Program. Passed through unmodified and served by Eden Engine; not an official State of Wisconsin product.
Use it
Five steps: search, inspect, learn, run, settle. No per-tool setup; your agent reaches this tool through the meta-tools it already has.
Connect once and your AI can find and run this tool, and any other it needs.
// 1. search: find the tool
omnial_search({ query: "what you need" })
// 2. inspect: price and input schema
omnial_inspect({ tool: "wisconsinparcels/query-features" })
// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "wisconsinparcels/query-features" })
// 4. run: price the exact call first, then run it
omnial_execute({ tool: "wisconsinparcels/query-features", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "wisconsinparcels/query-features", input: { /* ... */ } })
// 5. settle: the call is charged when it finishes, nothing to doNot connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.
Pricing
Every charge this tool can incur.
| Charge | Price |
|---|---|
Per call | $0.0026 |
- Updated
- Oct 25, 2026
Input and output schemas
Input schema
{
"type": "object",
"required": [
"field",
"value"
],
"properties": {
"field": {
"enum": [
"SITEADRESS",
"PLACENAME",
"ZIPCODE",
"PARCELID",
"TAXPARCELID",
"CONAME"
],
"type": "string",
"description": "Column to search: SITEADRESS (site address), PLACENAME (municipality), ZIPCODE, PARCELID, TAXPARCELID or CONAME (county, in capitals)."
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 100,
"minimum": 1,
"description": "Most rows to return in one call, 1 to 100. Defaults to 10."
},
"value": {
"type": "string",
"pattern": "^(?!.*--)[A-Za-z0-9 .,#/&-]{1,100}$",
"description": "Text to find anywhere in the chosen column, 1 to 100 characters: letters, digits, spaces and . , # / & - only, no double hyphen. Case does not matter."
},
"offset": {
"type": "integer",
"maximum": 100000,
"minimum": 0,
"description": "Number of matching rows to skip, for the next page. Leave out for the first page."
}
},
"additionalProperties": false
}Output schema
{
"type": "object",
"required": [
"features"
],
"properties": {
"fields": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
},
"description": "Field definitions (name, alias, type) for the attributes below; the upstream leaves them out of an empty answer."
},
"features": {
"type": "array",
"items": {
"type": "object",
"required": [
"attributes"
],
"properties": {
"attributes": {
"type": "object",
"required": [
"OBJECTID"
],
"properties": {
"CONAME": {
"type": [
"string",
"null"
],
"description": "County name in capitals."
},
"ZIPCODE": {
"type": [
"string",
"null"
],
"description": "Site ZIP code; null when not supplied."
},
"IMPVALUE": {
"type": [
"number",
"null"
],
"description": "Assessed improvement value in dollars; null when not supplied."
},
"LATITUDE": {
"type": [
"number",
"null"
],
"description": "Parcel centre latitude (WGS84); null when not supplied."
},
"LNDVALUE": {
"type": [
"number",
"null"
],
"description": "Assessed land value in dollars; null when not supplied."
},
"OBJECTID": {
"type": "integer",
"description": "Layer row id."
},
"PARCELID": {
"type": [
"string",
"null"
],
"description": "Parcel identifier as the county assigns it."
},
"ASSDACRES": {
"type": [
"number",
"null"
],
"description": "Assessed acres; null when not supplied."
},
"LONGITUDE": {
"type": [
"number",
"null"
],
"description": "Parcel centre longitude (WGS84); null when not supplied."
},
"PLACENAME": {
"type": [
"string",
"null"
],
"description": "Municipality name, for example TOWN OF DELL PRAIRIE; null when not supplied."
},
"PROPCLASS": {
"type": [
"string",
"null"
],
"description": "Property class code(s), as text; null when not supplied."
},
"SITEADRESS": {
"type": [
"string",
"null"
],
"description": "Site (situs) address; null when not supplied."
},
"TAXPARCELID": {
"type": [
"string",
"null"
],
"description": "Tax parcel identifier; null when it equals PARCELID or is not supplied."
},
"TAXROLLYEAR": {
"type": [
"string",
"null"
],
"description": "Tax roll year, as text; null for right-of-way records."
},
"CNTASSDVALUE": {
"type": [
"number",
"null"
],
"description": "Total assessed value in dollars (land plus improvements); null when not supplied."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
},
"fieldAliases": {
"type": "object",
"additionalProperties": true
},
"geometryType": {
"type": "string"
},
"displayFieldName": {
"type": "string"
},
"spatialReference": {
"type": "object",
"additionalProperties": true
},
"objectIdFieldName": {
"type": "string"
},
"exceededTransferLimit": {
"type": "boolean",
"description": "True when more rows matched than were returned; call again with a higher offset."
}
},
"description": "The ArcGIS query response: `features` holds one record per match under `attributes`; an empty `features` list means nothing matched; `exceededTransferLimit` is true when more rows matched than were returned.",
"additionalProperties": true
}