Skip to main content

GPU MCP server

https://mcp.ecohash.com/gpu is an MCP server that gives an AI coding agent the GPU-instance lifecycle as tools — find capacity, quote, launch, get the SSH command, stop — on your account and your credit. The agent loop is the client's (Claude Code, Codex, the Claude app); we only expose tools.

Connect it by signing in with your EcoHash account, or with an API key. Either way the agent can do only what you allow: viewing and quoting, or also launching and managing.

Connect​

Two ways in: sign in with your EcoHash account (recommended — nothing is pasted into a file, and you choose what the agent may do), or an API key with Compute access (for scripts, CI and clients that cannot sign in — see API keys). The steps differ per client.

Claude Code​

claude mcp add -s user --transport http ecohash-gpu https://mcp.ecohash.com/gpu

-s user keeps the server in your user settings, so it is there in every project. Without it, Claude Code saves the server only for the directory you ran the command in.

Adding the server does not sign you in yet: claude mcp list shows it as Needs authentication. Inside Claude Code, type /mcp, pick ecohash-gpu and choose Authenticate. EcoHash opens in your browser — see What you approve below. Afterwards /mcp and claude mcp list show it as connected.

With an API key instead of signing in:

claude mcp add -s user --transport http ecohash-gpu https://mcp.ecohash.com/gpu \
--header "Authorization: Bearer eco_YOUR_KEY"

Codex​

codex mcp add ecohash-gpu --url https://mcp.ecohash.com/gpu
codex mcp login ecohash-gpu

The first command writes the server to ~/.codex/config.toml; the second opens the sign-in page in your browser. The resulting entry looks like this:

[mcp_servers.ecohash-gpu]
url = "https://mcp.ecohash.com/gpu"

With an API key instead of signing in, keep the key out of the file by naming an environment variable that holds it:

[mcp_servers.ecohash-gpu]
url = "https://mcp.ecohash.com/gpu"
bearer_token_env_var = "ECOHASH_API_KEY"

Then export ECOHASH_API_KEY=eco_YOUR_KEY before starting Codex. codex mcp list (or /mcp in the Codex TUI) shows the server and whether it is signed in.

Claude app (claude.ai, desktop, mobile) and the Claude Code desktop app​

Claude's own apps add remote servers as connectors, once per Claude account, not through a config file (a url entry in claude_desktop_config.json is ignored):

  1. In claude.ai or the Claude desktop app open Settings → Connectors → Add custom connector.
  2. Name: EcoHash GPU. URL: https://mcp.ecohash.com/gpu. Click Add.
  3. Click Connect on the new connector and sign in — see What you approve.

One connector serves every Claude surface on that account: claude.ai in the browser, the desktop and mobile apps, and sessions in the Claude Code desktop app, which pick it up without claude mcp add. In the EcoHash console the connection is listed under API Keys → Connected apps as Claude; disconnect it there, or remove the connector in Claude's settings.

Connectors sign in with your account and have no field for an API key, so use sign-in here.

Other clients​

Any client that supports remote (Streamable HTTP) MCP servers with sign-in can use https://mcp.ecohash.com/gpu with no headers: the server advertises its OAuth 2.1 flow (PKCE, dynamic client registration) at the standard discovery addresses, so the client finds the sign-in page on its own. A client that only supports static headers can pass Authorization: Bearer eco_YOUR_KEY instead.

What you approve​

When you sign in, EcoHash opens in your browser. Sign in if asked, and you see what the app is asking for:

  • Use models — call models on your account.
  • View GPU resources and prices — list instances, clusters, storage and templates, and quote prices.
  • Launch and manage GPU resources — spends credit — launch, extend and terminate. Off unless you tick it.

Choose what to allow and click Allow. The client is connected; it appears under API Keys → Connected apps, where you can disconnect it at any time.

The app is shown as unverified — any app can register a name — so only approve a request you just started yourself.

If your client runs on a remote machine, the browser may end on a page at http://localhost:… that fails to load. That is expected: copy the full address of that page and give it to the client if it asks for it.

Try it​

