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

# Tool Use & MCP

Tool use lets LLM columns call external tools during generation (e.g., lookups, calculations, retrieval, domain services). Data Designer supports tool use via the **Model Context Protocol (MCP)**, which standardizes how tools are discovered and invoked.

## Quick Start

1. Configure an MCP provider ([Local](/concepts/tool-use-and-mcp/mcp-providers#localstdiomcpprovider-subprocess) or [Remote](/concepts/tool-use-and-mcp/mcp-providers#mcpprovider-remote-sse))
2. Create a [ToolConfig](/concepts/tool-use-and-mcp/tool-configs) referencing your provider
3. Add `tool_alias` to your [LLM column](/concepts/tool-use-and-mcp/enabling-tools)

```python
import data_designer.config as dd
from data_designer.interface import DataDesigner

# 1. Configure provider

## Local Stdio provider
mcp_provider = dd.LocalStdioMCPProvider(
    name="demo-mcp",
    command="python",
    args=["-m", "my_mcp_server"],
)

## Remote provider
# mcp_provider = dd.MCPProvider(
#     name="remote-mcp",
#     endpoint="https://mcp.example.invalid/sse",
#     api_key="REMOTE_MCP_API_KEY",
# )

data_designer = DataDesigner(mcp_providers=[mcp_provider])

# 2. Create tool config
tool_config = dd.ToolConfig(
    tool_alias="my-tools",
    providers=["demo-mcp"],
)

builder = dd.DataDesignerConfigBuilder(tool_configs=[tool_config])

# 3. Use tools in column
builder.add_column(
    dd.LLMTextColumnConfig(
        name="answer",
        prompt="Use tools to answer: {{ question }}",
        model_alias="nvidia-text",
        tool_alias="my-tools",
    )
)
```

## Guides

| Guide                                                                      | Description                                        |
| -------------------------------------------------------------------------- | -------------------------------------------------- |
| **[MCP Providers](/concepts/tool-use-and-mcp/mcp-providers)**              | Configure local subprocess or remote SSE providers |
| **[Tool Configurations](/concepts/tool-use-and-mcp/tool-configs)**         | Define tool permissions and limits                 |
| **[Enabling Tools on Columns](/concepts/tool-use-and-mcp/enabling-tools)** | Use tools in LLM generation                        |
| **[Configure via CLI](/concepts/tool-use-and-mcp/cli-configuration)**      | Interactive CLI configuration                      |
| **[Message Traces](/concepts/traces)**                                     | Capture full conversation history                  |
| **[Safety & Limits](/concepts/tool-use-and-mcp/safety-and-limits)**        | Allowlists, budgets, timeouts                      |

## Example

See the [PDF Q\&A Recipe](/recipes/mcp-and-tool-use/pdf-document-qa) for a complete working example.

## Code Reference

For internal architecture and API documentation, see [MCP Code Reference](/code-reference/config/mcp).