mcpField
M
MCP Code Executor

MCP Code Executor

ローカル
github.com/bazinga012開発ツール21275 週間前に更新

MCP Code Executor について

MCP Code Executor は、LLM が指定された Python 環境(Conda、virtualenv、UV virtualenv)内でコードを実行できるようにする MCP サーバーです。環境にインストール済みのライブラリに依存する作業に向き、大きなスクリプトを段階的に作成することにも対応しています。

主な機能

  1. 01設定された Python 環境でのコード実行
  2. 02Conda、virtualenv、UV virtualenv への対応
  3. 03コードファイルの段階的な作成、追記、実行
  4. 04Python パッケージの確認とインストール
  5. 05実行時の環境設定の変更

活用シーン

  1. 01既存環境の numpy を使う LLM 生成コードの実行
  2. 02トークン上限を超える長いスクリプトの作成
  3. 03実行前に依存パッケージの有無を確認する

MCP 対応

本プロジェクトは MCP サーバーであり、コード実行、パッケージ管理、コードファイル操作のツールを MCP クライアントに提供します。

設定

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

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

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

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

詳細

MCP Code Executor

smithery badge

MCP Code Executor は、LLM が指定した Python 環境内で Python コードを実行できる MCP サーバーです。これにより、LLM は環境で定義されたライブラリや依存関係にアクセスしてコードを実行できます。また、トークン制限を超える可能性のある大きなコードブロックを処理するため、コードを段階的に生成する機能もサポートしています。

Code Executor MCP server

特長

  • LLM のプロンプトから Python コードを実行
  • トークン制限を克服するための段階的なコード生成をサポート
  • 指定した環境(Conda、virtualenv、または UV virtualenv)内でコードを実行
  • 必要に応じて依存関係をインストール
  • パッケージがすでにインストールされているか確認
  • 実行時に環境を動的に設定
  • コードの保存ディレクトリを設定可能

前提条件

  • Node.js がインストールされていること
  • 次のいずれか:
    • Conda がインストールされ、必要な Conda 環境が作成されていること
    • Python virtualenv
    • UV virtualenv

セットアップ

  1. このリポジトリをクローンします。
git clone https://github.com/bazinga012/mcp_code_executor.git
  1. プロジェクトディレクトリに移動します。
cd mcp_code_executor
  1. Node.js の依存関係をインストールします。
npm install
  1. プロジェクトをビルドします。
npm run build

設定

MCP Code Executor サーバーを設定するには、MCP サーバーの設定ファイルに以下を追加します。

Node.js を使用する場合
{
  "mcpServers": {
    "mcp-code-executor": {
      "command": "node",
      "args": [
        "/path/to/mcp_code_executor/build/index.js" 
      ],
      "env": {
        "CODE_STORAGE_DIR": "/path/to/code/storage",
        "ENV_TYPE": "conda",
        "CONDA_ENV_NAME": "your-conda-env"
      }
    }
  }
}
Docker を使用する場合
{
  "mcpServers": {
    "mcp-code-executor": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "mcp-code-executor"
      ]
    }
  }
}

注: Dockerfile は venv-uv 環境タイプでのみテストされています。他の環境タイプでは追加の設定が必要になる場合があります。

環境変数
必須変数
  • CODE_STORAGE_DIR:生成されたコードを保存するディレクトリ
環境タイプ(いずれかの設定を選択)
  • Conda の場合:

    • ENV_TYPE:conda に設定
    • CONDA_ENV_NAME:使用する Conda 環境の名前
  • 標準の Virtualenv の場合:

    • ENV_TYPE:venv に設定
    • VENV_PATH:virtualenv ディレクトリへのパス
  • UV Virtualenv の場合:

    • ENV_TYPE:venv-uv に設定
    • UV_VENV_PATH:UV virtualenv ディレクトリへのパス

利用可能なツール

MCP Code Executor は LLM に次のツールを提供します。

1. execute_code

設定済みの環境で Python コードを実行します。短いコードスニペットに最適です。

{
  "name": "execute_code",
  "arguments": {
    "code": "import numpy as np\nprint(np.random.rand(3,3))",
    "filename": "matrix_gen"
  }
}
2. install_dependencies

環境に Python パッケージをインストールします。

{
  "name": "install_dependencies",
  "arguments": {
    "packages": ["numpy", "pandas", "matplotlib"]
  }
}
3. check_installed_packages

環境にパッケージがすでにインストールされているか確認します。

{
  "name": "check_installed_packages",
  "arguments": {
    "packages": ["numpy", "pandas", "non_existent_package"]
  }
}
4. configure_environment

環境設定を動的に変更します。

{
  "name": "configure_environment",
  "arguments": {
    "type": "conda",
    "conda_name": "new_env_name"
  }
}
5. get_environment_config

現在の環境設定を取得します。

{
  "name": "get_environment_config",
  "arguments": {}
}
6. initialize_code_file

初期内容を含む新しい Python ファイルを作成します。トークン制限を超える可能性のある長いコードを書く場合は、最初の手順として使用します。

{
  "name": "initialize_code_file",
  "arguments": {
    "content": "def main():\n    print('Hello, world!')\n\nif __name__ == '__main__':\n    main()",
    "filename": "my_script"
  }
}
7. append_to_code_file

既存の Python コードファイルに内容を追加します。initialize_code_file で作成したファイルにコードを追加する場合に使用します。

{
  "name": "append_to_code_file",
  "arguments": {
    "file_path": "/path/to/code/storage/my_script_abc123.py",
    "content": "\ndef another_function():\n    print('This was appended to the file')\n"
  }
}
8. execute_code_file

既存の Python ファイルを実行します。initialize_code_file と append_to_code_file でコードを組み立てた後、最後の手順として使用します。

{
  "name": "execute_code_file",
  "arguments": {
    "file_path": "/path/to/code/storage/my_script_abc123.py"
  }
}
9. read_code_file

既存の Python コードファイルの内容を読み取ります。内容を追加したり実行したりする前に、ファイルの現在の状態を確認するために使用します。

{
  "name": "read_code_file",
  "arguments": {
    "file_path": "/path/to/code/storage/my_script_abc123.py"
  }
}

使用方法

設定が完了すると、MCP Code Executor は指定した CODE_STORAGE_DIR にファイルを生成し、設定済みの環境内で実行することで、LLM が Python コードを実行できるようにします。

LLM は、プロンプトでこの MCP サーバーを参照してコードを生成・実行できます。

大きなコードブロックの処理

LLM のトークン制限を超える可能性のある大きなコードブロックには、コードを段階的に生成する方法を使用してください。

  1. initialize_code_file を使用して、基本構造でファイルを初期化します
  2. 後続の呼び出しで append_to_code_file を使用してコードを追加します
  3. 必要に応じて read_code_file を使用して、ファイルの内容を確認します
  4. execute_code_file を使用して、コード全体を実行します

この方法により、LLM はトークン制限に達することなく、複雑な複数パートのコードを作成できます。

後方互換性

このパッケージは、以前のバージョンとの後方互換性を維持しています。Conda 環境のみを指定していた以前のバージョンのユーザーは、設定を変更せずに引き続き使用できます。

貢献

皆さんからの貢献を歓迎します!Issue を作成するか、プルリクエストを送信してください。

ライセンス

このプロジェクトは MIT License の下でライセンスされています。

コメント

MCP は初めてですか?

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

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