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:
- Build a notebook on Arbitrum: daily activity, DEX volume and value locked. Explain each chart in plain words.
- Using open data, compare stablecoin supply on Base and Ethereum over the last year.
- Using our tools, show the top Uniswap pairs on Base by volume this month.
- Open my "Market mood" notebook, add a funding-rate chart and re-run it.
- Publish the notebook and send me the link.
4. Choosing the data
A notebook can be built from two kinds of data. Say which you want in your prompt:
- Sandworm data and tools ("using our tools", "using Dune"): chain data queried with SQL, plus ready-made power tools.
- Open data ("using open data", "public APIs"): public sources such as DefiLlama, CoinGecko and growthepie, fetched in Python cells.
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.