API access
Your AI client reaches PHMSA Pipeline Safety & NPMS County Mileage through one ParcelOps MCP endpoint, so there is no separate key to hold for it and no per-source client to write. Reaching it takes no credentials of your own.
Where it came from
Freshness and coverage
What this source cannot tell you
- ⚠ Anything outside United States counties and county equivalents, keyed by five-digit FIPS (3,227 counties in the NPMS mileage workbook), United States counties with at least one active NPMS LNG plant (126 counties), United States interstate and intrastate natural gas transmission pipeline centerlines (EIA, 32,892 features), and United States pipeline operators with PHMSA enforcement history since 2002 (778 operators, 5,073 cases). A request past that edge comes back empty rather than approximated.
- ⚠ Anything from before 2002.
- ⚠ Anything PHMSA National Pipeline Mapping System and PHMSA Pipeline Enforcement (PRIMIS) does not publish. ParcelOps returns this source as it stands and never fills a blank field from a different one.
- ⚠ All NPMS data is for reference purposes only. It should never be used as a substitute for contacting a one-call center prior to excavation activities. Please call 811 before any digging occurs.
- ⚠ County totals are not parcel-level facts. A county carrying hundreds of miles may have nothing within twenty miles of a given parcel, and a county carrying zero may still have gathering lines, distribution mains, or service lines.
- ⚠ NPMS counts only hazardous liquid and gas transmission pipelines categorized as Active. Gathering lines, distribution mains, service lines, and Permanently Abandoned pipelines are excluded.
- ⚠ PHMSA restricts NPMS pipeline GIS data to federal, tribal, state, and local government agencies and to operators’ own lines. This connector reads only the publicly published county summary workbooks and public operator contact directory, never the NPMS Public Viewer, PIMMA, or third-party republications of NPMS geospatial data.
- ⚠ The point-radius pipeline geometry read queries an EIA-sourced transmission centerline layer hosted by the Esri Federal User Community under the Esri Master License Agreement. That hosted layer is not public domain, unlike the two PHMSA files.
- ⚠ The EIA pipeline layer is stale and coarse: operator values are unreconciled free text that still names companies dissolved decades ago (for example "Amoco Pipeline Co"), it carries transmission trunk lines only, and it holds no PHMSA operator id. A zero result never means no pipeline is near the property.
- ⚠ Pipeline incident and accident records are NOT available through this connector. PHMSA publishes them only on www.phmsa.dot.gov (HTTP 403 to every server-side client), inside the session-gated NPMS Public Viewer, and behind the portalpublic.phmsa.dot.gov login.
- ⚠ The workbook OPID and the enforcement file Operator_ID are the same PHMSA identifier space and join cleanly. The EIA layer’s Operator string does not and must never be fuzzy-matched into an operator id.
- ⚠ An enforcement case is an administrative action against an operator, not a finding about any parcel, address, or pipeline segment. An open case is an allegation rather than an adjudicated violation.
- ⚠ Penalty amounts are frequently empty upstream and are returned as null, never as 0. An unpenalized Warning Letter is not a zero-dollar penalty.
Methods (5)
A method is one call your agent can make against this source.
getCountyPipelineCoverage
readActive gas transmission and hazardous liquid pipeline miles in one county, with operator contacts.
Records returnedcounty, pipeline_operatorHow to get more resultsnoneUnitsmileage: milesFreshnessScheduled · every yearInput schema
{ "type": "object", "properties": { "countyFips": { "type": "string", "pattern": "^\\d{3,5}$", "description": "Five-digit state + county FIPS such as 48201 (Harris County, Texas). A three-digit county needs stateAlpha." }, "stateAlpha": { "type": "string", "pattern": "^[A-Za-z]{2}$", "description": "Two-letter state, district, or territory code. Required with countyName." }, "countyName": { "type": "string", "minLength": 2, "maxLength": 80, "description": "Published county name such as \"Harris County\". Use with stateAlpha." }, "includeOperators": { "type": "boolean", "description": "Include the operator by commodity breakdown. Defaults to true." }, "limit": { "type": "integer", "minimum": 1, "maximum": 200, "description": "Operator rows to return. Defaults to 50; Harris County TX has 156." } }, "required": [], "additionalProperties": false }- ⚠ County-total mileage is not parcel grain. 398 of 3,227 counties report zero, which is a citable negative for the NPMS scope and never a clearance to excavate.
Pass countyFips, or stateAlpha plus countyName. Zero miles is a published zero.
getCountyLngPlants
readCount of active NPMS LNG plants in one county, with the operators running them.
Records returnedcounty, lng_plant, pipeline_operatorHow to get more resultsnoneUnitsplantCount: plantsFreshnessScheduled · every yearInput schema
{ "type": "object", "properties": { "countyFips": { "type": "string", "pattern": "^\\d{3,5}$", "description": "Five-digit state + county FIPS such as 48201 (Harris County, Texas). A three-digit county needs stateAlpha." }, "stateAlpha": { "type": "string", "pattern": "^[A-Za-z]{2}$", "description": "Two-letter state, district, or territory code. Required with countyName." }, "countyName": { "type": "string", "minLength": 2, "maxLength": 80, "description": "Published county name such as \"Harris County\". Use with stateAlpha." }, "includeOperators": { "type": "boolean", "description": "Include the operator breakdown. Defaults to true." } }, "required": [], "additionalProperties": false }- ⚠ Only counties with at least one active LNG plant are listed upstream, so an absent county is a citable zero rather than a coverage gap.
A county absent from the file returns plantCount 0, not an error.
findPipelinesNearPoint
readEIA natural gas transmission pipelines intersecting a radius around a coordinate. Call 811 first.
What you must providelatitudelongitudeRecords returnedpipeline_segmentHow to get more resultsnone (limitField: limit)UnitsapproximateLengthMeters: metersCoordinate systemEPSG:4326FreshnessScheduled · every monthInput schema
{ "type": "object", "properties": { "latitude": { "type": "number", "minimum": -90, "maximum": 90 }, "longitude": { "type": "number", "minimum": -180, "maximum": 180 }, "radiusMiles": { "type": "number", "minimum": 0.1, "maximum": 25, "description": "Search radius in miles. Defaults to 1." }, "pipelineType": { "type": "string", "enum": [ "Interstate", "Intrastate" ], "description": "The only two values this layer carries. It has no gathering lines." }, "limit": { "type": "integer", "minimum": 1, "maximum": 100 } }, "required": [ "latitude", "longitude" ], "additionalProperties": false }- ⚠ This is EIA transmission-trunk geometry, NOT NPMS, and NOT a dig-safety source. Operator names are stale free text (for example "Amoco Pipeline Co"), gathering lines and distribution mains are absent, and approximateLengthMeters describes the whole feature rather than the portion inside the radius.
- ⚠ The hosted layer is published under the Esri Master License Agreement, not as a public domain U.S. Government work.
Trunk lines, not NPMS, never a dig-safety source. Call one-call before digging.
getOperatorEnforcement
readPHMSA pipeline enforcement cases for one operator, with 49 CFR citations and penalties.
Records returnedpipeline_operator, enforcement_caseHow to get more resultsoffset (offsetField: offset, limitField: limit)UnitsproposedPenalty: USD · assessedPenalty: USD · collectedPenalty: USDFreshnessScheduled · every monthInput schema
{ "type": "object", "properties": { "operatorId": { "type": "string", "pattern": "^\\d{1,8}$", "description": "PHMSA OPID, the same identifier the NPMS workbooks use." }, "operatorName": { "type": "string", "minLength": 2, "maxLength": 120, "description": "Case-insensitive substring; an ambiguous name returns the candidates." }, "caseStatus": { "type": "string", "enum": [ "OPEN", "CLOSED" ] }, "caseType": { "type": "string", "enum": [ "Notice of Amendment", "Warning Letter", "Notice of Probable Violation", "Corrective Action Order", "Safety Order" ] }, "openedYearFrom": { "type": "integer", "minimum": 2002, "maximum": 2100 }, "openedYearTo": { "type": "integer", "minimum": 2002, "maximum": 2100 }, "limit": { "type": "integer", "minimum": 1, "maximum": 100 }, "offset": { "type": "integer", "minimum": 0, "maximum": 5000 } }, "required": [], "additionalProperties": false }- ⚠ The file lists only operators with at least one case, so an OPID with no rows is a real zero for 2002 forward, not a confirmation that the OPID exists.
- ⚠ citedRegulations are 49 CFR sections; resolve their text through the ecfr connector rather than paraphrasing them.
Pass operatorId or operatorName. Empty penalties stay null, never 0.
getServiceInfo
readSource URLs, both workbook vintages, row counts, and what PHMSA data is unavailable and why.
Records returneddata_sourceHow to get more resultsnoneFreshnessScheduled · every year (source-level)Input schema
{ "type": "object", "properties": {}, "required": [], "additionalProperties": false }States the incident and accident absence explicitly so it is machine-readable.
Where this source is used
- Land research
Parcel records, ground conditions, and what reaches the property line, for raw and rural land.
- Data center siting
Power, water, transport, airspace, and hazard screening for a site before anyone signs anything.
- Who do I call before digging?
- Is there a pipeline near this property?
