Weather MCP Server
This is a sample MCP (Messaging and Compute Platform) server for a weather application, designed for the Puch AI Hackathon. It provides a basic structure for integrating with a weather API and includes the required validate and resume endpoints.
Prerequisites
Before you begin, ensure you have the following installed:
Docker (for containerized deployment)
An API key from a weather service provider like OpenWeatherMap.
Related MCP server: Weather MCP Server
Getting Started
Follow these steps to get the project up and running on your local machine.
1. Clone the repository
2. Set up environment variables
The application requires a WEATHER_API_KEY to be set as an environment variable.
On macOS/Linux:
On Windows:
Alternatively, you can create a .env file in the root of the project and add the following lines. The .gitignore file is already configured to ignore this file.
Note: The current
3. Install dependencies
It's recommended to use a virtual environment.
4. Run the application
The server will start on http://127.0.0.1:5000.
Deployment to Render
This project is ready to be deployed to Render using Docker.
Push your code to a GitHub repository.
Create a new "Web Service" on Render and connect it to your GitHub repository.
Choose the "Docker" environment. Render will automatically detect the
Dockerfile.Add your as an environment variable in the Render dashboard.
Deploy! Render will build and deploy your application. You will get a public URL for your service.
API Endpoints
All endpoints are prefixed with /mcp.
/mcp
Method:
GETDescription: A simple endpoint to check if the server is running.
Response:
{ "message": "Welcome to the Weather MCP server!" }
/mcp/get_current_weather
Method:
POSTDescription: Gets the current weather for a city.
Request Body:
{ "city": "London" }Response: The JSON response from the OpenWeatherMap API.
/mcp/get_weather_forecast
Method:
POSTDescription: Gets the weather forecast for a city.
Request Body:
{ "city": "Paris", "days": 3 }Response: The JSON response from the OpenWeatherMap API.
/mcp/validate
Method:
POSTDescription: A placeholder for the hackathon's
validateendpoint.Request Body:
{ "phone_number": "1234567890", "resume_summary": "A brief summary of a resume." }
/mcp/resume
Method:
POSTDescription: A placeholder for the hackathon's
resumeendpoint.Request Body: (Currently none)
Connecting to Puch AI
Once deployed, you should be able to connect your MCP server to Puch AI using the command mentioned in the hackathon instructions. It will likely be something like this, executed in WhatsApp:
Make sure to replace <your_render_url> with the URL provided by Render and <your_auth_token> with the token provided by the hackathon organizers. Always refer to the official hackathon documentation for the exact command and procedure.