Weather MCP Agent
README.md
# Weather MCP Agent
A small JavaScript MCP server that exposes a single `get_weather` tool over stdio. The tool accepts a city name and returns the current weather response generated through the configured classroom proxy endpoint.
## Features
- One MCP tool: `get_weather`
- Runs in Node.js
- Uses stdio transport for MCP clients
- Calls the proxy endpoint with the required `fetch()` configuration
## Project Structure
```text
weatherAgentMCP/
├── package.json
├── src/
│ ├── llm.js
│ └── mcp-server.js
├── test-client.js
└── README.md
```
## Installation
From the project root, install dependencies:
```bash
npm install
```
## Run the MCP Server
### Local stdio server
Start the original stdio-based server:
```bash
npm start
```
The server will stay running and wait for MCP clients over stdio.
### HTTP server for Render
A simple HTTP-based MCP endpoint is also available for hosting:
```bash
npm run start:http
```
This starts an HTTP server at `/mcp` on port `3000` (or the port provided by the environment).
## Render deployment guide
### 1. Push the repository to GitHub
Make sure your project is committed and pushed to GitHub.
### 2. Create a new Render web service
In Render:
- click New +
- choose Web Service
- connect your GitHub repository
- select the repository
### 3. Configure the service
Use these settings:
- Build Command: `npm install`
- Start Command: `npm run start:http`
- Environment: `Node`
- Port: Render will provide this automatically through `PORT`
### 4. Deploy
Render will build and start the app. Once it is live, your MCP endpoint will be available at:
```text
https://your-render-app.onrender.com/mcp
```
### 5. Use it from an MCP client
A client that supports HTTP MCP can point to the URL above.
## Local Test
A simple local test client is included. Run it from the project root:
```bash
node test-client.js
```
This client will:
1. Launch the MCP server over stdio
2. List the available tools
3. Invoke `get_weather` for London
4. Print the tool result
## Files
- `src/llm.js`: Contains the `callLLM(prompt)` helper and the proxy request logic.
- `src/mcp-server.js`: Registers the MCP tool and handles tool execution.
- `test-client.js`: A minimal local client used to verify the server end to end.
TDQS
B3.4/5.0
Scored across 1 tool
Disambiguation5/5
With only one tool, there is no possibility of confusion. The purpose is singular and unambiguous.
Naming Consistency5/5
The single tool 'get_weather' follows a clear verb_noun pattern, which is consistent and predictable.
Tool Count3/5
A single tool for a weather service is on the low end; while it covers basic current weather, it feels thin for a full-featured weather agent.
Completeness2/5
The tool set lacks coverage for forecasts, alerts, historical data, and other common weather-related functionalities, leaving significant gaps.
Maintenance
ActivityStale
ResponsivenessNo issues