Sandworm MCP

Connect your AI agent to Sandworm. It can plan an analysis, write and run SQL and Python, build charts and publish the notebook, all from the chat. You get a notebook you can open, edit and re-run.

These docs are an early draft and will change.

1. Server address

https://mcp.sandwormlab.xyz/mcp

Transport: HTTP (streamable HTTP). Sign-in: OAuth with your Sandworm account, so there is no API key to copy. You need a Sandworm account first: create one here.

2. Connect your client

Claude Code

Run this in your terminal, then type /mcp inside Claude Code and sign in.

claude mcp add --transport http sandworm https://mcp.sandwormlab.xyz/mcp

Claude (web and desktop)

Settings → Connectors → Add custom connector, then paste the address.

https://mcp.sandwormlab.xyz/mcp

Cursor

Add this to ~/.cursor/mcp.json (or .cursor/mcp.json in a project).

{
  "mcpServers": {
    "sandworm": { "url": "https://mcp.sandwormlab.xyz/mcp" }
  }
}

Any other MCP client

Add a remote server with the HTTP (streamable HTTP) transport. The older SSE transport is not supported.

https://mcp.sandwormlab.xyz/mcp

The first time you connect, a Sandworm page opens in your browser asking you to approve access. The agent then works in your default workspace unless you name another.

3. Try it

Ask in plain language. Some prompts to start with:

4. Choosing the data

A notebook can be built from two kinds of data. Say which you want in your prompt:

If you say nothing, Sandworm data is used, and open data is the fallback when chain SQL is not available.

5. What the agent can do

Plan and build

Plan an analysis, find ready-made tools, and write SQL, Python, Markdown, chart and input cells.

plan_notebook, search_tools, create_notebook, add_cell, update_cell, delete_cell

Run

Run a notebook or single cells and read back tables, chart summaries and errors.

run_notebook, get_run_results, get_environment_status, restart_environment

Manage notebooks

Find, rename, fork, publish, schedule and delete notebooks.

search_notebooks, get_notebook, edit_notebook, fork_notebook, publish_notebook, unpublish_notebook, schedule_notebook, unschedule_notebook, delete_notebook

Data and files

See which data sources are available, upload files, and store API keys as environment variables.

list_data_sources, get_data_source_schema, upload_file, list_files, read_file, delete_file, set_env_vars, delete_env_var

Workspaces and comments

Choose a workspace, leave comments, and save the agent's closing message to the notebook's chat.

list_workspaces, create_workspace, list_projects, list_comments, add_comment, delete_comment, save_reply

6. Session history

Every MCP session is saved to the notebook's chat in Sandworm: your request, the plan, each cell the agent created or ran, and its closing message. Open the notebook and its chat panel to see what the agent did. Values that look like secrets are redacted.

7. Troubleshooting

SSE error: Non-200 status code (405)
The client is set to the SSE transport. Remove the server and add it again as HTTP (streamable HTTP).
It says the server needs authentication
Sign in from the client (in Claude Code: /mcp, pick sandworm, authenticate). A browser window opens on Sandworm to approve access.
A SQL cell failed
Ask the agent to rebuild the notebook "using open data". It will fetch from public APIs in Python instead.

Questions or something broken? Ask in our Discord.