npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@bryance/noaa-free-mcp

v1.0.7

Published

MCP Server for NOAA precipitation data with embedded Go binary

Readme

NOAA Free MCP Server

A Model Context Protocol (MCP) server that provides access to NOAA precipitation data through an embedded Go binary. This server allows AI assistants to retrieve and analyze daily and monthly precipitation data from the NOAA Climate Prediction Center.

Features

  • Daily precipitation data with detailed statistics (mean, median, mode, quartiles, outliers)
  • Monthly precipitation totals for any grid location
  • Grid coordinate lookup - Find grid IDs by latitude/longitude coordinates
  • Grid information - Get detailed geographic boundaries for any grid
  • Grid validation - Validate grid IDs for CONUS coverage
  • 13,626 valid grids across CONUS (Continental United States) at 0.25 degree resolution
  • Historical data from 1947 to present
  • High performance with optimized binary caching and concurrent data processing
  • Real-time and historical data support
  • Cross-platform support (Windows, macOS, Linux)

Installation

Global Installation (Recommended)

npm install -g @bryance/noaa-free-mcp

Local Installation

npm install @bryance/noaa-free-mcp

Configuration

Add the server to your MCP client configuration:

Claude Code

Add the server using the Claude Code CLI. Claude Code supports three different scopes for MCP servers:

Option 1: Local Scope (Default - Current Project Only)

If you installed globally:

claude mcp add noaa-free noaa-free-mcp

If you installed locally or want to use without global installation:

claude mcp add noaa-free npx @bryance/noaa-free-mcp

This adds the server with local scope (default), making it available only in the current project directory for the current user.

Option 2: User Scope (All Your Projects)

If you installed globally:

claude mcp add noaa-free -s user noaa-free-mcp

If you installed locally or want to use without global installation:

claude mcp add noaa-free -s user npx @bryance/noaa-free-mcp

This adds the server with user scope, making it available across all projects on your machine for your user account.

Option 3: Project Scope (Team Collaboration)

If you installed globally:

claude mcp add noaa-free -s project noaa-free-mcp

If you installed locally or want to use without global installation:

claude mcp add noaa-free -s project npx @bryance/noaa-free-mcp

This adds the server with project scope, creating a .mcp.json file in your project that can be committed to version control, making the server available to all team members working on the project.

Managing Your MCP Servers

# List all configured servers
claude mcp list

# Get details for a specific server
claude mcp get noaa-free

# Remove a server
claude mcp remove noaa-free

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "noaa-free": {
      "command": "noaa-free-mcp"
    }
  }
}

Other MCP Clients

Use the command noaa-free-mcp or the full path to the installed binary.

Note: After installing the package @bryance/noaa-free-mcp, the executable is available as noaa-free-mcp (npm automatically strips the scope from executable names).

Usage

The server provides five main tools:

1. Get Daily Rain Data (get_daily_rain_for_month)

Retrieves daily precipitation measurements for a specific grid, year, and month with detailed statistics.

Parameters:

  • grid_id (1-36000, CONUS: 6196-34941): NOAA grid identifier
  • year (1947-present): Year for data request
  • month (1-12): Month for data request

Returns:

  • Daily measurements for each day in the month
  • Statistical analysis (mean, median, mode, quartiles, outliers)
  • Data completeness indicators

2. Get Monthly Rain Total (get_monthly_rain_total)

Retrieves total precipitation for a specific grid, year, and month.

Parameters:

  • grid_id (1-36000, CONUS: 6196-34941): NOAA grid identifier
  • year (1947-present): Year for data request
  • month (1-12): Month for data request

Returns:

  • Total precipitation for the month
  • Last update timestamp

3. Find Grid by Coordinates (find_grid_by_coordinates)

Find the NOAA grid ID for given latitude and longitude coordinates.

Parameters:

  • latitude (20-50): Latitude in decimal degrees North
  • longitude (-130 to -55): Longitude in decimal degrees West

Returns:

  • Grid ID for the location
  • Coordinate validation
  • Usage instructions for precipitation tools

4. Get Grid Information (get_grid_info)

Get detailed geographic boundaries and information for a specific grid.

Parameters:

  • grid_id (1-36000): NOAA grid identifier

Returns:

  • Geographic boundaries (min/max lat/lon)
  • Center coordinates
  • Grid resolution and coverage information

5. Validate Grid (validate_grid)

Validate that a grid ID is within the valid range for CONUS precipitation data.

Parameters:

  • grid_id: Grid ID to validate

Returns:

  • Validation status
  • Valid range information
  • Coverage details

Performance Optimizations

This MCP server includes several performance optimizations for fast data retrieval:

Binary Caching

  • Go binaries are extracted once to a persistent .cache directory
  • No repeated extraction overhead on subsequent requests
  • Platform-specific binaries embedded as base64 for distribution

Memory Optimization

  • Targeted grid filtering creates only necessary objects
  • ~36x reduction in memory usage (1 vs 36,000 objects per request)
  • Eliminates O(n) filtering loops after data creation

Concurrent Processing

  • Daily and monthly requests use Go goroutines for parallel data fetching
  • Multiple days processed simultaneously for faster month-level aggregations
  • Retry logic with exponential backoff for network reliability

Fast Grid Lookups

  • Binary Math Search algorithm for coordinate-to-grid lookups
  • O(log N) performance vs previous O(n) implementations
  • ~35x faster grid coordinate resolution