mcpField
S
ScratchRun

ScratchRun

ローカル
github.com/ar-blues開発ツール013 週間前に更新

ScratchRun について

ScratchRunは、AIエージェント向けにコードを実行するMCPサーバーです。実行ごとに新しいハードウェア分離型MicroVMを使って破棄し、Python、Node.js、Bashに対応します。呼び出し間でファイルや状態は保持されません。

主な機能

  1. 01実行ごとに新しいMicroVMを作成
  2. 02Python、Node.js、Bashに対応
  3. 03時間とメモリの上限設定
  4. 04入力・出力ファイルの処理
  5. 05プライベートIPとメタデータIPへの通信を遮断

活用シーン

  1. 01隔離環境でエージェント生成コードを実行
  2. 02チャートを生成して画像ファイルを取得
  3. 03呼び出し間に状態を残さずスクリプトを実行

MCP 対応

コード実行用の `scratchrun_exec` ツールをMCPクライアントに提供します。標準出力、標準エラー、終了コード、指定した出力ファイルを返し、画像はMCP画像コンテンツとして返せます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"dev-scratchrun": {
"command": "npx",
"args": [
"-y",
"@scratchrun/mcp-server"
],
"env": {
"SCRATCHRUN_API_KEY": "<SCRATCHRUN_API_KEY>"
}
}
}
}
起動コマンドnpx -y @scratchrun/mcp-server
設定が必要な環境変数
SCRATCHRUN_API_KEYシークレットScratchRun API key — get one at https://scratchrun.dev

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@scratchrun/mcp-server0.1.1

ツール

1

掲載時のツール一覧 · 3 週間前に更新

パラメーター型必須説明
envobjectいいえサンドボックスに注入する環境変数です。シークレットや設定に使用します。
codestringはい実行するコード。
filesobjectいいえ実行前に書き込むファイルです。キーは絶対パス、値はファイルの内容です。
runtimeenumはいランタイムです。python3.12 には numpy、pandas、matplotlib、requests などが含まれます。python3.12 | python3.11 | node20 | bash
memory_mbintegerいいえメモリ制限(MB)。
timeout_msintegerいいえ実行タイムアウト(ミリ秒)。終了コード 124 はタイムアウトを示します。
return_filesarrayいいえ実行後に取得し、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、終了コード、および出力ファイルを返します。

パラメーター:

パラメーター型必須説明
runtimepython3.12 | python3.11 | node20 | bashはい使用するランタイム
codestringはい実行するコード
timeout_msintegerいいえタイムアウト(ミリ秒)(デフォルト 10000、最大 30000)
memory_mbintegerいいえメモリ上限(MB)(デフォルト 256、最大 512)
envobjectいいえ環境変数。コード文字列ではなく、シークレットに使用します
filesobjectいいえ実行前に書き込むファイル(パス → 内容)
return_filesstring[]いいえ実行後に取得するファイルパス(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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。