Weather MCP Server
Weather MCP Server (Laravel)
A small learning/testing project for exploring the Model Context Protocol (MCP) using the laravel/mcp package. It exposes a Weather MCP server with a single get-weather tool, plus a browser-based console for connecting to the server and calling the tool by hand.
This repo exists purely to learn how Laravel MCP servers, tools, and the Streamable HTTP transport work — it is not a production service.
What's in here
WeatherServer(app/Mcp/Servers/WeatherServer.php) — an MCP server registered at/mcp/weatherthat exposes theget-weathertool and instructs the LLM on when to use it.GetWeather(app/Mcp/Tools/GetWeather.php) — a read-only, open-world MCP tool that:Accepts a
location(required) andunits(metricorimperial, defaults to metric).Geocodes the location via the Open-Meteo Geocoding API.
Fetches live current conditions from the Open-Meteo Forecast API.
Returns structured content (temperature, apparent temperature, humidity, wind, condition, timezone, etc.) or a friendly error if the location can't be found or the provider is unreachable.
CrmServer(app/Mcp/Servers/CrmServer.php) — an empty scaffold server (registered at/mcp/crm) kept around for experimenting with a second server/tool set.Weather MCP Console (resources/views/mcp-tester.blade.php) — a plain HTML/JS page served at
/and/mcp-testerfor connecting to the local Streamable HTTP MCP endpoint, discovering its tools, and callingget-weatherinteractively.MCP routes (routes/ai.php) — registers the two servers with
Mcp::web(...).
Requirements
PHP ^8.1
Composer
Node.js + npm (for the console's Vite assets)
Setup
composer install
npm install
cp .env.example .env
php artisan key:generate
npm run dev # or: npm run build
php artisan serveNo database is required to use the weather tool itself, but the default Laravel .env still points at one if you want to run migrations.
Trying it out
Start the app with
php artisan serveand runnpm run dev(or build assets) so the console's JS/CSS are available.Open
http://127.0.0.1:8000/(or/mcp-tester) in a browser.Point MCP endpoint at
http://127.0.0.1:8000/mcp/weatherand click Connect & discover to list the server's tools.Call
get-weatherwith alocation(e.g.Bengaluru) and an optionalunitsvalue to see a live structured response.
You can also talk to the server directly as an MCP client (e.g. Claude Desktop, Claude Code, or another MCP-compatible client) by pointing it at the /mcp/weather Streamable HTTP endpoint.
Tests
php artisan testtests/Feature/GetWeatherToolTest.php fakes the Open-Meteo HTTP calls and asserts the tool returns correctly structured weather data.
License
The Laravel framework is open-sourced software licensed under the MIT license.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ranjan7586/Laravel-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server