Pondlog Phenology (USA-NPN)

io.github.andrewschristison由 GitHub 帳號 andrewschristison 發布v0.1.6-1更新於 Oct 24, 2026

USA National Phenology Network MCP. Bloom, leaf-out, and flight timing from NPN observers.

已驗證STDIO僅桌面位置與生活資料與分析

概覽

AI 產生的概覽

本機 MCP 伺服器,讓助理取得美國國家物候網路(USA-NPN)由志工觀察者記錄的開花、展葉與昆蟲飛行時間資料。

可以做什麼
查詢 USA-NPN 物候紀錄,包括 NPN 觀察者回報的開花、展葉與飛行時間,透過 @pondlog/mcp-npn 套件的八個工具提供(工具名稱未列出)。它是 Pondlog 七個依資料來源劃分的 MCP 伺服器之一,共用具備驗證、限流與重試的型別化資料層。無需金鑰即可執行,同系列還有 iNaturalist、eBird、USGS、Mushroom Observer、園藝規劃以及彙整全部來源的伺服器。
適用情境
當希望助理依據 NPN 觀察紀錄回答美國境內季節性自然時序問題(例如植物何時開花、何時展葉、昆蟲何時活動)時使用。它是單一來源的窄用途伺服器;若需同時使用多個自然資料來源,應選擇彙整版 Pondlog 伺服器。
執行需求
以本機 stdio 程序在使用者電腦上執行,透過 npx 從 npm 套件 @pondlog/mcp-npn 啟動,需要 Node.js。NPN 不需 API 金鑰,未宣告任何環境變數或標頭。需要網路存取 USA-NPN API。僅限桌面端,不提供網頁可執行版本。
安裝前請注意
僅對公開物候資料做唯讀查詢,未描述憑證、付費或寫入操作。請求會送往外部 USA-NPN 公共 API,查詢內容會離開本機。README 說明只有 eBird 與 Trefle 需要金鑰,因此此伺服器不應要求任何金鑰。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Pondlog Phenology (USA-NPN),將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

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.

來源:README.md,提交 049fdf4

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

2
  1. v0.1.6-1最新Oct 9, 2026
  2. v0.1.5Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分