An MCP server that lets AI assistants query GoldSrc game servers (Half-Life, Counter-Strike 1.6, etc.) using the goldsrc-query library.
| Tool | Description |
|---|---|
ping |
Round-trip latency in milliseconds |
get_server_info |
Server name, map, player counts, VAC status, and more |
get_players |
Current player list with names, scores, and time in-game |
get_rules |
All server cvars |
get_all |
Server info, player list, and rules in one call |
send_rcon |
Send a single RCON command and return the response |
send_rcon_batch |
Send multiple RCON commands over a single authenticated connection |
npx goldsrc-query-mcpOr install globally:
npm install -g goldsrc-query-mcpRequirements: Node.js >=20.12.0
The server supports three transports selected via the MCP_TRANSPORT environment variable (or the --http flag for HTTP).
node dist/index.js
# or
npx goldsrc-query-mcpMCP_TRANSPORT=http MCP_PORT=3000 node dist/index.js
# shorthand flag
node dist/index.js --httpMCP_TRANSPORT=https MCP_PORT=443 MCP_TLS_CERT=cert.pem MCP_TLS_KEY=key.pem node dist/index.jsMCP_TLS_CERT and MCP_TLS_KEY must both be set; the server exits with an error if either is missing.
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"goldsrc": {
"command": "npx",
"args": ["goldsrc-query-mcp"]
}
}
}- "What map is
192.168.1.10:27015running?" - "How many players are on the server at
cs.example.com?" - "Show me all the cvars on my server."
- "Run
sv_gravity 800on my server at192.168.1.10with passwordsecret." - "Kick all bots and change the map to de_dust2 on my server."
All tools accept address (required), port (default 27015), and timeout (default 3000ms).
Returns the round-trip latency in milliseconds.
Returns server metadata as JSON - name, map, player counts, VAC status, server type, environment, and optional EDF fields.
Returns the player list as JSON - index, name, score, and duration (seconds in-game) per player.
Returns all server cvars as JSON - total count and a list of { name, value } pairs.
Returns server info, player list, and rules in a single call. Use this instead of calling get_server_info, get_players, and get_rules separately.
address: "192.168.1.10"
password: "your_rcon_password"
command: "status"
Sends a single RCON command and returns the server response.
address: "192.168.1.10"
password: "your_rcon_password"
commands: ["sv_gravity 800", "mp_friendlyfire 1", "changelevel de_dust2"]
Sends multiple RCON commands over a single authenticated connection. Returns an array of { command, response } pairs. Use instead of send_rcon when running more than one command.