---
name: "xpay-quakelive-query-master-server"
description: "Discover live QuakeLive servers by querying Valve's Steam master server (`hl2master.steampowered.com:27011`).

Since QuakeLive moved to Steam in 2015 all game servers register with Valve's Steam master instead of the old Quake 3 master (`master.quake3arena.com`). This tool uses the Steam Master Server Query Protocol to retrieve the full list of registered server addresses. Each address can then be passed to `send_connectionless_packet` with `getinfo` or `getstatus` for detailed per-server information.

The master may return several hundred addresses split across multiple UDP packets. Each batch uses the last received address as the seed for the next request on the **same socket** (required by the protocol). Collection stops when the terminal sentinel `0.0.0.0:0` arrives or `max_servers` is reached.

Default filter: `\\appid\\282440` (QuakeLive Steam AppID). 
**Master-level filters** (sent in the request, free): `has_players`, `map`, `gametype_tags`, `dedicated`, `secure`, `password_protected`, `linux`, `region`, `extra_filter`.

**Per-server probe filters** (each server is queried individually — use `max_servers` to cap cost): A2S_INFO probes: `min_players`, `max_players`, `no_bots`; A2S_PLAYER probe: `player_name` (case-insensitive substring match against connected player names — pair with `has_players: true` to avoid probing empty servers). Control probe behaviour with `probe_timeout_ms` and `probe_concurrency`. Servers that do not respond are excluded."
version: "1.0.0"
price: "$0.02/call"
provider: "Mcps"
---

# Query Master Server

Discover live QuakeLive servers by querying Valve's Steam master server (`hl2master.steampowered.com:27011`).

Since QuakeLive moved to Steam in 2015 all game servers register with Valve's Steam master instead of the old Quake 3 master (`master.quake3arena.com`). This tool uses the Steam Master Server Query Protocol to retrieve the full list of registered server addresses. Each address can then be passed to `send_connectionless_packet` with `getinfo` or `getstatus` for detailed per-server information.

The master may return several hundred addresses split across multiple UDP packets. Each batch uses the last received address as the seed for the next request on the **same socket** (required by the protocol). Collection stops when the terminal sentinel `0.0.0.0:0` arrives or `max_servers` is reached.

Default filter: `\\appid\\282440` (QuakeLive Steam AppID). 
**Master-level filters** (sent in the request, free): `has_players`, `map`, `gametype_tags`, `dedicated`, `secure`, `password_protected`, `linux`, `region`, `extra_filter`.

**Per-server probe filters** (each server is queried individually — use `max_servers` to cap cost): A2S_INFO probes: `min_players`, `max_players`, `no_bots`; A2S_PLAYER probe: `player_name` (case-insensitive substring match against connected player names — pair with `has_players: true` to avoid probing empty servers). Control probe behaviour with `probe_timeout_ms` and `probe_concurrency`. Servers that do not respond are excluded.

**Provider:** Mcps
**Price:** $0.02/call
**Pricing model:** Flat rate per call

## When to Use

Use this tool when you need to discover live quakelive servers by querying valve's steam master server (`hl2master.steampowered.com:27011`).

since quakelive moved to steam in 2015 all game servers register with valve's steam master instead of the old quake 3 master (`master.quake3arena.com`). this tool uses the steam master server query protocol to retrieve the full list of registered server addresses. each address can then be passed to `send_connectionless_packet` with `getinfo` or `getstatus` for detailed per-server information.

the master may return several hundred addresses split across multiple udp packets. each batch uses the last received address as the seed for the next request on the **same socket** (required by the protocol). collection stops when the terminal sentinel `0.0.0.0:0` arrives or `max_servers` is reached.

default filter: `\\appid\\282440` (quakelive steam appid). 
**master-level filters** (sent in the request, free): `has_players`, `map`, `gametype_tags`, `dedicated`, `secure`, `password_protected`, `linux`, `region`, `extra_filter`.

**per-server probe filters** (each server is queried individually — use `max_servers` to cap cost): a2s_info probes: `min_players`, `max_players`, `no_bots`; a2s_player probe: `player_name` (case-insensitive substring match against connected player names — pair with `has_players: true` to avoid probing empty servers). control probe behaviour with `probe_timeout_ms` and `probe_concurrency`. servers that do not respond are excluded.. This is part of the Mcps provider on xpay✦.

## MCP Connection

Connect to xpay✦ to access this tool (and 87+ others):

```json
{
  "mcpServers": {
    "xpay": {
      "url": "https://mcp.xpay.sh/mcp?key=YOUR_API_KEY"
    }
  }
}
```

For Claude Code:
```bash
claude mcp add --transport http xpay "https://mcp.xpay.sh/mcp?key=YOUR_API_KEY"
```

## How to Execute

Use the xpay✦ meta-tools to run this tool:

1. **`xpay_details`** — Get full input schema: `xpay_details("quakelive/query_master_server")`
2. **`xpay_run`** — Execute: `xpay_run("quakelive/query_master_server", { ...inputs })`

## Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `dedicated` | boolean,null | No | Only return dedicated servers (`true`). Maps to the `\\type\\d` Steam filter clause. Most QuakeLive servers are dedicated; omit unless you specifically need to exclude listen servers. |
| `offset` | integer,null | No | Skip this many addresses before returning results. Defaults to `0`. |
| `no_bots` | boolean,null | No | Exclude servers that have any bots (`true`). Triggers an A2S_INFO probe per server. |
| `master_address` | string,null | No | Steam master server address in `host:port` form. Defaults to `"hl2master.steampowered.com:27011"`. Multiple DNS A-records exist behind this hostname. |
| `secure` | boolean,null | No | Only return VAC anti-cheat secured servers (`true`). Maps to `\\secure\\1`. |
| `max_servers` | integer,null | No | Stop collecting after this many unique server addresses. The master may return thousands; this caps the result. Defaults to `500`. |
| `min_players` | integer,null | No | Only include servers with **at least** this many connected players. Triggers an A2S_INFO probe per server. Pair with `max_servers` to limit probe count. |
| `probe_concurrency` | integer,null | No | Maximum number of A2S_INFO probes to run concurrently. Clamped to [1, 200]. Defaults to `50`. Higher values finish faster but consume more sockets. |
| `extra_filter` | string,null | No | Raw Steam master server filter clauses appended verbatim after all named filters, e.g. `"\\\\napp\\\\440"`. Each clause must begin with `\\`. Use for filter options not covered by the named fields above. |
| `has_players` | boolean,null | No | Only return servers that have at least one connected player. Maps to the `\\empty\\1` Steam filter clause. Omit (or `false`) to include empty servers. |
| `password_protected` | boolean,null | No | Filter by password requirement. `true` = only password-protected servers; `false` = only open servers. Omit to include both. Maps to `\\password\\1` or `\\password\\0`. |
| `linux` | boolean,null | No | Only return Linux-hosted servers (`true`). Maps to `\\linux\\1`. |
| `limit` | integer,null | No | Maximum number of addresses to include in the response. Defaults to all collected addresses. |
| `gametype_tags` | array,null | No | Only return servers whose Steam tags include **all** of the listed gametype strings (AND-match). Supply one or more tags. QuakeLive examples: `["ca"]` (Clan Arena), `["ffa"]` (Free-for-All), `["tdm"]` (Team Deathmatch), `["duel"]`, `["ctf"]` (Capture the Flag), `["1v1"]`, `["ft"]` (Freeze Tag), `["harvester"]`, `["dom"]` (Domination), `["ad"]` (Attack & Defend), `["rr"]` (Red Rover). Maps to `\\gametype\\<t1>,<t2>,…`. |
| `max_players` | integer,null | No | Only include servers with **at most** this many connected players. Useful to find servers that are not full. Triggers an A2S_INFO probe per server. |
| `player_name` | string,null | No | Case-insensitive substring to match against connected player names. Only servers that have at least one player whose name contains this string are returned. Triggers an A2S_PLAYER probe on every candidate server (uses the same `probe_timeout_ms` and `probe_concurrency` settings). Pair with `has_players: true` to skip empty servers before probing, which significantly reduces the number of individual queries sent. |
| `timeout_ms` | integer,null | No | Per-request receive timeout in milliseconds. Clamped to [500, 15000]. Defaults to `5000` ms. |
| `region` | integer,null | No | One-byte region code. `255` (0xFF) = all regions (default). `0` = US East, `1` = US West, `2` = South America, `3` = Europe, `4` = Asia, `5` = Australia, `6` = Middle East, `7` = Africa. |
| `app_id` | integer,null | No | Steam AppID used as the `\\appid\\<id>` filter. Defaults to `282440` (QuakeLive). Change to `2200` for Quake III Arena, or consult SteamDB for other titles. |
| `map` | string,null | No | Only return servers running this exact map name, e.g. `"campgrounds"` or `"bloodrun"`. Maps to `\\map\\<name>`. Case-sensitive. |
| `probe_timeout_ms` | integer,null | No | Timeout for each individual A2S_INFO probe in milliseconds. Clamped to [100, 5000]. Defaults to `1000` ms. Servers that do not reply within this window are excluded from results when probe filters are active. |

## Pricing

- **Cost:** $0.02/call
- **Balance check:** Use `xpay_balance` to check remaining credits
- Get your API key at [xpay.tools](https://xpay.tools/account/settings/api-keys/) — $5 free credits included

## Related Skills

- [Mcps (all tools)](https://xpay.tools/skills/quakelive/SKILL.md) — 88 tools
- [Add Player](https://xpay.tools/skills/quakelive/add-player/SKILL.md) — $0.00/call
- [Add Raw Snapshot](https://xpay.tools/skills/quakelive/add-raw-snapshot/SKILL.md) — $0.00/call
- [Add Server Command](https://xpay.tools/skills/quakelive/add-server-command/SKILL.md) — $0.00/call
- [Analyze Demo](https://xpay.tools/skills/quakelive/analyze-demo/SKILL.md) — $0.02/call
- [Award Medal](https://xpay.tools/skills/quakelive/award-medal/SKILL.md) — $0.02/call

## Links

- Tool page: https://xpay.tools/quakelive/query-master-server/
- Provider: https://xpay.tools/quakelive/
- All tools: https://xpay.tools/explore
