Koskamo

GetParcelData MCP

An official MCP server providing access to US parcel boundary and assessor data for over 161 million parcels. It enables AI agents to perform lookups by APN, point, radius, or polygon, check coverage, and retrieve pricing information, integrating seamlessly with the vendor's REST API infrastructure.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

GetParcelData MCP logo, by GetParcelDataVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-07Operated by GetParcelData
You need:Free API key: 100 credits, no card, one per email addressAuthorization: Bearer <key>Sign-in with OAuth is not available yet
MCP endpoint (Streamable HTTP)
https://api.getparceldata.com/mcp
Vendor documentation

What its tools do

7 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

7 of 7 have a description · 7 of 7 declare behavior hints · 6 of 6 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Passed Official MCP Registry namespace is tied to getparceldata.com ·
  • Passed Endpoint is on the registry namespace domain ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Find parcels by APN, county, and state
  • Retrieve parcel data at a specific latitude and longitude
  • Identify parcels within a defined radius
  • Check if a county is covered by the dataset

Source and maintenance

Vendor evidenceRegistry 1.0.0

Protocol and capabilities

Server
GetParcelData 1.30.0
MCP protocol negotiated in check
2025-11-25
Tools
7 advertised
Resources
0 advertised
Resource templates
0 advertised
Prompts
0 advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  },
  "prompts": {
    "listChanged": false
  },
  "resources": {
    "subscribe": false,
    "listChanged": false
  },
  "experimental": {}
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

US parcel boundaries and assessor data (owner, address, assessed values, land use, zoning and building statistics). Free tools need no key: check_coverage, get_pricing and preview_area. The find_parcels_* tools need an API key sent as 'Authorization: Bearer <key>' and use credits from a GetParcelData API plan. Geometry is WKT in EPSG:4326. Free samples are given on request at https://getparceldata.com/pricing#sample.

Tools

7 advertised

check_coverage — Check county coverage
Advertised by the server during the last successful anonymous check.
Advertised read-only

Free, no API key. Says whether a county is in the current data release, or lists every covered county in a state when no county is given. Parcel lookups in counties that are not covered cost no credits.

