baseline-mcp
This MCP server wraps the Baseline API to provide statistically rigorous weather and climate context, including 10-day forecasts and historical percentile rankings against a 35-year ERA5 climatology. You can:
Ask natural-language climate questions (
get_climate_context): Query weather and climate for any location (e.g., "Will Denver be warmer than normal this week?"), receiving forecast data plus percentile rankings.Get climate context by coordinates (
get_context_for_coordinates): Bypass geocoding by providing exact latitude/longitude (ideal for trailheads, farms, or properties).Check water year status (
get_water_year_status): Obtain precipitation and temperature totals since the water year start (Oct 1 in North America, Jan 1 elsewhere), ranked against 35 years, useful for drought monitoring, agriculture, and fire planning.Compare conditions to normals (
compare_to_normal): Assess how unusual current or forecast temperature/precipitation is at a location for a given time window (e.g., "this week"), returning precise percentile rankings.Rank multiple locations (
compare_locations): Compare precipitation, temperature, or snowfall across 2–10 locations or curated categories (likecolorado_ski_resortsorus_national_parks) over a water year, season, month, or ski season.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@baseline-mcpHow does today's temperature in San Francisco compare to normal?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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, temperature, or snowfall across 2-10 locations (or a curated category likecolorado_ski_resorts) in a single call, over a water year, season, month, or ski season.
Related MCP server: mcp-weather
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-mcpThen 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.baselinecontext.com",
"BASELINE_API_KEY": "your-key-here"
}
}
}
}Claude Code: claude mcp add baseline --env BASELINE_API_URL=https://api.baselinecontext.com --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_KEYRun against a local Baseline instance (python3 app.py in ../baseline), then:
~/.venvs/baseline-mcp/bin/mcp dev src/baseline_mcp/server.pyStatus
All 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).
The 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.
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 as of 0.1.2.
Available Tools
1 toolget_climate_contextA
Get statistically rigorous weather and climate context for any location on Earth (land only). Answers natural-language questions with 10-day forecast data and historical percentile rankings against a 35-year ERA5 daily climatology (1991-2025, WMO 1991-2020 normals). Use this when you need to know not just what conditions are or will be, but how unusual they are relative to history.
query MUST be phrased as a question in one of these forms (the location goes where LOCATION is shown; the underlying parser matches these patterns specifically and will fail on other phrasings, e.g. "weather context for LOCATION" does not work):
"Will LOCATION be warmer/wetter than normal this week?"
"Has LOCATION been dry this water year?" / "this year?"
"How cold/warm/wet was last winter/spring/summer/fall in LOCATION?"
"What is the wettest/driest month in LOCATION?"
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations present, so description must disclose all behaviors. It specifies 'land only', data sources (ERA5, WMO normals), and query format requirements. It also transparently notes that alternative phrasings will fail, giving clear behavioral expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is two efficient paragraphs: first states core purpose and data context, second provides vital usage guidelines. Every sentence adds value, no redundancy. Front-loaded with the essential function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's single parameter and presence of an output schema, the description covers all needed aspects: what it does, when to use, how to phrase queries, and failure modes. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% coverage, but description compensates thoroughly by detailing the exact required structure of the 'query' parameter, including multiple valid patterns and explicit examples. This adds essential semantic meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it provides statistically rigorous weather/climate context using forecast and historical percentiles. It explicitly contrasts with simple weather queries by emphasizing 'how unusual' conditions are, effectively distinguishing its purpose from basic weather tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: needing unusualness relative to history. Provides exact query formats and warns against failing phrasings. No sibling tools exist, but description fully covers usage context and constraints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
1 tool update
v0.1.1- First observed
get_climate_context
TDQS
With only one tool, there is no possibility of confusion between tools. The single tool's purpose is clearly defined.
The single tool name 'get_climate_context' follows a clear verb_noun pattern. Consistency is trivial with one tool.
A single tool is too few for what could be a broader climate data server. While the tool is detailed, one tool makes the server feel incomplete and limited in scope.
The tool only handles specific query forms (e.g., 'Will LOCATION be warmer...?') and excludes other natural language questions. There are clear gaps in functionality, such as providing raw data or different time ranges.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Hosted MCP server for Xweather weather data: conditions, forecasts, alerts, and more.
MCP server for weather with reasoning — umbrella advice, outdoor checks, city comparisons.
The official Model Context Protocol server for Ambee. It gives any MCP-compatible AI assistant — Claude, ChatGPT, Cursor, VS Code, Ollama, and more direct access to live air quality, pollen, and weather data. To get started, including information on signing up and obtaining your Ambee key, check out the Ambee documentation on https://docs.ambeedata.com
Climate MCP — wraps Open-Meteo Climate API (free, no auth)
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables retrieval of historical weather data (temperature, precipitation, conditions, etc.) from Visual Crossing for specified locations and dates.1GPL 3.0
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server built with the mcp-framework to provide weather-related tools and data to AI clients. It enables integration of weather capabilities and custom tools into the MCP ecosystem for use with platforms like Claude Desktop.8-
- AlicenseNot gradedqualityCmaintenanceMCP server for NASA POWER climate data, offering a climatology tool to retrieve long-term monthly averages for any coordinate. Supports natural language queries through the Pipeworx gateway.14MIT
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server that provides weather data using the OpenWeather One Call API 3.0. This server allows AI agents to access current weather, forecasts, and historical weather data for any location.11-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/elninyo-ops/baseline-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server