Soda MCP
Use Soda from your preferred AI agent.
Soda MCP allows your team to fully manage your data from inside the AI agents your team already works in, such as Claude, Cursor, Codex, or GitHub Copilot.
soda-mcp is a Model Context Protocol (MCP) server for Soda Cloud. It lets MCP-capable AI clients use Soda Cloud's public API to inspect and manage data quality resources such as datasets, checks, contracts, scans, monitors, incidents, attributes, data sources, users, and user groups.
Reach for Soda MCP when you want an AI agent to help with data workflows, for example:
List datasets and inspect their health status.
Retrieve checks, contracts, scans, and incidents.
Create or update contracts and monitors.
Trigger discovery, contract verification, historical metric collection, or other supported Soda Cloud actions.
Manage Soda Cloud resources such as attributes, roles, users, and user groups.
Build complex workflows across your entire AI layer, connecting to other agents and MCPs
Soda MCP is available for Soda Cloud customers. Request a free account or book a call to learn more.
To view the full list of MCP tools, navigate to the Tools documentation.
MCP vs. Soda AI
Soda AI and Soda MCP do many of the same things, both in natural language. What separates them is where each one runs.
Soda MCP runs in your own tooling, so you can put it on a schedule, run many at once, or leave it working in the background. It runs under whichever account its API key belongs to, and it does not need Soda AI enabled. Only Soda AI features are unavailable without it.
Soda AI runs inside Soda Cloud and acts as you, with your permissions. It suits one-off work while you are in the loop, like drafting a contract or asking what an incident means.

Setup
Install the server and supply a Soda Cloud API key.
Nothing to install.
Permissions
Runs under the account its API key belongs to.
Runs as you, with your own role.
Soda AI enablement
Not required, but unavailable without it.
Required.
Unattended work
MCP tasks can be put on a schedule, ran in parallel, or left running in the background.
Runs only while you are in the session and keeps you in the loop.
Product questions
Only if Soda AI is enabled.
Answers questions about Soda and your current page.
Installation instructions
The server runs as a local stdio MCP process. Your AI client starts soda-mcp, passes Soda Cloud credentials through environment variables, and then calls Soda tools through the MCP protocol. On startup, soda-mcp authenticates with Soda Cloud and loads organization context so the client can use the exposed tools against the correct tenant.
Follow the instructions in this section to install the Soda MCP server for your host client.
Requirements
Python 3.10+
uvpython package onPATHA Soda Cloud API key ID and secret
A Soda Cloud host URL
If you don't have API keys already you can create them following the instructions here.
Set the runtime environment variables before starting the server:
Note: If you are using Windows without WSL you will need to modify the commands to work with either the Windows command prompt:
or Windows Powershell:
You will also need to modify the commands of the following sections as is appropriate.
Install from Soda's private PyPI
Stable releases are published to Soda's private PyPI indexes for Team and Enterprise customers. Choose the private index that matches your license and region, then set UV_INDEX using the same Soda API key credentials:
Team
EU
https://team.pypi.cloud.soda.io
Team
US
https://team.pypi.us.soda.io
Enterprise
EU
https://enterprise.pypi.cloud.soda.io
Enterprise
US
https://enterprise.pypi.us.soda.io
Pick the appropriate command below according to your plan and region. Note that this command depends on the Soda API key environment variables mentioned above in order to execute successfully.
Pick the proper one according to your plan and region:
Smoke-test that uvx can resolve and start the package:
If everything is set up correctly you will see the following output:
Configure an MCP client
Configure your MCP client to start soda-mcp over stdio and pass the required environment variables to the child process.
For Claude Code:
For OpenCode, add a local MCP server entry to your user-scope opencode.jsonc:
For a generic stdio MCP client:
If you installed from a local wheel, replace the uvx -qq --no-progress soda-mcp@latest command with soda-mcp in your client configuration.
Verify the server
After configuring the client, confirm that soda-mcp appears in the client's MCP server list and is connected. Then invoke a low-cost read tool such as list_attributes.
A successful response confirms that:
The MCP client can start the server.
Soda Cloud credentials are reaching the server.
Authentication succeeds against the configured Soda Cloud tenant.
The client can see and call the registered Soda tools.
Usage instructions
Use the tools
Once connected, ask your AI client to perform Soda Cloud tasks naturally. Examples:
Some tools modify Soda Cloud resources or trigger scans. Review the client's proposed tool call before approving write, delete, or trigger actions.
Usage notes
While you can create and update secrets through the MCP client it is not recommended to do so. For long lived secrets prefer to create them from the Web User Interface.
MCP servers expose tools and instructions on how to user them. Some MCP clients, like Codex and OpenCode, do not load the instructions, only the tools. This may affect performance. Claude Code loads both tools and instructions.
Troubleshooting
If
uvxcannot resolvesoda-mcp, confirmUV_INDEXis set in the MCP client's environment and points at the correct private index.If private PyPI returns
401or403, confirm the API key ID and secret are valid for the selected Team or Enterprise index.If startup fails with missing credential errors, confirm the MCP client passes
SODA_API_KEY_ID,SODA_API_KEY_SECRET, andSODA_CLOUD_HOST.If Soda Cloud authentication fails, confirm the API key belongs to the same tenant as the configured host or URL.
If the client does not show any tools, refresh or restart the MCP client so it reconnects and reloads tool descriptions.
Last updated
Was this helpful?
