
Construindo um Servidor MCP de Clima com Python
Construindo um Servidor MCP de Clima com Python
Introdução
O Protocolo de Contexto de Modelo (MCP) é um padrão aberto que permite que modelos de IA como Claude se conectem a ferramentas externas e fontes de dados. Neste artigo, vou mostrar como construir um Servidor MCP de Clima usando Python que qualquer cliente MCP pode usar.
O que Vamos Construir
Um servidor MCP simples com uma ferramenta: get_weather — ele recebe o nome de uma cidade e retorna a temperatura atual, a velocidade do vento e a umidade usando a API Open-Meteo (gratuita, sem necessidade de chave de API).
Requisitos
- Python 3.12+
- mcp[cli]
- httpx
Instalação
pip install "mcp[cli]" httpx
O Código
from mcp.server.fastmcp import FastMCP
import httpx
mcp = FastMCP("Servidor MCP de Clima")
@mcp.tool()
async def get_weather(cidade: str) -> str:
"""Obter o clima atual para uma cidade."""
geo_url = f"https://geocoding-api.open-meteo.com/v1/search?name={cidade}&count=1"
async with httpx.AsyncClient() as cliente:
geo_data = (await cliente.get(geo_url)).json())
if not geo_data.get("results"):
return f"Cidade '{cidade}' não encontrada."
r = geo_data["results"][0]
lat, lon = r["latitude"], r["longitude"]
weather_url = (
f"https://api.open-meteo.com/v1/forecast"
f"?latitude={lat}&longitude={lon}"
f"¤t=temperature_2m,wind_speed_10m,relative_humidity_2m"
f"&timezone=auto"
)
async with httpx.AsyncClient() as cliente:
atual = (await cliente.get(weather_url)).json()["current"]
return (
f"Clima em {r['name']}, {r['country']}:\n"
f"Temperatura: {atual['temperature_2m']}°C\n"
f"Velocidade do Vento: {atual['wind_speed_10m']} km/h\n"
f"Umidade: {atual['relative_humidity_2m']}%"
)
if __name__ == "__main__":
mcp.run()
Testando com o Inspetor MCP
Execute o servidor de desenvolvimento:
mcp dev server.py
Isso abre o MCP
A implementação de um servidor MCP pode facilitar a integração de modelos de IA com dados em tempo real, como previsões do tempo. Isso pode ser útil para empresas que desejam oferecer serviços personalizados baseados em condições climáticas, melhorando a experiência do usuário.

