nepa-screening

nepa-screening is a skill for Claude Code, Codex from pnnl/nepa-mcp. It costs 38 tokens per session (1,041 once invoked), scanned A, original, BSD-3-Clause.

An environmental review tool for a proposed project area. NEPA is the US law requiring federal agencies to assess environmental effects, and ESA is the law protecting threatened and endangered species.

In plain words
What is it for?
Use it to screen projects for species, habitats, cultural resources, protected lands, flood risk, air quality, soils, jurisdictions, and other environmental-review topics.
Why use it?
It gathers location-based information needed to understand environmental constraints and regulatory context. This reduces the need to search many separate government datasets by hand.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Good fit Use it to screen projects for species, habitats, cultural resources, protected lands, flood risk, air quality, soils, jurisdictions, and other environmental-review topics.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/pnnl/nepa-mcp/nepa-screening
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add pnnl/nepa-mcp --skill nepa-screening
Clone the repo
git clone --depth 1 https://github.com/pnnl/nepa-mcp

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for nepa-screening

README.md
[![agentmods](https://agentmods.dev/badge/skills/pnnl/nepa-mcp/nepa-screening/github.svg)](https://agentmods.dev/skills/pnnl/nepa-mcp/nepa-screening)
Your own site
<a href="https://agentmods.dev/skills/pnnl/nepa-mcp/nepa-screening"><img src="https://agentmods.dev/badge/skills/pnnl/nepa-mcp/nepa-screening/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for nepa-screening

Your own site · 80×15
<a href="https://agentmods.dev/skills/pnnl/nepa-mcp/nepa-screening"><img src="https://agentmods.dev/badge/skills/pnnl/nepa-mcp/nepa-screening.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 38 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,041 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00038 $0.01041
Opus 5 $0.00019 $0.00521
Sonnet 5 $0.00008 $0.00208
Haiku 4.5 $0.00004 $0.00104

Measured 3d ago against content hash 4af642e85c66, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-09, from the pricing page.

Security

Grade A, and why

nepa-screening scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

plugins/nepa-mcp/skills/nepa-screening/SKILL.md · 78 lines

How it starts

The opening of the file, as written. The whole thing — 78 lines — stays where its author put it; the contents beside it link to each section on GitHub.

NEPA Screening

Use this skill for NEPA or ESA screening, environmental review scoping, project-area baseline research, jurisdictional context, or environmental regulatory lookup.

Establish the project area

Before location-scoped calls, confirm or derive latitude, longitude, and buffer distance in miles. Use gis tools to summarize the ROI, return GeoJSON, or calculate area. Use tigerweb_counties for intersecting counties and tribal for AIANNHA tribal lands.

Select authoritative datasets

  • Use census for ACS socioeconomic indicators.
  • Use ipac for USFWS species, critical habitat, migratory birds, wetlands, refuges, hatcheries, and related resources.
  • Use esa_ranges for NOAA ESA-listed species ranges.
  • Use noaa for NOAA West Coast critical habitat.
  • Use efh for Essential Fish Habitat and Habitat Areas of Particular Concern.
  • Use pcsrf for NOAA species ranges, critical habitat, salmon EFH/HAPC, and recovery projects.
  • Use gbif for biodiversity occurrences and county species lists.
  • Use fema_nfhl for flood zones, levees, water areas, and flood-risk summaries.
  • Use epa_aqs for air monitors, annual air-quality data, and NAAQS screening context.
  • Use nepa_assist for EPA NEPAssist screening categories.
  • Use nrcs_soils for SSURGO soil map units, drainage and hydrologic-group indicators, restrictive layers, erosion factors, and farmland classifications. Treat results as soil-survey screening, not geotechnical advice, wetland delineation, infiltration testing, or an agency farmland determination.
  • Use epa_acres for identifiable EPA ACRES Brownfields property records; treat results as grant-reported screening data, not a complete contaminated-site inventory. Dense results are nearest-first and paginated; follow the returned result_offset instruction when the complete property list is needed.
  • Use padus for protected areas, ownership, management, and conservation status.
  • Use blm for BLM land use plans, wilderness areas, and national monuments.
  • Use blm_mlrs for BLM land-use authorization cases, locatable-mineral operations, and geothermal or oil-and-gas leases. Preserve the source disposition and treat mapped records as legal-description-derived screening evidence, not surveyed footprints, title opinions, or proof that an operation is active or authorized.
  • Use usace for Corps districts and wetland delineation regions.
  • Use nrhp for National Register of Historic Places properties.
  • Use cfr for current eCFR text, regulatory history, Federal Register citations, and executive orders.

Read the full file on GitHub · 78 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 3d ago Changed · +10 lines 4af642e85c66
  2. 10d ago First seen · 68 lines · 38 tokens per session scan A f7ff17a4d600

Subscribe to this mod's changes

nepa-screening is a skill published in the GitHub repository pnnl/nepa-mcp (13 stars, last pushed 2d ago), licensed BSD-3-Clause. It adds 38 tokens to every session and 1,041 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

instrument-data-to-allotrope

Convert laboratory instrument output files (PDF, CSV, Excel, TXT) to Allotrope Simple Model (ASM) JSON format or flattened 2D CSV. Use this skill when scientists need to standardize instrument data for LIMS systems, data lakes, or downstream analysis. Supports auto-detection of instrument types. Outputs include full…

anthropics/knowledge-work-plugins · 123 tokens

exploratory-data-analysis

Perform bounded, local exploratory analysis of explicitly supported scientific files. Use for redacted CSV/TSV/JSON profiles; optional NumPy, HDF5, FASTA/FASTQ, and basic image metadata inspection; missingness/leakage audits; outlier and transformation sensitivity; and rigorous EDA report scaffolds. Other domain…

K-Dense-AI/scientific-agent-skills · 83 tokens

matlab

Build, review, migrate, and safely plan MATLAB or GNU Octave numerical workflows, including arrays, tabular/time data, tests, projects, graphics, MAT files, and explicit Python interoperability.

K-Dense-AI/scientific-agent-skills · 42 tokens

phylogenetics

Build and analyze phylogenetic trees using MAFFT (multiple alignment), IQ-TREE 2 (maximum likelihood), and FastTree (fast NJ/ML). Visualize with ETE3 or FigTree. For evolutionary analysis, microbial genomics, viral phylodynamics, protein family analysis, and molecular clock studies.

K-Dense-AI/scientific-agent-skills · 68 tokens

mapping-to-snomed

Maps clinical concept spans extracted by OpenMed to SNOMED CT concepts through a USER-SUPPLIED terminology server (the user's own Ontoserver, Snowstorm, or UMLS/UTS), never a bundled vocabulary. Use when the user wants to code findings, disorders, procedures, body structures, or substances to SNOMED CT, run an ECL…

maziyarpanahi/openmed · 205 tokens

auditing-subgroup-fairness

Audit an OpenMed NER or de-identification model for performance disparities across demographic subgroups (sex, age band, race/ethnicity when available) using openmed.eval.fairnessreport. Use when the user wants per-subgroup recall and leakage, wants to check whether de-identification under-protects a group, wants to…

maziyarpanahi/openmed · 148 tokens