Skip to content
All data sources

DoD Military Installations and Ranges API and MCP server

No authdod-installations

Where a property sits relative to Department of Defense installation, range, and training area boundaries, read from the DoD MIRTA layers with no key. Built for the two facts that are not common knowledge: which sites carry the Foreign Investment Risk Review Modernization Act designation that foreign-buyer land rules turn on, and which are reported closed or excess rather than active, which is the redevelopment inventory. Distance is measured to the nearest point of a boundary, never to a centroid, because the largest installations run past a million acres. Boundaries are unclassified public outlines that may generalize; proximity is context and never a noise, AICUZ, or easement determination. No operational information exists in this data and none is inferred.

DoD Military Installations and Ranges is published by U.S. Department of Defense — Military Installations, Ranges, and Training Areas (MIRTA) and covers United States and its territories, including DC, Guam, Puerto Rico, and the U.S. Virgin Islands.

It refreshes on a schedule, every year.

Last verified . That is when these facts were last rebuilt from the ParcelOps source registry, not when U.S. Department of Defense — Military Installations, Ranges, and Training Areas (MIRTA) last refreshed the data itself.

API access

Your AI client reaches DoD Military Installations and Ranges 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

FreshnessScheduled · every year · The publisher states the layer is checked annually for updates. Probed 2026-08-10, the boundaries layer reported lastEditDate 2026-05-28 and the site points layer 2026-08-04.
Places coveredUnited States and its territories, including DC, Guam, Puerto Rico, and the U.S. Virgin Islands
Time covered… → present · A current-state site list rather than a history. Site inclusion traces to the 2015 Base Structure Report reporting decision, but names and boundaries are maintained: the layer carries both the 2023 renames and the 2025 reversions.
CredentialsNo credentials required

What this source cannot tell you

  • Anything outside United States and its territories, including DC, Guam, Puerto Rico, and the U.S. Virgin Islands. A request past that edge comes back empty rather than approximated.
  • A current-state site list rather than a history. Site inclusion traces to the 2015 Base Structure Report reporting decision, but names and boundaries are maintained: the layer carries both the 2023 renames and the 2025 reversions.
  • Anything U.S. Department of Defense — Military Installations, Ranges, and Training Areas (MIRTA) does not publish. ParcelOps returns this source as it stands and never fills a blank field from a different one.
  • Boundaries are unclassified, publicly released administrative outlines and may be generalized. They are not survey boundaries, not fence lines, and not a title product. Every row is published with its controlled-unclassified-information flag set to No, which is why the layer is releasable at all.
  • Proximity to an installation is context, not a determination. This is not a noise finding, not an AICUZ or Accident Potential Zone assignment, not an avigation or restrictive easement, and not a disclosure obligation. AICUZ studies, noise contours, and clear zones are separate products this dataset does not carry.
  • No operational information exists in this dataset. It carries an outline, a name, a service branch, an operational status code, and two flags. There is nothing here about units, missions, schedules, activity, capability, or personnel, and nothing about anything inside the installation boundary.
  • The FIRRMA flag is DoD designating a site, not a CFIUS determination about a transaction. Whether a purchase falls inside CFIUS real-estate jurisdiction depends on the parties, the property, the distance rule that applies, and the regulation in force. Treat the flag as a reason to ask counsel, never as the answer.
  • Coverage is the United States and its territories only; countryName is USA on every row. A zero outside that footprint is out of coverage rather than a finding.
  • Installation name is not a unique key, and the upstream primary-key field MIRTALOCATIONSIDPK is blank on every row, so no stable federal identifier is available. Every matching row is returned rather than one being chosen, and objectId is view-local and can change on republish.
  • Some listed sites are headquarters organizations published with a token polygon of a few square metres rather than a real boundary. Those rows are flagged so a distance measured to them is not mistaken for a setback.
  • Some sites appear in the MIRTA points layer with no boundary polygon at all, so a boundary query cannot see them. A zero means no listed boundary matched, which is narrower than "no military land". The service-info method names the boundaryless sites it observed.
  • Rows come from the Esri U.S. Federal Datasets organization, which republishes the DoD NGDA feed and names DOD as the source. Roughly twenty third-party copies of these layers exist on ArcGIS Online with differing counts and vintages; none is used here.

Methods (4)

