MCP Server
Weld exposes a Model Context Protocol (MCP) server that lets AI assistants interact directly with your Weld workspace — listing syncs, inspecting connections, debugging failures, creating transforms, and more.
The MCP server is available to customers on the Business plan (or an active Free Trial) and requires the Weld Connect API feature to be enabled. You can read more about our plans and pricing here.
What is MCP?
The Model Context Protocol is an open standard that allows AI tools (Claude Desktop, Cursor, GitHub Copilot, Windsurf, etc.) to discover and call external APIs through a unified interface. Instead of manually copying IDs and crafting API requests, you can ask your AI assistant natural-language questions like:
- "Which syncs are currently failing?"
- "Show me the history for the Stripe connection."
- "Create a transform that joins orders and customers."
The assistant calls the appropriate Weld MCP tools behind the scenes and returns the answer in context.
Prerequisites
- A Weld account on the Business plan (or an active Free Trial).
- A Weld API key. Create one in the Weld app under Settings → API keys.
Endpoint
The MCP server is available at:
https://connect.weld.app/mcp
It uses the Streamable HTTP transport (the current MCP standard) — no WebSockets or SSE required.
Configuration
Claude Desktop
Add the following to your Claude Desktop configuration file (claude_desktop_config.json):
{
"mcpServers": {
"weld": {
"url": "https://connect.weld.app/mcp",
"headers": {
"x-api-key": "<YOUR_WELD_API_KEY>"
}
}
}
}
Cursor
In your project's .cursor/mcp.json (or the global ~/.cursor/mcp.json):
{
"mcpServers": {
"weld": {
"url": "https://connect.weld.app/mcp",
"headers": {
"x-api-key": "<YOUR_WELD_API_KEY>"
}
}
}
}
VS Code (GitHub Copilot)
In your project's .vscode/mcp.json (or user settings):
{
"servers": {
"weld": {
"url": "https://connect.weld.app/mcp",
"headers": {
"x-api-key": "<YOUR_WELD_API_KEY>"
}
}
}
}
Claude Code
Run the following command:
claude mcp add weld --transport streamable-http https://connect.weld.app/mcp \
--header "x-api-key: <YOUR_WELD_API_KEY>"
Windsurf
In your Windsurf MCP configuration file:
{
"mcpServers": {
"weld": {
"serverUrl": "https://connect.weld.app/mcp",
"headers": {
"x-api-key": "<YOUR_WELD_API_KEY>"
}
}
}
}
Keep your API key secret. Do not commit it to version control. Use environment variables or a secrets manager where possible.
Available Tools
Once connected, your AI assistant can discover and call the following tools:
Account
| Tool | Description |
|---|---|
get_account | Get details of the current account — name, slug, data warehouse info, and plan status. |
Connections
| Tool | Description |
|---|---|
list_connections | List all connections (data sources) for the account. Supports pagination. |
get_connection | Get details of a specific connection by ID. |
get_connection_elt_settings | Get the ELT settings schema for a connection — useful for understanding what settings are required when creating a sync. |
delete_connection | Delete a connection. |
ELT Syncs
| Tool | Description |
|---|---|
list_elt_syncs | List all ELT Syncs. Supports pagination and filtering by connection ID. |
get_elt_sync | Get details of a specific ELT Sync. |
create_elt_sync | Create a new ELT Sync for a connection. |
update_elt_sync | Update sync interval or ELT settings on an existing sync. |
delete_elt_sync | Delete an ELT Sync and optionally remove destination tables. |
enable_elt_sync | Enable scheduling for a sync. |
disable_elt_sync | Disable scheduling for a sync. |
get_elt_sync_status | Get the current status of a sync, including per-stream states. |
get_elt_sync_available_streams | List all source streams that can be added to a sync. |
add_elt_sync_source_streams | Add source streams to a sync. |
get_elt_sync_history | Get the latest run result for each source stream — useful for debugging. |
get_elt_source_stream_history | Get run history for a specific source stream (up to 100 runs). |
list_failed_syncs | List currently failing syncs with error details and last success time. |
ELT Streams
| Tool | Description |
|---|---|
list_elt_streams | List all ELT Streams. Optionally filter by sync ID. |
request_elt_stream_run | Trigger an immediate run of a stream. |
request_elt_stream_full_refresh | Mark the next run as a full refresh. |
delete_elt_stream | Delete a stream. |
Transforms
| Tool | Description |
|---|---|
list_transforms | List all SQL transforms. Filter by status, name, or folder path. |
get_transform | Get a transform's SQL template and materialization settings. |
create_transform | Create a new SQL transform. Supports immediate publishing. |
update_transform | Update an existing transform. |
delete_transform | Delete a transform and its materialized view/table. |
publish_transform | Publish or re-publish a transform to the data warehouse. |
Integrations
| Tool | Description |
|---|---|
list_integrations | List all available integrations based on the account's plan. |
Example Conversations
Here are some examples of what you can ask your AI assistant once the MCP server is connected:
Debugging a failing sync:
"Which of my syncs are currently failing and what are the errors?"
The assistant will call list_failed_syncs and return a summary of each failing sync with error messages and the last successful sync time.
Inspecting sync history:
"Show me the last 10 runs for the payments stream in my Stripe sync."
The assistant will call get_elt_source_stream_history with the appropriate sync ID and stream name.
Creating a transform:
"Create a published view called
active_customersthat selects customers with at least one order in the last 90 days."
The assistant will call create_transform with the SQL template and publish: true.
Rate Limits
The MCP server enforces the following rate limits:
- 60 requests per minute per account.
- 10 authentication attempts per minute per IP address.
If you exceed these limits, the server will respond with a 429 Too Many Requests error.
Authentication
The MCP server authenticates requests using the same API keys as the Weld Connect API. Pass your API key in the x-api-key header.
The server is stateless — each request is independent, so there is no session to manage or expire.