🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@pondlog/mcp-pondlog

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@pondlog/mcp-pondlog

Aggregate MCP server. One tool call returns a unified nature briefing covering birds, wildlife, plants, tides, streamflow, night sky, phenology, and (via @cropgraph/core) the day's planting plan.

latest
Source
npmnpm
Version
0.4.0
Version published
Maintainers
1
Created
Source

@pondlog/mcp-pondlog

The aggregate nature MCP server. One tool call replaces six API integrations.

get_nature_briefing returns a unified briefing for any coordinates: recent wildlife from iNaturalist and eBird, tide predictions from NOAA, streamflow from USGS, plant phenology from USA-NPN, and a full night-sky briefing (sun, moon, planets, meteor showers, constellations) from astronomy-engine, stitched into a single JSON response. All six sources are fetched in parallel; partial failures are reported in errors[] without crashing the briefing.

Part of pondlog, a toolkit for stitching together public nature APIs.

Install / run

The server is published to npm and runs via npx (no install step):

npx -y @pondlog/mcp-pondlog

Speaks MCP over stdio.

Configure

All env vars are optional. Without them you still get iNaturalist, night-sky, and (for get_phenology) NPN phenology. eBird/NOAA/USGS sections are skipped gracefully when their key/station is unset.

Env varWhat it enablesRequired?How to get one
EBIRD_API_KEYeBird observations in the briefingOptionalFree at ebird.org/api/keygen
NOAA_STATIONTide predictions (6 to 8 digit station id)OptionalLook up at tidesandcurrents.noaa.gov
USGS_SITEStreamflow (8 to 15 digit site number)OptionalLook up at waterdata.usgs.gov

noaa_station, usgs_site, and ebird_api_key can also be passed per call as tool inputs. That takes precedence over the env vars.

Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "pondlog": {
      "command": "npx",
      "args": ["-y", "@pondlog/mcp-pondlog"],
      "env": {
        "EBIRD_API_KEY": "your-ebird-key",
        "NOAA_STATION": "9444090",
        "USGS_SITE": "12045500"
      }
    }
  }
}

Restart Claude Desktop. Five tools will appear in the slash menu.

Cursor

Edit ~/.cursor/mcp.json:

{
  "mcpServers": {
    "pondlog": {
      "command": "npx",
      "args": ["-y", "@pondlog/mcp-pondlog"],
      "env": {
        "EBIRD_API_KEY": "your-ebird-key",
        "NOAA_STATION": "9444090",
        "USGS_SITE": "12045500"
      }
    }
  }
}

MCP Inspector (debug)

EBIRD_API_KEY=your-key npx @modelcontextprotocol/inspector npx -y @pondlog/mcp-pondlog

Tools

All tools are read-only. Coordinates use WGS84 decimal degrees.

ToolWhat it doesSources
get_nature_briefingFull unified briefing (the headline tool).iNaturalist + eBird + NOAA + USGS + NPN + astronomy-engine
get_nearby_wildlifeRecent wildlife sightings, merged + chronologically sorted.iNaturalist + eBird
get_water_conditionsStreamflow + tide predictions, both keys always present.USGS + NOAA
get_tonight_skySun, moon, planets, meteor showers, dark-sky window, constellations.astronomy-engine (pure local computation)
get_phenologyWhat's blooming / leafing out near you.USA-NPN

Per-source tools

For finer-grained queries against a single source, prefer the standalone servers in the same monorepo:

Example prompts

After configuring, try:

  • What's happening in nature near Port Angeles, WA today?
  • Any notable bird sightings near Olympic National Park this week?
  • What are the tides and streamflow like today?
  • What should I look at in the sky tonight at 48.118, -123.4307?
  • What's blooming near Seattle right now?

Output shape

get_nature_briefing returns a NatureBriefing (defined in @pondlog/core):

{
  coordinates: { lat, lng },
  generatedAt: string,                  // ISO timestamp
  celestial: { sunrise, sunset, daylightHours, moonPhase, moonIllumination },
  nightSky?: NightSkyBriefing,          // full sky briefing when present
  tides?: { high: TideEvent[], low: TideEvent[] },
  recentObservations: Observation[],    // iNat + eBird, sorted by date desc
  speciesCounts: SpeciesCount[],        // reserved for future use
  streamflow?: StreamflowReading,
  phenology?: PhenologyEntry[],
  errors: { source: string, message: string }[]
}

Caveats

  • ebird_api_key passed as a tool input is implemented by temporarily setting process.env.EBIRD_API_KEY for the duration of that call. Stdio MCP processes JSON-RPC sequentially in practice, so this is fine, but in shared deployments prefer the env-var path.
  • No caching at the MCP layer. Each get_nature_briefing call fetches fresh from all six sources. If you want caching, the host (Claude Desktop, Cursor, an agent) is the right place to add it. Cold call at Port Angeles takes ~2.5 s.

License

MIT. See the root LICENSE.

Keywords

pondlog

FAQs

Package last updated on 13 May 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts