Pondlog Nature Briefing

io.github.andrewschristisonPublished by GitHub account andrewschristisonv0.4.0Updated Oct 24, 2026

Seven nature sources in one MCP: iNat, eBird, NOAA, USGS, NPN, Mushroom Observer, night sky.

VerifiedSTDIODesktop onlyLocation & LifestyleData & Analytics

Overview

AI-generated overview

Aggregate MCP server that gives an assistant place-aware nature data from iNaturalist, eBird, NPN, USGS, Mushroom Observer, night-sky and garden sources.

What you can do
Query wildlife observations and species sightings near coordinates (iNaturalist, Mushroom Observer, eBird). Retrieve phenology and seasonal activity data from USA-NPN. Check USGS water data such as streamflow for a site. Get a local night-sky briefing computed offline. Plan a garden with USDA hardiness zones, a crop calendar and companion planting. Combine all eight sources into one aggregate briefing that degrades gracefully when a source is down.
When to use it
Useful when you want an assistant to answer questions about what is happening in nature at a given location, such as recent sightings, seasonal activity, water conditions, sky events or what to plant, without wiring up each public API separately.
Requirements
Runs locally as an npm package via npx, so Node.js is needed. No authentication is declared. Most sources work without keys; eBird and Trefle require free API keys, with eBird supplied through the EBIRD_API_KEY environment variable. Network access is needed for the external sources; night-sky and garden data are computed or bundled offline.
Before you install
eBird and Trefle need free API keys supplied through environment variables; keep them private. The server reads public nature APIs and returns data, and the README describes no write, send or delete actions. Location coordinates you provide are sent to the third-party nature APIs.

Installation

In SourceWeft

  1. Open Pondlog Nature Briefing in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

pondlog

Place-aware nature data for developers. What's happening in nature at these coordinates right now?

Pondlog stitches together free public APIs (iNaturalist, eBird, USA-NPN, USGS, Mushroom Observer) plus local astronomy computation (astronomy-engine) and NOAA tides/cloud cover into one data layer with two interfaces:

  • A CLI for humans (pondlog inat nearby --lat 48.118 --lng -123.43)
  • An MCP server per source for AI agents (Claude Desktop, Cursor)

By Andrew Christison.

What's in the box

8 data sources. 7 MCP servers. 1 unified CLI. A ~1000-crop garden planner with USDA hardiness zones and companion-planting graph.

PackagenpmWhat it does
pondlog[npm]Unified CLI
@pondlog/core[npm]Shared types, Result<T>, rate limiter, USDA zones, crop calendar, companions
@pondlog/source-inaturalist[npm]iNaturalist API client
@pondlog/source-ebird[npm]eBird API client (21 endpoints)
@pondlog/source-npn[npm]USA-NPN phenology client
@pondlog/source-usgs[npm]USGS Water Services client
@pondlog/source-nightsky[npm]Local night-sky briefing (astronomy-engine)
@pondlog/source-mushroomobserver[npm]Mushroom Observer (mycology) client
@pondlog/source-trefle[npm]Trefle.io plant taxonomy client
@pondlog/mcp-inaturalist[npm]iNaturalist MCP server (9 tools)
@pondlog/mcp-ebird[npm]eBird MCP server (21 tools)
@pondlog/mcp-npn[npm]NPN MCP server (8 tools)
@pondlog/mcp-usgs[npm]USGS MCP server (4 tools)
@pondlog/mcp-mushroomobserver[npm]Mushroom Observer MCP server (5 tools, mycology-first)
@pondlog/mcp-garden[npm]Garden-planning MCP server (8 tools, calendar + zones + companions + Trefle)
@pondlog/mcp-pondlog[npm]Aggregate MCP server (5 tools, all eight sources)

Status

SourceLibraryCLIMCP
iNaturalist✅✅✅
eBird✅✅✅
NPN (phenology)✅✅✅
USGS (water)✅✅✅
Mushroom Observer (mycology)✅✅✅
Garden (USDA zones + ~5,000-crop calendar + companions + Trefle)✅✅✅
Night sky (astronomy-engine)✅✅✅ (via mcp-pondlog)
Aggregate (pondlog today / mcp-pondlog)n/a✅✅

Quick start

As an AI agent (MCP)

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

json
{  "mcpServers": {    "pondlog-inaturalist": {      "command": "npx",      "args": ["-y", "@pondlog/mcp-inaturalist"]    }  }}

Then ask Claude:

What amphibians have been seen near Port Angeles, WA in the last week?

The same JSON works in ~/.cursor/mcp.json for Cursor. Run any MCP server in one command:

sh
npx -y @pondlog/mcp-inaturalist          # no keynpx -y @pondlog/mcp-garden               # offline garden toolsEBIRD_API_KEY=... npx -y @pondlog/mcp-ebirdnpx -y @pondlog/mcp-pondlog              # aggregate of all eight sources

As a human (CLI)

sh
npm install -g pondlogpondlog config set-location --lat 48.118 --lng -123.4307 --name "Port Angeles"pondlog today                          # unified briefingpondlog inat nearbypondlog ebird notablepondlog npn activepondlog usgs flow --site 12045500pondlog nightsky                       # tonight's curated briefingpondlog garden now                     # what to plant this week

--json works on every command for machine output.

Architecture

                          ┌─────────────────────────┐                          │      @pondlog/core      │                          │  types, Result<T>,      │                          │  RateLimiter, withRetry,│                          │  USDA zones, crops,     │                          │  companion graph        │                          └────────────┬────────────┘                                       │        ┌──────────┬──────────┬────────┼─────────┬──────────┬──────────┐        ▼          ▼          ▼        ▼         ▼          ▼          ▼ source-inat  source-ebird  source-npn  source-usgs  source-mo  source-trefle  source-nightsky        │          │          │        │         │          │          │        └──────────┴──────────┴────────┼─────────┴──────────┴──────────┘                                       │                  ┌────────────────────┴────────────────────┐                  ▼                                         ▼            pondlog (CLI)                       7 × @pondlog/mcp-* servers            ├─ pondlog today (aggregate)         ├─ mcp-inaturalist            ├─ pondlog inat/ebird/...             ├─ mcp-ebird            └─ pondlog garden/nightsky            ├─ mcp-npn / mcp-usgs                                                  ├─ mcp-mushroomobserver                                                  ├─ mcp-garden                                                  └─ mcp-pondlog  ◀── aggregate

Source clients do all the work (Zod validation, rate limiting, retry, normalization). The CLI and MCP servers are thin wrappers around them.

Design principles

  • One data layer, two interfaces. Each source is a typed library (Zod-validated, rate-limited, returns Result<T>). The CLI and MCP servers are thin wrappers. No business logic in them.
  • Degrade gracefully. When a source is down, the aggregate still returns whatever else worked, with errors reported in-band.
  • Rate limits respected. Each client throttles itself. Never trust the caller.
  • No keys for what doesn't need them. iNaturalist, NPN, USGS, Mushroom Observer, and the night-sky source all run keyless. Only eBird and Trefle require free keys.
  • Local computation when the data isn't external. Astronomy is pure math; @pondlog/source-nightsky ships zero network calls, zero rate limits, zero failure modes. The garden calendar, zones, and companion graph are bundled JSON, all offline.

Related: CropGraph

CropGraph is a sibling HTTP API exposing the same ~1000-crop planting calendar, USDA hardiness zones, and companion-planting graph used by @pondlog/core and @pondlog/mcp-garden. Use CropGraph when you want the data over HTTP from any language. The schemas are kept in lockstep with this repo.

Contributing

PRs welcome. The build is pnpm-based:

sh
git clone https://github.com/andrewschristison/pondlog.gitcd pondlogpnpm installpnpm typecheckpnpm buildpnpm testpnpm smoke   # live tests against iNaturalist

Crop calendar / companion-planting data

The crop calendar (packages/core/src/data/crop-calendar.json) and companion graph (packages/core/src/data/companions.json) accept community PRs. Both have JSON Schemas alongside the data:

  • packages/core/src/data/crop-calendar.schema.json
  • packages/core/src/data/companions.schema.json

When adding a crop entry, include a per-entry source citing a real extension service (USDA, Cornell, WSU, Oregon State, UMass, UF/IFAS, etc.). When adding a companion edge, include evidence (strong or moderate) and a citation URL. Zod validation runs at module load, so a malformed PR breaks import "@pondlog/core" immediately.

Code

Each package follows a strict pattern documented in docs/METHODOLOGY.md. Source clients always ship before the CLI commands or MCP tools that consume them.

License

MIT. See LICENSE.

Source: README.md at commit 049fdf4

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

2
  1. v0.4.0LatestOct 9, 2026
  2. v0.3.8Sep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts