prime-intellect-mcp
The server enables Claude Code to rent, drive, and terminate Prime Intellect GPU pods with hard spend caps, allowing AI agents to provision and manage cloud GPU resources autonomously.
README
prime-intellect-mcp
Let Claude Code rent, drive, and terminate Prime Intellect GPU pods on its own — with hard spend caps you control.
What this is
An MCP server that connects Claude Code (or any MCP client) to your Prime Intellect account. With it, the agent can:
- 🔍 Find the cheapest GPU pod that matches your requirements
- 💸 Quote a price before committing money
- 🛒 Provision the pod (only after you say
confirm=True) - 🖥️ SSH into it (the connection string is handed to the agent's own
Bashtool) - 🛑 Terminate it when work is done — and warn loudly if you forget
Built for one workflow: telling Claude "rent the cheapest H100, run my training script, then kill it" and not waking up to a $400 bill.
Install in 60 seconds
You only need this much to start renting GPUs through Claude Code:
1. Get a Prime Intellect API key
Click here to generate one → set permissions:
| Scope | Level |
|---|---|
| Instances | Read and write |
| Availability | Read only |
| Billing | Read only |
| SSH Keys | Read only |
Copy the key — it starts with pit_….
2. Add the server to Claude Code
Open ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or your project's .mcp.json, and paste:
{
"mcpServers": {
"prime-intellect": {
"command": "uvx",
"args": ["prime-intellect-mcp"],
"env": {
"PRIME_API_KEY": "pit_PASTE_YOURS_HERE",
"PRIME_MAX_HOURLY_USD": "5",
"PRIME_MAX_TOTAL_USD": "40"
}
}
}
}
That's it. Restart Claude Code and ask: "What GPUs are available right now under $1/hr?"
Don't have
uvx? Install it withcurl -LsSf https://astral.sh/uv/install.sh | sh(orbrew install uv). It's a one-liner installer for theuvpackage manager and you'll never have to manage a virtualenv again.
✨ Add SSH (optional, +2 min) — needed for Claude to actually run code on the pod
The server above can already provision/inspect/terminate pods. But to have Claude Code SSH into a running pod and execute commands on it, Prime Intellect needs to know your machine's public SSH key.
3. Find or generate an SSH key on your machine
ls ~/.ssh/*.pub # if you have id_ed25519.pub or similar, you're set
# otherwise:
ssh-keygen -t ed25519 -C "you@example.com" # press Enter through the prompts
4. Register the public key with Prime Intellect
cat ~/.ssh/id_ed25519.pub # or whichever .pub file you have
Copy the output (one line starting with ssh-ed25519 …), then paste it into the Add SSH key form at app.primeintellect.ai/dashboard/ssh-keys.
That's it. Future pods will have your public key in authorized_keys, and Claude Code's Bash tool can SSH straight in:
ssh ubuntu@<pod-ip-from-pod_status> "nvidia-smi"
Coming in v0.2: a
register_ssh_keyMCP tool that does step 4 from inside Claude (no browser visit). See the issue tracker to follow along.
What Claude can now do (the 9 tools)
| Tool | Use case |
|---|---|
list_gpu_types |
"What GPU types does Prime Intellect offer?" |
list_availability |
"Show me 1×H100 pods available under $3/hr." |
get_wallet_balance |
"How much credit do I have left?" |
pod_quote |
"Quote me a 1×A100 with 200GB disk." (no charge) |
pod_create |
"Provision the pod from that quote." (requires confirm=True) |
pod_list |
"Show me my running pods." |
pod_status |
"Is pod X ready? Wait until it has SSH info." |
pod_terminate |
"Kill pod X." (requires confirm=True) |
pod_check_runaway |
"Did I forget to terminate anything?" |
Safety: nothing provisions silently
Three layers, in order:
- Quote first.
pod_quotereturns a price + a 60-second token. No side effects. The dollar amount is now in the agent's context. - Explicit confirm.
pod_create(andpod_terminate) requiresconfirm=True. Without it, you get a dry-run preview. - Hard env-var caps.
PRIME_MAX_HOURLY_USDblocks any pod above the rate.PRIME_MAX_TOTAL_USDblocks any (rate × max_lifetime_hours) above the budget. Wallet balance is also enforced. None of these caps can be overridden by tool arguments — they're read at every call.
Defaults: PRIME_MAX_HOURLY_USD=5, PRIME_MAX_TOTAL_USD=40. Set them in your config's env block.
Every pod_create / pod_terminate is appended as JSON to ~/.prime-intellect-mcp/audit.log, so you have a complete history of what the agent did with your money.
Example prompts (paste these into Claude Code)
List the cheapest 1×H100 pods available right now. Show me the top 3 by hourly price.
Quote a 1×A100 80GB with 100GB disk, 8 vCPU, 64GB RAM. Don't provision yet —
just show me what it would cost.
I need to fine-tune a 7B model overnight. Find the cheapest 1×H100 with 200GB
disk, max $40 total budget, max 12 hours. Provision it, give me the SSH command,
and remind me to terminate when I'm done.
Check if I have any running pods I forgot about and show me their hourly cost.
Terminate pod abc123. Confirm before doing it.
Troubleshooting
<details> <summary><b><code>PRIME_API_KEY is not set</code></b></summary>
Either your Claude Code config didn't pick up the env block, or you typed PRIME_API_KEY as a different variable. Verify with:
$ env | grep PRIME
inside the same shell that launches Claude Code, or paste the key directly into the JSON env block (instead of using ${PRIME_API_KEY}).
</details>
<details> <summary><b><code>Hourly rate $X/hr exceeds PRIME_MAX_HOURLY_USD cap</code></b></summary>
The agent picked a pod above your hard cap. Either:
- Pick a cheaper GPU (
list_availabilitywith a region filter often surfaces cheaper community-priced rows), or - Raise
PRIME_MAX_HOURLY_USDin your config and restart Claude Code. </details>
<details> <summary><b><code>Quote token expired</code></b></summary>
Quotes live 60 seconds; the agent waited too long between pod_quote and pod_create. Just call pod_quote again — it's a no-op cost-wise.
</details>
<details> <summary><b>Pod is "ACTIVE" but <code>ssh_connection</code> is null</b></summary>
Provisioning isn't fully done. The pod is alive but still running its install script. Call pod_status(pod_id, wait_for_ssh=True) and it will block (polling every 5s) until SSH comes up.
</details>
<details> <summary><b><code>ssh: Permission denied (publickey)</code></b></summary>
You haven't told Prime Intellect about your public key (or the pod was provisioned before you registered it). Fix:
- Verify your pubkey is registered at app.primeintellect.ai/dashboard/ssh-keys.
- Re-provision — the pod's
authorized_keysis set at create time, so existing pods won't pick up keys you registered after. - If your private key has a passphrase, run
ssh-add --apple-use-keychain ~/.ssh/your_keyonce on macOS so the agent unlocks it silently from now on. </details>
<details> <summary><b>Wallet balance is empty / <code>PaymentRequiredError</code></b></summary>
Top up at app.primeintellect.ai/wallet and try again. </details>
Why another one?
There's a prime-mcp-server 0.1.2 on PyPI. It's a thin proof-of-concept; this isn't a fork. Differences for unattended overnight use:
prime-intellect-mcp |
prime-mcp-server 0.1.2 |
|
|---|---|---|
| Two-step quote → confirm | ✅ | ❌ |
| Env-var hard spend caps | ✅ | ❌ |
| Wallet pre-check | ✅ | ❌ |
| Runaway-pod detection | ✅ | ❌ |
| SSH handoff to agent | ✅ | ❌ |
| Tests | 32 unit + opt-in live | None |
Local development
git clone https://github.com/kvrancic/prime-intellect-mcp
cd prime-intellect-mcp
uv sync
uv run pytest -m "not live" # 32 fast tests, no network, no spend
uv run ruff check .
uv run mypy src
Live smoke test (provisions cheapest available GPU, runs nvidia-smi, terminates; ~$0.05 spend):
PRIME_API_KEY=pit_... PRIME_LIVE_TEST=1 PRIME_LIVE_MAX_HOURLY=0.60 \
PRIME_MAX_HOURLY_USD=0.60 PRIME_MAX_TOTAL_USD=2.00 \
uv run pytest tests/test_smoke_live.py -v -s
Roadmap
- v0.2 —
register_ssh_keyMCP tool (kill the dashboard step), Sandboxes (prime-sandboxesSDK), Environments Hub - v0.3 — Optional auto-terminate daemon (server-side enforcement of
max_lifetime_hours); cost telemetry - v1.0+ — Hosted/OAuth deployment when Prime Intellect ships OAuth; submission to Anthropic connector directory
Acknowledgements
- Prime Intellect for the
primePython SDK that does 90% of the work - MIT 6.8610 (Advanced NLP) for the Prime Intellect credits that made testing this possible
- Anthropic for MCP
- FastMCP for the framework
License
MIT — see LICENSE.
Contributing
Issues and PRs welcome. Please run uv run pytest -m "not live" and uv run ruff check . before submitting.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。