MCP Integration
Connect AI agents such as Claude Code, Claude Desktop and Cursor to your VolatiCloud account through the Model Context Protocol (MCP). An agent can read your strategies, backtests, bots and spending, and it can propose changes. It never makes a change on its own: every change waits until you approve it in the console or on Telegram.
What is the Model Context Protocol?
The Model Context Protocol (MCP) is an open standard that gives an AI agent a typed list of tools it can call. The agent reads the list, picks the tool that fits your request, and calls it with checked arguments.
VolatiCloud's MCP tools are the same operations the built-in assistant uses, declared once in the platform and served by the VolatiCloud API. The agent gets no raw GraphQL access and no schema introspection, and the same permission checks apply to it as to the assistant.
What an agent can do
- Read. Queries run with your own read access: strategies and their versions, backtests and their results, presets, bot status, spending policy and more. Fields that look like secrets, such as API keys, are removed from every result.
- Propose. Anything that changes something (creating a strategy, running a backtest, stopping a bot) runs nothing when the agent calls it. It is filed as a pending approval, and the agent is told that a person must approve it. Only agents connected with Can propose changes can file proposals.
- Never approve. An agent has no approve tool, and the platform refuses an approval from an agent. You approve each proposal yourself in Approvals or on Telegram, and only then does it run, once.
An agent holds no Mandate, so it can never act on live money by itself.
Connect an agent
Each agent you connect has its own grant: its own URL, its own access level and its own Revoke button.
- In the console, open Organization → MCP.
- Under Connect an agent, enter a name you will recognise later, for example "Claude Code on my laptop".
- Choose the access:
- Read only (the default): the agent can run queries and cannot change anything.
- Can propose changes: the agent can also file proposals, which you approve one by one.
- Select Connect agent. The page shows the agent's MCP URL,
https://mcp.volaticloud.com/mcp/<agent id>, and the setup snippets below with that URL filled in.
The first time the agent connects, it opens your browser to sign in with your normal VolatiCloud login (OAuth with PKCE). There are no API keys or client secrets to create.
To disconnect an agent, select Revoke next to it. It stops working on its next call, and your other agents keep working. Organization admins who hold the agent-grant permission also see every member's agents, with the member's name, and can revoke any of them.
Setup by client
Use the URL the MCP page gave you for this agent in place of <agent URL>.
Claude Code
Add this to .mcp.json in your project, or to your global Claude Code settings:
{
"mcpServers": {
"volaticloud": {
"type": "http",
"url": "<agent URL>"
}
}
}
Cursor
Open Settings → Features → MCP Servers and add the same configuration:
{
"mcpServers": {
"volaticloud": {
"type": "http",
"url": "<agent URL>"
}
}
}
Claude Desktop
Claude Desktop does not yet connect to HTTP MCP servers directly, so it uses
mcp-remote as a local bridge. It needs Node.js 18 or later.
{
"mcpServers": {
"volaticloud": {
"command": "npx",
"args": ["-y", "mcp-remote", "<agent URL>"]
}
}
}
The configuration file is ~/Library/Application Support/Claude/claude_desktop_config.json on macOS and
%APPDATA%\Claude\claude_desktop_config.json on Windows. Quit and reopen Claude Desktop after you save it.
How it works
- The agent sends each MCP message to its own URL. The MCP server passes it, with your sign-in token, to the VolatiCloud API.
- The API accepts it only for a live agent grant that belongs to you in that organization. A revoked agent is refused.
- A query runs with your current permissions. A change is filed as a pending approval.
- When you approve a proposal, it runs once, with your permissions at that moment, and only while the agent that proposed it is still connected.
Limits and costs
- Rate limits. Each agent may make 60 calls a minute, have at most 10 proposals waiting, and file at most 50 proposals a day.
- No AI credits. The agent brings its own model, so an MCP session spends none of your AI credits.
- Compute is charged as usual. An approved backtest or hyperopt costs the same as one you start in the console, passes the same credit and spending-policy checks, and is refused when the organization reaches its cap.
Example prompts
- "List my strategies and the result of each one's latest backtest."
- "Compare the last two versions of my RSI strategy."
- "Propose a 90-day backtest of my MACD strategy on BTC/USDT." You approve it before it runs.
- "Which of my bots are in error, and what does their status say?"
Troubleshooting
The agent says it is not authenticated
The sign-in expired or never finished. Make a tool call and complete the browser sign-in when it opens. If no browser opens, look for the sign-in URL in the agent's logs.
The agent was working and now every call is refused
The agent was revoked, by you or by an organization admin. Connect it again on the MCP page and give it the new URL.
A change the agent made does not appear
It is waiting for your approval. Open Approvals in the console, or check Telegram if you linked it.
Claude Desktop does not find the server
Claude Desktop needs the mcp-remote bridge. Check that your configuration uses the command and args form,
not the type: "http" form that Claude Code and Cursor use.
The sign-in page opens but the callback fails
The sign-in returns to a local port on the machine that runs the agent. If the agent runs in a VM or WSL without port forwarding, the callback cannot reach it. Run the agent on the machine where the browser runs.
Related
- API reference: the GraphQL API behind the tools
- Connect Claude to your trading bots: the launch post
- AI crypto trading workflows with Claude and MCP: example workflows
- AI Chat Assistant: the built-in assistant, which uses the same tools
- Model Context Protocol specification