You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: add Streamable HTTP transport support for remote MCP providers (#358)
* feat: add Streamable HTTP transport support for remote MCP providers (#357)
Add `streamable_http` as a supported transport type for `MCPProvider`,
enabling connections to MCP servers that use the Streamable HTTP protocol
(e.g. Tavily remote endpoints). Previously only SSE transport was supported,
causing silent 5-minute timeouts when connecting to incompatible endpoints.
- Expand `MCPProvider.provider_type` to `Literal["sse", "streamable_http"]`
(default remains `"sse"` for backwards compatibility)
- Route `streamable_http` providers through `streamablehttp_client` from
the MCP SDK in `MCPIOService._get_or_create_session()`
- Handle variable-length context manager results from MCP transport clients
- Add `DataDesigner.list_mcp_tool_names()` for discovering available tools
- Update CLI form builder and controller to support the new transport option
- Add tests for streamable_http config, session creation, and form builder
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* updates
* simplify import
* address greptile comments
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: docs/code_reference/mcp.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@ The `mcp` module defines configuration and execution classes for tool use via MC
4
4
5
5
## Configuration Classes
6
6
7
-
[MCPProvider](#data_designer.config.mcp.MCPProvider) configures remote MCP servers via SSE transport. [LocalStdioMCPProvider](#data_designer.config.mcp.LocalStdioMCPProvider) configures local MCP servers as subprocesses via stdio transport. [ToolConfig](#data_designer.config.mcp.ToolConfig) defines which tools are available for LLM columns and how they are constrained.
7
+
[MCPProvider](#data_designer.config.mcp.MCPProvider) configures remote MCP servers via SSE or Streamable HTTP transport. [LocalStdioMCPProvider](#data_designer.config.mcp.LocalStdioMCPProvider) configures local MCP servers as subprocesses via stdio transport. [ToolConfig](#data_designer.config.mcp.ToolConfig) defines which tools are available for LLM columns and how they are constrained.
Copy file name to clipboardExpand all lines: docs/concepts/mcp/mcp-providers.md
+22-7Lines changed: 22 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,36 +8,45 @@ An MCP provider defines how Data Designer connects to a tool server. Data Design
8
8
9
9
| Provider Class | Connection Method | Use Case |
10
10
|---------------|-------------------|----------|
11
-
|`MCPProvider`|HTTP Server-Sent Events| Connect to a pre-existing MCP server |
11
+
|`MCPProvider`|SSE or Streamable HTTP| Connect to a pre-existing MCP server |
12
12
|`LocalStdioMCPProvider`| Subprocess via stdin/stdout | Launch an MCP server as a subprocess |
13
13
14
14
When you create a `ToolConfig`, you reference providers by name, and Data Designer uses those provider settings to communicate with the appropriate MCP servers.
15
15
16
-
## MCPProvider (Remote SSE)
16
+
## MCPProvider (Remote)
17
17
18
-
Use `MCPProvider` to connect to a pre-existing MCP server via Server-Sent Events:
18
+
Use `MCPProvider` to connect to a pre-existing MCP server. Both SSE (Server-Sent Events) and Streamable HTTP transports are supported:
19
19
20
20
```python
21
21
import data_designer.config as dd
22
22
from data_designer.interface import DataDesigner
23
23
24
-
mcp_provider = dd.MCPProvider(
24
+
# SSE transport (default)
25
+
sse_provider = dd.MCPProvider(
25
26
name="remote-mcp",
26
27
endpoint="http://localhost:8080/sse",
27
28
api_key="MCP_API_KEY", # Environment variable name
0 commit comments