Skip to main content
Glama
omar-hindawi98

goldsrc-query-mcp

goldsrc-query-mcp

npm version license CI E2E

An MCP server that lets AI assistants query GoldSrc game servers (Half-Life, Counter-Strike 1.6, etc.) using the goldsrc-query library.


Tools

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


Related MCP server: mc-rcon-mcp

Installation

npx goldsrc-query-mcp

Or install globally:

npm install -g goldsrc-query-mcp

Requirements: Node.js >=20.12.0


Usage

Transports

The server supports three transports selected via the MCP_TRANSPORT environment variable (or the --http flag for HTTP).

stdio (default)

node dist/index.js
# or
npx goldsrc-query-mcp

HTTP

MCP_TRANSPORT=http MCP_PORT=3000 node dist/index.js
# shorthand flag
node dist/index.js --http

HTTPS

MCP_TRANSPORT=https MCP_PORT=443 MCP_TLS_CERT=cert.pem MCP_TLS_KEY=key.pem node dist/index.js

MCP_TLS_CERT and MCP_TLS_KEY must both be set; the server exits with an error if either is missing.

Claude Desktop

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"]
    }
  }
}

Example prompts

  • "What map is 192.168.1.10:27015 running?"

  • "How many players are on the server at cs.example.com?"

  • "Show me all the cvars on my server."

  • "Run sv_gravity 800 on my server at 192.168.1.10 with password secret."

  • "Kick all bots and change the map to de_dust2 on my server."


Tool reference

All tools accept address (required), port (default 27015), and timeout (default 3000ms).

ping

Returns the round-trip latency in milliseconds.

get_server_info

Returns server metadata as JSON - name, map, player counts, VAC status, server type, environment, and optional EDF fields.

get_players

Returns the player list as JSON - index, name, score, and duration (seconds in-game) per player.

get_rules

Returns all server cvars as JSON - total count and a list of { name, value } pairs.

get_all

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.

send_rcon

address:  "192.168.1.10"
password: "your_rcon_password"
command:  "status"

Sends a single RCON command and returns the server response.

send_rcon_batch

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.

Available Tools

7 tools
get_allGet AllA
Read-only

Get server info, player list, and rules in one call. Use this instead of calling get_server_info, get_players, and get_rules separately.

ParametersJSON Schema
NameRequiredDescriptionDefault
portNoPort number (default: 27015)
addressYesIP address or hostname
timeoutNoRequest timeout in milliseconds (default: 3000)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the tool as read-only and non-destructive, and the description adds useful context that it aggregates multiple data types into a single call. While not detailing response structure, it covers the key behavioral nuance of being a combined operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only two sentences long, with the first sentence stating the purpose and the second giving usage direction. Every word earns its place, making it highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only tool with no output schema, the description communicates the core purpose and what data will be returned (server info, players, rules). While it does not explain the exact response structure, it gives enough context for an agent to decide when to invoke this tool. A slightly richer description of return format would push it to 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides 100% coverage with descriptions and defaults for all parameters (address, port, timeout). The description does not add any parameter-specific meaning, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states exactly what the tool does: it gets server info, player list, and rules in one call. It also explicitly names the sibling tools it replaces, making the distinction clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly recommends using this tool instead of calling get_server_info, get_players, and get_rules separately. This provides clear when-to-use guidance and names the alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_playersGet PlayersA
Read-only

Get the current player list with names, scores, and time in-game. Use to see who is on a server.

ParametersJSON Schema
NameRequiredDescriptionDefault
portNoPort number (default: 27015)
addressYesIP address or hostname
timeoutNoRequest timeout in milliseconds (default: 3000)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows this is a safe read operation. The description adds that it returns 'names, scores, and time in-game,' which clarifies the data behavior but does not disclose additional traits like pagination or network specifics. This is adequate but not rich, matching a 3 given annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with no fluff. The main action is front-loaded ('Get the current player list'), and the second sentence adds a usage hint. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only query tool with no output schema, the description sufficiently explains the return value (player list with names, scores, time) and the intended use case. It could mention the required game server context, but the sibling tools imply a server query environment. Overall, it is complete enough for an agent to select and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with all three parameters (address, port, timeout) having descriptions in the schema. The tool description itself does not add parameter-level detail, so it relies on the schema. Baseline 3 is appropriate because the schema handles parameter semantics fully.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Get the current player list with names, scores, and time in-game.' This specific verb and resource make it easy to understand what the tool does, and it distinguishes itself from siblings like get_server_info or get_rules by focusing on player data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear usage context: 'Use to see who is on a server.' This tells the agent when to invoke the tool, though it does not explicitly mention alternatives or exclusions. That fits the 'clear context, no exclusions' level.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_rulesGet RulesA
Read-only

Get all server cvars. Use to inspect server configuration.

ParametersJSON Schema
NameRequiredDescriptionDefault
portNoPort number (default: 27015)
addressYesIP address or hostname
timeoutNoRequest timeout in milliseconds (default: 3000)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds that it returns 'all server cvars' but gives no further behavioral detail such as response format or timeout behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two succinct sentences that front-load the purpose without any redundant or vague phrasing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only tool, the description adequately covers purpose and usage. No output schema exists, but the return is implied ('server cvars'), and the annotation fills the safety context. Slight improvement possible by describing the return format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions cover 100% of parameters (address, port, timeout) with clear explanations, so the description adds no parameter-specific meaning. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get all server cvars' with a specific verb and resource, and 'inspect server configuration' elaborates the intent. This distinguishes it from sibling tools like get_players and ping, which address different resources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear usage context ('Use to inspect server configuration') but does not explicitly mention when not to use or compare with alternatives like get_server_info. No exclusions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_server_infoGet Server InfoA
Read-only

