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.

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

  1. A Weld account on the Premium plan or above.
  2. One of the following authentication methods:
    • An API key — create one in the Weld app under Settings → API keys.
    • OAuth — supported by clients that implement the MCP OAuth flow (e.g. Claude Desktop). No setup required — you will be prompted to log in with your Weld account.

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.

Authentication

The MCP server supports two authentication methods:

MCP clients that support the MCP OAuth specification can authenticate automatically. When you connect, your MCP client will open a browser window where you log in with your Weld account. No API key needed.

If your Weld account has access to multiple workspaces, you will need to specify which one to use by appending ?account_id=<YOUR_ACCOUNT_ID> to the MCP URL. If you connect without specifying one, the server will provide a list_accounts tool that shows your available workspaces and their IDs.

API Key

For clients that don't support OAuth, or for programmatic/headless use, pass a Weld API key in the x-api-key header. The API key is scoped to a specific workspace, so no additional account selection is needed.

Configuration

Claude Desktop

Claude Desktop supports OAuth natively. Add the following to your configuration file (claude_desktop_config.json):

{
  "mcpServers": {
    "weld": {
      "url": "https://connect.weld.app/mcp"
    }
  }
}

You will be prompted to log in with your Weld account when you first connect.

If you have multiple workspaces, specify which one:

{
  "mcpServers": {
    "weld": {
      "url": "https://connect.weld.app/mcp?account_id=<YOUR_ACCOUNT_ID>"
    }
  }
}

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>"
      }
    }
  }
}

Available Tools

Once connected, your AI assistant can discover and call the following tools:

Account

ToolDescription
get_accountGet details of the current account — name, slug, data warehouse info, and plan status.

Connections

ToolDescription
list_connectionsList all connections (data sources) for the account. Supports pagination.
get_connectionGet details of a specific connection by ID.
get_connection_elt_settingsGet the ELT settings schema for a connection — useful for understanding what settings are required when creating a sync.
delete_connectionDelete a connection.

ELT Syncs

ToolDescription
list_elt_syncsList all ELT Syncs. Supports pagination and filtering by connection ID.
get_elt_syncGet details of a specific ELT Sync.
create_elt_syncCreate a new ELT Sync for a connection.
update_elt_syncUpdate sync interval or ELT settings on an existing sync.
delete_elt_syncDelete an ELT Sync and optionally remove destination tables.
enable_elt_syncEnable scheduling for a sync.
disable_elt_syncDisable scheduling for a sync.
get_elt_sync_statusGet the current status of a sync, including per-stream states.
get_elt_sync_available_streamsList all source streams that can be added to a sync.
add_elt_sync_source_streamsAdd source streams to a sync.
get_elt_sync_historyGet the latest run result for each source stream — useful for debugging.
get_elt_source_stream_historyGet run history for a specific source stream (up to 100 runs).
list_failed_syncsList currently failing syncs with error details and last success time.

ELT Streams

ToolDescription
list_elt_streamsList all ELT Streams. Optionally filter by sync ID.
request_elt_stream_runTrigger an immediate run of a stream.
request_elt_stream_full_refreshMark the next run as a full refresh.
delete_elt_streamDelete a stream.

Transforms

ToolDescription
list_transformsList all SQL transforms. Filter by status, name, or folder path.
get_transformGet a transform's SQL template and materialization settings.
create_transformCreate a new SQL transform. Supports immediate publishing.
update_transformUpdate an existing transform.
delete_transformDelete a transform and its materialized view/table.
publish_transformPublish or re-publish a transform to the data warehouse.

Integrations

ToolDescription
list_integrationsList 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_customers that 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.

Multi-Workspace Accounts

If your Weld account has access to multiple workspaces, you need to tell the MCP server which one to use.

With OAuth: Append ?account_id=<YOUR_ACCOUNT_ID> to the MCP URL. If you don't know your account ID, connect without it first — the server will expose a list_accounts tool that shows all your available workspaces with their IDs and names.

With API keys: Each API key is already scoped to a specific workspace, so no additional configuration is needed.

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.

Stateless Design

The MCP server is stateless — each request is independent, so there is no session to manage or expire. Authentication is verified on every request via either the OAuth access token or the API key.

Was this page helpful?