Videogame Encyclopedia MCP Server

Servidor MCP dedicado a recopilar información sobre videojuegos.

Documentación

Servidor MCP de Enciclopedia de Videojuegos

Un servidor de Protocolo de Contexto de Modelo (MCP) que proporciona información estructurada de videojuegos desde Steam y SteamGridDB. Este servidor expone herramientas para buscar juegos y recuperar metadatos completos, incluyendo descripciones, categorías, fechas de lanzamiento, conteos de jugadores y recursos visuales como logotipos, carátulas e iconos.

Características

Integración con Steam

  • steam_search_game: Busca juegos por nombre en Steam
  • steam_get_details: Obtén información completa del juego, incluyendo:
    • Descripción e información detallada
    • Categorías y géneros
    • Plataformas compatibles (Windows, Mac, Linux)
    • Capacidades multijugador/un jugador
    • Fecha de lanzamiento
    • Información de precios
    • Detalles del desarrollador y editor
  • steam_get_dlc_list: Lista todos los DLC disponibles para un juego específico
  • steam_get_reviews_summary: Obtén calificaciones de la comunidad y fragmentos de reseñas destacadas
  • steam_get_game_news: Obtén las últimas noticias y anuncios de un juego
  • steam_get_player_count: Obtén el número actual de jugadores en línea para un juego
  • steam_get_top_sellers: Obtén los juegos más vendidos a nivel global actualmente
  • steam_get_top_games: Explora los mejores juegos por género o categoría
  • steam_get_genres: Obtén una lista de géneros comunes de Steam para descubrimiento

Integración con SteamGridDB

  • steamgrid_search_game: Busca juegos en SteamGridDB
  • steamgrid_get_assets: Recupera recursos visuales, incluyendo:
    • Logotipos transparentes
    • Imágenes de carátula/cuadrícula
    • Imágenes de héroe/banner
    • Iconos
    • Múltiples variaciones con metadatos (dimensiones, tipo MIME, autor)
  • steamgrid_get_best_logo: Obtén el mejor logotipo transparente para un juego

Integración con ScreenScraper

  • screenscraper_get_systems: Obtén una lista de todos los sistemas de juegos retro compatibles
  • screenscraper_search_game: Busca juegos retro por nombre con filtrado opcional por sistema
  • screenscraper_get_game_info: Obtén información detallada del juego y recursos multimedia, incluyendo:
    • Metadatos del juego (desarrollador, editor, fecha de lanzamiento, calificación)
    • Capturas de pantalla, carátulas y portadas
    • Logotipos de rueda y marquesinas
    • Avances de video
    • Arte de fans e imágenes de cartuchos
    • Soporte para identificación de ROM mediante sumas de verificación (CRC, MD5, SHA1)

Herramientas Unificadas

  • game_get_full_profile: Obtén un perfil completo del juego en una sola solicitud, agregando metadatos de Steam y recursos visuales de la comunidad de SteamGridDB. Esta es la herramienta recomendada para proporcionar una visión general completa de un juego.

Instalación

Requisitos previos

  • Node.js 18 o superior
  • npm o yarn

Configuración

  1. Clona o descarga este repositorio

    cd /Users/hoanicross/devel/perso/genai/mcp/game-encyclopedia-mcp-server
    
  2. Instala las dependencias

    npm install
    
  3. Configura las claves de API

    Copia el archivo de entorno de ejemplo:

    cp .env.example .env
    

    Edita .env y agrega tus claves de API:

    • Clave de API de SteamGridDB: Requerida para recursos de juegos de alta calidad (cuadrículas, héroes, logotipos). Obténla en steamgriddb.com.

Configuración

El servidor requiere las siguientes variables de entorno:

VariableRequeridaDescripción
STEAMGRIDDB_API_KEYTu clave de API de SteamGridDB
SCREENSCRAPER_DEV_IDNoID de desarrollador de ScreenScraper (para juegos retro)
SCREENSCRAPER_DEV_PASSWORDNoContraseña de desarrollador de ScreenScraper
SCREENSCRAPER_USER_IDNoNombre de usuario de ScreenScraper (opcional, proporciona mayor cuota de API)
SCREENSCRAPER_USER_PASSWORDNoContraseña de usuario de ScreenScraper
SCREENSCRAPER_SOFTWARE_NAMENoIdentificador de software (por defecto: 'game-encyclopedia-mcp-server')

Configuración

1. Variables de entorno

Crea un archivo .env en el directorio raíz:

