Tool Use & MCP

View as Markdown

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 or Remote)
  2. Create a ToolConfig referencing your provider
  3. Add tool_alias to your LLM column
1import data_designer.config as dd
2from data_designer.interface import DataDesigner
3
4# 1. Configure provider
5
6## Local Stdio provider
7mcp_provider = dd.LocalStdioMCPProvider(
8 name="demo-mcp",
9 command="python",
10 args=["-m", "my_mcp_server"],
11)
12
13## Remote provider
14# mcp_provider = dd.MCPProvider(
15# name="remote-mcp",
16# endpoint="https://mcp.example.invalid/sse",
17# api_key="REMOTE_MCP_API_KEY",
18# )
19
20data_designer = DataDesigner(mcp_providers=[mcp_provider])
21
22# 2. Create tool config
23tool_config = dd.ToolConfig(
24 tool_alias="my-tools",
25 providers=["demo-mcp"],
26)
27
28builder = dd.DataDesignerConfigBuilder(tool_configs=[tool_config])
29
30# 3. Use tools in column
31builder.add_column(
32 dd.LLMTextColumnConfig(
33 name="answer",
34 prompt="Use tools to answer: {{ question }}",
35 model_alias="nvidia-text",
36 tool_alias="my-tools",
37 )
38)

Guides

GuideDescription
MCP ProvidersConfigure local subprocess or remote SSE providers
Tool ConfigurationsDefine tool permissions and limits
Enabling Tools on ColumnsUse tools in LLM generation
Configure via CLIInteractive CLI configuration
Message TracesCapture full conversation history
Safety & LimitsAllowlists, budgets, timeouts

Example

See the PDF Q&A Recipe for a complete working example.