ScratchRun について
ScratchRunは、AIエージェント向けにコードを実行するMCPサーバーです。実行ごとに新しいハードウェア分離型MicroVMを使って破棄し、Python、Node.js、Bashに対応します。呼び出し間でファイルや状態は保持されません。
主な機能
- 01実行ごとに新しいMicroVMを作成
- 02Python、Node.js、Bashに対応
- 03時間とメモリの上限設定
- 04入力・出力ファイルの処理
- 05プライベートIPとメタデータIPへの通信を遮断
活用シーン
- 01隔離環境でエージェント生成コードを実行
- 02チャートを生成して画像ファイルを取得
- 03呼び出し間に状態を残さずスクリプトを実行
MCP 対応
コード実行用の `scratchrun_exec` ツールをMCPクライアントに提供します。標準出力、標準エラー、終了コード、指定した出力ファイルを返し、画像はMCP画像コンテンツとして返せます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
1掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| env | object | いいえ | サンドボックスに注入する環境変数です。シークレットや設定に使用します。 |
| code | string | はい | 実行するコード。 |
| files | object | いいえ | 実行前に書き込むファイルです。キーは絶対パス、値はファイルの内容です。 |
| runtime | enum | はい | ランタイムです。python3.12 には numpy、pandas、matplotlib、requests などが含まれます。python3.12 | python3.11 | node20 | bash |
| memory_mb | integer | いいえ | メモリ制限(MB)。 |
| timeout_ms | integer | いいえ | 実行タイムアウト(ミリ秒)。終了コード 124 はタイムアウトを示します。 |
| return_files | array | いいえ | 実行後に取得し、base64 として返すファイルパスです。グラフ、CSV、その他の出力成果物に使用します。 |
詳細
@scratchrun/mcp-server
ScratchRun 用の MCP サーバーです。AI エージェント向けに、使い捨てで MicroVM によって分離されたコード実行を提供します。
呼び出しごとに、新しいハードウェア分離された MicroVM で実行されます。実行後、VM は完全に消去されます。呼び出し間で状態やファイルなどが保持されることはありません。
インストール
claude_desktop_config.json に追加します。
{
"mcpServers": {
"scratchrun": {
"command": "npx",
"args": ["-y", "@scratchrun/mcp-server"],
"env": {
"SCRATCHRUN_API_KEY": "sr_live_your_key_here"
}
}
}
}
scratchrun.dev で API キーを取得してください。
ツール:scratchrun_exec
使い捨てのサンドボックスでコードを実行し、stdout、stderr、終了コード、および出力ファイルを返します。
パラメーター:
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
runtime | python3.12 | python3.11 | node20 | bash | はい | 使用するランタイム |
code | string | はい | 実行するコード |
timeout_ms | integer | いいえ | タイムアウト(ミリ秒)(デフォルト 10000、最大 30000) |
memory_mb | integer | いいえ | メモリ上限(MB)(デフォルト 256、最大 512) |
env | object | いいえ | 環境変数。コード文字列ではなく、シークレットに使用します |
files | object | いいえ | 実行前に書き込むファイル(パス → 内容) |
return_files | string[] | いいえ | 実行後に取得するファイルパス(base64 で返されます) |
例 — Python を実行してグラフを返す:
{
"runtime": "python3.12",
"code": "import matplotlib.pyplot as plt\nimport numpy as np\nx = np.linspace(0, 10, 100)\nplt.plot(x, np.sin(x))\nplt.savefig('/tmp/plot.png')",
"return_files": ["/tmp/plot.png"]
}
出力ファイルは base64 で返されます。画像ファイル(PNG、JPG、SVG)は MCP の画像コンテンツブロックとして返され、Claude 内にインライン表示されます。
分離
- 実行ごとにハードウェア仮想化された MicroVM を使用します(独自のカーネルを持ち、カーネルを共有するコンテナーではありません)
- 実行のたびに必ず
TerminateMicroVMが呼び出され、VM は破棄され、再利用されません - RFC 1918 およびクラウドメタデータ(
169.254.x.x)は、ネットワーク層で常にブロックされます - OverlayFS を介した読み取り専用のシステムファイルシステムを使用します。
/tmpは RAM 上にあり、VM とともに消去されます
レイテンシー
約 400ms(ウォームプール利用時の中央値)。プールが空の場合、コールドスタートに 2~8 秒かかります。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。