Mcp Code Executor

Created bybazinga012bazinga012

The MCP Code Executor is an MCP server that enables LLMs to run Python code in a designated Conda environment.

Overview

What is MCP Code Executor?

The ### MCP Code Executor is a specialized server designed for executing Python code within a specified Conda environment. It serves as a bridge for Large Language Models (LLMs) to run Python scripts seamlessly, ensuring that the necessary dependencies and environments are correctly managed. This tool is particularly useful for developers and researchers who need to test and run code snippets in a controlled environment.

Features of MCP Code Executor

  • Conda Environment Management: Automatically sets up and manages Conda environments to ensure that all dependencies are met for the Python code execution.
  • Integration with LLMs: Allows LLMs to execute Python code, making it easier to leverage AI capabilities in coding tasks.
  • Public Repository: The code is available in a public repository, allowing for community contributions and collaboration.
  • User-Friendly Interface: Designed with usability in mind, making it easy for users to execute code without deep technical knowledge.
  • Open Source: The project is open-source, encouraging developers to contribute and enhance its capabilities.

How to Use MCP Code Executor

  1. Clone the Repository: Start by cloning the MCP Code Executor repository from GitHub.

    git clone https://github.com/bazinga012/mcp_code_executor.git
    
  2. Install Dependencies: Navigate to the cloned directory and install the required dependencies using Conda.

    cd mcp_code_executor
    conda env create -f environment.yml
    conda activate mcp_env
    
  3. Run the Server: Start the MCP Code Executor server to begin executing Python code.

    python server.py
    
  4. Execute Code: Use the provided API or interface to send Python code for execution. The server will handle the execution within the specified Conda environment.

  5. Check Results: Retrieve the output of the executed code through the interface or API response.

Frequently Asked Questions

What programming languages does MCP Code Executor support?

Currently, the MCP Code Executor is designed specifically for Python. However, future updates may include support for other languages.

Is MCP Code Executor free to use?

Yes, the MCP Code Executor is open-source and free to use. You can find the source code on GitHub.

How can I contribute to the MCP Code Executor project?

You can contribute by forking the repository, making your changes, and submitting a pull request. Community contributions are welcomed and encouraged.

What are the system requirements for running MCP Code Executor?

You will need a system that supports Conda and Python. The specific requirements can be found in the environment.yml file in the repository.

Can I use MCP Code Executor for production applications?

While the MCP Code Executor is primarily designed for testing and development, it can be adapted for production use with proper configurations and optimizations.

Details

MCP Code Executor

smithery badge

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

  1. Clone this repository:
git clone https://github.com/bazinga012/mcp_code_executor.git
  1. Navigate to the project directory:
cd mcp_code_executor
  1. Install the Node.js dependencies:
npm install
  1. 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 to conda
    • CONDA_ENV_NAME: Name of the Conda environment to use
  • For Standard Virtualenv:

    • ENV_TYPE: Set to venv
    • VENV_PATH: Path to the virtualenv directory
  • For UV Virtualenv:

    • ENV_TYPE: Set to venv-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:

  1. Initialize a file with the basic structure using initialize_code_file
  2. Add more code in subsequent calls using append_to_code_file
  3. Verify the file content if needed using read_code_file
  4. 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.

Server Config

{
  "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"
      }
    }
  }
}

Project Info

Author
bazinga012
Created At
Jun 25, 2025
Star
153
Language
JavaScript
Tags
-

Mcp Code Executor Alternative

For some alternatives to Mcp Code Executor that you may need, we provide you with sites divided by category.

MCP Terminal is a terminal control server based on MCP (Model Context Protocol), specifically designed for integration with large language models (LLM) and AI assistants. It provides a standardized interface that allows AI to execute terminal commands and obtain output results.

A powerful Model Context Protocol (MCP) server that offers a comprehensive solution for public web access.

Enhanced MCP server for interactive user feedback and command execution in AI-assisted development, featuring dual interface support (Web UI and Desktop Application) with intelligent environment detection and cross-platform compatibility.

A complete Elasticsearch MCP server

This read-only MCP Server allows you to connect to Email data from Claude Desktop through CData JDBC Drivers. Free (beta) read/write servers are available at https://www.cdata.com/solutions/mcp

Official Firecrawl MCP Server - Adds powerful web scraping capabilities to Cursor, Claude, and any other LLM clients.

Time
@modelcontextprotocol

Time MCP Server is a Model Context Protocol server that provides time and timezone conversion capabilities. It enables LLMs to get current time information and perform timezone conversions using IANA timezone names, with automatic system timezone detection.

View More >>