blockrunai/blockrun-mcp/modal

Trust tier 2
  • community
LLM review pending
Source check pending

Checking that the SKILL.md file is still in the repository.

Use when the user needs to run isolated code remotely — a disposable container, optional GPU access (T4 → H100), or a safer place for untrusted / heavy code. Prefer local execution for normal repo work; use Modal sandboxes for isolation, hardware access, or one-shot heavy compute.

Install

npx vskill@latest install blockrunai/blockrun-mcp/modal

SKILL.md

Modal Sandboxes

Disposable remote containers (with optional GPU) via Modal, paid per call in USDC. No Modal account, no GPU procurement.

Base only in wallet mode; fine on an API key. sol.blockrun.ai carries the /v1/modal/* routes but has no Modal backend configured, so every action — create, exec, status, terminate — answers 503. That reads as "the sandbox service is down" rather than "wrong chain", which is exactly the wrong conclusion to act on: retrying will not help. The tool checks the active chain first and says so. Switch with blockrun_wallet action:"chain" chain:"base". Prices below are Base prices and include its per-transaction fee.

READ THIS BEFORE SETTING timeout

`timeout` is the BILLED lifetime, charged upfront in full, and never refunded — not an idle timeout. Above 300s the price switches from a flat rate to per-hour billing for the entire duration you ask for, whether you use it or not. Terminating early refunds nothing.

That makes timeout the single most expensive field in this MCP:

what you ask forwhat you pay
{ timeout: 300 }$0.0110
{ timeout: 300, gpu: "A100" }$0.2010
{ timeout: 600, gpu: "A100" }$0.6677
{ timeout: 86400, gpu: "H100" }$192.0010

All four are live-verified quotes. A 24h H100 sandbox costs $192 upfront, non-refundable, even if your job finishes in a minute.

So: ask for the time you need, not a safe-looking ceiling. Need 20 minutes of H100? timeout: 1200 is $2.67, not $192. Keep timeout ≤ 300 and you stay on the flat rate entirely.

How to Call from MCP

ts
// 1. Create — timeout: 300 keeps you on the FLAT rate ($0.0110, or $0.2010 with A100).
// Anything above 300 bills hourly for the full requested lifetime, no refund.
blockrun_modal({ path: "sandbox/create", body: {
image: "python:3.11",
gpu: "A100",
timeout: 300,
setup_commands: ["pip install torch transformers"]
}})
// returns { sandbox_id, ... }
// 2. Exec
blockrun_modal({ path: "sandbox/exec", body: {
sandbox_id: "sb_abc...",
command: ["python", "-c", "import torch; print(torch.cuda.get_device_name(0))"]
}})
// 3. Terminate
blockrun_modal({ path: "sandbox/terminate", body: { sandbox_id: "sb_abc..." } })

Endpoint Catalog

PathMethodBodyPrice
sandbox/createPOST{ image?, timeout?, cpu?, memory?, gpu?, setup_commands? }depends on `timeout` + `gpu` — see below
sandbox/execPOST{ sandbox_id, command: ["python","-c","..."], timeout? }$0.0020
sandbox/statusPOST{ sandbox_id }$0.0020
sandbox/terminatePOST{ sandbox_id }$0.0020
sandbox/create pricing is bimodal

`timeout ≤ 300s` — flat rate, charged once:

gpuprice
(none, CPU)$0.0110
T4$0.0510
L4$0.0810
A10G$0.1010
A100$0.2010
H100$0.4010

`timeout > 300s` — per-hour × the full requested lifetime, upfront, no refund:

gpuper hour1h24h (max)
(none, CPU)$0.10$0.1010$2.4010
T4$1.50$1.5010$36.0010
L4$2.00$2.0010$48.0010
A10G$2.50$2.5010$60.0010
A100$4.00$4.0010$96.0010
H100$8.00$8.0010$192.0010

Hours are exact, not rounded up — timeout: 1800 on A100 is 0.5h = $2.0010. Every figure above includes the $0.001 flat transaction fee. Max timeout is 86400 (24h).

One quirk worth knowing: timeout: 300 costs $0.0110 (flat) but timeout: 301 costs $0.0094 (CPU-hourly) — just past the cliff is briefly cheaper on CPU. It stops being cheaper at 360s.

Field Reference

FieldDefaultNotes
imagepython:3.11Any public Docker image. nvidia/cuda:12-runtime if you bring GPU code.
timeout300BILLED lifetime in seconds — charged upfront for the full amount, never refunded. NOT idle eviction: you pay for what you ask for, not what you use. ≤300 = flat rate; >300 switches to per-hour billing (see the tables above). Max 86400 (24h). This is the field that turns a $0.01 sandbox into a $192 one.
cpu1CPU cores
memory1024Memory in MB
gpunoneT4 / L4 / A10G / A100 / H100 — those five only. Anything else is rejected: {"gpu":"A100-80GB"} returns HTTP 400 "Unsupported GPU type. Allowed: T4, L4, A10G, A100, H100". Drives the price hard — see the tables above.
setup_commands[]Shell commands run once during sandbox provisioning
command (exec)requiredArray form: ["python","-c","print(2+2)"]

Worked Examples

1. Quick Python eval
ts
const { structuredContent: sb } = await blockrun_modal({ path: "sandbox/create", body: {} })
await blockrun_modal({ path: "sandbox/exec", body: {
sandbox_id: sb.sandbox_id,
command: ["python", "-c", "import numpy; print(numpy.__version__)"]
}})
await blockrun_modal({ path: "sandbox/terminate", body: { sandbox_id: sb.sandbox_id } })

Cost: $0.0150 — create $0.0110 + exec $0.0020 + terminate $0.0020. Every call carries the $0.001 transaction fee, so three calls pay it three times; batch your work into one exec rather than several.

2. GPU inference, A100, with deps pre-installed
ts
blockrun_modal({ path: "sandbox/create", body: {
image: "pytorch/pytorch:2.4.0-cuda12.1-cudnn9-runtime",
gpu: "A100",
timeout: 1200,
memory: 16384,
setup_commands: ["pip install --quiet transformers accelerate"]
}})

Then sandbox/exec with your inference command.

Cost: $1.3383 — create $1.3343 + exec $0.0020 + terminate $0.0020. timeout: 1200 is above the 300s flat tier, so the A100 bills hourly for the full 20 minutes you asked for: $4.00/h × (1200/3600) = $1.3333, + the $0.001 fee. It is charged upfront and never refunded — it does NOT auto-evict when idle, and terminating after 30 seconds still costs the full $1.3343. Ask for the time you actually need.

3. Test untrusted code Claude generated
ts
blockrun_modal({ path: "sandbox/exec", body: {
sandbox_id,
command: ["bash", "-c", "<the generated script>"],
timeout: 60
}})

Output is captured. No risk to your local machine.

When NOT to Use Modal

  • Normal repo edits / dev work — use local tools, Modal adds latency and cost
  • Long-running services — sandboxes are ephemeral, not server hosts
  • Anything you'd run hundreds of times per minute — payment overhead dominates at high QPS

Notes

  • sandbox_id is returned by create and required by every other endpoint
  • exec is sync — blocks until command finishes or hits its timeout
  • terminate is cheap; call it to free the sandbox even if timeout would expire shortly
  • The free-tier nvidia/* LLM models in blockrun_chat are different infrastructure — Modal is for your arbitrary code

Reference

  • Endpoints: POST /v1/modal/sandbox/{create,exec,status,terminate}
  • Upstream: Modal

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewNot runA model review is scheduled for the next rescan.

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
389
Repository forks
38
7-day trend score
30

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/blockrunai/blockrun-mcp/modal/badge)](https://verified-skill.com/skills/blockrunai/blockrun-mcp/modal)

Something wrong with this skill or its page? Tell us.