Skip to main content

MCP server for querying BLM land data: PLSS, land manager, mining claims, grazing, wild horses, recreation, wilderness, rivers, and ACECs

Project description

mcblmplss

PyPI version Python versions License: MIT

MCP server for querying U.S. public land data by coordinates.

Drop a pin anywhere in the western U.S. and get comprehensive land data:

Category What you get
PLSS Location Section 12, Township 4N, Range 6E, Principal Meridian
Land Manager BLM, Forest Service, NPS, Private, State, Tribal
Mining Claims Active lode/placer claims with serial numbers
Grazing Allotments Livestock grazing permits and acreage
Wild Horses Herd Management Areas with population data
Recreation Sites Campgrounds, trailheads, boat launches
Wilderness Areas Designated Wilderness & Study Areas (WSAs)
Wild Rivers Wild & Scenic River segments
ACECs Areas of Critical Environmental Concern

When would I use this?

Use Case Tools to use
Dispersed camping get_land_manager — Check if it's BLM/USFS public land
Trip planning get_recreation_sites — Find nearby campgrounds and trailheads
Land research get_plss_location — Get legal descriptions for title searches
Prospecting get_mining_claims — Check existing claims before staking
Ranching get_grazing_allotment — Research grazing permit areas
Wildlife viewing get_wild_horse_herd — Find wild horse/burro areas
Backcountry planning get_wilderness_area — Identify wilderness regulations
River trips get_wild_river — Check Wild & Scenic River status
Conservation research get_acec — Find protected environmental areas

Installation

pip install mcblmplss

Or run directly:

uvx mcblmplss

Add to Claude Code

claude mcp add blm "uvx mcblmplss"

Tools (19 total)

Each data type has two tools: a human-readable version and a _details version returning structured data.

Plus a batch tool for efficient multi-coordinate queries.

PLSS — Public Land Survey System

> get_plss_location(40.0, -105.0)

Section 9, Township 1N, Range 68W, 6th Meridian
State: CO
PLSS ID: CO060010S0680W0SN090

Batch PLSS Queries

Query multiple coordinates in parallel with optional county validation:

> get_plss_details_batch(
    coordinates=[[44.5, -115.8], [44.6, -115.9], [44.7, -116.0]],
    include_county=True
  )

{
  "results": [
    {
      "latitude": 44.5,
      "longitude": -115.8,
      "township": {"township": "13N", "range": "5E", ...},
      "section": {"section": "30", ...},
      "county": {"name": "Valley County", "fips": "16085", ...}
    },
    ...
  ],
  "total": 3,
  "successful": 3,
  "failed": 0,
  "unique_townships": ["13N 5E", "14N 4E"]
}

The unique_townships field is useful for discovering which Township/Range combinations exist within a sampling grid.

County data comes from Census TIGERweb (layer 82), not BLM PLSS. Use include_county=True when you need to validate that sampled points fall within an expected county.

Land Manager — Surface Management Agency

> get_land_manager(38.5, -110.5)

Bureau of Land Management (BLM) - Department of the Interior
Unit: Bureau of Land Management
State: UT
Status: Federal, Public access

Mining Claims

> get_mining_claims(39.5, -117.0)

Found 42 mining claim(s):

MAGA #6
  Serial: NV105221817
  Type: Lode Claim
  Status: Active
  Acres: 20.66

Grazing Allotments

> get_grazing_allotment(40.0, -117.0)

AUSTIN (#10004)
State: Nevada
Admin Unit: MOUNT LEWIS FIELD OFFICE
Acres: 245,420
Managing Number: NV10004

Wild Horses & Burros

> get_wild_horse_herd(40.0, -117.5)

Augusta Mountains (NV0311)
State: Nevada
Type: Horse
Acres: 177,570
Horse AML: 185-308
Estimated Population: 475 (154% of AML)
Last Inventory: 2015-01-01

Recreation Sites

> get_recreation_sites(38.9, -111.2)

Found 3 recreation site(s):

Rochester Panel
  Type: Facility
  Reservable: No
  Phone: 435-636-3600
  https://www.blm.gov/visit/search-details/257016/1

Wilderness & WSAs

> get_wilderness_area(38.4, -110.9)

Middle Wild Horse Mesa
  Status: Designated Wilderness
  State: Utah
  NLCS ID: NLCS000885
  Designated: 3/12/2019

Wild & Scenic Rivers

> get_wild_river(42.5, -123.5)

Rogue River
  Classification: Recreational
  State: Oregon
  NLCS ID: NLCS000836

ACECs — Areas of Critical Environmental Concern

> get_acec(35.0, -117.0)

Superior-Cronese
  State: California
  Protected Values: Natural Process, Natural System, Wildlife
  Acres: 518,461
  Land Use Plan: CDCA Plan, as amended by DRECP
  Designated: 9/14/2016

Coverage

Data is available for 30 states where the Public Land Survey System was used:

PLSS Coverage

Not covered: Eastern seaboard states (metes-and-bounds), Texas (independent surveys), Hawaii.

Data Sources

All data comes from official government ArcGIS REST services (BLM + Census TIGERweb):

Data Source Typical Update
PLSS BLM National PLSS CadNSDI Quarterly
County Census TIGERweb Annual
Surface Management BLM SMA Annual
Mining Claims BLM MLRS Weekly
Grazing BLM Grazing Allotment Annual
Wild Horses BLM WHB Annual
Recreation BLM RIDB Nightly
Wilderness BLM NLCS WLD/WSA As designated
Wild Rivers BLM NLCS WSR As designated
ACEC BLM ACEC As designated

Disclaimer: This data is for informational purposes only. For legal land descriptions, consult official BLM records or a licensed surveyor.

Development

git clone https://git.supported.systems/MCP/mcblmplss.git
cd mcblmplss
uv sync
uv run mcblmplss

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcblmplss-2026.1.25.tar.gz (21.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcblmplss-2026.1.25-py3-none-any.whl (31.0 kB view details)

Uploaded Python 3

File details

Details for the file mcblmplss-2026.1.25.tar.gz.

File metadata

  • Download URL: mcblmplss-2026.1.25.tar.gz
  • Upload date:
  • Size: 21.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for mcblmplss-2026.1.25.tar.gz
Algorithm Hash digest
SHA256 01ada30e8d70af3c8cf7983d90beb56a4560f41ce623da3f71d25d7cf40e9e4f
MD5 c6856f50216d2a07fd96d290aeec640a
BLAKE2b-256 95f33aaf53fa260917345edd832ea70ad0f76695a76c86d151f875fcc6112b09

See more details on using hashes here.

File details

Details for the file mcblmplss-2026.1.25-py3-none-any.whl.

File metadata

  • Download URL: mcblmplss-2026.1.25-py3-none-any.whl
  • Upload date:
  • Size: 31.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for mcblmplss-2026.1.25-py3-none-any.whl
Algorithm Hash digest
SHA256 be4c86baa04b5b5f8c90c1e14e971a9970bd7790ffd199cba7d12ce1ccd4ee02
MD5 600258c62ea5e297e901b47304edcb2b
BLAKE2b-256 02cdfdb7702314f9ec79d2ea320adb8d2fbf21dfcd8d57f61b535c26965ae35d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page