Skip to content
All data sources

PHMSA Pipeline Safety & NPMS County Mileage API and MCP server

No authphmsa

County-level pipeline mileage and LNG plant counts from the PHMSA National Pipeline Mapping System, pipeline operator contacts, point-radius transmission pipeline geometry from EIA, and PHMSA pipeline enforcement case history. Covers what runs through a parcel's county, who operates it, and how that operator has been cited. Pipeline incident and accident data are NOT available: PHMSA publishes them only on hosts that are unreachable or login-gated for a server, and this connector states that absence rather than approximating it.

PHMSA Pipeline Safety & NPMS County Mileage is published by PHMSA National Pipeline Mapping System and PHMSA Pipeline Enforcement (PRIMIS), covers 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), and holds records 2002 to present.

It refreshes on a schedule, every year.

Last verified . That is when these facts were last rebuilt from the ParcelOps source registry, not when PHMSA National Pipeline Mapping System and PHMSA Pipeline Enforcement (PRIMIS) last refreshed the data itself.

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

PublisherPHMSA National Pipeline Mapping System and PHMSA Pipeline Enforcement (PRIMIS)

Freshness and coverage

FreshnessScheduled · every year · NPMS operator submissions are due March 15 (gas and LNG) and June 15 (hazardous liquid); the summary workbooks are regenerated irregularly and each carries its own vintage. The enforcement file refreshes roughly monthly.
Places coveredUnited 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), United States pipeline operators with PHMSA enforcement history since 2002 (778 operators, 5,073 cases)
Time covered2002 → present · Enforcement cases run 2002 forward. The mileage and LNG workbooks are point-in-time snapshots with separate vintages that are typically several months to a year apart.
CredentialsNo credentials required

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

    read

    Active gas transmission and hazardous liquid pipeline miles in one county, with operator contacts.

    Records returnedcounty, pipeline_operator
    How to get more resultsnone
    Unitsmileage: miles
    FreshnessScheduled · every year
    Input 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

    read

    Count of active NPMS LNG plants in one county, with the operators running them.

    Records returnedcounty, lng_plant, pipeline_operator
    How to get more resultsnone
    UnitsplantCount: plants
    FreshnessScheduled · every year
    Input 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

    read

    EIA natural gas transmission pipelines intersecting a radius around a coordinate. Call 811 first.

    What you must providelatitudelongitude
    Records returnedpipeline_segment
    How to get more resultsnone (limitField: limit)
    UnitsapproximateLengthMeters: meters
    Coordinate systemEPSG:4326
    FreshnessScheduled · every month
    Input 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

    read

    PHMSA pipeline enforcement cases for one operator, with 49 CFR citations and penalties.

    Records returnedpipeline_operator, enforcement_case
    How to get more resultsoffset (offsetField: offset, limitField: limit)
    UnitsproposedPenalty: USD · assessedPenalty: USD · collectedPenalty: USD
    FreshnessScheduled · every month
    Input 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

    read

    Source URLs, both workbook vintages, row counts, and what PHMSA data is unavailable and why.

    Records returneddata_source
    How to get more resultsnone
    FreshnessScheduled · 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