Massachusetts Property Assessments by Where Clause (MassGIS)
massgis/query-assessments
Massachusetts assessor records from the MassGIS Property Tax Parcels service: site address, city, ZIP, use code, assessed land, building and total value, fiscal year, last sale price and date, year built, and the parcel id (LOC_ID) that links to MassGIS Parcel Lookup. Filter with a where clause on fields such as CITY, ZIP, SITE_ADDR, USE_CODE, TOTAL_VAL and LOC_ID; returns up to 500 records per call (25 by default). The assessing extract is an as-is copy of assessor records and contains errors and discrepancies; owner names and mailing addresses are never requested. MassGIS data, passed through unmodified and served by Eden Engine; not an official MassGIS 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 $5.
Data source
MassGIS (Bureau of Geographic Information)
Data from MassGIS (Bureau of Geographic Information), Commonwealth of Massachusetts EOTSS; MassGIS data are in the public domain per mass.gov/info-details/massgis-frequently-asked-questions. Source credit: "MassGIS (Bureau of Geographic Information), Commonwealth of Massachusetts EOTSS". Served by Eden Engine; not an official MassGIS 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: "massgis/query-assessments" })
// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "massgis/query-assessments" })
// 4. run: price the exact call first, then run it
omnial_execute({ tool: "massgis/query-assessments", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "massgis/query-assessments", 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 20, 2026
Input and output schemas
Input schema
{
"type": "object",
"required": [
"where"
],
"properties": {
"limit": {
"type": "integer",
"default": 25,
"maximum": 500,
"minimum": 1,
"description": "Maximum number of records to return, 1 to 500. Defaults to 25."
},
"where": {
"type": "string",
"pattern": "^(?:(?:SITE_ADDR|CITY|ZIP|USE_CODE|TOTAL_VAL|LAND_VAL|BLDG_VAL|FY|LS_PRICE|LS_DATE|YEAR_BUILT|LOC_ID)\\s*(?:=|<>|<=|>=|<|>)\\s*(?:'(?:[^']|'')*'|-?[0-9]+)|(?:SITE_ADDR|CITY|ZIP|USE_CODE|TOTAL_VAL|LAND_VAL|BLDG_VAL|FY|LS_PRICE|LS_DATE|YEAR_BUILT|LOC_ID)\\s+LIKE\\s+'(?:[^']|'')*'|(?:SITE_ADDR|CITY|ZIP|USE_CODE|TOTAL_VAL|LAND_VAL|BLDG_VAL|FY|LS_PRICE|LS_DATE|YEAR_BUILT|LOC_ID)\\s+IN\\s*\\(\\s*(?:'(?:[^']|'')*'|-?[0-9]+)(?:\\s*,\\s*(?:'(?:[^']|'')*'|-?[0-9]+))*\\s*\\))(?:\\s+(?:AND|OR)\\s+(?:(?:SITE_ADDR|CITY|ZIP|USE_CODE|TOTAL_VAL|LAND_VAL|BLDG_VAL|FY|LS_PRICE|LS_DATE|YEAR_BUILT|LOC_ID)\\s*(?:=|<>|<=|>=|<|>)\\s*(?:'(?:[^']|'')*'|-?[0-9]+)|(?:SITE_ADDR|CITY|ZIP|USE_CODE|TOTAL_VAL|LAND_VAL|BLDG_VAL|FY|LS_PRICE|LS_DATE|YEAR_BUILT|LOC_ID)\\s+LIKE\\s+'(?:[^']|'')*'|(?:SITE_ADDR|CITY|ZIP|USE_CODE|TOTAL_VAL|LAND_VAL|BLDG_VAL|FY|LS_PRICE|LS_DATE|YEAR_BUILT|LOC_ID)\\s+IN\\s*\\(\\s*(?:'(?:[^']|'')*'|-?[0-9]+)(?:\\s*,\\s*(?:'(?:[^']|'')*'|-?[0-9]+))*\\s*\\)))*$",
"maxLength": 500,
"minLength": 1,
"description": "A filter on the table's public fields, written as SQL: comparisons joined by AND / OR, for example CITY='BOSTON' AND ZIP='02116'. Each comparison is FIELD with =, <>, <, <=, >, >=, LIKE 'text%' or IN ('a','b'). Field names are upper case; strings are single-quoted with a quote inside a value doubled; numbers are bare. Fields: SITE_ADDR, CITY, ZIP, USE_CODE, TOTAL_VAL, LAND_VAL, BLDG_VAL, FY, LS_PRICE, LS_DATE (YYYYMMDD text), YEAR_BUILT, LOC_ID. Functions, sub-queries and owner fields are refused."
}
},
"additionalProperties": false
}Output schema
{
"type": "object",
"required": [
"results"
],
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"attributes": {
"type": "object",
"properties": {
"FY": {
"type": [
"integer",
"null"
],
"description": "Fiscal year of the assessment."
},
"ZIP": {
"type": [
"string",
"null"
]
},
"CITY": {
"type": [
"string",
"null"
]
},
"LOC_ID": {
"type": [
"string",
"null"
],
"description": "MassGIS parcel id; pass it to MassGIS Parcel Lookup."
},
"LS_DATE": {
"type": [
"string",
"null"
],
"description": "Last sale date, YYYYMMDD."
},
"BLDG_VAL": {
"type": [
"integer",
"null"
]
},
"LAND_VAL": {
"type": [
"integer",
"null"
]
},
"LS_PRICE": {
"type": [
"integer",
"null"
],
"description": "Last sale price, dollars; 0 when none is recorded."
},
"USE_CODE": {
"type": [
"string",
"null"
],
"description": "Massachusetts property use code."
},
"SITE_ADDR": {
"type": [
"string",
"null"
]
},
"TOTAL_VAL": {
"type": [
"integer",
"null"
],
"description": "Total assessed value, dollars."
},
"YEAR_BUILT": {
"type": [
"integer",
"null"
]
}
},
"description": "One assessor record. Dollar values are integers; LS_DATE is a YYYYMMDD string; a field the assessor left blank is null.",
"additionalProperties": true
}
},
"additionalProperties": true
}
}
},
"description": "The matching assessor records, each wrapped under `attributes` as the ArcGIS service sends them. Empty when nothing matches.",
"additionalProperties": true
}