Said MCP
# 🌤️ Said MCP - Servicio de Clima en Tiempo Real
**Said MCP** es una implementación sencilla pero poderosa de un servidor MCP (Model Context Protocol), diseñada para proporcionar información del clima en tiempo real a través de una herramienta accesible y extensible.
---
## 🚀 Características
- 🔧 **Servidor MCP personalizado** con `@modelcontextprotocol/sdk`
- 📍 **Geolocalización precisa** mediante la API de Open-Meteo
- 🌡️ **Datos meteorológicos actuales**: temperatura, lluvia y precipitación
- ⚡ **Interfaz sencilla y eficiente** basada en transporte por `stdio`
---
## 🧠 ¿Cómo funciona?
El servidor expone una herramienta llamada `obtener-clima` que permite consultar el estado del tiempo para cualquier ciudad, resolviendo la ubicación con coordenadas geográficas y consultando datos meteorológicos actualizados.
### 🔍 Flujo de ejecución
1. 🏙️ Se recibe el nombre de una ciudad.
2. 🌍 Se obtiene su latitud y longitud a través de la API de geocodificación de Open-Meteo.
3. ☁️ Se consultan los datos climáticos actuales.
4. 📝 Se devuelve la información en un formato estructurado.
---
## 📦 Estructura del Proyecto
```bash
.
├── .gitignore
├── main.ts # Archivo principal del servidor MCP
├── package.json # Dependencias y metadatos del proyecto
├── package-lock.json # Control de versiones de dependencias
└── README.md # Este archivo 📝
```
---
## 🛠️ Requisitos
- NodeJS >= 18
- TypeScript
- Acceso a internet (Para llamadas a las APIs)
## 🧪 Ejemplo de Uso
```ts
server.tool(
'obtener-clima',
'Herramienta para obtener el clima en tiempo real',
{ city: z.string().describe('City name') },
async ({ city }) => {
// Consulta a la API y retorno de datos...
}
)
```
---
## 🔌 Integración
El servidor se conecta usando StdioServerTransport, permitiendo una integración sencilla con sistemas compatibles con MCP.
```ts
const transport = new StdioServerTransport()
await server.connect(transport)
```
--
## 📜 Licencia
MIT License
---
## ✨ Autor
Desarrollado con pasión por [Said Ruiz](https://said-coverletter.vercel.app).TDQS
Scored across 1 tool
With only one tool, there is no possibility of ambiguity or overlap between tools, as there are no other tools to compare it against. The single tool's purpose is clearly defined for obtaining real-time weather.
Since there is only one tool, it inherently has perfect consistency with itself. The naming follows a clear verb-noun pattern in Spanish ('obtener-clima'), which is straightforward and predictable.
A single tool is generally too few for a meaningful server scope, as it limits functionality and suggests an incomplete or overly narrow implementation. While it might suffice for a minimal weather service, it lacks the depth expected for typical MCP servers.
Inferred domain is weather data, but the tool surface is severely incomplete. It only provides real-time weather retrieval without supporting operations like forecasts, historical data, or location-based queries, which are common in weather APIs, leading to significant gaps.