STEAMGRIDDB_API_KEY=your_steamgriddb_key_here

# Optional: For retro game support via ScreenScraper
SCREENSCRAPER_DEV_ID=your_dev_id_here
SCREENSCRAPER_DEV_PASSWORD=your_dev_password_here
SCREENSCRAPER_USER_ID=your_username_here
SCREENSCRAPER_USER_PASSWORD=your_password_here

Para obtener credenciales de ScreenScraper:

  1. Compila el proyecto
    npm run build
    

Uso

Con Claude Desktop

Agrega este servidor a tu archivo de configuración de Claude Desktop:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "game-encyclopedia": {
      "command": "node",
      "args": ["/Users/hoanicross/devel/perso/genai/mcp/game-encyclopedia-mcp-server/dist/index.js"],
      "env": {
        "STEAMGRIDDB_API_KEY": "your_steamgriddb_api_key_here"
      }
    }
  }
}

Reinicia Claude Desktop para cargar el servidor.

Instalación/Inicio rápido

Vía Smithery

Puedes instalar este servidor en tu cliente MCP (como Claude Desktop) con un solo comando:

npx -y @smithery/cli@latest install videogame-encyclopedia-mcp-server --client claude

Vía uvx

Si tienes uv instalado, puedes ejecutar el servidor directamente (requiere Node.js localmente):

uvx --from node videogame-encyclopedia-mcp-server

Vía npx

npx videogame-encyclopedia-mcp-server

[!NOTA] Para publicar este paquete en NPM, debes establecer un secreto NPM_TOKEN en la configuración de tu repositorio de GitHub.

Herramientas Disponibles

1. steam_search_game

Busca juegos en Steam por nombre.

Entrada:

  • query (cadena, requerido): Nombre del juego a buscar
  • limit (número, opcional): Resultados máximos (por defecto: 10)

Ejemplo:

{
  "query": "Elden Ring",
  "limit": 5
}

2. steam_get_details

Obtén información detallada sobre un juego de Steam.

Entrada:

  • appid (número, requerido): ID de la aplicación de Steam

Ejemplo:

{
  "appid": 1245620
}

3. steam_get_dlc_list

Obtén una lista de todos los DLC disponibles para un juego específico de Steam.

Entrada:

  • appid (número, requerido): ID de la aplicación de Steam

Ejemplo:

{
  "appid": 1245620
}

4. steam_get_reviews_summary

Obtén un resumen de reseñas y calificaciones de usuarios para un juego específico de Steam.

Entrada:

  • appid (número, requerido): ID de la aplicación de Steam

Ejemplo:

{
  "appid": 1245620
}

5. steam_get_game_news

Obtén las últimas noticias y anuncios para un juego específico de Steam.

Entrada:

  • appid (número, requerido): ID de la aplicación de Steam del juego
  • count (número, opcional): Número de noticias a obtener (por defecto: 5)

Ejemplo:

{
  "appid": 1245620,
  "count": 3
}

6. steam_get_player_count

Obtén el número actual de jugadores en línea para un juego específico de Steam.

Entrada:

  • appid (número, requerido): ID de la aplicación de Steam del juego

Ejemplo:

{
  "appid": 1245620
}

7. steam_get_genres

Obtén una lista de géneros y categorías comunes de Steam para descubrimiento.

Ejemplo:

{}

8. steam_get_top_sellers

Obtén los juegos más vendidos a nivel global actualmente en Steam.

Entrada:

  • limit (número, opcional): Resultados máximos (por defecto: 10)

Ejemplo:

{
  "limit": 5
}

9. steam_get_top_games

Explora los mejores juegos para una categoría o género específico de Steam (por ejemplo, "Acción", "RPG", "Estrategia").

Entrada:

  • genreId (cadena, opcional): Nombre del género a explorar
  • limit (número, opcional): Resultados máximos (por defecto: 10)

Ejemplo:

{
  "genreId": "RPG",
  "limit": 5
}

10. steamgrid_search_game

Busca juegos en SteamGridDB.

Entrada:

  • query (cadena, requerido): Nombre del juego a buscar

Ejemplo:

{
  "query": "Elden Ring"
}

11. steamgrid_get_assets

Obtén recursos visuales para un juego desde SteamGridDB.

Entrada:

  • gameId (número, requerido): ID del juego en SteamGridDB
  • assetTypes (matriz, opcional): Tipos de recursos a recuperar: grid, hero, logo, icon (por defecto: todos)

