> 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.tool_access

Agent-visible tool access contracts.

## Module Contents

### Classes

| Name                                                                               | Description                                                         |
| ---------------------------------------------------------------------------------- | ------------------------------------------------------------------- |
| [`DirectHTTPToolAccess`](#nemo_gym-tool_access-DirectHTTPToolAccess)               | Connect a trusted Python agent to typed tool routes.                |
| [`MCPStreamableHTTPConnection`](#nemo_gym-tool_access-MCPStreamableHTTPConnection) | Connect to an MCP server over an absolute HTTP endpoint.            |
| [`MCPToolAccess`](#nemo_gym-tool_access-MCPToolAccess)                             | Describe one named MCP server that an agent adapter must configure. |

### Data

[`ToolAccess`](#nemo_gym-tool_access-ToolAccess)

### API

```python
class nemo_gym.tool_access.DirectHTTPToolAccess()
```

**Bases:** `BaseModel`

Connect a trusted Python agent to typed tool routes.

**`base_url`** `AnyHttpUrl`

---

**`cookies`** `dict[str, str] = Field(default_factory=dict)`

---

**`headers`** `dict[str, str] = Field(default_factory=dict)`

---

**`kind`** `Literal['direct_http'] = 'direct_http'`

---

**`model_config`** `= ConfigDict(extra='forbid')`

---

**`name`** `str`

---

**`required`** `bool`

---

```python
class nemo_gym.tool_access.MCPStreamableHTTPConnection()
```

**Bases:** `BaseModel`

Connect to an MCP server over an absolute HTTP endpoint.

**`headers`** `dict[str, str] = Field(default_factory=dict)`

---

**`model_config`** `= ConfigDict(extra='forbid')`

---

**`transport`** `Literal['streamable_http'] = 'streamable_http'`

---

**`url`** `AnyHttpUrl`

---

```python
class nemo_gym.tool_access.MCPToolAccess()
```

**Bases:** `BaseModel`

Describe one named MCP server that an agent adapter must configure.

Names are session-wide identifiers. Agent session requests reject duplicate names,
and adapters must also reject collisions with their static tool configuration.
Failure to establish a required server fails session seeding; an optional server may
be skipped. On agent-session close, adapters disconnect clients without stopping the
remote server.

**`connection`** `MCPStreamableHTTPConnection`

---

**`kind`** `Literal['mcp'] = 'mcp'`

---

**`model_config`** `= ConfigDict(extra='forbid')`

---

**`name`** `str`

---

**`required`** `bool`

---

```python
nemo_gym.tool_access.ToolAccess = Annotated[DirectHTTPToolAccess | MCPToolAccess, Field(discriminator='kind')]
```