Skip to main content
Glama
jcholly
by jcholly

GeoTap MCP Server

npm version License: MIT

Connect Claude, Cursor, Windsurf, and other AI tools to 80+ US federal environmental and infrastructure data sources.

GeoTap aggregates data from FEMA, USGS, EPA, NOAA, USDA, USFWS, DOT, Census, and more — accessible through the MCP (Model Context Protocol).

Web App: geotapdata.com — no code required, draw on a map and explore data visually.


Getting Started

Prerequisites

  • Node.js (v18 or later) — download here

  • An email address to register for your API key

Step 1: Get Your API Key

Go to geotapdata.com/developers and register with your email to get a free API key.

Your API key will be sent to your email. Save it — you'll need it in the next step.

Step 2: Set Up the MCP Server

Choose your AI tool below and follow the instructions. The MCP server is installed automatically via npx — no manual download needed.


  1. Open Claude Desktop

  2. Go to Settings (gear icon) → DeveloperEdit Config

  3. This opens your claude_desktop_config.json file. Add the following (replace your-api-key-here with your actual key):

{
  "mcpServers": {
    "geotap": {
      "command": "npx",
      "args": ["-y", "geotap-mcp-server"],
      "env": {
        "GEOTAP_API_KEY": "your-api-key-here"
      }
    }
  }
}

Config file location:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  1. Restart Claude Desktop completely (quit and reopen)

  2. You should see a hammer icon (🔨) in the chat input — that means GeoTap is connected


Run this command to add GeoTap to your Claude Code MCP servers:

claude mcp add geotap -- npx -y geotap-mcp-server

Then set your API key as an environment variable. Add this to your shell profile (~/.zshrc, ~/.bashrc, etc.):

export GEOTAP_API_KEY="your-api-key-here"

Restart your terminal, then start Claude Code. GeoTap tools will be available automatically.


  1. Open Cursor

  2. Go to Settings (⌘ + , on Mac, Ctrl + , on Windows) → search for "MCP"

  3. Click "Edit in settings.json" or add to your .cursor/mcp.json file:

{
  "mcpServers": {
    "geotap": {
      "command": "npx",
      "args": ["-y", "geotap-mcp-server"],
      "env": {
        "GEOTAP_API_KEY": "your-api-key-here"
      }
    }
  }
}
  1. Restart Cursor

  2. Open the AI chat panel — GeoTap tools will appear in the available tools list


  1. Open Windsurf

  2. Go to SettingsMCP Servers (or edit ~/.codeium/windsurf/mcp_config.json directly)

  3. Add:

{
  "mcpServers": {
    "geotap": {
      "command": "npx",
      "args": ["-y", "geotap-mcp-server"],
      "env": {
        "GEOTAP_API_KEY": "your-api-key-here"
      }
    }
  }
}
  1. Restart Windsurf


For any MCP client, the server can be run directly:

# Install globally
npm install -g geotap-mcp-server

# Run with your API key
GEOTAP_API_KEY=your-api-key-here geotap-mcp

The server communicates over stdio — point your MCP client to the geotap-mcp command with the GEOTAP_API_KEY environment variable set.


Step 3: Start Asking Questions

Once connected, ask your AI assistant to pull data for any US site. GeoTap collects from all 80+ federal sources at once — just give it a location and then ask whatever you want:

"Collect site data for 123 Main St, Austin TX"

Once the data comes back (~60-120 seconds), you can ask follow-up questions like:

  • "Is this site in a flood zone?"

  • "What soil types are here and what's the curve number?"

  • "Are there any contamination concerns nearby?"

  • "What's the 100-year rainfall?"

  • "What permits would I need to develop this site?"

  • "Summarize the key environmental risks"

Troubleshooting

Problem

Solution

Server won't start / "GEOTAP_API_KEY is required"

Make sure your API key is set in the env block of your MCP config

"npx: command not found"

Install Node.js (v18+), which includes npx

Tools don't appear in Claude Desktop

Restart Claude Desktop completely (quit + reopen, not just close the window)

Rate limit errors

Wait a moment and retry — burst limits are per-minute


Related MCP server: PropertyScoop MCP Server

Data Sources

Agency

Data Available

FEMA

Flood zones, FIRM panels, flood insurance rate maps, floodway boundaries

USGS

Elevation (3DEP at 1m/10m/30m), geology, streamgages, groundwater, land use (NLCD), StreamStats, National Streamflow Statistics (NSS)

EPA

Water quality (ATTAINS), Superfund sites, brownfields, TRI toxic releases, USTs, NPDES outfalls

NOAA

Rainfall (Atlas 14), IDF curves, tide stations, climate projections (CMIP6), weather stations, radar

USDA/NRCS

Soils (SSURGO), curve numbers, hydrologic soil groups, TR-55 parameters