Ejemplo:

{
  "gameId": 123456,
  "assetTypes": ["logo", "grid"]
}

12. steamgrid_get_best_logo

Obtén el mejor logotipo transparente para un juego desde SteamGridDB, optimizado para uso en interfaces de usuario.

Entrada:

  • gameId (número, opcional): ID del juego en SteamGridDB
  • appid (número, opcional): ID de la aplicación de Steam

Ejemplo:

{
  "appid": 1245620
}

13. game_get_full_profile

Obtén un perfil completo del juego que combina metadatos de Steam y recursos visuales de SteamGridDB. Esta herramienta maneja automáticamente el mapeo entre Steam y SteamGridDB.

Entrada:

  • query (cadena, requerido): Nombre del juego a buscar

Ejemplo:

{
  "query": "Elden Ring"
}

14. screenscraper_get_systems

Obtén una lista de todos los sistemas de juegos retro compatibles desde ScreenScraper.fr.

Entrada: No se requiere ninguna.

Ejemplo:

{}

Devuelve: Lista de sistemas con ID, nombre, fabricante, fecha de lanzamiento y extensiones de archivo compatibles.

15. screenscraper_search_game

Busca juegos retro en ScreenScraper.fr por nombre.

Entrada:

  • gameName (cadena, requerido): Nombre del juego a buscar
  • systemId (número, opcional): Filtrar por ID del sistema de juegos (usa screenscraper_get_systems para encontrar IDs)
  • language (cadena, opcional): Código de idioma para nombres y descripciones de juegos (por defecto: "en")

Ejemplo:

{
  "gameName": "Super Mario Bros",
  "systemId": 4,
  "language": "en"
}

Devuelve: Lista de juegos coincidentes con metadatos que incluyen sistema, desarrollador, editor, géneros y sinopsis.

16. screenscraper_get_game_info

Obtén información detallada y recursos multimedia para un juego retro desde ScreenScraper.fr.

Entrada:

  • gameId (número, opcional): ID del juego en ScreenScraper
  • gameName (cadena, opcional): Nombre del juego a buscar
  • systemId (número, opcional): ID del sistema de juegos
  • crc (cadena, opcional): Suma de verificación CRC de la ROM
  • md5 (cadena, opcional): Suma de verificación MD5 de la ROM
  • sha1 (cadena, opcional): Suma de verificación SHA1 de la ROM
  • romName (cadena, opcional): Nombre del archivo de la ROM
  • romSize (número, opcional): Tamaño del archivo de la ROM en bytes
  • language (cadena, opcional): Código de idioma (por defecto: "en")

Ejemplo (por ID del juego):

{
  "gameId": 12345,
  "systemId": 4
}

Ejemplo (por suma de verificación de la ROM):

{
  "md5": "a31ec74822f6e93f848ac58d9c85716c",
  "systemId": 4
}

Devuelve: Información completa del juego, incluyendo todos los recursos multimedia disponibles (capturas de pantalla, carátulas, ruedas, marquesinas, videos, fanarts, cajas, cartuchos, mapas).

Desarrollo

Scripts

  • npm run build - Compila TypeScript a JavaScript
  • npm start - Ejecuta el servidor compilado
  • npm run dev - Compila y ejecuta en un solo comando

Estructura del Proyecto

game-encyclopedia-mcp-server/
├── src/
│   ├── index.ts           # Main server entry point
│   ├── config.ts          # Configuration management
│   ├── types.ts           # TypeScript type definitions
│   └── tools/
│       ├── steam.ts       # Steam API integration
│       ├── steamgrid.ts   # SteamGridDB API integration
│       ├── screenscraper.ts # ScreenScraper API integration
│       └── unified.ts     # Unified search tool implementation
├── package.json
├── tsconfig.json
└── .env.example

Solución de Problemas

"Error de configuración" al iniciar

Asegúrate de haber creado un archivo .env con claves de API válidas:

  • Verifica que .env exista en la raíz del proyecto
  • Confirma que STEAMGRIDDB_API_KEY esté configurado
  • Asegúrate de que no haya comillas alrededor de las claves en el archivo .env

Errores de "Juego no encontrado"

  • Para SteamGridDB: Asegúrate de que el ID del juego sea de SteamGridDB, no de Steam

No se devuelven recursos visuales

Algunos juegos pueden no tener todos los tipos de recursos disponibles. El servidor devuelve solo los recursos que existen en SteamGridDB.

Licencia

MIT