Videogame Encyclopedia MCP Server
Servidor MCP dedicado a reunir informações sobre videogames.
Documentação
Servidor MCP de Enciclopédia de Videogames
Um servidor Model Context Protocol (MCP) que fornece informações estruturadas sobre videogames da Steam e SteamGridDB. Este servidor expõe ferramentas para pesquisar jogos e recuperar metadados abrangentes, incluindo descrições, categorias, datas de lançamento, contagens de jogadores e recursos visuais como logotipos, capas e ícones.
Recursos
Integração com Steam
- steam_search_game: Pesquise jogos por nome na Steam
- steam_get_details: Obtenha informações abrangentes do jogo, incluindo:
- Descrição e informações detalhadas
- Categorias e gêneros
- Plataformas suportadas (Windows, Mac, Linux)
- Recursos multiplayer/singleplayer
- Data de lançamento
- Informações de preço
- Detalhes do desenvolvedor e publicadora
- steam_get_dlc_list: Liste todos os DLCs disponíveis para um jogo específico
- steam_get_reviews_summary: Obtenha avaliações da comunidade e trechos das principais análises
- steam_get_game_news: Obtenha as últimas notícias e anúncios de um jogo
- steam_get_player_count: Obtenha o número atual de jogadores online de um jogo
- steam_get_top_sellers: Obtenha os jogos mais vendidos globalmente no momento
- steam_get_top_games: Navegue pelos principais jogos por gênero ou categoria
- steam_get_genres: Obtenha uma lista de gêneros comuns da Steam para descoberta
Integração com SteamGridDB
- steamgrid_search_game: Pesquise jogos no SteamGridDB
- steamgrid_get_assets: Recupere recursos visuais, incluindo:
- Logotipos transparentes
- Imagens de capa/grade
- Imagens hero/banner
- Ícones
- Múltiplas variações com metadados (dimensões, tipo MIME, autor)
- steamgrid_get_best_logo: Obtenha o melhor logotipo transparente para um jogo
Integração com ScreenScraper
- screenscraper_get_systems: Obtenha uma lista de todos os sistemas de jogos retrô suportados
- screenscraper_search_game: Pesquise jogos retrô por nome com filtro opcional de sistema
- screenscraper_get_game_info: Obtenha informações detalhadas do jogo e recursos de mídia, incluindo:
- Metadados do jogo (desenvolvedor, publicadora, data de lançamento, classificação)
- Capturas de tela, capas e artes de caixa
- Logotipos de roda e marquees
- Pré-visualizações de vídeo
- Fan art e imagens de cartucho
- Suporte para identificação de ROM via checksums (CRC, MD5, SHA1)
Ferramentas Unificadas
- game_get_full_profile: Obtenha um perfil abrangente do jogo em uma única solicitação, agregando metadados da Steam e recursos visuais da comunidade do SteamGridDB. Esta é a ferramenta recomendada para fornecer uma visão geral completa de um jogo.
Instalação
Pré-requisitos
- Node.js 18 ou superior
- npm ou yarn
Configuração
-
Clone ou baixe este repositório
cd /Users/hoanicross/devel/perso/genai/mcp/game-encyclopedia-mcp-server -
Instale as dependências
npm install -
Configure as chaves de API
Copie o arquivo de ambiente de exemplo:
cp .env.example .envEdite
.enve adicione suas chaves de API:- Chave de API do SteamGridDB: Necessária para recursos visuais de alta qualidade (grades, heroes, logotipos). Obtenha em steamgriddb.com.
Configuração
O servidor requer as seguintes variáveis de ambiente:
| Variável | Obrigatória | Descrição |
|---|---|---|
STEAMGRIDDB_API_KEY | Sim | Sua chave de API do SteamGridDB |
SCREENSCRAPER_DEV_ID | Não | ID de desenvolvedor do ScreenScraper (para jogos retrô) |
SCREENSCRAPER_DEV_PASSWORD | Não | Senha de desenvolvedor do ScreenScraper |
SCREENSCRAPER_USER_ID | Não | Nome de usuário do ScreenScraper (opcional, fornece cota de API maior) |
SCREENSCRAPER_USER_PASSWORD | Não | Senha de usuário do ScreenScraper |
SCREENSCRAPER_SOFTWARE_NAME | Não | Identificador de software (padrão: 'game-encyclopedia-mcp-server') |
Configuração
1. Variáveis de Ambiente
Crie um arquivo .env no diretório raiz:
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 obter credenciais do ScreenScraper:
- Registre-se em screenscraper.fr
- Solicite credenciais de desenvolvedor no fórum de desenvolvedores
- Compile o projeto
npm run build
Uso
Com o Claude Desktop
Adicione este servidor ao seu arquivo de configuração do 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"
}
}
}
}
Reinicie o Claude Desktop para carregar o servidor.
Instalação/Inicialização Rápida
Via Smithery
Você pode instalar este servidor no seu cliente MCP (como o Claude Desktop) com um único comando:
npx -y @smithery/cli@latest install videogame-encyclopedia-mcp-server --client claude
Via uvx
Se você tiver o uv instalado, pode executar o servidor diretamente (requer Node.js localmente):
uvx --from node videogame-encyclopedia-mcp-server
Via npx
npx videogame-encyclopedia-mcp-server
[!NOTE] Para publicar este pacote no NPM, você deve definir um segredo
NPM_TOKENnas configurações do seu repositório GitHub.
Ferramentas Disponíveis
1. steam_search_game
Pesquise jogos na Steam por nome.
Entrada:
query(string, obrigatório): Nome do jogo a pesquisarlimit(número, opcional): Máximo de resultados (padrão: 10)
Exemplo:
{
"query": "Elden Ring",
"limit": 5
}
2. steam_get_details
Obtenha informações detalhadas sobre um jogo da Steam.
Entrada:
appid(número, obrigatório): ID do aplicativo Steam
Exemplo:
{
"appid": 1245620
}
3. steam_get_dlc_list
Obtenha uma lista de todos os DLCs disponíveis para um jogo específico da Steam.
Entrada:
appid(número, obrigatório): ID do aplicativo Steam
Exemplo:
{
"appid": 1245620
}
4. steam_get_reviews_summary
Obtenha um resumo das análises e avaliações de usuários para um jogo específico da Steam.
Entrada:
appid(número, obrigatório): ID do aplicativo Steam
Exemplo:
{
"appid": 1245620
}
5. steam_get_game_news
Obtenha as últimas notícias e anúncios para um jogo específico da Steam.
Entrada:
appid(número, obrigatório): ID do aplicativo Steam do jogocount(número, opcional): Número de notícias a buscar (padrão: 5)
Exemplo:
{
"appid": 1245620,
"count": 3
}
6. steam_get_player_count
Obtenha o número atual de jogadores online para um jogo específico da Steam.
Entrada:
appid(número, obrigatório): ID do aplicativo Steam do jogo
Exemplo:
{
"appid": 1245620
}
7. steam_get_genres
Obtenha uma lista de gêneros e categorias comuns da Steam para descoberta.
Exemplo:
{}
8. steam_get_top_sellers
Obtenha os jogos mais vendidos globalmente no momento na Steam.
Entrada:
limit(número, opcional): Máximo de resultados (padrão: 10)
Exemplo:
{
"limit": 5
}
9. steam_get_top_games
Navegue pelos principais jogos para uma categoria ou gênero específico da Steam (ex.: "Action", "RPG", "Strategy").
Entrada:
genreId(string, opcional): Nome do gênero a navegarlimit(número, opcional): Máximo de resultados (padrão: 10)
Exemplo:
{
"genreId": "RPG",
"limit": 5
}
10. steamgrid_search_game
Pesquise jogos no SteamGridDB.
Entrada:
query(string, obrigatório): Nome do jogo a pesquisar
Exemplo:
{
"query": "Elden Ring"
}
11. steamgrid_get_assets
Obtenha recursos visuais para um jogo do SteamGridDB.
Entrada:
gameId(número, obrigatório): ID do jogo no SteamGridDBassetTypes(array, opcional): Tipos de recursos a recuperar:grid,hero,logo,icon(padrão: todos)
Exemplo:
{
"gameId": 123456,
"assetTypes": ["logo", "grid"]
}
12. steamgrid_get_best_logo
Obtenha o melhor logotipo transparente para um jogo do SteamGridDB, otimizado para uso em interface.
Entrada:
gameId(número, opcional): ID do jogo no SteamGridDBappid(número, opcional): ID do aplicativo Steam
Exemplo:
{
"appid": 1245620
}
13. game_get_full_profile
Obtenha um perfil abrangente do jogo combinando metadados da Steam e recursos visuais do SteamGridDB. Esta ferramenta lida automaticamente com o mapeamento entre Steam e SteamGridDB.
Entrada:
query(string, obrigatório): Nome do jogo a pesquisar
Exemplo:
{
"query": "Elden Ring"
}
14. screenscraper_get_systems
Obtenha uma lista de todos os sistemas de jogos retrô suportados do ScreenScraper.fr.
Entrada: Nenhuma necessária.
Exemplo:
{}
Retorna: Lista de sistemas com ID, nome, fabricante, data de lançamento e extensões de arquivo suportadas.
15. screenscraper_search_game
Pesquise jogos retrô no ScreenScraper.fr por nome.
Entrada:
gameName(string, obrigatório): Nome do jogo a pesquisarsystemId(número, opcional): Filtrar por ID do sistema de jogos (usescreenscraper_get_systemspara encontrar IDs)language(string, opcional): Código de idioma para nomes e descrições de jogos (padrão: "en")
Exemplo:
{
"gameName": "Super Mario Bros",
"systemId": 4,
"language": "en"
}
Retorna: Lista de jogos correspondentes com metadados incluindo sistema, desenvolvedor, publicadora, gêneros e sinopse.
16. screenscraper_get_game_info
Obtenha informações detalhadas e recursos de mídia para um jogo retrô do ScreenScraper.fr.
Entrada:
gameId(número, opcional): ID do jogo no ScreenScrapergameName(string, opcional): Nome do jogo a pesquisarsystemId(número, opcional): ID do sistema de jogoscrc(string, opcional): Checksum CRC da ROMmd5(string, opcional): Checksum MD5 da ROMsha1(string, opcional): Checksum SHA1 da ROMromName(string, opcional): Nome do arquivo da ROMromSize(número, opcional): Tamanho do arquivo da ROM em byteslanguage(string, opcional): Código de idioma (padrão: "en")
Exemplo (por ID do jogo):
{
"gameId": 12345,
"systemId": 4
}
Exemplo (por checksum da ROM):
{
"md5": "a31ec74822f6e93f848ac58d9c85716c",
"systemId": 4
}
Retorna: Informações abrangentes do jogo incluindo toda a mídia disponível (capturas de tela, capas, rodas, marquees, vídeos, fanarts, caixas, cartuchos, mapas).
Desenvolvimento
Scripts
npm run build- Compilar TypeScript para JavaScriptnpm start- Executar o servidor compiladonpm run dev- Compilar e executar em um único comando
Estrutura do Projeto
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
Solução de Problemas
"Erro de configuração" na inicialização
Certifique-se de ter criado um arquivo .env com chaves de API válidas:
- Verifique se
.envexiste na raiz do projeto - Confirme se
STEAMGRIDDB_API_KEYestá definido - Garanta que não há aspas ao redor das chaves no arquivo
.env
Erros de "Jogo não encontrado"
- Para SteamGridDB: Certifique-se de que o ID do jogo é do SteamGridDB, não da Steam
Nenhum recurso visual retornado
Alguns jogos podem não ter todos os tipos de recursos disponíveis. O servidor retorna apenas os recursos que existem no SteamGridDB.
Licença
MIT