USFWS

Wetlands (NWI), endangered species, critical habitat

DOT

Bridges, tunnels, National Bridge Inventory

Census

Demographics, boundaries, TIGER geographic data

USACE

Dams, levees, navigation channels

NHD

Stream flowlines, hydrography, watershed boundaries (HUC-8/10/12)

Other

Power plants, mines, tribal lands, building footprints, and more

Every response includes source attribution — the federal agency, dataset name, and reference URL.


Configuration

Variable

Description

Required

GEOTAP_API_KEY

Your API key from registration

Yes

GEOTAP_API_URL

Custom API endpoint (advanced)

No


Use Cases

Civil & Environmental Engineering

  • Stormwater design: rainfall (Atlas 14, IDF curves, hyetographs), curve numbers, time of concentration, peak discharge

  • Flood analysis: Bulletin 17C flood frequency, flow duration curves, regional regression estimates

  • Watershed delineation and hydrologic modeling inputs (HEC-HMS, SWMM)

  • Low-flow analysis for NPDES permits (7Q10, 7Q2, harmonic mean flow)

  • Climate-adjusted design storms for infrastructure resilience

Real Estate & Development

  • Environmental due diligence for property transactions

  • Site feasibility and developability scoring (0-100 scale)

  • Flood zone, wetland, and contamination screening

  • Permit pathway analysis (Section 404, NPDES, floodplain development)

Environmental Consulting

  • Phase I ESA desktop data gathering (EPA sites, water quality)

  • Wetland delineation support (NWI + soils + hydrology)

  • Endangered species habitat screening (USFWS critical habitat)

  • Water quality impairment assessment (EPA ATTAINS 303(d) list)


Contributing

Contributions welcome! Please open an issue or pull request.

License

MIT

Available Tools

3 tools
collect_site_dataA

Collect comprehensive environmental data from ALL 80+ federal data sources for a site. Accepts an address, lat/lng coordinates, or a GeoJSON geometry (Point or Polygon). Returns a jobId — poll with get_results until complete (60-120 seconds).

Data returned covers: flood zones, wetlands, soils, geology, contamination sites, water quality, seismic risk, rainfall, infrastructure, ecology, energy, demographics, and much more.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressNoUS street address (e.g., "123 Main St, Houston TX"). If provided, the site is geocoded automatically. Use this OR lat/lng OR geometry.
latNoLatitude of the site (e.g., 34.8441). Use with lng.
lngNoLongitude of the site (e.g., -82.4010). Use with lat.
geometryNoGeoJSON geometry (Point or Polygon). For advanced use — most users should use address or lat/lng instead.
bufferAcresNoSite area in acres when using a point location. Creates a circular buffer. Default: 1 acre. Range: 0.1–640.
searchRadiusMilesNoHow far to search for nearby features (contamination, infrastructure, etc.). Default: 3 miles. Range: 0.5–10.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses async behavior, polling requirement, time estimate, and broad data coverage. It does not mention rate limits or availability constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two front-loaded paragraphs. Every sentence adds value with no redundancy or waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description covers the return format (jobId), polling mechanism, and data categories. It is fairly complete but could mention error handling or limits.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for each parameter. The description adds value by summarizing the OR condition among address/lat-lng/geometry and providing default ranges for bufferAcres and searchRadiusMiles.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool collects comprehensive environmental data from 80+ federal sources, accepting address, lat/lng, or geometry. It uses a specific verb-resource combo and distinguishes from siblings like get_results.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains how to use the tool (provide location input, receive jobId, poll with get_results) and gives typical completion time. It does not explicitly state when not to use it, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_llms_txtA

Get the GeoTap API discovery document. Returns a structured description of all data sources and capabilities.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavior. It states the return value but omits side effects, authentication needs, rate limits, or other behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler. Every sentence adds value: first states the verb and resource, second describes the return content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Without an output schema, the description should fully describe the return value. It says 'structured description' but lacks detail on format or structure, which is a gap for a tool that only outputs data.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters, schema coverage is 100% automatically. The description adds no parameter details, but baseline for 0 params is 4, which is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it gets the GeoTap API discovery document, specifying the resource and action. It distinguishes from siblings 'collect_site_data' and 'get_results', which imply different operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. It does not mention that it should be used to discover capabilities before performing other actions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_resultsA

Check the status of a data collection job and retrieve results. Poll every 10 seconds until status is "completed".

When complete, present results as a SCANNABLE ENGINEERING DOCUMENT — not a data dump. An engineer needs to answer: (1) What kills the project? (2) What complicates permitting? (3) What's the baseline context?

