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
-
Clona o descarga este repositorio
cd /Users/hoanicross/devel/perso/genai/mcp/game-encyclopedia-mcp-server -
Instala las dependencias
npm install -
Configura las claves de API
Copia el archivo de entorno de ejemplo:
cp .env.example .envEdita
.envy 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:
| Variable | Requerida | Descripción |
|---|---|---|
STEAMGRIDDB_API_KEY | Sí | Tu clave de API de SteamGridDB |
SCREENSCRAPER_DEV_ID | No | ID de desarrollador de ScreenScraper (para juegos retro) |
SCREENSCRAPER_DEV_PASSWORD | No | Contraseña de desarrollador de ScreenScraper |
SCREENSCRAPER_USER_ID | No | Nombre de usuario de ScreenScraper (opcional, proporciona mayor cuota de API) |
SCREENSCRAPER_USER_PASSWORD | No | Contraseña de usuario de ScreenScraper |
SCREENSCRAPER_SOFTWARE_NAME | No | Identificador 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:
- Regístrate en screenscraper.fr
- Solicita credenciales de desarrollador en el foro de desarrolladores
- 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_TOKENen 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 buscarlimit(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 juegocount(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 explorarlimit(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 SteamGridDBassetTypes(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 SteamGridDBappid(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 buscarsystemId(número, opcional): Filtrar por ID del sistema de juegos (usascreenscraper_get_systemspara 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 ScreenScrapergameName(cadena, opcional): Nombre del juego a buscarsystemId(número, opcional): ID del sistema de juegoscrc(cadena, opcional): Suma de verificación CRC de la ROMmd5(cadena, opcional): Suma de verificación MD5 de la ROMsha1(cadena, opcional): Suma de verificación SHA1 de la ROMromName(cadena, opcional): Nombre del archivo de la ROMromSize(número, opcional): Tamaño del archivo de la ROM en byteslanguage(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 JavaScriptnpm start- Ejecuta el servidor compiladonpm 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
.envexista en la raíz del proyecto - Confirma que
STEAMGRIDDB_API_KEYesté 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