Labsco
jumoooo logo

Steam Game Server MCP

from jumoooo

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

πŸ”₯πŸ”₯πŸ”₯βœ“ VerifiedAccount requiredNeeds API keys

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_KEY β€” Steam 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. Settings β†’ MCP β†’ Add new MCP Server
  2. μœ„ JSON μž…λ ₯ (λ˜λŠ” commandλ₯Ό node, 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_PASSWORD λ“±XRCON λΉ„λ°€λ²ˆν˜Έ. 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: type은 GAMES_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

둜컬 μ‹€ν–‰ μ‹œ .env에 STEAM_API_KEY, STEAM_ID, RCON λΉ„λ°€λ²ˆν˜Έ 등을 μ„€μ •ν•©λ‹ˆλ‹€.