Ask, in plain words: "launch an RTX Pro 6000 with my SSH key and give me the command", "what GPU instances do I have running?", "stop instance 512".

If a tool needs more than you allowed, it says so and the agent tells you rather than retrying. With a key the message is "this API key is read-only for compute — use a key with full Compute access to launch, change or delete resources": create a Full key. With sign-in, disconnect the app under API Keys → Connected apps and connect it again with Launch and manage ticked.

Tools​

GPU instances

ToolWhat it doesCost
list_gpu_availabilityRegions, GPU types, how many are free, what one GPU comes with, price per hourfree
get_balanceYour available creditfree
quote_instanceWhat a launch will hold now and cost per hour after. It does not check regional capacity — read list_gpu_availability (or use quote_template) before launchingfree
list_instancesYour instances, with status and SSH commandfree
get_instanceOne instance: status, SSH command, service URL, credit heldfree
create_instanceLaunch. Defaults to no end time (billed hourly until you stop it) and to the GPU Base platform image (has OpenSSH). Pass an SSH public key to get an SSH command back; pass cloud_drives / shared_filesystems ids to mount storage, or user_model_id to mount a model's weightsholds credit
extend_instanceAdd hours to a fixed-duration instanceholds credit
terminate_instanceStop it; GPUs released, unused held credit refundedirreversible

GPU clusters

ToolWhat it doesCost
list_clusters, get_clusterYour clusters; one cluster with its replicas and attached filesystemsfree
quote_clusterWhat a cluster launch will hold now and cost per hour, and whether the region has the GPUs free right nowfree
create_cluster2–8 replicas, fixed duration, optional new or existing shared filesystemholds credit for the whole run
extend_clusterAdd hoursholds credit
terminate_clusterStop all replicasirreversible

Templates

ToolWhat it doesCost
list_templatesYour saved launch configurations and the public catalogue (instance and cluster templates)free
quote_templateWhat launching one would hold, in which region, and whether capacity is freefree
launch_templateStart an instance, cluster or model instance from a template, with optional name / region / duration / SSH key overrides (a model instance takes only a name)holds credit
get_model_instanceOne model instance: status, GPUs, rate, and the model name to call it byfree
terminate_model_instanceStop a model instance; the unused hold is refundedirreversible

Storage and SSH keys

ToolWhat it doesCost
list_storageCloud drives, shared filesystems, free capacity per regionfree
create_storageA drive (kind: drive) or shared filesystem (kind: filesystem), 50–500 GB, in a regionbills daily until deleted
expand_storageGrow a shared filesystem in place, online (drives cannot be expanded). It can never shrink, and is limited to 3 expansions per filesystem per dayraises the daily bill
delete_storageDestroy one (refused while mounted)irreversible
list_ssh_keys, add_ssh_keySaved public keysfree

Every tool that commits money or destroys something requires confirm: true. A well-behaved agent quotes first, tells you the amount, and only confirms after you agree — the tool descriptions say so, and your client also asks before running a tool with side effects.

Deliberately not tools: a terminal, file upload, file browse, folder export. Once an instance is running, the agent works over SSH, which is a better terminal than any tool.

Limits​

On top of the API's rate limits, the MCP server caps what one key can commit through it: 20 launches per hour and $200 of estimated holds per day per key. Above that a tool call is refused with a message saying so, and nothing is charged. Contact us if you need more.

Security notes​

  • The server holds no credentials. Your sign-in token or key travels in the request header and is used for that request only.
  • With sign-in, the client holds a short-lived token that it renews on its own; nothing is pasted into a configuration file. Disconnect it under API Keys → Connected apps and it stops working on its next request.
  • With a key, the key lives in your client's configuration file. Revoke it from the console's API Keys page at any time; create a separate key for the agent rather than reusing one from a production service.
  • Start an agent with view and quote only. It can then explore and price a launch, and ask you before anything is spent.
  • Nothing the agent does bypasses your account's limits: the same holds, the same GPU cap, the same membership rules as the console.

Your privacy choices

Essential cookies are always on. You can change these choices at any time.