Simple MCP Weather Tool

Simple MCP Weather Tool

Fetches live weather data from Open-Meteo without an API key and returns structured JSON with location disambiguation, enabling weather queries in LM Studio chat.

Category
Visit Server

README

Simple MCP Weather Tool for LM Studio

Minimal MCP weather server for LM Studio. Fetches live weather from Open-Meteo. No API key required. Returns structured JSON with location disambiguation.

Use it as a drop-in tool in LM Studio chat, or run the optional Python CLI demo.

screenshot

Features

  • MCP stdio server compatible with LM Studio 0.3.17+
  • Structured JSON weather output (temperature, conditions, humidity, wind, etc.)
  • Location disambiguation via country_code and optional region
  • Optional travel-advisor system prompt
  • Optional CLI agent demo for developers

Requirements

  • Python 3.12+
  • LM Studio 0.3.17+ (for chat integration)
  • Internet access (Open-Meteo API)
  • A local model with tool/function calling support

Install

git clone https://github.com/yourname/simple-mcp-weather.git
cd simple-mcp-weather
python -m venv .venv
source .venv/bin/activate   # Windows: .venv\Scripts\activate
pip install -r requirements.txt

Use with LM Studio

  1. Open LM Studio: Program tab, then Install, then Edit mcp.json
  2. Add the weather server (use absolute paths):
{
  "mcpServers": {
    "weather": {
      "command": "/absolute/path/to/.venv/bin/python",
      "args": ["/absolute/path/to/mcp_server.py"]
    }
  }
}

See mcp.json.example for a template.

  1. Save. LM Studio will spawn the MCP server automatically.
  2. In chat, enable tools and select a model that supports function calling.
  3. Ask a question, for example:
    • Is a trip to the Polish seaside a good idea right now?
    • Czy wyjazd nad morze w Helu to dobry pomysł?

Recommended system prompt

For travel recommendations instead of raw weather data, paste the contents of prompts/travel_advisor.txt into LM Studio's System Prompt field.

Tool: get_weather

Parameter Required Description
city yes City name, e.g. Gdansk, Hel, Warsaw
country_code no ISO code, e.g. PL, DE, US. Always provide when known
region no Admin region to disambiguate similar city names

Example output

{
  "requested_city": "Hel",
  "requested_country_code": "PL",
  "requested_region": null,
  "resolved_city": "Hel",
  "resolved_region": "Pomerania",
  "country": "Poland",
  "country_code": "PL",
  "latitude": 54.60384,
  "longitude": 18.80351,
  "temperature_c": 17.2,
  "apparent_temperature_c": 16.2,
  "condition": "overcast",
  "humidity_percent": 90,
  "precipitation_mm": 0.0,
  "wind_speed_kmh": 20.0,
  "measured_at": "2026-07-13T14:30"
}

Project structure

.
├── mcp_server.py           # MCP tool server (LM Studio entry point)
├── mcp.json.example        # LM Studio config template
├── prompts/
│   └── travel_advisor.txt  # Optional system prompt for chat
├── requirements.txt        # Server dependencies
├── requirements-demo.txt   # CLI demo dependencies
├── example.env             # CLI demo environment template
└── examples/
    └── cli-agent/          # Optional Python agent demo

Optional CLI demo

A Python agent that connects to LM Studio via the OpenAI-compatible API and calls the MCP server programmatically.

pip install -r requirements-demo.txt
cp example.env .env
python examples/cli-agent/main.py "Is a trip to Hel, Poland a good idea?"

See examples/cli-agent/README.md for details.

Troubleshooting

Problem Fix
Wrong city / weather from another country Pass country_code (e.g. PL) when calling the tool
Model ignores the tool Use a model with function calling; set temperature to ~0.1-0.2
MCP server not loading Check absolute paths in mcp.json; ensure venv has deps installed
Region name mismatch Translated names (e.g. Pomorskie vs Pomerania) are handled; retry with country_code

License

MIT. See LICENSE.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured