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, claude.ai, Claude Code, 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 Subscription on the Premium plan or above.

    1. The MCP Server can be tested free of charge on the Basic plan for a period of 2 weeks.

    2. After the trial period, the MCP Server can be purchased as an add-on for €99/month.

  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, claude.ai, and Claude Code). 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, just connect with the standard URL and tell your assistant which workspace to use - it can call the list_accounts tool to see the workspaces you have access to and then work in the one you choose. No account ID in the URL required.

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

Pick the path that matches your tool. If you're using a Claude client, OAuth is the easiest — there's no API key to create or store.

Claude Desktop & claude.ai

Both Claude Desktop and claude.ai let you add Weld straight from the Connectors menu — no configuration file required:

  1. Open Settings → Connectors.
  2. Click Add custom connector.
  3. Give it a name (for example, Weld) and paste in the endpoint: https://connect.weld.app/mcp
  4. Click Add. A browser window opens — log in with your Weld account to authorize the connection.
  5. Weld's tools are now available right in your chat.

Claude Code

With OAuth there's no API key to pass. Add the server, then authenticate from inside Claude Code:

claude mcp add weld --transport streamable-http https://connect.weld.app/mcp

Run /mcp inside Claude Code and complete the browser login when prompted.

Option 2: API key

For clients that don't support OAuth — or if you'd rather use a static key — create a key under Settings → API keys in the Weld app and pass it in the x-api-key header.

Claude Code

claude mcp add weld --transport streamable-http https://connect.weld.app/mcp \
  --header "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>"
      }
    }
  }
}

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.
list_accountsList all Weld workspaces the authenticated user can access — handy for picking which one to work in.

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.
get_elt_stream_runGet details of a specific ELT Stream Run by ID.
list_elt_stream_runsList runs for a specific ELT Stream (last 3 months). Supports pagination and sort direction.
request_elt_stream_runTrigger an immediate run of a stream.
request_elt_stream_full_refreshMark the next run as a full refresh.
request_elt_stream_full_refresh_with_history_tableMark the next run as a full refresh and reset the history table(s) — permanently deletes accumulated history.
cancel_elt_stream_full_refreshCancel a requested full refresh, reverting the stream to incremental sync.
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.
list_transform_versionsList a transform's SQL revision history, most recent first.
create_transformCreate a new SQL transform. Supports immediate publishing.
bulk_create_transformsCreate multiple transforms in a single request (up to 50).
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.

Orchestrations

ToolDescription
list_orchestrationsList all Orchestrations for the account, sorted alphabetically.
get_orchestrationGet details of a specific Orchestration by ID.
list_orchestration_runsList Orchestration Runs (most recent first). Optionally filter by Orchestration ID.
get_orchestration_runGet details of a specific Orchestration Run by ID.
request_orchestration_runTrigger an immediate run of an Orchestration.

Queries

ToolDescription
run_queryRun a SQL query against the data warehouse (async). Supports {{weldTag}} references; returns up to 1000 rows.
get_query_statusCheck the status of a submitted query — poll until it returns DONE.
get_query_resultRetrieve up to 1000 result rows of a completed query.
list_available_referencesList all {{weldTag}} references available for SQL templates — raw source views and published transforms.

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 can select which one to work in directly in the conversation — no special URL needed.

With OAuth: Connect with the standard endpoint (https://connect.weld.app/mcp) and tell your assistant which workspace to use. It can call the list_accounts tool to see all the workspaces you have access to, then run subsequent actions against the one you choose.

With API keys: Each API key is already scoped to a specific workspace, so no additional selection 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?