> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/nemo/gym/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nemo/gym/_mcp/server.

# nemo_gym.resources_server_registry

Registry of resources servers under `resources_servers/&lt;name&gt;/`.

A resources server (verifier + per-task state) is one *component* of an environment, selected by name
with `--resources-server`. This module maps each config flavor to its `(domain, description)` — read
the same way `gym list environments`/`benchmarks` read theirs (via
:func:`~nemo_gym.discovery.read_config_metadata`) — so they can be enumerated by name.

## Module Contents

### Classes

| Name                                                                               | Description                                                                        |
| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
| [`ResourcesServerEntry`](#nemo_gym-resources_server_registry-ResourcesServerEntry) | A discovered resources server: its name, where it lives, and lightweight metadata. |

### Functions

| Name                                                                                                           | Description                                                                                           |
| -------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
| [`_config_defines_resources_server`](#nemo_gym-resources_server_registry-_config_defines_resources_server)     | True if a config declares a `resources_servers` block (vs a helper like a judge model). Never raises. |
| [`_discover_resources_servers_in_dir`](#nemo_gym-resources_server_registry-_discover_resources_servers_in_dir) | Map resources-server name -> :class:`ResourcesServerEntry` for every flavor under one dir.            |
| [`discover_resources_servers`](#nemo_gym-resources_server_registry-discover_resources_servers)                 | Map resources-server name -> :class:`ResourcesServerEntry` for every discoverable server.             |
| [`read_resources_server_value`](#nemo_gym-resources_server_registry-read_resources_server_value)               | The `value` field declared on a resources server config (for the inspect view). Never raises.         |

### Data

[`RESOURCES_SERVERS_DIR`](#nemo_gym-resources_server_registry-RESOURCES_SERVERS_DIR)

[`RESOURCES_SERVERS_SUBDIR`](#nemo_gym-resources_server_registry-RESOURCES_SERVERS_SUBDIR)

[`RESOURCES_SERVER_CONFIGS_SUBDIR`](#nemo_gym-resources_server_registry-RESOURCES_SERVER_CONFIGS_SUBDIR)

### API

```python
class nemo_gym.resources_server_registry.ResourcesServerEntry(
    name: str,
    config_path: pathlib.Path,
    path: pathlib.Path,
    description: typing.Optional[str] = None,
    domain: typing.Optional[str] = None
)
```

Dataclass

A discovered resources server: its name, where it lives, and lightweight metadata.

```python
nemo_gym.resources_server_registry._config_defines_resources_server(
    config_path: pathlib.Path
) -> bool
```

True if a config declares a `resources_servers` block (vs a helper like a judge model). Never raises.

```python
nemo_gym.resources_server_registry._discover_resources_servers_in_dir(
    resources_servers_dir: pathlib.Path
) -> typing.Dict[str, nemo_gym.resources_server_registry.ResourcesServerEntry]
```

Map resources-server name -> :class:`ResourcesServerEntry` for every flavor under one dir.

One entry per config flavor that declares a `resources_servers` block: `&lt;dir&gt;` for the default config
(`&lt;dir&gt;.yaml`) and `&lt;dir&gt;/&lt;flavor&gt;` for the rest (`&lt;flavor&gt;.yaml`).
Helper configs (no `resources_servers` block) are skipped. Empty dict if the dir is missing.

```python
nemo_gym.resources_server_registry.discover_resources_servers() -> typing.Dict[str, nemo_gym.resources_server_registry.ResourcesServerEntry]
```

Map resources-server name -> :class:`ResourcesServerEntry` for every discoverable server.

Scans the `resources_servers/` subdir of every :func:`~nemo_gym.discovery.component_search_roots`
root (`NEMO_GYM_EXTRA_ROOTS` + cwd + built-ins), merged so user servers shadow same-named built-ins.

```python
nemo_gym.resources_server_registry.read_resources_server_value(
    config_path: pathlib.Path
) -> typing.Optional[str]
```

The `value` field declared on a resources server config (for the inspect view). Never raises.

```python
nemo_gym.resources_server_registry.RESOURCES_SERVERS_DIR = PARENT_DIR / RESOURCES_SERVERS_SUBDIR
```

```python
nemo_gym.resources_server_registry.RESOURCES_SERVERS_SUBDIR = 'resources_servers'
```

```python
nemo_gym.resources_server_registry.RESOURCES_SERVER_CONFIGS_SUBDIR = 'configs'
```