Get server metadata: name, map, player counts, VAC status, and more. Use to get an overview of a server or check if it is online.

ParametersJSON Schema
NameRequiredDescriptionDefault
portNoPort number (default: 27015)
addressYesIP address or hostname
timeoutNoRequest timeout in milliseconds (default: 3000)

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds the 'check if it is online' behavior, but does not disclose potential timeouts, error handling, or what happens if the server is unreachable. It adds some value beyond annotations but is not rich in behavioral detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences are concise and front-loaded with the core action. The phrase 'and more' is slightly vague but not wasteful. Overall well-structured and easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only query tool with 3 parameters and no output schema, the description covers the purpose, key output fields, and a usage scenario. It is not overly complex, so this level of detail is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all parameters (address, port, timeout). The description does not add extra parameter guidance beyond the schema, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves server metadata and lists specific fields (name, map, player counts, VAC status). It distinguishes from sibling tools like get_players and get_rules by focusing on an overview, though it does not explicitly name alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a clear use case: 'overview of a server or check if it is online.' It implies when to use the tool but does not explicitly exclude use cases for sibling tools like ping or get_all, which could also handle online status or full information.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pingPingA
Read-only

Measure round-trip latency to a GoldSrc server. Use to check if a server is reachable and responsive.

ParametersJSON Schema
NameRequiredDescriptionDefault
portNoPort number (default: 27015)
addressYesIP address or hostname
timeoutNoRequest timeout in milliseconds (default: 3000)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true and destructiveHint=false, so the description need not restate those. It adds that this is a latency measurement, but doesn't disclose output format, timeout behavior, or the network protocol used. This is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with the action and purpose. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple, has read-only annotations, and no output schema. The description explains what it does and when to use it, but doesn't specify the return value (e.g., latency in ms or a boolean). Slight ambiguity, but acceptable for a basic ping tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides 100% coverage with descriptions for all three parameters (address, port, timeout). The description adds no additional parameter semantics, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool measures round-trip latency to a GoldSrc server, using a specific verb and resource. It is easily distinguished from sibling tools that retrieve server info or send RCON commands.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides a clear use case: checking if a server is reachable and responsive. It doesn't explicitly mention alternatives or exclusions, but the context is sufficient for an agent to select this tool over the listed siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

send_rconSend RCONA
Destructive

Send a single RCON command and return the response. Use for one-off commands; prefer send_rcon_batch when sending multiple commands.

ParametersJSON Schema
NameRequiredDescriptionDefault
portNoPort number (default: 27015)
addressYesIP address or hostname
commandYesCommand to execute
timeoutNoRequest timeout in milliseconds (default: 3000)
passwordYesRCON password

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false and destructiveHint=true, covering the mutation/destruction risk. The description adds that it sends a single command and returns the response, which is helpful but does not elaborate on side effects, authorization, or response format. Credit is given for the scope clarification, but no significant context is added beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences: the first states the core function, the second gives usage guidance. No wasted words, and information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Description covers purpose, return value, and usage context. It distinguishes from send_rcon_batch and aligns with the destructive annotation. Given the simple tool nature and rich schema, nothing else is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All five parameters have schema descriptions (100% coverage), so the schema fully documents each parameter. The tool description itself adds no parameter-specific information, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states 'Send a single RCON command and return the response,' clearly specifying the action, resource, and scope. It explicitly contrasts with sibling tool send_rcon_batch by emphasizing 'single' and noting the batch alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance: 'Use for one-off commands; prefer send_rcon_batch when sending multiple commands.' This clearly states when to use this tool and names the alternative for other cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

send_rcon_batchSend RCON BatchA
Destructive

Send multiple RCON commands over a single authenticated connection. Use instead of rcon when running more than one command.

ParametersJSON Schema
NameRequiredDescriptionDefault
portNoPort number (default: 27015)
addressYesIP address or hostname
timeoutNoRequest timeout in milliseconds (default: 3000)
commandsYesCommands to execute in order
passwordYesRCON password

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true and readOnlyHint=false, so the safety profile is known. The description adds value by disclosing the single authenticated connection and the batch benefit, which goes beyond the structured data. It doesn't detail failure modes or execution order, but the annotations cover the destructive nature adequately.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences. The first sentence states the core function, the second gives usage direction. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers purpose and usage, and the schema documents all parameters. Annotations cover destructiveness. The only gap is the lack of mention of the return format or per-command result behavior, which is notable given there is no output schema, but the description is still sufficiently complete for an agent to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with all five parameters having clear descriptions in the schema. The tool description adds no extra meaning beyond what the schema already provides, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool sends multiple RCON commands over a single authenticated connection. It explicitly distinguishes from the sibling tool send_rcon by advising this batch variant when running more than one command, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit usage guidance: 'Use instead of rcon when running more than one command.' This tells the agent exactly when to prefer this tool and implies that send_rcon is for single commands.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A4.2/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: ping for latency, get_server_info for metadata, get_players for player list, get_rules for cvars, get_all for a combined query, and send_rcon/send_rcon_batch for command execution. The descriptions explicitly clarify when to use each, especially distinguishing the single vs. batch RCON tools and the combined vs. individual getters.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with lowercase and underscores: ping, get_*, send_*. This makes the toolset predictable and easy to navigate.

Tool Count5/5

With 7 tools, the server is well-scoped. Each tool serves a necessary function for querying and managing a GoldSrc server, with no redundancy or excessive bloat.

Completeness5/5

The toolset covers the full lifecycle of interacting with a GoldSrc server: checking reachability (ping), retrieving server info, players, and rules, fetching everything in one call, and sending RCON commands in both single and batch modes. There are no obvious gaps.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/omar-hindawi98/goldsrc-query-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server