A method is one call your agent can make against this source.

  • findInstallationsNearPoint

    read

    Find DoD installations near a point, measured to the boundary rather than the centroid.

    What you must providelatitudelongitude
    Records returnedmilitary installation boundary
    How to get more resultsnone (limitField: limit)
    UnitsradiusMiles: mile · boundaryDistanceMiles: mile · areaAcres: acre
    Coordinate systemEPSG:4326
    FreshnessScheduled · every year (source-level)
    Input schema
    {
      "type": "object",
      "properties": {
        "latitude": {
          "type": "number",
          "minimum": -90,
          "maximum": 90,
          "description": "WGS84 latitude of the parcel point being screened."
        },
        "longitude": {
          "type": "number",
          "minimum": -180,
          "maximum": 180,
          "description": "WGS84 longitude of the parcel point being screened."
        },
        "radiusMiles": {
          "type": "number",
          "exclusiveMinimum": 0,
          "maximum": 100,
          "description": "Search radius in miles, measured to the nearest point of an installation boundary rather than to its centroid. Defaults to 10. A radius around a supplied coordinate is a screening signal, not a determination about the parcel."
        },
        "status": {
          "type": "string",
          "enum": [
            "active",
            "inactive",
            "closed",
            "excess",
            "caretaker",
            "semiActive",
            "all"
          ],
          "description": "Filters on the reported operational status. inactive covers closed, excess, caretaker, and semi-active together. Defaults to all."
        },
        "component": {
          "type": "string",
          "enum": [
            "USA",
            "USAF",
            "USN",
            "USMC",
            "USAR",
            "USNR",
            "USMCR",
            "AFR",
            "Army National Guard",
            "Air National Guard",
            "WHS",
            "Other"
          ],
          "description": "Reporting component, which is the service branch that reports the site. The values listed here are the complete published vocabulary."
        },
        "firrmaDesignatedOnly": {
          "type": "boolean",
          "description": "Restrict to sites DoD flags as FIRRMA designated, the designation foreign-buyer land rules turn on."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 200
        }
      },
      "required": [
        "latitude",
        "longitude"
      ],
      "additionalProperties": false
    }
    • boundaryDistanceMiles is measured to the nearest point of the published boundary and is 0 when the queried point is inside. Boundaries are fetched generalized to about 55 m for measurement, so the number is accurate to roughly that.
    • Distance is measured from the single coordinate supplied, not from a parcel outline. A parcel centroid is not its footprint.
    • Rows flagged boundaryIsPlaceholder carry a token polygon of a few square metres rather than a boundary; a distance to those is arithmetically correct and practically meaningless.

    Radius defaults to 10 miles and is measured to the nearest boundary point.

  • searchInstallations

    read

    List DoD installations by name, state, branch, status, or FIRRMA designation.

    Records returnedmilitary installation
    How to get more resultsoffset (offsetField: offset, limitField: limit)
    UnitsareaAcres: acre
    Coordinate systemEPSG:4326
    FreshnessScheduled · every year (source-level)
    Input schema
    {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 120,
          "description": "Case-insensitive substring of the installation or site name as MIRTA publishes it."
        },
        "state": {
          "type": "string",
          "pattern": "^[A-Za-z]{2}$",
          "description": "Two-letter state or territory code. Territories are covered, including DC, GU, PR, and VI."
        },
        "component": {
          "type": "string",
          "enum": [
            "USA",
            "USAF",
            "USN",
            "USMC",
            "USAR",
            "USNR",
            "USMCR",
            "AFR",
            "Army National Guard",
            "Air National Guard",
            "WHS",
            "Other"
          ],
          "description": "Reporting component, which is the service branch that reports the site. The values listed here are the complete published vocabulary."
        },
        "status": {
          "type": "string",
          "enum": [
            "active",
            "inactive",
            "closed",
            "excess",
            "caretaker",
            "semiActive",
            "all"
          ],
          "description": "Filters on the reported operational status. inactive covers closed, excess, caretaker, and semi-active together. Defaults to all."
        },
        "firrmaDesignated": {
          "type": "boolean",
          "description": "True returns only FIRRMA designated sites; false returns only the rest."
        },
        "jointBase": {
          "type": "boolean",
          "description": "True returns only sites flagged as a joint base."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 200
        },
        "offset": {
          "type": "integer",
          "minimum": 0,
          "maximum": 100000
        }
      },
      "required": [],
      "additionalProperties": false
    }
    • Rows carry no geometry on this method by design; a single boundary can be tens of thousands of vertices and would dwarf the catalog it describes. Use findInstallationsNearPoint for anything spatial.
    • A name substring can match more than one site, and four names are carried by two rows each. Name is never a unique key here.

    Use status inactive to list the closed, excess, and caretaker inventory.

  • getInstallationDetail

    read

    Look up every MIRTA row carrying one installation name, with its designations.

    What you must providename
    Records returnedmilitary installation
    UnitsareaAcres: acre
    Coordinate systemEPSG:4326
    FreshnessScheduled · every year (source-level)
    Input schema
    {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 120,
          "description": "Installation name as MIRTA publishes it, e.g. \"Fort Cavazos\". Matched exactly and whitespace-tolerantly, not as a substring."
        },
        "state": {
          "type": "string",
          "pattern": "^[A-Za-z]{2}$",
          "description": "Two-letter state or territory code. Territories are covered, including DC, GU, PR, and VI."
        }
      },
      "required": [
        "name"
      ],
      "additionalProperties": false
    }
    • This is an exact-name lookup. Installations are renamed, so a miss can be a stale name rather than a missing site; search by substring before concluding a site is not listed.
    • A closed or excess status is a MIRTA reporting status, not a statement about current ownership, environmental condition, remediation, or availability.

    Returns every matching row: four names are carried by two sites each.

  • getServiceInfo

    read

    Report the live MIRTA layers this connector queries, with counts and vocabularies.

    Records returnedarcgis layer
    FreshnessScheduled · every year (source-level)
    Input schema
    {
      "type": "object",
      "properties": {
        "service": {
          "type": "string",
          "enum": [
            "boundaries",
            "sites"
          ],
          "description": "Omit to describe both layers this connector queries."
        }
      },
      "required": [],
      "additionalProperties": false
    }
    • The two MIRTA layers disagree on field casing: boundaries publish FEATURENAME and site points publish featureName. Attribute reads here are case-insensitive.
    • The advertised primary-key field is blank on every row and the feature-description field holds the literal string NA on every row; both are reported rather than surfaced as data.

    Also publishes the empty upstream fields and the boundaryless-site gap list.

Where this source is used