Mcp コードエグゼキュータ
概要
MCPコードエグゼキュータとは?
MCPコードエグゼキュータは、指定されたConda環境内でPythonコードを実行するために設計された専門のサーバーです。これは、大規模言語モデル(LLM)がPythonスクリプトをシームレスに実行できるようにするための橋渡しを行い、必要な依存関係と環境が正しく管理されることを保証します。このツールは、制御された環境でコードスニペットをテストおよび実行する必要がある開発者や研究者に特に便利です。
MCPコードエグゼキュータの特徴
- Conda環境管理:Pythonコードの実行に必要なすべての依存関係が満たされるように、Conda環境を自動的に設定および管理します。
- LLMとの統合:LLMがPythonコードを実行できるようにし、コーディングタスクにおけるAI機能の活用を容易にします。
- 公開リポジトリ:コードは公開リポジトリで利用可能で、コミュニティの貢献とコラボレーションを可能にします。
- ユーザーフレンドリーなインターフェース:使いやすさを考慮して設計されており、深い技術的知識がなくてもコードを簡単に実行できます。
- オープンソース:プロジェクトはオープンソースであり、開発者が貢献し、その機能を向上させることを奨励しています。
MCPコードエグゼキュータの使い方
-
リポジトリをクローンする:まず、GitHubからMCPコードエグゼキュータのリポジトリをクローンします。
git clone https://github.com/bazinga012/mcp_code_executor.git
-
依存関係をインストールする:クローンしたディレクトリに移動し、Condaを使用して必要な依存関係をインストールします。
cd mcp_code_executor conda env create -f environment.yml conda activate mcp_env
-
サーバーを実行する:MCPコードエグゼキュータサーバーを起動して、Pythonコードの実行を開始します。
python server.py
-
コードを実行する:提供されたAPIまたはインターフェースを使用して、実行するPythonコードを送信します。サーバーは指定されたConda環境内で実行を処理します。
-
結果を確認する:インターフェースまたはAPIレスポンスを通じて、実行されたコードの出力を取得します。
よくある質問
MCPコードエグゼキュータはどのプログラミング言語をサポートしていますか?
現在、MCPコードエグゼキュータはPython専用に設計されています。ただし、将来のアップデートでは他の言語のサポートが含まれる可能性があります。
MCPコードエグゼキュータは無料で使用できますか?
はい、MCPコードエグゼキュータはオープンソースであり、無料で使用できます。ソースコードはGitHubで見つけることができます。
MCPコードエグゼキュータプロジェクトにどのように貢献できますか?
リポジトリをフォークし、変更を加え、プルリクエストを提出することで貢献できます。コミュニティの貢献は歓迎され、奨励されています。
MCPコードエグゼキュータを実行するためのシステム要件は何ですか?
CondaとPythonをサポートするシステムが必要です。具体的な要件は、リポジトリ内のenvironment.yml
ファイルに記載されています。
MCPコードエグゼキュータを本番アプリケーションで使用できますか?
MCPコードエグゼキュータは主にテストと開発のために設計されていますが、適切な設定と最適化を行うことで本番使用に適応することができます。
詳細
MCP Code Executor
The MCP Code Executor is an MCP server that allows LLMs to execute Python code within a specified Python environment. This enables LLMs to run code with access to libraries and dependencies defined in the environment. It also supports incremental code generation for handling large code blocks that may exceed token limits.
<a href="https://glama.ai/mcp/servers/45ix8xode3"><img width="380" height="200" src="https://glama.ai/mcp/servers/45ix8xode3/badge" alt="Code Executor MCP server" /></a>
Features
- Execute Python code from LLM prompts
- Support for incremental code generation to overcome token limitations
- Run code within a specified environment (Conda, virtualenv, or UV virtualenv)
- Install dependencies when needed
- Check if packages are already installed
- Dynamically configure the environment at runtime
- Configurable code storage directory
Prerequisites
- Node.js installed
- One of the following:
- Conda installed with desired Conda environment created
- Python virtualenv
- UV virtualenv
Setup
- Clone this repository:
git clone https://github.com/bazinga012/mcp_code_executor.git
- Navigate to the project directory:
cd mcp_code_executor
- Install the Node.js dependencies:
npm install
- Build the project:
npm run build
Configuration
To configure the MCP Code Executor server, add the following to your MCP servers configuration file:
Using 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"
}
}
}
}
Using Docker
{
"mcpServers": {
"mcp-code-executor": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"mcp-code-executor"
]
}
}
}
Note: The Dockerfile has been tested with the venv-uv environment type only. Other environment types may require additional configuration.
Environment Variables
Required Variables
CODE_STORAGE_DIR
: Directory where the generated code will be stored
Environment Type (choose one setup)
-
For Conda:
ENV_TYPE
: Set toconda
CONDA_ENV_NAME
: Name of the Conda environment to use
-
For Standard Virtualenv:
ENV_TYPE
: Set tovenv
VENV_PATH
: Path to the virtualenv directory
-
For UV Virtualenv:
ENV_TYPE
: Set tovenv-uv
UV_VENV_PATH
: Path to the UV virtualenv directory
Available Tools
The MCP Code Executor provides the following tools to LLMs:
1. execute_code
Executes Python code in the configured environment. Best for short code snippets.
{
"name": "execute_code",
"arguments": {
"code": "import numpy as np\nprint(np.random.rand(3,3))",
"filename": "matrix_gen"
}
}
2. install_dependencies
Installs Python packages in the environment.
{
"name": "install_dependencies",
"arguments": {
"packages": ["numpy", "pandas", "matplotlib"]
}
}
3. check_installed_packages
Checks if packages are already installed in the environment.
{
"name": "check_installed_packages",
"arguments": {
"packages": ["numpy", "pandas", "non_existent_package"]
}
}
4. configure_environment
Dynamically changes the environment configuration.
{
"name": "configure_environment",
"arguments": {
"type": "conda",
"conda_name": "new_env_name"
}
}
5. get_environment_config
Gets the current environment configuration.
{
"name": "get_environment_config",
"arguments": {}
}
6. initialize_code_file
Creates a new Python file with initial content. Use this as the first step for longer code that may exceed token limits.
{
"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
Appends content to an existing Python code file. Use this to add more code to a file created with 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
Executes an existing Python file. Use this as the final step after building up code with initialize_code_file and append_to_code_file.
{
"name": "execute_code_file",
"arguments": {
"file_path": "/path/to/code/storage/my_script_abc123.py"
}
}
9. read_code_file
Reads the content of an existing Python code file. Use this to verify the current state of a file before appending more content or executing it.
{
"name": "read_code_file",
"arguments": {
"file_path": "/path/to/code/storage/my_script_abc123.py"
}
}
Usage
Once configured, the MCP Code Executor will allow LLMs to execute Python code by generating a file in the specified CODE_STORAGE_DIR
and running it within the configured environment.
LLMs can generate and execute code by referencing this MCP server in their prompts.
Handling Large Code Blocks
For larger code blocks that might exceed LLM token limits, use the incremental code generation approach:
- Initialize a file with the basic structure using
initialize_code_file
- Add more code in subsequent calls using
append_to_code_file
- Verify the file content if needed using
read_code_file
- Execute the complete code using
execute_code_file
This approach allows LLMs to write complex, multi-part code without running into token limitations.
Backward Compatibility
This package maintains backward compatibility with earlier versions. Users of previous versions who only specified a Conda environment will continue to work without any changes to their configuration.
Contributing
Contributions are welcome! Please open an issue or submit a pull request.
License
This project is licensed under the MIT License.
サーバー設定
{
"mcpServers": {
"mcp-code-executor": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/metorial/mcp-container--bazinga012--mcp_code_executor--mcp-code-executor",
"node ./build/index.js"
],
"env": {
"CODE_STORAGE_DIR": "code-storage-dir",
"CONDA_ENV_NAME": "conda-env-name"
}
}
}
}