Skip to main content
Glama
ranjan7586

Weather MCP Server

by ranjan7586

Servidor MCP Weather (Laravel)

Un pequeño proyecto de aprendizaje/prueba para explorar el Protocolo de Contexto de Modelo (MCP) usando el paquete laravel/mcp. Expone un servidor MCP Weather con una única herramienta get-weather, además de una consola basada en navegador para conectar con el servidor y llamar a la herramienta manualmente.

Este repositorio existe únicamente para aprender cómo funcionan los servidores MCP de Laravel, las herramientas y el transporte Streamable HTTP — no es un servicio de producción.

Qué hay aquí

  • WeatherServer (app/Mcp/Servers/WeatherServer.php) — un servidor MCP registrado en /mcp/weather que expone la herramienta get-weather e instruye al LLM sobre cuándo usarla.

  • GetWeather (app/Mcp/Tools/GetWeather.php) — una herramienta MCP de solo lectura y mundo abierto que:

    • Acepta una location (obligatoria) y units (metric o imperial, por defecto métrico).

    • Geocodifica la ubicación mediante la API de Geocodificación de Open-Meteo.

    • Obtiene las condiciones actuales en vivo de la API de Pronóstico de Open-Meteo.

    • Devuelve contenido estructurado (temperatura, temperatura aparente, humedad, viento, condición, zona horaria, etc.) o un error amigable si no se encuentra la ubicación o el proveedor no está disponible.

  • CrmServer (app/Mcp/Servers/CrmServer.php) — un esqueleto de servidor vacío (registrado en /mcp/crm) que se mantiene para experimentar con un segundo conjunto de servidor/herramientas.

  • Consola MCP Weather (resources/views/mcp-tester.blade.php) — una página HTML/JS simple servida en / y /mcp-tester para conectar al endpoint MCP Streamable HTTP local, descubrir sus herramientas y llamar a get-weather de forma interactiva.

  • Rutas MCP (routes/ai.php) — registra los dos servidores con Mcp::web(...).

Related MCP server: Weather MCP Server

Requisitos

  • PHP ^8.1

  • Composer

  • Node.js + npm (para los assets de Vite de la consola)

Configuración

composer install
npm install

cp .env.example .env
php artisan key:generate

npm run dev      # or: npm run build
php artisan serve

No se necesita base de datos para usar la herramienta meteorológica, pero el .env por defecto de Laravel sigue apuntando a una si se desea ejecutar migraciones.

Probándolo

  1. Inicia la aplicación con php artisan serve y ejecuta npm run dev (o construye los assets) para que el JS/CSS de la consola estén disponibles.

  2. Abre http://127.0.0.1:8000/ (o /mcp-tester) en un navegador.

  3. Apunta el Endpoint MCP a http://127.0.0.1:8000/mcp/weather y haz clic en Conectar y descubrir para listar las herramientas del servidor.

  4. Llama a get-weather con una location (ej. Bengaluru) y un valor opcional de units para ver una respuesta estructurada en vivo.

También puedes comunicarte con el servidor directamente como cliente MCP (ej. Claude Desktop, Claude Code u otro cliente compatible con MCP) apuntándolo al endpoint Streamable HTTP /mcp/weather.

Pruebas

php artisan test

tests/Feature/GetWeatherToolTest.php simula las llamadas HTTP a Open-Meteo y verifica que la herramienta devuelva datos meteorológicos correctamente estructurados.

Licencia

El framework Laravel es software de código abierto licenciado bajo la licencia MIT.

Related MCP Connectors

Related MCP Servers

  • F
    license
    B
    quality
    D
    maintenance
    Enables real-time weather information and forecasts using the Open-Meteo API. Provides current weather conditions and forecast data for any location specified by latitude and longitude coordinates.
    1
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides current weather information for any city worldwide using the free Open-Meteo API, enabling users to query temperature, wind speed, humidity, and weather conditions through natural language.
    12 npm
    MIT