mcp server
Your agents, connected to GPU Flow.
A server that exposes GPU Flow's European inference and your account management as tools for agents. Claude Desktop, Cursor or whatever agent you use call them on their own, over the Model Context Protocol.
Before you start
Two things: Node and an account. What you put in the config decides how far the agent can reach.
Node 20 or later
If you do not have it, install it from nodejs.org. You do not need to clone any repository: the package downloads itself.
An API key
For inference. You create it in your dashboard, in the keys section. If you only want your agent to talk to the models, this is all you need.
Email and password
Only if you want the agent to see your balance or run your Sandboxes. Read the credentials section first: a password is not an API key.
Adding it to Claude Desktop
Claude Desktop keeps MCP servers in a config file. Open it from the app itself, paste the block and restart.
- 1 · Open the configIn Claude Desktop: bottom-left menu, Settings, Developer, Edit Config. Use this menu rather than hunting for the file: it can live in two different places depending on how the app was installed, and editing the wrong one is the most common reason a config has no effect.
- 2 · Paste the blockIf the file is empty or contains only an empty pair of braces, replace the whole thing. If it already has an mcpServers section, add just the gpuflow block inside it, with a comma after the previous entry.
- 3 · Restart properlyClosing the window is not enough. Right-click the system tray icon and choose Quit, then open the app again.
claude_desktop_config.json
{
"mcpServers": {
"gpuflow": {
"command": "npx",
"args": ["-y", "@gpuflow/mcp"],
"env": {
"GPUFLOW_API_KEY": "sk-gpuflow-...",
"GPUFLOW_EMAIL": "[email protected]",
"GPUFLOW_PASSWORD_FILE": "C:\\path\\to\\your\\password.txt"
}
}
}
}On Windows, double backslashes
Paths in the file take doubled backslashes. A single one is, alongside a typo, the most frequent reason the server does not start.
What you hand over, and what it can do
With just the API key, your agent can use the models. Balance and Sandboxes need a login, and that is worth a pause.
A password is not an API key
Your password can create and destroy machines, delete files, create keys and change the account's email. An API key can only ask a model a question, and it can be revoked on its own. If you are testing, use a test account; if you already used yours, change it afterwards.
Use a file, not the password
The config file stores whatever you put in it as plain text, unencrypted: any process running as your user can read it. That is why GPUFLOW_PASSWORD_FILE beats GPUFLOW_PASSWORD: you create a file containing only the password and put its path there. A path is safe to paste and share; a password is not.
Never both at once
The GPUFLOW_PASSWORD and GPUFLOW_PASSWORD_FILE variables are mutually exclusive. The server refuses to start if it finds both, rather than picking one for you.
The session opens when it is needed
Login happens the first time an account tool is called. If you only do inference, you need no credentials at all. Tokens live in memory and are never written to disk.
Do not show it around
Do not screenshot the config file or paste it into a chat or an email.
Twenty, in three groups
Twelve read-only, always available. Seven that change something, off by default. And one diagnostic.
| Group | What they do | What they need |
|---|---|---|
| Inference | List the model catalogue and talk to one. | API key |
| GPU | The dedicated GPU offering and the free capacity. | Nothing |
| Account | Your balance, your API keys by prefix, and your usage. | Session |
| Sandboxes, read | List them, see their live state, their spend and your disks. | Session |
| Sandboxes, write | Create, pause, resume, delete, change the automatic pause and add a key. | Session and permission |
| Diagnostic | An aggregate status of everything above. | Nothing |
How to name a Sandbox
Sandbox tools accept the full name, the label you gave it, or any part of the name that is unambiguous.
Two ways of reading state
The state in the list is the last stored state; the one in the individual lookup is the machine's live phase. While a change is in flight the two can disagree, and that is expected.
doctor tells the truth
It returns an aggregate status of inference, the key, the session, the balance and the Sandboxes. If a service does not answer, it goes red instead of claiming everything is fine. It is read-only, but its probe makes a minimal call to a model, and that call is billed.
Two figures that do not add up
Your account usage and a Sandbox's spend come from different places and may be shown in different currencies. They are separate things: do not compare or add them.
Nothing changes unless you switch it on
The seven tools that create, pause or delete ship switched off. They appear in the list, but refuse the call with a clear message until you turn the permission on.
The switch
You turn it on by setting GPUFLOW_MCP_ALLOW_WRITES to 1 inside the env block of the config. Without it, an agent cannot accidentally change anything billable.
claude_desktop_config.json
"env": {
"GPUFLOW_API_KEY": "sk-gpuflow-...",
"GPUFLOW_EMAIL": "[email protected]",
"GPUFLOW_PASSWORD_FILE": "C:\\path\\to\\your\\password.txt",
"GPUFLOW_MCP_ALLOW_WRITES": "1"
}And even then, a second key
Anything irreversible or billable also carries a preview step. Without confirming, the tool tells you exactly what it would do and does nothing.
| Tool | Without confirming | Confirming |
|---|---|---|
| Delete a Sandbox | Reports which one it would delete. Does nothing. | Deletes it. |
| Delete a disk | Reports which one it would delete. Does nothing. | Deletes it. |
| Create a Sandbox | Returns the exact spec. Does nothing. | Creates it. |
The agent knows what it is touching
Every tool declares whether it is read-only, whether it destroys something and whether repeating it gives the same result. With that, your MCP client can decide when to ask you first.
Confirming it worked
Claude Desktop should show a tools icon near the message box. Click it and look for gpuflow with its tool list underneath.
If it is not there
Go to Settings, Developer, and look for an error next to gpuflow. The most common causes are a typo in the file, a wrong path, or single backslashes instead of double ones.
Proof that it started
Find the most recent log and open the file. A line like this one is proof the config took effect. If you cannot find it, Claude Desktop never started the server: it is a configuration problem.
Get-ChildItem "$env:APPDATA\Claude\logs", "$env:LOCALAPPDATA\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\logs" -Filter "mcp*.log" -ErrorAction SilentlyContinue | Select-Object FullName, LastWriteTime
Give your agent tools.
An account in a minute, no card, with 50 € of credit already loaded.