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

# data\_designer.config.mcp

## Module Contents

### Classes

| Name                                                                    | Description                                                         |
| ----------------------------------------------------------------------- | ------------------------------------------------------------------- |
| [`MCPProvider`](#data_designerconfigmcpmcpprovider)                     | Configuration for a remote MCP server connection.                   |
| [`LocalStdioMCPProvider`](#data_designerconfigmcplocalstdiomcpprovider) | Configuration for launching a local MCP server via stdio transport. |
| [`ToolConfig`](#data_designerconfigmcptoolconfig)                       | Configuration for permitting MCP tools on an LLM column.            |

### Data

[`MCPProviderT`](#data_designerconfigmcpmcpprovidert)

### API

```python
class data_designer.config.mcp.MCPProvider(
    /,
    **data: typing.Any
)
```

**Bases**: `data_designer.config.base.ConfigBase`

Configuration for a remote MCP server connection.

MCPProvider is used to connect to pre-existing MCP servers via SSE (Server-Sent Events)
or Streamable HTTP transport. For local subprocess-based MCP servers, use
LocalStdioMCPProvider instead.

**Parameters:**

Unique name used to reference this MCP provider.

Endpoint URL for connecting to the remote MCP server.

Optional API key for authentication. Defaults to None.

Transport type discriminator.
Defaults to `"sse"`.

**Attributes:**

Unique name used to reference this MCP provider.

Endpoint URL for connecting to the remote MCP server.

Optional API key for authentication. Defaults to None.

Transport type discriminator.
Defaults to `"sse"`.

**Examples:**

```python
Remote SSE transport (default):

>>> MCPProvider(
...     name="remote-mcp",
...     endpoint="http://localhost:8080/sse",
...     api_key="your-api-key",
... )

Remote Streamable HTTP transport:

>>> MCPProvider(
...     name="remote-mcp",
...     endpoint="https://api.example.com/mcp",
...     api_key="your-api-key",
...     provider_type="streamable_http",
... )
```

**Initialization:**

Create a new model by parsing and validating input data from keyword arguments.

Raises \[`ValidationError`]\[pydantic\_core.ValidationError] if the input data cannot be
validated to form a valid model.

`self` is explicitly positional-only to allow `self` as a field name.

```python
provider_type: typing.Literal[sse, streamable_http] = sse
```

```python
name: str
```

```python
endpoint: str
```

```python
api_key: str | None
```

```python
class data_designer.config.mcp.LocalStdioMCPProvider(
    /,
    **data: typing.Any
)
```

**Bases**: `data_designer.config.base.ConfigBase`

Configuration for launching a local MCP server via stdio transport.

LocalStdioMCPProvider is used to launch MCP servers as subprocesses using stdio
for communication. For connecting to remote/pre-existing MCP servers, use MCPProvider instead.

**Parameters:**

Unique name used to reference this MCP provider.

Executable to launch the MCP server via stdio transport.

Arguments passed to the MCP server executable. Defaults to \[].

Environment variables passed to the MCP server subprocess. Defaults to \{}.

Transport type discriminator, always "stdio".

**Attributes:**

Unique name used to reference this MCP provider.

Executable to launch the MCP server via stdio transport.

Arguments passed to the MCP server executable. Defaults to \[].

Environment variables passed to the MCP server subprocess. Defaults to \{}.

Transport type discriminator, always "stdio".

**Examples:**

```python
Stdio (subprocess) transport:

>>> LocalStdioMCPProvider(
...     name="demo-mcp",
...     command="python",
...     args=["-m", "data_designer_e2e_tests.mcp_demo_server"],
...     env={"PYTHONPATH": "/path/to/project"},
... )
```

**Initialization:**

Create a new model by parsing and validating input data from keyword arguments.

Raises \[`ValidationError`]\[pydantic\_core.ValidationError] if the input data cannot be
validated to form a valid model.

`self` is explicitly positional-only to allow `self` as a field name.

```python
provider_type: typing.Literal[stdio] = stdio
```

```python
name: str
```

```python
command: str
```

```python
args: list[str] = Field(...)
```

```python
env: dict[str, str] = Field(...)
```

```python
class data_designer.config.mcp.ToolConfig(
    /,
    **data: typing.Any
)
```

**Bases**: `data_designer.config.base.ConfigBase`

Configuration for permitting MCP tools on an LLM column.

ToolConfig defines which tools are available for use during LLM generation.
It references one or more MCP providers by name and can optionally restrict
which tools from those providers are permitted.

**Parameters:**

User-defined alias to reference this tool configuration in column configs.

Names of the MCP providers to use for tool calls. Tools can be
drawn from multiple providers.

Optional allowlist of tool names that restricts which
tools are permitted. If None, all tools from the specified providers are allowed.
Defaults to None.

Maximum number of tool-calling turns permitted in a single
generation. A turn is one iteration where the LLM requests tool calls. With parallel
tool calling, a single turn may execute multiple tools simultaneously. Defaults to 5.

Timeout in seconds for MCP tool calls. Defaults to None (no timeout).

**Attributes:**

User-defined alias to reference this tool configuration in column configs.

Names of the MCP providers to use for tool calls. Tools can be
drawn from multiple providers.

Optional allowlist of tool names that restricts which
tools are permitted. If None, all tools from the specified providers are allowed.
Defaults to None.

Maximum number of tool-calling turns permitted in a single
generation. A turn is one iteration where the LLM requests tool calls. With parallel
tool calling, a single turn may execute multiple tools simultaneously. Defaults to 5.

Timeout in seconds for MCP tool calls. Defaults to None (no timeout).

**Examples:**

```python
>>> ToolConfig(
...     tool_alias="search-tools",
...     providers=["doc-search-mcp", "web-search-mcp"],
...     allow_tools=["search_docs", "list_docs"],
...     max_tool_call_turns=10,
...     timeout_sec=30.0,
... )
```

**Initialization:**

Create a new model by parsing and validating input data from keyword arguments.

Raises \[`ValidationError`]\[pydantic\_core.ValidationError] if the input data cannot be
validated to form a valid model.

`self` is explicitly positional-only to allow `self` as a field name.

```python
tool_alias: str
```

```python
providers: list[str]
```

```python
allow_tools: list[str] | None
```

```python
max_tool_call_turns: int = Field(...)
```

```python
timeout_sec: float | None = Field(...)
```