README.mdβ’2.73 kB
# π¦οΈ MCP Weather Server
A simple and modular **MCP (Modular Command Protocol) server** that exposes weather-related tools β perfect for integration with AI agents, LLMs, or any tool-using client.
This project demonstrates how to create and serve tools such as:
* `get_coordinates(city)`
* `get_forecast(latitude, longitude)`
Designed to be lightweight, clean, and easy to extend.
---
## π§ What Is MCP?
**MCP (Modular Command Protocol)** is a protocol for exposing tools (Python functions) in a machine-readable format so they can be:
* Automatically discovered
* Dynamically called by AI agents
* Interoperable across systems
Itβs built for **tool-using LLMs**, **agents**, and **next-gen integrations**.
---
## π Project Structure
```
mcp-server/
βββ main.py # Starts the FastMCP server
βββ tools
|------ get_forcast.py # MCP tools: get_coordinates and get_forecast
βββ pyproject.toml # Python dependencies
βββ README.md # You're here!
```
---
## π Getting Started
### 1. Clone the Repo
```bash
git clone https://github.com/jeannassereldine/mcp-server.git
cd mcp-server
```
### 3. Run the Server
```bash
uv run weather.py
```
This starts the MCP server over `stdio`. You can connect any MCP client that supports the protocol.
---
## π§ Tools Overview
### `get_coordinates(city: str) -> Tuple[float, float]`
Returns hardcoded latitude and longitude for a given city.
> β
Replace this with a real geolocation API like OpenCage or Google Maps.
---
### `get_forecast(latitude: float, longitude: float) -> str`
Returns a formatted weather forecast string for the given coordinates.
> β
Replace with a live weather API like [api.weather.gov](https://api.weather.gov).
---
### `format_forecast(forecasts: List[Dict]) -> str`
Helper function that formats multiple forecast entries into a readable string.
---
## π§© Want to Build an MCP Client?
Stay tuned! The next part of this project will include a lightweight client that can:
* Auto-discover tools
* Call them based on context
* Build real-time agent workflows
---
## π§ Use Cases
* Build agent backends with clean, callable tools
* Expose local or cloud-based APIs to LLMs
* Prototype tools for LangChain or OpenAI function-calling agents
* Teach MCP integration through a practical example
---
## π License
This project is open-source under the **MIT License**.
---
## π Contributing
Pull requests are welcome! Feel free to open issues or suggest features you'd like to see.
---
## π Related
* π [Original article on LinkedIn](#) β *(https://www.linkedin.com/build-relation/newsletter-follow?entityUrn=7349014151165313025)*