bridgemcp-server-weather

bridgemcp-server-weather

Provides weather data including current conditions, forecasts, and summaries via Open-Meteo with no API key required, enabling natural language queries through an MCP interface.

Category
Visit Server

README

bridgemcp-server-weather

CI PyPI Python License: MIT

The official BridgeMCP reference server — weather data via Open-Meteo.

No API key required.

This server demonstrates the recommended architecture for production-quality BridgeMCP servers. It is the first official server in the BridgeMCP ecosystem and is intended as a reference for all future official servers.


Tools

Tool Description
get_current_weather Current temperature, humidity, wind, precipitation, and conditions
get_forecast Multi-day forecast (1–16 days) with highs/lows, precipitation, and sunrise/sunset
get_weather_summary Plain-language summary optimized for AI context windows

All tools accept:

  • City name: "London"
  • City + country: "Paris, France"
  • Coordinates: "51.5074,-0.1278"

Installation

pip install bridgemcp-server-weather

For running as an MCP server (required for bridgemcp-weather CLI):

pip install 'bridgemcp-server-weather[mcp]'

Usage

As an MCP server (stdio — for Claude Desktop, Cursor, etc.)

bridgemcp-weather

As an MCP server (HTTP/SSE — for network clients)

bridgemcp-weather --http
bridgemcp-weather --http --host 0.0.0.0 --port 9000

Programmatic use

from bridgemcp_weather import create_app

app = create_app()

# Call tools directly (useful in tests and scripts)
result = await app.acall("get_current_weather", location="Tokyo")
print(result["temperature_c"])  # 22.5

# Run as MCP server
app.run()

Claude Desktop configuration

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "weather": {
      "command": "bridgemcp-weather"
    }
  }
}

Architecture

This server is the reference implementation for BridgeMCP server architecture.

bridgemcp_weather/
├── __init__.py       # Public API: create_app, WeatherPlugin
├── _version.py       # Single version source of truth
├── server.py         # BridgeMCP app + WeatherPlugin + CLI entry point
├── client.py         # Pure async HTTP layer (no BridgeMCP types)
├── geocoding.py      # Open-Meteo geocoding (city name → lat/lon)
├── models.py         # Pydantic models + WMO code descriptions
└── exceptions.py     # WeatherError, WeatherAPIError, GeocodingError

Key design decisions

WeatherPlugin owns the httpx client lifecycle. The httpx.AsyncClient is opened in on_startup and closed in on_shutdown. This is the correct BridgeMCP pattern for any plugin that owns async resources. The client is never a module-level global.

Tools are registered in WeatherPlugin.setup() (synchronously). The BridgeMCP adapter builds the MCP server before startup hooks run. All tools must be registered before app.run() is called. setup() is the correct place.

The HTTP layer contains no BridgeMCP types. client.py and geocoding.py accept an httpx.AsyncClient and raise WeatherError subclasses. They know nothing about BridgeMCP, InvocationContext, or MCP protocol types. This makes the HTTP layer independently testable and reusable.

Tools return dict from model.model_dump(). Tools never return JSON strings. Pydantic models are dumped to dicts at the tool boundary, preserving type information for BridgeMCP's schema generation.


Development

git clone https://github.com/Arsie-codes/bridgemcp-server-weather
cd bridgemcp-server-weather
pip install -e '.[dev]'

# Run tests
pytest tests/ -v

# Lint and format
ruff check bridgemcp_weather tests
black bridgemcp_weather tests
pyright bridgemcp_weather

Ecosystem

Package Description
bridgemcp-py The BridgeMCP framework
bridgemcp-logging Official logging plugin
bridgemcp-server-weather This package — official weather reference server

Official BridgeMCP Ecosystem

Framework

  • BridgeMCP https://github.com/Arsie-codes/bridgemcp

Official Plugins

  • bridgemcp-logging https://github.com/Arsie-codes/bridgemcp-logging

Official Servers

  • bridgemcp-server-weather https://github.com/Arsie-codes/bridgemcp-server-weather

More official plugins and servers are currently under development.

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