open-meteo
Click on "Deploy 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., "@open-meteowhat's the 3-day forecast for McKinney, Texas?"
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.
mcp-open-meteo
Owned sample MCP server for Claude Desktop or Cursor. Two tools talk to Open-Meteo (public weather API). No API key.
This is a portfolio demo, not a client deliverable. It shows the SKU shape: tool definitions, client config, README.
Tools
Tool | What it does |
| City name → lat/lon |
| Geocode a city, then current conditions + 1–7 day forecast |
Related MCP server: weather-mcp-server
Requirements
Node 18+
A client that speaks MCP over stdio: Cursor (any paid Cursor plan you already use) or Claude Desktop
You do not need ChatGPT Plus. Free ChatGPT cannot attach a local custom MCP.
Claude.ai free can add one remote custom connector (a public HTTPS MCP). A local stdio server like this one is wired in Claude Desktop (claude_desktop_config.json) or Cursor (~/.cursor/mcp.json). Test with no LLM at all via MCP Inspector:
npm install
npm run inspectInstall
git clone https://github.com/Jose24San/mcp-open-meteo.git
cd mcp-open-meteo
npm installCursor
Settings → MCP → add a server, or merge into ~/.cursor/mcp.json:
{
"mcpServers": {
"open-meteo": {
"command": "node",
"args": ["/ABSOLUTE/PATH/TO/mcp-open-meteo/src/index.js"]
}
}
}Restart MCP (toggle the server off/on). In chat: "What's the 3-day forecast for McKinney, Texas?" Cursor should call get_forecast.
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"open-meteo": {
"command": "node",
"args": ["/ABSOLUTE/PATH/TO/mcp-open-meteo/src/index.js"]
}
}
}Use an absolute node path if Desktop cannot see nvm (which node). Fully quit and reopen Claude Desktop. Enable the open-meteo connector on a new chat, then ask for a forecast.
Not this sample
Marketing automation, email, SMS, GHL
OAuth or a private CRM (that's a paid gig, Standard/Premium)
A whole product or a RAG chatbot
Available Tools
2 toolsgeocode_cityGeocode cityA
Resolve a city name to lat/lon via Open-Meteo geocoding. No API key.
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes | City name, e.g. McKinney |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry behavioral context. It usefully discloses the provider (Open-Meteo) and that no API key is required, but omits other relevant traits such as return format, error behavior, or rate limits.
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?
Two short sentences, front-loaded with the core action and followed by a useful constraint. There is no redundant or filler text.
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?
For a simple one-parameter lookup tool with no output schema, the description covers the essential action and provider. It could mention return shape or potential multiple matches, but is otherwise sufficient.
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 description coverage is 100%, so the single parameter is already documented in the schema. The description restates 'city name' but adds no syntax, formatting, or matching behavior beyond what the schema provides, making the baseline score appropriate.
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?
The description uses a specific verb ('Resolve') and resource ('a city name to lat/lon'), and identifies the geocoding provider. The purpose is immediately distinguishable from the sibling tool get_forecast, which serves a different function.
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?
It gives no guidance on when to use this tool versus alternatives, and does not mention how it relates to get_forecast, such as needing coordinates before fetching a forecast. Usage is only implied by the tool's obvious function.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_forecastGet forecastA
Geocode a city, then return current conditions and a short daily forecast from Open-Meteo. No API key.
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes | City name, e.g. Austin | |
| days | No | Forecast days, 1-7. Default 3. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses that no API key is required and that geocoding is performed internally (a hidden side effect/precondition), but says nothing about failure modes for unknown or ambiguous cities, rate limits, or the units/timezone of the returned data.
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?
Two short sentences, front-loaded with the action and followed by the auth reassurance. Every clause carries information; no filler.
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?
For a two-parameter read tool with no output schema and no annotations, the description covers purpose and auth but leaves the return shape only loosely sketched ('current conditions and a short daily forecast'). Units, timezone, and structure of the forecast days are unstated, which an agent would need before interpreting results.
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 coverage is 100%, with both city and days (1-7, default 3) fully documented in-schema. The description adds no parameter-level detail such as date semantics or how multi-day results are keyed, so it does not exceed the schema baseline.
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?
States a specific verb and resource: returns current conditions plus a short daily forecast from Open-Meteo. It also clarifies that geocoding happens internally, which implicitly distinguishes it from the sibling geocode_city, though it never names that tool explicitly.
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?
Mentions the internal geocoding step, which hints that the agent need not call geocode_city first, but there is no explicit when-to-use or when-not-to-use guidance against the sibling. Usage context is implied rather than stated.
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.
2 tool updates
v1.0.0- First observed
geocode_city - First observed
get_forecast
TDQS
Scored across 2 tools
The two tools have distinct purposes: one resolves coordinates, the other returns weather. However, get_forecast internally geocodes a city, creating slight overlap that could confuse an agent about whether geocode_city is a required prerequisite.
Both names follow a clear snake_case verb_noun pattern (geocode_city, get_forecast) with no deviations.
Only two tools is thin for a weather API server. While the tools are focused, the surface feels underdeveloped for the apparent scope of Open-Meteo.
The server covers basic geocoding and a short forecast, but notable operations like hourly forecasts, historical weather, reverse geocoding, and access to additional weather variables are missing.
Maintenance
Related MCP Connectors
Free, keyless real-time weather and 7-day forecasts for any city worldwide.
US weather & geo for AI agents: forecasts, alerts, earthquakes, elevation, geocoding. No keys.
US weather & geo for AI agents: forecasts, alerts, earthquakes, elevation, geocoding. No keys.
Get current weather for any city and create images from your prompts. Streamline planning, reports…
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides current weather and multi-day forecasts for any location worldwide, integrable with MCP clients like Claude.4Apache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables Claude Desktop to query real-time weather information, forecasts, and history via the OpenWeatherMap API.698MIT
- FlicenseNot gradedqualityDmaintenanceEnables users to get weather forecasts for any city using the Open-Meteo API through natural language in Claude Desktop or VS Code.-
- AlicenseBqualityDmaintenanceEnables to query real-time weather information for any city worldwide by automatically geocoding city names and retrieving temperature, precipitation, and other data via Open-Meteo APIs, seamlessly integrated with Claude Desktop.1MIT