Steam & Game Server MCP
Servidor MCP (Model Context Protocol) para consultar, diagnosticar e gerenciar perfis Steam, biblioteca de jogos, jogadores simultâneos e status de servidores de jogos.
Use com clientes MCP como Cursor, Claude Desktop, VS Code, Windsurf, etc.
1. Introdução
| Categoria | Descrição |
|---|
| Função | Integração Steam Web API + servidores de jogos (Query/RCON/logs) |
| Steam | Perfis, biblioteca de jogos, jogadores simultâneos, notícias de aplicativos |
| Game Server | Consulta de status de servidor via gamedig, RCON (kick/ban/restart), parsing de logs |
2. Requisitos
- Node.js 18+
- Cliente MCP (Cursor, Claude Desktop, VS Code, Windsurf, etc.)
STEAM_API_KEY — Obter chave da API Steam
A configuração considera a inserção de variáveis de ambiente em env nas configurações do MCP. .env é usado apenas para desenvolvimento local.
3. Configuração do MCP
3.1 Configuração padrão (npx)
# 사전 설치 없이 npx로 최신 버전 실행 (최초 1회 실행 시 패키지를 내려받습니다)
npx steam-game-server-mcp@latest --help
{
"mcpServers": {
"steam-game-server": {
"command": "npx",
"args": ["steam-game-server-mcp@latest"],
"env": {
"STEAM_API_KEY": "your_key",
"STEAM_ID": "your_steam_id",
"STEAM_MCP_SERVERS_PATH": "C:/path/to/servers.json"
}
}
}
}
STEAM_MCP_SERVERS_PATH: se não definido, usa ./servers.json. Se ambos estiverem ausentes, apenas as ferramentas Steam funcionam
3.2 Cursor
Settings → MCP → Add new MCP Server
- Insira o JSON acima (ou defina
command como node e args como ["/path/to/dist/index.js"] para caminhos de build local)
3.3 Resumo por chave de env
| env key | Obrigatório | Uso |
|---|
STEAM_API_KEY | O | Autenticação da API Steam. Obrigatório ao usar ferramentas Steam |
STEAM_ID | X | Steam ID padrão. Se ausente, o argumento steamId é necessário ao chamar as ferramentas |
STEAM_MCP_SERVERS_PATH | X | Caminho do servers.json. Necessário ao usar ferramentas de Game Server |
SERVER_RCON_PASSWORD etc. | X | Senha RCON. Ao usar ferramentas Admin, defina com nome correspondente ao passwordEnv no servers.json |
STEAM_MCP_ADMIN_TOKEN | X | Necessário ao chamar add_server, remove_server. A execução exige que env e o parâmetro adminToken coincidam |
3.4 Conjuntos de env por cenário de uso
| Cenário | env | Arquivo |
|---|
| Apenas consulta Steam | STEAM_API_KEY, STEAM_ID(opcional) | - |
| Consulta de Game Server | STEAM_API_KEY, STEAM_MCP_SERVERS_PATH | servers.json |
| Game Server + RCON Admin | Acima + SERVER_RCON_PASSWORD | servers.json (inclui configuração rcon) |
| add_server, remove_server | Acima + STEAM_MCP_ADMIN_TOKEN | servers.json |
4. Ferramentas MCP (26)
Steam (7)
| Ferramenta | Descrição |
|---|
steam_resolve_vanity_url | Converte URL personalizada → SteamID |
steam_get_player_summary | Resumo do perfil |
steam_get_owned_games | Lista de jogos possuídos |
steam_get_recently_played | Jogos jogados recentemente |
steam_get_current_players | Jogadores simultâneos por aplicativo |
steam_get_servers_at_address | Consulta servidor de jogos por IP |
steam_get_app_news | Notícias/notas de atualização do aplicativo |
Game Server (3)
| Ferramenta | Descrição |
|---|
game_server_query | Status do servidor (nome, mapa, jogadores, ping) |
game_server_players | Lista de jogadores |
game_server_rules | Regras do servidor (cvars) |
Monitoring (6)
| Ferramenta | Descrição |
|---|
server_overview | Consulta status de todos os servidores |
server_health | Diagnóstico de servidor único |
server_diagnose | Diagnóstico para IA |
server_compare | Comparação de servidores + recomendação |
server_alert | Filtro de servidores com problemas |
server_trend | Tendência de número de jogadores |
Admin (4) — requer RCON
| Ferramenta | Descrição |
|---|
server_admin_kick_player | Expulsar jogador |
server_admin_ban_player | Banir jogador |
server_admin_restart_server | Reiniciar servidor |
server_admin_rcon_command | Comando RCON de whitelist |
Inventory (4)
| Ferramenta | Descrição |
|---|
add_server | Adiciona servidor ao servers.json |
remove_server | Remove servidor do servers.json |
list_servers | Lista de servidores registrados |
auto_discover_servers | Busca candidatos via Steam Master Server |
Discovery (1)
| Ferramenta | Descrição |
|---|
steam_discover_servers | Busca servidores de jogos via Steam Master Server Query |
Log (1)
| Ferramenta | Descrição |
|---|
log_recent_events | Extrai player_join/leave e erros do logPath (caminho de arquivo local) no servers.json |
5. Testes
Testes automáticos (Vitest)
npm test
- config/servers, server-tools, inventory-tools, admin-tools, discovery-tools, log-tools, steam-tools, rcon/client — total de 76
Testes manuais
- Consulta de Game Server: registre um servidor Minecraft público (ex.: Hypixel) no servers.json e chame
game_server_query, server_overview
- RCON: execute um servidor mock com
npm run rcon:server → STEAM_MCP_SERVERS_PATH=./test/rcon/servers.rcon-test.json SERVER_RCON_PASSWORD=test123 npm run rcon:test -- my-rust status
6. Atenções e restrições de implementação
Condições de erro
- tipo gamedig:
type deve corresponder a GAMES_LIST
- RCON: se
rcon.enabled: true e não houver env correspondente a passwordEnv, retorna "RCON not configured for this server."
- STEAM_API_KEY: se não definida, todas as ferramentas Steam retornam
"STEAM_API_KEY 환경 변수를 확인하세요."
Restrições de implementação
| Item | Restrição |
|---|
log_recent_events | logPath suporta apenas caminhos de arquivo local acessíveis pelo processo MCP. URL remota/SSH não é permitido. Jogos suportados: rust, counterstrike2/csgo/tf2 e outros motores Source, minecraft |
server_trend | Amostras se acumulam ao chamar game_server_query. Chamar apenas trend isoladamente pode não ter dados |
add_server, remove_server | É necessário inserir o mesmo valor da env STEAM_MCP_ADMIN_TOKEN no parâmetro adminToken para executar |
7. Configuração de desenvolvimento
npm install
npm run build
npm run dev # 또는 npm start
Ao executar localmente, defina STEAM_API_KEY, STEAM_ID, senha RCON, etc. em .env.