Skip to main content
Glama
parrotsoft

Lotería MCP

by parrotsoft
README.md
# 🎟️ Lotería MCP

MCP Server para consultar loterías y resultados mediante la [API de Resultados de Loterías](https://api-resultadosloterias.com/).

Expone dos herramientas que cualquier cliente MCP compatible (Claude Desktop, Cursor, etc.) puede invocar directamente desde el chat.

---

## 📋 Requisitos

| Herramienta | Versión mínima |
|-------------|---------------|
| Python      | 3.10+         |
| [uv](https://docs.astral.sh/uv/) | latest |

---

## ⚙️ Instalación

### 1. Clonar el repositorio

```bash
git clone https://github.com/parrotsoft/loteria-mcp
cd loteria
```

### 2. Crear entorno virtual e instalar dependencias con `uv`

```bash
uv sync
```

Esto creará automáticamente el entorno `.venv` e instalará todas las dependencias declaradas en `pyproject.toml`.

---

## 🚀 Uso con Claude Desktop

Agrega la siguiente configuración al archivo de Claude Desktop:

**macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`  
**Windows:** `%APPDATA%\Claude\claude_desktop_config.json`

```json
{
  "mcpServers": {
    "loteria": {
      "command": "uv",
      "args": [
        "--directory",
        "/ruta/absoluta/al/proyecto/loteria",
        "run",
        "loteria.py"
      ]
    }
  }
}
```

> **Nota:** Reemplaza `/ruta/absoluta/al/proyecto/loteria` con la ruta real del proyecto en tu máquina.

Reinicia Claude Desktop y el servidor quedará disponible.

---

## 🛠️ Herramientas disponibles

### `get_lotteries`

Retorna el listado completo de loterías disponibles en la API.

**Sin parámetros.**

**Ejemplo de respuesta:**
```json
{
  "data": [
    { "id": 1, "name": "Lotería Nacional", "country": "MX" },
    { "id": 2, "name": "Melate", "country": "MX" }
  ]
}
```

---

### `get_resultados`

Retorna los resultados de loterías para una fecha específica.

| Parámetro | Tipo   | Descripción                                         |
|-----------|--------|-----------------------------------------------------|
| `date`    | `str`  | Fecha en formato `YYYY-MM-DD`. Vacío = más recientes |

**Ejemplo de respuesta:**
```json
{
  "data": [
    { "lottery": "Lotería Nacional", "result": "1234", "date": "2026-04-24" }
  ]
}
```

---

## 🧪 Ejecutar en modo desarrollo

Para probar el servidor directamente desde la terminal:

```bash
uv run mcp dev loteria.py
```

Esto abre el MCP Inspector en el navegador, donde puedes llamar las herramientas de forma interactiva.

---

## 📦 Dependencias

| Paquete   | Descripción                              |
|-----------|------------------------------------------|
| `httpx`   | Cliente HTTP async para llamadas a la API |
| `mcp[cli]`| Framework Model Context Protocol         |

---

## 📁 Estructura del proyecto

```
loteria/
├── loteria.py        # Servidor MCP con las herramientas expuestas
├── main.py           # Punto de entrada alternativo
├── pyproject.toml    # Configuración del proyecto y dependencias
├── uv.lock           # Lock file de dependencias (uv)
├── .gitignore
└── README.md
```

---

## 📄 Licencia

MIT

TDQS

A4/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have clearly distinct purposes: one lists all available lotteries, the other retrieves results for a specific date. There is no risk of confusion.

Naming Consistency5/5

Both tools follow a consistent 'get_<resource>' pattern in snake_case, using the same language (Spanish) throughout.

Tool Count3/5

Two tools is minimal but reasonable for a simple read-only lottery information server. It borders on feeling thin but does not warrant a lower score.

Completeness3/5

The server covers listing lotteries and fetching results by date, but lacks features like filtering by lottery or retrieving historical results beyond a single date.

Maintenance

ActivityInactive
ResponsivenessNo issues