Skip to main content
Glama
bazinga012

MCP Code Executor

Исполнитель кода MCP

значок кузнеца

MCP Code Executor — это сервер MCP, который позволяет LLM выполнять код Python в указанной среде Python. Это позволяет LLM запускать код с доступом к библиотекам и зависимостям, определенным в среде. Он также поддерживает инкрементальную генерацию кода для обработки больших блоков кода, которые могут превышать ограничения токенов.

Функции

  • Выполнение кода Python из подсказок LLM

  • Поддержка инкрементальной генерации кода для преодоления ограничений токенов

  • Запустить код в указанной среде (Conda, virtualenv или UV virtualenv)

  • Устанавливайте зависимости при необходимости

  • Проверьте, установлены ли уже пакеты

  • Динамически настраивать среду во время выполнения

  • Настраиваемый каталог хранения кодов

Related MCP server: Python MCP Sandbox

Предпосылки

  • Node.js установлен

  • Один из следующих вариантов:

    • Conda установлена с созданием желаемой среды Conda

    • Виртуальное окружение Python

    • УФ виртуальное окружение

Настраивать

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

Использование Докера

{ "mcpServers": { "mcp-code-executor": { "command": "docker", "args": [ "run", "-i", "--rm", "mcp-code-executor" ] } } }

Примечание: Dockerfile был протестирован только с типом среды venv-uv. Другие типы среды могут потребовать дополнительной настройки.

Переменные среды

Требуемые переменные

  • CODE_STORAGE_DIR : Каталог, в котором будет сохранен сгенерированный код.

Тип среды (выберите одну настройку)

  • Для Конды:

    • 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 позволит LLM выполнять код Python, генерируя файл в указанном CODE_STORAGE_DIR и запуская его в настроенной среде.

LLM могут генерировать и выполнять код, ссылаясь на этот сервер MCP в своих подсказках.

Обработка больших блоков кода

Для более крупных блоков кода, которые могут превысить ограничения токенов LLM, используйте подход инкрементной генерации кода:

  1. Инициализируйте файл с базовой структурой, используя initialize_code_file

  2. Добавьте больше кода в последующие вызовы с помощью append_to_code_file

  3. При необходимости проверьте содержимое файла с помощью read_code_file

  4. Выполните весь код с помощью execute_code_file

Такой подход позволяет LLM писать сложный, многокомпонентный код, не сталкиваясь с ограничениями токенов.

Обратная совместимость

Этот пакет поддерживает обратную совместимость с более ранними версиями. Пользователи предыдущих версий, которые указали только среду Conda, продолжат работать без каких-либо изменений в своей конфигурации.

Внося вклад

Вклады приветствуются! Пожалуйста, откройте тему или отправьте запрос на извлечение.

Лицензия

Данный проект лицензирован по лицензии MIT.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/bazinga012/mcp_code_executor'

If you have feedback or need assistance with the MCP directory API, please join our Discord server