Skip to main content
Glama
omar-hindawi98

goldsrc-query-mcp

goldsrc-query-mcp

npm version license CI E2E

一个 MCP 服务器,允许 AI 助手使用 goldsrc-query 库查询 GoldSrc 游戏服务器(Half-Life、Counter-Strike 1.6 等)。


工具

工具

描述

ping

往返延迟(毫秒)

get_server_info

服务器名称、地图、玩家数量、VAC 状态等

get_players

当前玩家列表,包含名称、得分和游戏内时间

get_rules

所有服务器 cvar

get_all

一次调用获取服务器信息、玩家列表和规则

send_rcon

发送单个 RCON 命令并返回响应

send_rcon_batch

通过单个已认证连接发送多个 RCON 命令


Related MCP server: mc-rcon-mcp

安装

npx goldsrc-query-mcp

或者全局安装:

npm install -g goldsrc-query-mcp

要求: Node.js >=20.12.0


使用

传输方式

服务器支持三种传输方式,通过 MCP_TRANSPORT 环境变量(或用于 HTTP 的 --http 标志)选择。

stdio(默认)

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_CERTMCP_TLS_KEY 必须同时设置;如果任一缺失,服务器将退出并报错。

Claude Desktop

添加到 ~/Library/Application Support/Claude/claude_desktop_config.json(macOS)或 %APPDATA%\Claude\claude_desktop_config.json(Windows):

{
  "mcpServers": {
    "goldsrc": {
      "command": "npx",
      "args": ["goldsrc-query-mcp"]
    }
  }
}

示例提示

  • "192.168.1.10:27015 正在运行什么地图?"

  • "cs.example.com 服务器上有多少玩家?"

  • "显示我服务器上的所有 cvar。"

  • "在我的服务器 192.168.1.10 上运行 sv_gravity 800,密码为 secret。"

  • "踢出所有机器人并将地图更改为 de_dust2。"


工具参考

所有工具都接受 address(必填)、port(默认 27015)和 timeout(默认 3000 毫秒)。

ping

返回以毫秒为单位的往返延迟。

get_server_info

以 JSON 形式返回服务器元数据 - 名称、地图、玩家数量、VAC 状态、服务器类型、环境以及可选的 EDF 字段。

get_players

以 JSON 形式返回玩家列表 - 每个玩家的索引、名称、得分和时长(游戏内秒数)。

get_rules

以 JSON 形式返回所有服务器 cvar - 总数和 { name, value } 对列表。

get_all

在一次调用中返回服务器信息、玩家列表和规则。请使用此工具,而不是分别调用 get_server_infoget_playersget_rules

send_rcon

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

发送单个 RCON 命令并返回服务器响应。

send_rcon_batch

address:  "192.168.1.10"
password: "your_rcon_password"
commands: ["sv_gravity 800", "mp_friendlyfire 1", "changelevel de_dust2"]

通过单个已认证连接发送多个 RCON 命令。返回 { command, response } 对数组。当运行多个命令时,请使用此工具而不是 send_rcon

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