CRITICAL FLAGS — scan results FIRST and lead with these if present:

  • FEMA Zone AE/AO/VE or SFHA=true → "Site intersects SFHA — Zone [X]" (CRITICAL)

  • Floodway present → "Regulatory floodway — no-rise certification required" (CRITICAL)

  • Superfund count > 0 → "NPL Superfund site within search radius" (CRITICAL)

  • Wetland count > 10 → "High wetland density — Section 404 permitting likely" (HIGH)

  • 303(d) impaired water → "TMDL required, stricter discharge limits" (HIGH)

  • Brownfields > 3 → "Phase I ESA recommended" (MODERATE)

  • Soils with HSG D → "Poorly draining soils — stormwater design impact" (MODERATE)

SECTION ORDER (skip sections with no data):

  1. Site overview — address, coordinates, county, elevation range, land cover, area

  2. FEMA flood zones — table: zone | subtype | SFHA | risk level

  3. Soils — per unit: HSG, drainage class, slope, flood frequency, building/septic limitations

  4. Atlas 14 rainfall — IDF table (rows: 15min, 1hr, 6hr, 12hr, 24hr, 3day; cols: 2yr–100yr). Bold the 24hr row. Include Atlas 14 volume.

  5. Natural hazard risk — NRI ratings by hazard type

  6. Wetlands — count, type breakdown, Section 404 note

  7. Water resources — streams with distances, impaired waters

  8. Contamination — Superfund, brownfields (with distances/status), USTs, NPDES

  9. Seismic & dams — ASCE 7-22 params (SDS, SD1, SDC), nearby dams with hazard rating

  10. Infrastructure — hospitals, fire stations, schools, EMS counts

  11. Demographics — population, median income, vacancy rate

FORMATTING:

  • Use markdown tables for flood zones, rainfall IDF, soils, brownfields

  • Cite source agencies (FEMA, NRCS, NOAA Atlas 14, EPA) not just "GeoTap"

  • Include distances and bearings for nearby features (e.g., "0.8 mi NW")

  • "_noData: true" means queried but nothing found — mention where relevant ("no Superfund sites" is positive)

  • End with: "Data sourced from US federal agencies via GeoTap. Verify critical findings before engineering or regulatory decisions."

ParametersJSON Schema
NameRequiredDescriptionDefault
jobIdYesJob ID returned from collect_site_data

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations present, so description must disclose behavior. It explains polling mechanism and that it returns results, but does not mention failure modes, timeouts, or potential side effects. Still, it provides more than minimal info.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is extremely long (500+) with extensive output formatting instructions. While front-loaded with purpose, the verbosity reduces conciseness. Could be more succinct.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, so description fully specifies output handling: critical flags, section order, formatting, and source attribution. Complete guidance for the agent to present results correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter with 100% schema coverage. Schema description is adequate. Description does not add new meaning to the parameter beyond the schema, maintaining baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool checks status and retrieves results from a data collection job, with specific polling advice. It distinguishes from sibling tools like collect_site_data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit polling guidance (every 10 seconds until completed) and implies use after collect_site_data. Lacks explicit when-not-to-use or alternatives, but context is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.9/5.0
Disambiguation5/5

Each tool has a distinct purpose: collect_site_data starts data collection, get_results polls job status, and get_llms_txt provides API documentation. No overlap in functionality.

Naming Consistency4/5

Tool names follow a consistent verb_noun pattern (e.g., collect_site_data, get_results), but get_llms_txt uses an abbreviation (llms) that is slightly less conventional, though still clear.

Tool Count3/5

With only three tools, the server is minimal but appropriate for its focused scope: initiating data collection, polling for results, and accessing API documentation. It could benefit from a cancellation tool, but the count is reasonable.

Completeness4/5

The tool set covers the core workflow: submit job (collect_site_data), retrieve results (get_results), and discover capabilities (get_llms_txt). Missing options like canceling a job or listing previous jobs are minor omissions for a single-purpose API.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    AI-powered property intelligence for instant zoning analysis, buildability assessments, ADU eligibility, flood risk, and development feasibility reports for any US address.
    5
    1
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Property intelligence API for US real estate. Returns 16+ data points for any US address: noise levels, wetlands, slope, natural light, powerline proximity, crime rates, property facing direction, zoning, public record, radon risk, natural hazards (earthquake, flood, wildfire), neighborhood demographics, falling tree risk, RF/cell tower exposure, and nearby school.
    -
  • A
    license
    A
    quality
    C
    maintenance
    AI-powered terrain analysis for any location on Earth. Uses super-resolution and computes environmental risk metrics including erosion, water flow, and a composite Site Intelligence Score.
    3
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides AI agents with access to CO2 emissions data, climate projections, and risk assessments for heat, flooding, and drought, supporting ESG analysis and CSRD compliance.
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jcholly/geotap-developer'

If you have feedback or need assistance with the MCP directory API, please join our Discord server