Refactor to use FastMCP mixin pattern for composable tools: - PLSSMixin: Section/Township/Range queries - SurfaceManagementMixin: Land manager (BLM, USFS, NPS, Private, etc.) - MiningClaimsMixin: Active/closed mining claims from MLRS Shared BLM API client handles identify/query operations against multiple ArcGIS REST endpoints.
99 lines
2.5 KiB
Markdown
99 lines
2.5 KiB
Markdown
# mcblmplss
|
|
|
|
FastMCP server for querying BLM (Bureau of Land Management) land data by coordinates.
|
|
|
|
## Features
|
|
|
|
- **PLSS** - Public Land Survey System (Section, Township, Range)
|
|
- **Surface Management** - Who manages the land (BLM, Forest Service, NPS, Private, etc.)
|
|
- **Mining Claims** - Active and closed mining claims from MLRS database
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
# Run directly with uvx
|
|
uvx mcblmplss
|
|
|
|
# Add to Claude Code
|
|
claude mcp add blm-land "uvx mcblmplss"
|
|
```
|
|
|
|
## Tools
|
|
|
|
### PLSS (Public Land Survey System)
|
|
|
|
| Tool | Description |
|
|
|------|-------------|
|
|
| `get_plss_location` | Get Section/Township/Range as human-readable text |
|
|
| `get_plss_details` | Get full PLSS data as structured object |
|
|
|
|
```
|
|
> get_plss_location(40.0, -105.0)
|
|
|
|
Section 9, Township 1N, Range 68W, 6th Meridian
|
|
State: CO
|
|
PLSS ID: CO060010S0680W0SN090
|
|
```
|
|
|
|
### Surface Management Agency
|
|
|
|
| Tool | Description |
|
|
|------|-------------|
|
|
| `get_land_manager` | Determine who manages the land |
|
|
| `get_land_manager_details` | Get full SMA data as structured object |
|
|
|
|
```
|
|
> 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 land
|
|
```
|
|
|
|
### Mining Claims
|
|
|
|
| Tool | Description |
|
|
|------|-------------|
|
|
| `get_mining_claims` | Find mining claims at/near location |
|
|
| `get_mining_claims_details` | Get full claim data as structured objects |
|
|
|
|
```
|
|
> get_mining_claims(39.5, -117.0)
|
|
|
|
Found 42 mining claim(s):
|
|
|
|
MAGA #6
|
|
Serial: NV105221817
|
|
Type: Lode Claim
|
|
Status: Active
|
|
Acres: 20.66
|
|
...
|
|
```
|
|
|
|
## Coverage
|
|
|
|
Data available for **30 western/midwestern states** where federal land surveys were conducted. Not available for eastern seaboard states or Texas (different survey systems).
|
|
|
|
## Data Sources
|
|
|
|
All data queried from official BLM ArcGIS REST services:
|
|
|
|
- [BLM National PLSS](https://gis.blm.gov/arcgis/rest/services/Cadastral/BLM_Natl_PLSS_CadNSDI/MapServer)
|
|
- [Surface Management Agency](https://gis.blm.gov/arcgis/rest/services/lands/BLM_Natl_SMA_LimitedScale/MapServer)
|
|
- [Mining Claims (MLRS)](https://gis.blm.gov/nlsdb/rest/services/Mining_Claims/MiningClaims/MapServer)
|
|
|
|
## Architecture
|
|
|
|
Uses FastMCP's mixin pattern for composable tool modules:
|
|
|
|
```
|
|
src/mcblmplss/
|
|
├── server.py # Main FastMCP server
|
|
├── client.py # Shared BLM API client
|
|
└── mixins/
|
|
├── plss.py # PLSS tools
|
|
├── surface_management.py # SMA tools
|
|
└── mining_claims.py # Mining claims tools
|
|
```
|