MCP server exposing Baseline's statistically rigorous weather and climate context as agent tools.
Project description
baseline-mcp
MCP 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 for how the underlying data and rankings are computed.
Tools
get_climate_context— natural-language weather and climate questions, full context back (forecast + 35-year historical percentile ranking).get_context_for_coordinates— same, for an exact lat/lon rather than a place name.get_water_year_status— precipitation/temperature status since the start of the water year (Oct 1 US / Jan 1 elsewhere), ranked against 35 years.compare_to_normal— how unusual current or forecast conditions are at one location.compare_locations— rank precipitation or temperature across 2-10 locations (or a curated category likecolorado_ski_resorts) in a single call.
Installation
Requires a Baseline API key. Self-serve signup isn't available yet — during this early period, contact Chad McNutt (chadmcnutt@gmail.com) for a key.
pip install baseline-mcp
# or: uvx baseline-mcp
Then add it to your MCP client's config, with your API key:
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"baseline": {
"command": "uvx",
"args": ["baseline-mcp"],
"env": {
"BASELINE_API_URL": "https://api.baseline.example",
"BASELINE_API_KEY": "your-key-here"
}
}
}
}
Claude Code: claude mcp add baseline --env BASELINE_API_URL=https://api.baseline.example --env BASELINE_API_KEY=your-key-here -- uvx baseline-mcp
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.
Local development
The 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 ModuleNotFoundErrors. Keep it that way.
python3 -m venv ~/.venvs/baseline-mcp
~/.venvs/baseline-mcp/bin/pip install -e .
cp .env.example .env # fill in BASELINE_API_URL and a free_api-tier BASELINE_API_KEY
Run against a local Baseline instance (python3 app.py in ../baseline), then:
~/.venvs/baseline-mcp/bin/mcp dev src/baseline_mcp/server.py
Status
All 5 tools built and tested against a live local Baseline instance, including tool-selection validation in Claude Desktop. METHODOLOGY.md (trust collateral) complete. See baseline_mcp_server_plan.md in the Baseline project for full task history. Published to PyPI as of 0.1.0.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file baseline_mcp-0.1.1.tar.gz.
File metadata
- Download URL: baseline_mcp-0.1.1.tar.gz
- Upload date:
- Size: 10.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd73ecdd17a0a58690dc7d3ed908d944a527152e7e6ee070fbf9627034fc114e
|
|
| MD5 |
8541667c133ac28f7ed5e7b2e3242fd5
|
|
| BLAKE2b-256 |
933d7a7b28ce464babea77435b8bcb7c618f889b0969db00d85a72a2bc0a93e7
|
File details
Details for the file baseline_mcp-0.1.1-py3-none-any.whl.
File metadata
- Download URL: baseline_mcp-0.1.1-py3-none-any.whl
- Upload date:
- Size: 9.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6dd92761fdbaa17b58fdabc7239729c824c9d1c307134158078ae5926f3c1bc8
|
|
| MD5 |
65ea690b6c4853c2133a7a667e0ee4aa
|
|
| BLAKE2b-256 |
4ea3cebc4e65a95b595504172c505c7d20ea81f4ea16e6f859171c0ef44510ac
|