Steam Game Server MCP

Servidor del Protocolo de Contexto de Modelo (MCP) que consulta, diagnostica y gestiona perfiles de Steam, bibliotecas de juegos, usuarios concurrentes y estado del servidor de juegos.

Documentación

Steam y Game Server MCP

Servidor MCP (Model Context Protocol) para consultar, diagnosticar y administrar perfiles de Steam, bibliotecas de juegos, jugadores concurrentes y estado de servidores de juegos.
Se utiliza en clientes MCP como Cursor, Claude Desktop, VS Code, Windsurf, etc.


1. Introducción

CategoríaContenido
RolIntegración de Steam Web API + servidores de juegos (Query/RCON/logs)
SteamConsulta de perfiles, bibliotecas de juegos, jugadores concurrentes, noticias de aplicaciones
Game ServerConsulta de estado del servidor basada en gamedig, RCON (kick/ban/restart), parseo de logs

2. Requisitos

  • Node.js 18+
  • Cliente MCP (Cursor, Claude Desktop, VS Code, Windsurf, etc.)
  • STEAM_API_KEY — Obtener clave de API de Steam

Se toma como base la inclusión de variables de entorno en env de la configuración MCP. .env se usa solo para desarrollo local.


3. Configuración MCP

3.1 Configuración estándar (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: si no se configura, se usa ./servers.json. Si no hay ninguno, solo funcionan las herramientas de Steam

3.2 Cursor

  1. SettingsMCPAdd new MCP Server
  2. Ingresar el JSON anterior (o especificar la ruta de compilación local con command como node y args como ["/path/to/dist/index.js"])

3.3 Resumen por clave de env

Clave de envObligatorioUso
STEAM_API_KEYOAutenticación de la API de Steam. Obligatorio al usar herramientas de Steam
STEAM_IDXID de Steam predeterminado. Si no existe, se requiere el argumento steamId al llamar a la herramienta
STEAM_MCP_SERVERS_PATHXRuta de servers.json. Necesaria al usar herramientas de Game Server
SERVER_RCON_PASSWORD etc.XContraseña RCON. Al usar herramientas de Admin, configurar con un nombre que coincida con passwordEnv de servers.json
STEAM_MCP_ADMIN_TOKENXNecesaria al llamar a add_server, remove_server. Debe coincidir tanto el env como el parámetro adminToken para ejecutarse

3.4 Conjuntos de env según el escenario de uso

EscenarioenvArchivo
Solo consulta de SteamSTEAM_API_KEY, STEAM_ID (opcional)-
Consulta de Game ServerSTEAM_API_KEY, STEAM_MCP_SERVERS_PATHservers.json
Game Server + RCON AdminLo anterior + SERVER_RCON_PASSWORDservers.json (incluye config RCON)
add_server, remove_serverLo anterior + STEAM_MCP_ADMIN_TOKENservers.json

4. Herramientas MCP (26)

Steam (7)

HerramientaDescripción
steam_resolve_vanity_urlConversión de URL personalizada → SteamID
steam_get_player_summaryResumen de perfil
steam_get_owned_gamesLista de juegos en propiedad
steam_get_recently_playedJuegos jugados recientemente
steam_get_current_playersJugadores concurrentes por aplicación
steam_get_servers_at_addressConsulta de servidor de juego por IP
steam_get_app_newsNoticias/notas de parche de la aplicación

Game Server (3)

HerramientaDescripción
game_server_queryEstado del servidor (nombre, mapa, jugadores, ping)
game_server_playersLista de jugadores
game_server_rulesReglas del servidor (cvars)

Monitoring (6)

HerramientaDescripción
server_overviewConsulta de estado de todos los servidores
server_healthDiagnóstico de un solo servidor
server_diagnoseDiagnóstico para IA
server_compareComparación de servidores + recomendación
server_alertFiltrado de servidores con problemas
server_trendTendencia de jugadores

Admin (4) — requiere RCON

HerramientaDescripción
server_admin_kick_playerExpulsar jugador
server_admin_ban_playerBanear jugador
server_admin_restart_serverReiniciar servidor
server_admin_rcon_commandComando RCON de whitelist

Inventory (4)

HerramientaDescripción
add_serverAgregar servidor a servers.json
remove_serverEliminar servidor de servers.json
list_serversLista de servidores registrados
auto_discover_serversBúsqueda de candidatos con Steam Master Server

Discovery (1)

HerramientaDescripción
steam_discover_serversBúsqueda de servidores de juego con Steam Master Server Query

Log (1)

HerramientaDescripción
log_recent_eventsExtrae player_join/leave y errores desde logPath (ruta de archivo local) de servers.json

5. Pruebas

Pruebas automáticas (Vitest)

npm test
  • config/servers, server-tools, inventory-tools, admin-tools, discovery-tools, log-tools, steam-tools, rcon/client — 76 en total

Pruebas manuales

  • Consulta de Game Server: registrar un servidor público de Minecraft (Hypixel, etc.) en servers.json y llamar a game_server_query, server_overview
  • RCON: ejecutar un servidor mock con npm run rcon:serverSTEAM_MCP_SERVERS_PATH=./test/rcon/servers.rcon-test.json SERVER_RCON_PASSWORD=test123 npm run rcon:test -- my-rust status

6. Advertencias y restricciones de implementación

Condiciones de error

  • Tipo gamedig: type debe coincidir con GAMES_LIST
  • RCON: si es rcon.enabled: true pero no existe un env correspondiente en passwordEnv, se devuelve "RCON not configured for this server."
  • STEAM_API_KEY: si no se configura, todas las herramientas de Steam devuelven "STEAM_API_KEY 환경 변수를 확인하세요."

Restricciones de implementación

ElementoRestricción
log_recent_eventslogPath solo admite rutas de archivo locales accesibles por el proceso MCP. No se permiten URL remotas/SSH. Juegos compatibles: rust, counterstrike2/csgo/tf2 y otros motores Source, minecraft
server_trendAl llamar a game_server_query se acumulan muestras. Si se llama solo a trend, puede que no haya datos
add_server, remove_serverSe debe ingresar el mismo valor que el env STEAM_MCP_ADMIN_TOKEN en el parámetro adminToken para que se ejecute

7. Configuración de desarrollo

npm install
npm run build
npm run dev   # 또는 npm start

Al ejecutar localmente, configure STEAM_API_KEY, STEAM_ID, contraseñas RCON, etc. en .env.