For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
  • Getting Started
    • Welcome
    • Contributing
  • Concepts
    • Columns
    • Seed Datasets
    • Agent Rollout Ingestion
    • Custom Columns
    • Validators
    • Processors
    • Person Sampling
    • Traces
      • Overview
      • MCP Providers
      • Tool Configs
      • Enabling Tools
      • CLI Configuration
      • Safety & Limits
    • Architecture & Performance
    • Deployment Options
    • Security
  • Tutorials
    • Overview
    • The Basics
    • Structured Outputs, Jinja Expressions, and Conditional Generation
    • Seeding with an External Dataset
    • Providing Images as Context
    • Generating Images
    • Image-to-Image Editing
  • Recipes
    • Recipe Cards
  • Plugins
    • Overview
    • Example Plugin
    • FileSystemSeedReader Plugins
    • Discover
  • Code Reference
    • Overview
  • Dev Notes
    • Overview
    • Push Datasets to Hugging Face Hub
    • Text-to-SQL for Nemotron Super
    • Async All the Way Down
    • Owning the Model Stack
    • Data Designer Got Skills
NVIDIANVIDIA
Developer-friendly docs for your API
Privacy Policy | Your Privacy Choices | Terms of Service | Accessibility | Corporate Policies | Product Security | Contact

Copyright © 2026, NVIDIA Corporation.

LogoLogoNeMo Data Designer
On this page
  • Overview
  • MCPProvider (Remote)
  • MCPProvider Fields
  • LocalStdioMCPProvider (Subprocess)
  • LocalStdioMCPProvider Fields
  • API Key Configuration
  • YAML Configuration
  • Using Multiple Providers
  • See Also
ConceptsTool Use & MCP

MCP Providers

||View as Markdown|
Previous

Tool Use & MCP

Next

Tool Configurations

MCP providers are external services that host and serve tools via the Model Context Protocol (MCP). Data Designer uses provider configurations to establish connections to these services.

Overview

An MCP provider defines how Data Designer connects to a tool server. Data Designer supports two provider types:

Provider ClassConnection MethodUse Case
MCPProviderSSE or Streamable HTTPConnect to a pre-existing MCP server
LocalStdioMCPProviderSubprocess via stdin/stdoutLaunch an MCP server as a subprocess

When you create a ToolConfig, you reference providers by name, and Data Designer uses those provider settings to communicate with the appropriate MCP servers.

MCPProvider (Remote)

Use MCPProvider to connect to a pre-existing MCP server. Both SSE (Server-Sent Events) and Streamable HTTP transports are supported:

1import data_designer.config as dd
2from data_designer.interface import DataDesigner
3
4# SSE transport (default)
5sse_provider = dd.MCPProvider(
6 name="remote-mcp",
7 endpoint="http://localhost:8080/sse",
8 api_key="MCP_API_KEY", # Environment variable name
9)
10
11# Streamable HTTP transport
12http_provider = dd.MCPProvider(
13 name="remote-tools",
14 endpoint="https://mcp.example.com/mcp",
15 api_key="MCP_API_KEY",
16 provider_type="streamable_http",
17)
18
19data_designer = DataDesigner(mcp_providers=[sse_provider, http_provider])

MCPProvider Fields

FieldTypeRequiredDescription
namestrYesUnique identifier for the provider
endpointstrYesEndpoint URL for the remote MCP server
api_keystrNoAPI key or environment variable name
provider_typestrNoTransport type: "sse" (default) or "streamable_http"

LocalStdioMCPProvider (Subprocess)

Use LocalStdioMCPProvider to launch an MCP server as a subprocess:

1import data_designer.config as dd
2from data_designer.interface import DataDesigner
3
4mcp_provider = dd.LocalStdioMCPProvider(
5 name="demo-mcp",
6 command="python",
7 args=["-m", "my_mcp_server_module"],
8 env={"MY_SERVICE_TOKEN": "..."},
9)
10
11data_designer = DataDesigner(mcp_providers=[mcp_provider])

LocalStdioMCPProvider Fields

FieldTypeRequiredDescription
namestrYesUnique identifier for the provider
commandstrYesExecutable to run (e.g., "python", "node")
argslist[str]NoCommand-line arguments
envdict[str, str]NoEnvironment variables for the subprocess
provider_typestrNoAlways "stdio" (set automatically)

API Key Configuration

The api_key field can be specified in two ways:

  1. Environment variable name (recommended): Set api_key to the name of an environment variable (e.g., "MCP_API_KEY"). Data Designer will resolve it at runtime.

  2. Plain-text value: Set api_key to the actual API key string. This is less secure and not recommended for production.

1# Method 1: Environment variable (recommended)
2provider = dd.MCPProvider(
3 name="secure-mcp",
4 endpoint="https://mcp.example.com/sse",
5 api_key="MCP_API_KEY", # Will be resolved from environment
6)
7
8# Method 2: Direct value (not recommended)
9provider = dd.MCPProvider(
10 name="secure-mcp",
11 endpoint="https://mcp.example.com/sse",
12 api_key="actual-api-key-value",
13)

YAML Configuration

Both provider types use a provider_type discriminator field in YAML configurations. When writing YAML configs manually (e.g., in ~/.data-designer/mcp_providers.yaml), include the discriminator:

1providers:
2 # Remote SSE provider
3 - name: doc-search
4 provider_type: sse
5 endpoint: http://localhost:8080/sse
6 api_key: ${MCP_API_KEY}
7
8 # Remote Streamable HTTP provider
9 - name: remote-tools
10 provider_type: streamable_http
11 endpoint: https://mcp.example.com/mcp
12 api_key: ${MCP_API_KEY}
13
14 # Local stdio provider
15 - name: local-tools
16 provider_type: stdio
17 command: python
18 args:
19 - -m
20 - my_mcp_server
21 env:
22 DEBUG: "true"

Using Multiple Providers

You can configure multiple MCP providers and use them together in a single ToolConfig:

1import data_designer.config as dd
2from data_designer.interface import DataDesigner
3
4providers = [
5 dd.MCPProvider(
6 name="doc-search-mcp",
7 endpoint="http://localhost:8080/sse",
8 ),
9 dd.LocalStdioMCPProvider(
10 name="calculator-mcp",
11 command="python",
12 args=["-m", "calculator_mcp"],
13 ),
14]
15
16data_designer = DataDesigner(mcp_providers=providers)

See Also

  • Tool Configurations: Configure tool access with ToolConfig
  • Configure MCP with the CLI: Use the CLI to manage MCP providers
  • Enabling Tools on Columns: Use tools in LLM columns