mcpField
R
Runno Code Sandbox

Runno Code Sandbox

ローカル
github.com/taybenlorAI・エージェント77524 週間前に更新

Runno Code Sandbox について

Runno Code Sandboxは、AIアシスタントが複数の言語でコードを実行するためのMCPサーバーです。分離されたWebAssembly環境を使う`run_code`ツールは、実行状態、終了コード、出力、エラーを返し、ファイルシステムやネットワークにはアクセスできません。

主な機能

  1. 01WebAssemblyによる分離実行
  2. 02Python、JavaScript、C、C++、Ruby、PHPに対応
  3. 03実行状態、出力、エラーの返却
  4. 04stdio通信

活用シーン

  1. 01プログラミング問題を解くコードの実行
  2. 02コード片によるデータ計算
  3. 03別の対応言語での実装の試行

MCP 対応

stdio経由でMCPクライアントに`run_code`ツールを提供します。クライアントはランタイムと言語コードを渡し、実行状態と出力を受け取ります。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"taybenlor-runno": {
"command": "npx",
"args": [
"-y",
"@runno/mcp"
]
}
}
}
起動コマンドnpx -y @runno/mcp

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

パッケージ
npm@runno/mcp0.10.6

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

@runno/mcp

概要

@runno/mcp は、AI アシスタントに安全なコード実行環境を提供する Model Context Protocol (MCP) サーバーです。WebAssembly を使用したサンドボックス環境内で、モデルがさまざまなプログラミング言語のコードを実行できるようにし、AI とのやり取りの中でコードスニペットを安全に実行する方法を提供します。

機能

  • 安全なサンドボックス環境: ファイルシステム、ネットワーク、システムリソースにアクセスすることなく、コードを隔離された環境で実行します
  • 複数言語のサポート: Python、JavaScript (QuickJS)、C、C++、Ruby、PHP のコードを実行できます
  • MCP 準拠: AI アシスタントとのシームレスな統合のために Model Context Protocol を実装しています
  • シンプルな CLI ツール: 複雑なセットアップなしで、npx を使って簡単に実行できます
  • 標準入出力通信: クライアントとの通信に stdio を使用します

例

この例では、Claude に leetcode の問題を出しました。Claude は Python を書いてそれを解きました: Leetcode の問題。

この例では、Claude に 5000 個の素数を効率的に計算するように指示しました。Claude は Python を書いてそれを解きました。その後、C を使うように指示すると、C で解法を書き直しました(そして実行しました): 5000 個の素数。

この例では、Claude に短い数値リストの p75 を求めるように依頼しました。Claude はまず Numpy を使った Python を書いて解こうとしましたが(うまくいきませんでした)、その後方針を変えて標準ライブラリだけを使って書きました: p75 の計算。

仕組み

@runno/mcp サーバーは、AI アシスタントがさまざまなプログラミング言語のコードスニペットを実行するために使用できる run_code ツールを提供します。これは @runno/sandbox パッケージを利用しており、このパッケージは WebAssembly を使用してコード実行用の隔離された環境を作成します。コード実行の結果は STDIO を介して提供されます。

@runno/sandbox は、複数のプログラミング言語向けにあらかじめコンパイルされた WebAssembly バイナリを使用します。そして、WASI preview1 の @runno/wasi 実装を使用して、仮想ファイルシステムに対してこれらのバイナリを実行します。

Runno サンドボックスの仕組みについて詳しくは、私の記事 I made a Python package for sandboxing code で読むことができます。これはサンドボックスの古いバージョン向けのものですが、基本的には同じように動作します。

サポートされているランタイム

ランタイムプログラミング言語
pythonPython
quickjsJavaScript
clangC
clangppC++
rubyRuby
php-cgiPHP

ツールの使用方法

run_code ツールは、次のパラメータを受け付けます:

  • runtime: 使用するランタイム環境(サポートされているランタイムのいずれか)
  • code: 実行するコード文字列

このツールは次を返します:

  • 実行ステータス(完了、クラッシュ、強制終了、タイムアウトのいずれか)
  • 終了コード(正常に完了した実行の場合)
  • TTY 出力(stdout と stderr を結合したもの)
  • エラーの詳細(クラッシュした実行の場合)

制限事項

サンドボックス内で実行されるコードは:

  • ファイルシステムにアクセスできません
  • ネットワーク接続を確立できません
  • システムコマンドを実行できません
  • パッケージマネージャーからパッケージをインポートできません
  • 外部プログラムを実行できません
  • プログラミング言語のコア機能に制限されます

サーバーの実行

npx の使用

Runno MCP サーバーを実行する最も簡単な方法は、npx を使用することです:

npx @runno/mcp

これにより、サーバーが stdio 上で起動し、MCP 互換クライアントとの統合にすぐに利用できるようになります。

MCP クライアントとの統合

Runno MCP サーバーを MCP クライアントで使用するには、npx @runno/mcp を実行するように設定するだけです。

Claude の場合、MCP Config を編集できます:

{
  "mcpServers": {
    "runno": {
      "command": "/usr/local/bin/npx",
      "args": ["@runno/mcp"]
    }
  }
}

注: npx の正しいパスを取得するには which npx を実行してください。

セキュリティに関する考慮事項

  • Runno MCP サーバーは、WebAssembly を通じて実行されるコードを強力に分離します
  • ただし、リソース消費(CPU、メモリ)は引き続き監視する必要があります
  • 本番環境で使用する場合は、タイムアウトやリソース制限などの追加の制御を実装することを検討してください

コメント

MCP は初めてですか?

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

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