mcp-weather

mcp-weather

A Model Context Protocol (MCP) server that enables AI assistants and LLMs to access real-time weather data and forecasts by connecting to the OpenWeatherMap API.

Category
访问服务器

README

☁️ mcp-weather: Model Context Protocol (MCP) Weather Server Overview mcp-weather is a lightweight, Python-based server that demonstrates the integration of real-time weather data with AI models through the Model Context Protocol (MCP). This project enables AI assistants and large language models (LLMs) to access dynamic weather information, such as current conditions and forecasts, by exposing specialized "tools" that query external weather APIs.

The core purpose of mcp-weather is to showcase how to build an MCP server, connect it to a third-party service (OpenWeatherMap is used by default), and make that functionality discoverable and usable by any MCP-compatible AI client. This enhances the AI's ability to provide contextually relevant and up-to-date responses regarding meteorological data.

✨ Features Real-time Weather Queries: Obtain current weather conditions for any specified global city.

Multi-Day Forecasts: Retrieve detailed weather forecasts for upcoming days.

MCP Compatibility: Fully compatible with the Model Context Protocol, allowing seamless integration with various AI clients that support MCP.

Asynchronous Operations: Utilizes httpx for efficient, non-blocking HTTP requests to external weather APIs.

Secure API Key Management: Supports environment variables for securely managing sensitive API keys via a .env file.

🚀 Prerequisites Before setting up mcp-weather, ensure you have the following installed on your system:

Python 3.8 or higher: The MCP Python SDK requires a recent version of Python.

uv (recommended) or pip: A modern and fast Python package installer and manager. You can install uv via:

curl -LsSf https://astral.sh/uv/install.sh | sh

On Windows, please refer to the official uv installation guide for instructions.

OpenWeatherMap API Key: This project uses the OpenWeatherMap API for weather data. A free API key is typically sufficient for development and testing. Register for one at openweathermap.org.

🛠️ Installation Follow these steps to set up and run your mcp-weather server locally:

Clone the repository:

git clone https://github.com/githubmilind/mcp-weather.git cd mcp-weather

Create and activate a virtual environment: It's best practice to use a virtual environment to manage project dependencies.

uv venv source .venv/bin/activate # On Windows: .venv\Scripts\activate

Install project dependencies:

uv add "mcp[cli]" httpx python-dotenv

Configure your OpenWeatherMap API Key: Create a new file named .env in the root directory of your mcp-weather project (where weather_server.py is located). Add your OpenWeatherMap API key to this file:

OPENWEATHER_API_KEY=YOUR_OPENWEATHERMAP_API_KEY

Important: Replace YOUR_OPENWEATHERMAP_API_KEY with the actual API key you obtained from OpenWeatherMap.

⚡ Usage Running the MCP Weather Server To start the mcp-weather server:

Ensure your Python virtual environment is activated (as shown in the installation steps).

Navigate to your project's root directory in your terminal.

Execute the server script:

uv run weather_server.py

You will see a confirmation message indicating the server has started and is awaiting connections. Keep this terminal window open as long as you wish for the server to be available.

Connecting to an MCP-Compatible AI Client (Example: Claude for Desktop) To enable an AI client to use your mcp-weather server, you typically need to configure the client to recognize your local MCP server. The exact steps may vary depending on the specific AI client you are using. Here's a general example for Claude for Desktop:

Install Claude for Desktop: Ensure you have the latest version of Claude for Desktop installed.

Locate Client Configuration File:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows: %APPDATA%\Claude\claude_desktop_config.json

If this file does not exist, you may need to create it.

Add Server Configuration: Open the claude_desktop_config.json file in a text editor. Add or update the "mcpServers" section to include your mcp-weather server:

{ "mcpServers": { "weather": { "command": "/full/path/to/uv", "args": ["run", "weather_server.py"], "cwd": "/full/path/to/your/mcp-weather" } } }

Critical Replacements:

Replace /full/path/to/uv with the absolute path to your uv executable. You can find this path by running which uv (on macOS/Linux) or where uv (on Windows) in your active virtual environment.

Replace /full/path/to/your/mcp-weather with the absolute path to the directory where you cloned the mcp-weather project.

Save and Restart Client: Save the claude_desktop_config.json file and then close and restart your Claude for Desktop application for the changes to take effect.

Interact with the AI: Once configured, you can now prompt your AI client with weather-related questions. The AI should recognize the available tools from your mcp-weather server and use them to fetch data:

"What's the current temperature in Paris?"

"Give me the 3-day weather forecast for Sydney."

"How is the weather in Tokyo right now?"

Observe your mcp-weather server's terminal for activity as it processes requests from the AI client.

📸 Screenshots Here are visual examples of the mcp-weather server in action, illustrating its setup and interaction with an AI client:

Server Running in Terminal: A screenshot showing the command-line output when the mcp-weather server is launched and listening for connections.

AI Client Configuration Example: An example screenshot demonstrating how the mcp-weather server is configured within the settings of an MCP-compatible AI client, such as Claude for Desktop.

AI Responding with Current Weather: A visual of an AI client successfully querying mcp-weather for current weather conditions and presenting the retrieved information in a conversational format.

AI Providing Weather Forecast: An illustration of an AI client utilizing mcp-weather to generate and display a multi-day weather forecast based on a user's request.

🤝 Contributing Contributions, issues, and feature requests are welcome! Feel free to check the issues page.

To contribute:

Fork the repository.

Create a new branch (git checkout -b feature/your-feature-name).

Implement your changes.

Commit your changes (git commit -m 'Add new feature').

Push to the branch (git push origin feature/your-feature-name).

Open a Pull Request with a clear description of your changes.

📄 License This project is licensed under the MIT License. See the LICENSE file in this repository for full details.

🙏 Acknowledgements The developers of the Model Context Protocol (MCP) for enabling powerful AI integrations.

OpenWeatherMap for providing a comprehensive and accessible weather API.

The uv project for its efficient Python dependency management.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选