Steam Game Server MCP

Model Context Protocol (MCP) server that inquires, diagnoses, and manages steam profiles, game libraries, concurrent users, and game server status.

Steam & Game Server MCP

Steam 프로필, 게임 라이브러리, 동시 접속자, 게임 서버 상태를 조회·진단·관리하는 MCP(Model Context Protocol) 서버입니다.
Cursor, Claude Desktop, VS Code, Windsurf 등 MCP 클라이언트에서 사용합니다.


1. 소개

구분내용
역할Steam Web API + 게임 서버(Query/RCON/로그) 통합
Steam프로필, 게임 라이브러리, 동시 접속자, 앱 뉴스 조회
Game Servergamedig 기반 서버 상태 조회, RCON(kick/ban/restart), 로그 파싱

2. 요구사항

  • Node.js 18+
  • MCP 클라이언트 (Cursor, Claude Desktop, VS Code, Windsurf 등)
  • STEAM_API_KEYSteam API 키 발급

MCP 설정의 env에 환경변수를 넣는 것을 기준으로 합니다. .env는 로컬 개발 시에만 사용합니다.


3. MCP 설정

3.1 표준 설정 (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: 미설정 시 ./servers.json 사용. 둘 다 없으면 Steam 도구만 동작

3.2 Cursor

  1. SettingsMCPAdd new MCP Server
  2. 위 JSON 입력 (또는 commandnode, args["/path/to/dist/index.js"]로 로컬 빌드 경로 지정)

3.3 env 키별 요약

env 키필수용도
STEAM_API_KEYOSteam API 인증. Steam 도구 사용 시 필수
STEAM_IDX기본 Steam ID. 없으면 도구 호출 시 steamId 인자 필요
STEAM_MCP_SERVERS_PATHXservers.json 경로. Game Server 도구 사용 시 필요
SERVER_RCON_PASSWORDXRCON 비밀번호. Admin 도구 사용 시, servers.json의 passwordEnv와 일치하는 이름으로 설정
STEAM_MCP_ADMIN_TOKENXadd_server, remove_server 호출 시 필요. env + adminToken 파라미터 둘 다 일치해야 실행

3.4 사용 시나리오별 env 세트

시나리오env파일
Steam 조회만STEAM_API_KEY, STEAM_ID(선택)-
Game Server 조회STEAM_API_KEY, STEAM_MCP_SERVERS_PATHservers.json
Game Server + RCON Admin위 + SERVER_RCON_PASSWORDservers.json (rcon 설정 포함)
add_server, remove_server위 + STEAM_MCP_ADMIN_TOKENservers.json

4. MCP 도구 (26개)

Steam (7개)

도구설명
steam_resolve_vanity_url커스텀 URL → SteamID 변환
steam_get_player_summary프로필 요약
steam_get_owned_games보유 게임 목록
steam_get_recently_played최근 플레이 게임
steam_get_current_players앱별 동시 접속자 수
steam_get_servers_at_addressIP로 게임 서버 조회
steam_get_app_news앱 뉴스/패치 노트

Game Server (3개)

도구설명
game_server_query서버 상태 (이름, 맵, 인원, ping)
game_server_players플레이어 목록
game_server_rules서버 규칙(cvars)

Monitoring (6개)

도구설명
server_overview모든 서버 상태 조회
server_health단일 서버 진단
server_diagnoseAI용 진단
server_compare서버 비교 + 추천
server_alert문제 서버 필터링
server_trend플레이어 수 추이

Admin (4개) — RCON 필요

도구설명
server_admin_kick_player플레이어 추방
server_admin_ban_player플레이어 밴
server_admin_restart_server서버 재시작
server_admin_rcon_commandwhitelist RCON 명령

Inventory (4개)

도구설명
add_serverservers.json에 서버 추가
remove_serverservers.json에서 서버 삭제
list_servers등록 서버 목록
auto_discover_serversSteam Master Server로 후보 탐색

Discovery (1개)

도구설명
steam_discover_serversSteam Master Server Query로 게임 서버 검색

Log (1개)

도구설명
log_recent_eventsservers.json의 logPath(로컬 파일 경로)에서 player_join/leave, error 추출

5. 테스트

자동 테스트 (Vitest)

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

수동 테스트

  • Game Server 조회: 공개 Minecraft 서버(Hypixel 등)를 servers.json에 등록 후 game_server_query, server_overview 호출
  • RCON: npm run rcon:server로 mock 서버 실행 → STEAM_MCP_SERVERS_PATH=./test/rcon/servers.rcon-test.json SERVER_RCON_PASSWORD=test123 npm run rcon:test -- my-rust status

6. 주의사항 및 구현 제약

에러 조건

  • gamedig type: typeGAMES_LIST와 일치해야 함
  • RCON: rcon.enabled: true인데 passwordEnv에 해당하는 env가 없으면 "RCON not configured for this server." 반환
  • STEAM_API_KEY: 미설정 시 Steam 도구 전부 "STEAM_API_KEY 환경 변수를 확인하세요." 반환

구현 제약

항목제약
log_recent_eventslogPath는 MCP 프로세스가 접근 가능한 로컬 파일 경로만 지원. 원격 URL/SSH 불가. 지원 게임: rust, counterstrike2/csgo/tf2 등 Source 엔진, minecraft
server_trendgame_server_query 호출 시 샘플이 누적됨. trend만 단독 호출하면 데이터 없을 수 있음
add_server, remove_serveradminToken 파라미터에 STEAM_MCP_ADMIN_TOKEN env와 동일한 값을 넣어야 실행됨

7. 개발 셋업

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

로컬 실행 시 .envSTEAM_API_KEY, STEAM_ID, RCON 비밀번호 등을 설정합니다.

Related Servers