check_coverage input schema
{
  "type": "object",
  "title": "check_coverageArguments",
  "required": [
    "state"
  ],
  "properties": {
    "state": {
      "type": "string",
      "title": "State",
      "description": "USPS code, state name or 2-digit state FIPS, e.g. 'TX'"
    },
    "county": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "County",
      "default": null,
      "description": "Optional county name, 3-digit county code or 5-digit FIPS"
    }
  }
}
check_coverage annotations
{
  "title": "Check county coverage",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_pricing — Get prices and plans
Advertised by the server during the last successful anonymous check.
Advertised read-only

Free, no API key. Returns the monthly API plans (price, included credits, overage per credit, rate limit), the credit cost of each lookup type and the one-off extract downloads. Statewide and nationwide licences are quoted at https://getparceldata.com/pricing.

get_pricing input schema
{
  "type": "object",
  "title": "get_pricingArguments",
  "properties": {}
}
get_pricing annotations
{
  "title": "Get prices and plans",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
preview_area — Count parcels in an area
Advertised by the server during the last successful anonymous check.
Advertised read-only

Free, no API key. Counts the parcels inside a bounding box, lists the counties it touches, and says whether the area fits the $49 extract of up to 5,000 parcels. Each side of the box can be up to 2 degrees. Limited to 30 requests per IP address per minute.

preview_area input schema
{
  "type": "object",
  "title": "preview_areaArguments",
  "required": [
    "west",
    "south",
    "east",
    "north"
  ],
  "properties": {
    "east": {
      "type": "number",
      "title": "East",
      "maximum": 180,
      "minimum": -180,
      "description": "Eastern longitude, EPSG:4326"
    },
    "west": {
      "type": "number",
      "title": "West",
      "maximum": 180,
      "minimum": -180,
      "description": "Western longitude, EPSG:4326"
    },
    "north": {
      "type": "number",
      "title": "North",
      "maximum": 90,
      "minimum": -90,
      "description": "Northern latitude, EPSG:4326"
    },
    "south": {
      "type": "number",
      "title": "South",
      "maximum": 90,
      "minimum": -90,
      "description": "Southern latitude, EPSG:4326"
    }
  }
}
preview_area annotations
{
  "title": "Count parcels in an area",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
find_parcels_by_apn — Find parcels by APN
Advertised by the server during the last successful anonymous check.
Advertised read-only

Finds parcels by assessor parcel number (APN) in one county. Costs 1 credit per completed request, including no_match and ambiguous results. Up to 100 parcels per request. Validate each candidate before using it. Needs an API key. Lookups in counties we do not cover and failed requests cost no credits. Returns parcel records with WKT boundaries in EPSG:4326, owner, address, assessed values, land use and zoning where the county publishes them.

find_parcels_by_apn input schema
{
  "type": "object",
  "title": "find_parcels_by_apnArguments",
  "required": [
    "apn",
    "county"
  ],
  "properties": {
    "apn": {
      "type": "string",
      "title": "Apn",
      "maxLength": 256,
      "minLength": 1,
      "description": "APN, with any leading zeros"
    },
    "limit": {
      "type": "integer",
      "title": "Limit",
      "default": 20,
      "maximum": 100,
      "minimum": 1,
      "description": "Parcels per request, 1 to 100"
    },
    "state": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "State",
      "default": null,
      "description": "USPS code, state name or 2-digit FIPS; needed with a county name"
    },
    "county": {
      "type": "string",
      "title": "County",
      "maxLength": 128,
      "minLength": 1,
      "description": "County name, 5-digit FIPS or 3-digit county code"
    },
    "offset": {
      "type": "integer",
      "title": "Offset",
      "default": 0,
      "minimum": 0,
      "description": "Parcels to skip; each page is a new, charged request"
    },
    "match_mode": {
      "enum": [
        "normalized",
        "exact",
        "contains"
      ],
      "type": "string",
      "title": "Match Mode",
      "default": "normalized",
      "description": "normalized ignores punctuation and case; exact needs the original identifier; contains (alpha) finds identifiers containing the input"
    }
  }
}
find_parcels_by_apn annotations
{
  "title": "Find parcels by APN",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
find_parcels_at_point — Find parcels at a point
Advertised by the server during the last successful anonymous check.
Advertised read-only

Finds the parcels that contain a latitude and longitude. Costs 1 credit per request, however many parcels come back. Up to 1,000 parcels per request. Needs an API key. Lookups in counties we do not cover and failed requests cost no credits. Returns parcel records with WKT boundaries in EPSG:4326, owner, address, assessed values, land use and zoning where the county publishes them.

find_parcels_at_point input schema
{
  "type": "object",
  "title": "find_parcels_at_pointArguments",
  "required": [
    "lat",
    "lng"
  ],
  "properties": {
    "lat": {
      "type": "number",
      "title": "Lat",
      "maximum": 90,
      "minimum": -90,
      "description": "Latitude, decimal degrees"
    },
    "lng": {
      "type": "number",
      "title": "Lng",
      "maximum": 180,
      "minimum": -180,
      "description": "Longitude, decimal degrees"
    },
    "limit": {
      "type": "integer",
      "title": "Limit",
      "default": 20,
      "maximum": 1000,
      "minimum": 1,
      "description": "Parcels per request, 1 to 1,000"
    },
    "offset": {
      "type": "integer",
      "title": "Offset",
      "default": 0,
      "minimum": 0,
      "description": "Parcels to skip; each page is a new, charged request"
    }
  }
}
find_parcels_at_point annotations
{
  "title": "Find parcels at a point",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
find_parcels_in_radius — Find parcels within a radius
Advertised by the server during the last successful anonymous check.
Advertised read-only

Finds every parcel within a radius of a point, nearest first. Costs 3 credits per request, however many parcels come back. Radius up to 5,000 metres. Up to 1,000 parcels per request. Needs an API key. Lookups in counties we do not cover and failed requests cost no credits. Returns parcel records with WKT boundaries in EPSG:4326, owner, address, assessed values, land use and zoning where the county publishes them.

find_parcels_in_radius input schema
{
  "type": "object",
  "title": "find_parcels_in_radiusArguments",
  "required": [
    "lat",
    "lng",
    "radius_m"
  ],
  "properties": {
    "lat": {
      "type": "number",
      "title": "Lat",
      "maximum": 90,
      "minimum": -90,
      "description": "Latitude, decimal degrees"
    },
    "lng": {
      "type": "number",
      "title": "Lng",
      "maximum": 180,
      "minimum": -180,
      "description": "Longitude, decimal degrees"
    },
    "limit": {
      "type": "integer",
      "title": "Limit",
      "default": 20,
      "maximum": 1000,
      "minimum": 1,
      "description": "Parcels per request, 1 to 1,000"
    },
    "offset": {
      "type": "integer",
      "title": "Offset",
      "default": 0,
      "minimum": 0,
      "description": "Parcels to skip; each page is a new, charged request"
    },
    "radius_m": {
      "type": "number",
      "title": "Radius M",
      "maximum": 5000,
      "description": "Radius in metres, up to 5,000",
      "exclusiveMinimum": 0
    }
  }
}
find_parcels_in_radius annotations
{
  "title": "Find parcels within a radius",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
find_parcels_in_polygon — Find parcels in a polygon
Advertised by the server during the last successful anonymous check.
Advertised read-only

Finds every parcel that intersects a WKT geometry (polygon, multipolygon, line or point). Costs 3 credits per request, however many parcels come back. The geometry's bounding box can be up to 25 km². Up to 1,000 parcels per request. Needs an API key. Lookups in counties we do not cover and failed requests cost no credits. Returns parcel records with WKT boundaries in EPSG:4326, owner, address, assessed values, land use and zoning where the county publishes them.

find_parcels_in_polygon input schema
{
  "type": "object",
  "title": "find_parcels_in_polygonArguments",
  "required": [
    "wkt"
  ],
  "properties": {
    "wkt": {
      "type": "string",
      "title": "Wkt",
      "minLength": 1,
      "description": "WKT in EPSG:4326 lon/lat order, e.g. POLYGON((-97.75 30.26, ...))"
    },
    "limit": {
      "type": "integer",
      "title": "Limit",
      "default": 20,
      "maximum": 1000,
      "minimum": 1,
      "description": "Parcels per request, 1 to 1,000"
    },
    "offset": {
      "type": "integer",
      "title": "Offset",
      "default": 0,
      "minimum": 0,
      "description": "Parcels to skip; each page is a new, charged request"
    }
  }
}
find_parcels_in_polygon annotations
{
  "title": "Find parcels in a polygon",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

0 advertised

No prompt definitions available.

Resources

0 advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1659 ms
95th percentile latency
1659 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1659 ms · metadata changed · 7 tool(s), 0 resource(s), 0 resource template(s), 0 prompt(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http getparceldata-mcp https://api.getparceldata.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add getparceldata-mcp --url https://api.getparceldata.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable getparceldata-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "getparceldata-mcp": {
      "url": "https://api.getparceldata.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "getparceldata-mcp": {
      "type": "streamableHttp",
      "url": "https://api.getparceldata.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start getparceldata-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "getparceldata-mcp": {
      "type": "http",
      "url": "https://api.getparceldata.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http getparceldata-mcp https://api.getparceldata.com/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://api.getparceldata.com/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "getparceldata-mcp": {
      "serverUrl": "https://api.getparceldata.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like GetParcelData MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run GetParcelData MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing