LABSCO SUMMARY
Useful mostly as a starting shape.
The weather server works and needs one free key, but the reason to clone this is the layout: config, controller, service, entry point, repeated identically for both servers. If you are writing your first MCP server in TypeScript, copying a structure that already separates validation from logic saves the rewrite you would otherwise do on your second one.
What it is
A pair of MCP servers built to be read as much as run: a weather service that answers real queries, and a demo service that shows the same three-layer structure with nothing else in the way.
What you get
- The weather service: current conditions, a 5-day forecast, and queries across several cities
- The demo service: a minimal request-and-response example with basic error handling, commented for reading
- A fixed layout each service follows — config for constants and types, a controller for request handling and validation, a service for the business logic — so a third server is a matter of copying the shape
Requirements
Build from source: clone the repo, npm install, then npm run build for everything or npm run build:weather for one service. Point the client at build/weather/index.js with node. Needs Node.js >= 16.0.0, npm >= 8.0.0 and TypeScript >= 4.5.0. The weather service reads an OpenWeather key from OPENWEATHER_API_KEY; the demo service needs no credentials.
Setup effort
Build from source — git clone https://github.com/fist-maestro/mcp-servers.git
USE CASES
01
Getting weather into an assistant on Cursor
Run the weather service with an OpenWeather key and ask for conditions or a five-day outlook by city.
02
Learning how an MCP server is put together
Read the demo service end to end — it does one thing, and the commentary explains each layer.
03
Starting your own server from a working skeleton
Copy the directory shape and the build script pattern rather than designing them from scratch.
BEFORE YOU INSTALL
What to know first
Requires
- Node.js >= 16.0.0
- npm >= 8.0.0
- TypeScript >= 4.5.0
- OPENWEATHER_API_KEY in the client block (weather service only)
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
You clone and build this one yourself.
Server setup
TERMINAL
git clone https://github.com/fist-maestro/mcp-servers.git
cd mcp-servers
npm install
npm run build:weatherMCP Clients
Cursor
CURSOR · JSON
{
"mcpServers": {
"weather": {
"command": "node",
"args": [
"<YOUR_PATH_TO_MCP_SERVERS>/build/weather/index.js"
],
"env": {
"OPENWEATHER_API_KEY": "<YOUR_OPENWEATHER_API_KEY>"
}
}
}
}Add this to ~/.cursor/mcp.json. <YOUR_PATH_TO_MCP_SERVERS> is the full path of your clone (npm run build:weather creates build/weather/index.js there).