MCP Weather Server
# Introducción a los MCP
En este proyecto se han seguido los pasos del vídeo de Midudev: https://www.youtube.com/watch?v=wnHczxwukYY junto con otra documentación educativa para aprender sobre los MCP (Model Context Protocol) y crear mi primer MCP.
## Descripción
Se han hecho pruebas con Claude para comprobar el funcionamiento de los MCP con los archivos de mi equipo y una base de datos postgress junto con la creación de un MCP personalizado.
**Herramientas/tecnologías utilizadas**:
- Node.js
- pnpm
- Visual Studio Code
- Claude
- @modelcontextprotocol/sdk (https://github.com/modelcontextprotocol/modelcontextprotocol)
- zod
- tsx
## Creación del proyecto
```bash
mkdir mcp-weather
cd mcp-weather
pnpm init # Creará el package.json
```
A partir de este punto quedaría crear el archivo `main.ts` y seguir los pasos del video.
## Dependencias
```bash
pnpm add @modelcontextprotocol/sdk zod
pnpm add -D tsx
```
## Estructura del proyecto
- `main.ts`: Código fuente del servidor MCP.
- `package.json`: Dependencias y scripts del proyecto.
- `.gitignore`: Archivos y carpetas ignorados por git.
- `pnpm-lock.yaml`: Archivo de bloqueo de dependencias (ignorado en git).
- `README.md`: Documentación del proyecto.
TDQS
Scored across 1 tool
With only one tool, there is no possibility of confusion or overlap between tools. The single tool 'fetch-weather' has a clearly distinct and unambiguous purpose.
A single tool inherently has perfect naming consistency, as there are no other tools to compare it against. The name 'fetch-weather' follows a clear verb-noun pattern.
A single tool is too few for a weather server's apparent scope, which typically involves multiple operations like forecasts, alerts, or historical data. This minimal set feels thin and incomplete for the domain.
The tool surface is severely incomplete for a weather domain. It only provides current weather for a city, missing essential operations like forecasts, alerts, multi-location queries, or historical data, which will cause agent failures in broader tasks.