{
  "markdown": "# baseline-mcp\n\n<!-- mcp-name: io.github.elninyo-ops/baseline-mcp -->\n\nMCP server exposing Baseline as agent tools — statistically rigorous weather and climate context, not just current conditions. Thin translation layer only: no climate logic lives here, every tool call is an HTTP request to the Baseline API. See `baseline_mcp_server_plan.md` in the Baseline project for the full design, and [`METHODOLOGY.md`](./METHODOLOGY.md) for how the underlying data and rankings are computed.\n\n## Tools\n\n- `get_climate_context` — natural-language weather and climate questions, full context back (forecast + 35-year historical percentile ranking).\n- `get_context_for_coordinates` — same, for an exact lat/lon rather than a place name.\n- `get_water_year_status` — precipitation/temperature status since the start of the water year (Oct 1 US / Jan 1 elsewhere), ranked against 35 years.\n- `compare_to_normal` — how unusual current or forecast conditions are at one location.\n- `compare_locations` — rank precipitation, temperature, or snowfall across 2-10 locations (or a curated category like `colorado_ski_resorts`) in a single call, over a water year, season, month, or ski season.\n\n## Installation\n\nRequires a Baseline API key. **Self-serve signup isn't available yet** — during this early period, contact Chad McNutt (chadmcnutt@gmail.com) for a key.\n\n```bash\npip install baseline-mcp\n# or: uvx baseline-mcp\n```\n\nThen add it to your MCP client's config, with your API key:\n\n**Claude Desktop** (`~/Library/Application Support/Claude/claude_desktop_config.json`):\n```json\n{\n  \"mcpServers\": {\n    \"baseline\": {\n      \"command\": \"uvx\",\n      \"args\": [\"baseline-mcp\"],\n      \"env\": {\n        \"BASELINE_API_URL\": \"https://api.baselinecontext.com\",\n        \"BASELINE_API_KEY\": \"your-key-here\"\n      }\n    }\n  }\n}\n```\n\n**Claude Code**: `claude mcp add baseline --env BASELINE_API_URL=https://api.baselinecontext.com --env BASELINE_API_KEY=your-key-here -- uvx baseline-mcp`\n\n**Cursor** (`.cursor/mcp.json` or global MCP settings): same shape as the Claude Desktop config above, under whatever key Cursor's MCP settings use for server name.\n\n## Local development\n\nThe venv lives outside this directory (`~/.venvs/baseline-mcp`) rather than in `.venv/` here, because this project sits under iCloud-synced `~/Documents` — iCloud evicts/re-materializes files inside large venvs unpredictably, which causes intermittent `ModuleNotFoundError`s. Keep it that way.\n\n```bash\npython3 -m venv ~/.venvs/baseline-mcp\n~/.venvs/baseline-mcp/bin/pip install -e .\ncp .env.example .env   # fill in BASELINE_API_URL and a free_api-tier BASELINE_API_KEY\n```\n\nRun against a local Baseline instance (`python3 app.py` in `../baseline`), then:\n\n```bash\n~/.venvs/baseline-mcp/bin/mcp dev src/baseline_mcp/server.py\n```\n\n## Status\n\nAll 5 tools built and tested against a live local Baseline instance, including tool-selection validation in Claude Desktop. Verified end-to-end against the production Baseline API as of the 2026-08-01 soft-launch prep (data freshness, temporal query handling, and climatology all fixed and confirmed live).\n\nThe Baseline API each tool wraps was additionally exercised against production the week of 2026-08-05 through a ~150-question adversarial stress-test corpus (spatial, temporal, and phrasing edge cases) — real bugs were found and fixed at every layer this server depends on: location extraction, temporal-window parsing, and geocoding, all deployed and reverified live, zero regressions.\n\n`METHODOLOGY.md` (trust collateral) complete. Production now served over TLS at `api.baselinecontext.com`. See `baseline_mcp_server_plan.md` in the Baseline project for full task history. **Published to [PyPI](https://pypi.org/project/baseline-mcp/) as of 0.1.2.**\n",
  "bytes": 3756,
  "sha": "e6cc3f261d0dc0eeeddedffc026e828e8994fda13016d21e43f18050eda8f5a5",
  "repo_slug": "elninyo-ops/baseline-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_elninyo_ops_baseline_mcp_0c66ea18/readme"
}