Skip to main content
Glama
yokko001

Company Secure Python MCP

by yokko001

Company Secure Python MCP

Это минимальный MCP-сервер, спроектированный по принципу «чистой комнаты» и предназначенный исключительно для использования из Copilot Studio. Код прежнего m365-copilot-companion-mcp не переиспользуется. Аудиторский отчёт в родительском каталоге рассматривается как негативное требование, а функциональность сокращена до 6 инструментов.

Текущий статус — «эталонная реализация, подлежащая проверке безопасности». Не разворачивайте в производственной среде, пока не настроены выделенная VM или выделенный rootless Docker, Entra ID, терминация TLS, ACL для ключей, внутренний реестр, DLP/SIEM и не завершены реальные интеграционные тесты Docker.

Предоставляемые функции

Инструмент

Функция

Основные ограничения

workspace_list

список одного уровня

только общий ввод, собственный ввод и собственный вывод; до 200 элементов

workspace_read_text

чтение текста в кодировке UTF-8

разрешённые расширения, 1 MiB, до 200 000 символов, отображение недоверенных данных

workspace_write_text

создание нового текста

только собственный вывод, нельзя перезаписывать или удалять, только разрешённые расширения

python_prepare

фиксация запроса на выполнение

фиксирует код, хеш входных данных и имя выходного файла; не выполняет

python_status

проверка статуса собственного запроса

не возвращает ни тело кода, ни подпись утверждения

python_run

выполнение утверждённого запроса

подпись по отдельному каналу, однократно, Docker, без сети

Не реализованы: электронная почта, календарь, буфер обмена, реестр, ODBC, получение веб-контента, произвольные URL, Shell, PowerShell, установка пакетов, самообновление, автозапуск, управление браузером, Tool Forge, туннели и ретрансляция универсальных инструментов.

Related MCP server: AI Workspace MCP Server

Граница доверия

flowchart LR
    CS[Copilot Studio] -->|OAuth 2.0 delegated token / TLS| RP[Reverse proxy / WAF]
    RP -->|loopback or private hop| MCP[6-tool MCP service]
    MCP -->|JWKS only| ENTRA[Microsoft Entra ID]
    MCP -->|scoped access| WS[Per-user workspace]
    MCP -->|immutable request| Q[Control queue]
    REVIEW[Separate reviewer account] -->|Ed25519 signed approval| Q
    Q -->|one-time claim| RUN[Dedicated/rootless Docker runner]
    RUN -->|network=none / read-only / limits| JOB[Python container]
    JOB -->|declared UTF-8 outputs only| WS
    MCP -->|HMAC chain; no content| AUDIT[Audit log -> SIEM]

Закрытый ключ утверждения не передаётся MCP-сервису. У MCP-сервиса есть только открытый ключ утверждения и ключ аудита. Python-код не выполняется в хостовом Python, и запасного варианта локального выполнения не предусмотрено.

Документы для первого чтения

Проверка в среде разработки

python -m venv .venv
.\.venv\Scripts\python.exe -m pip install uv
.\.venv\Scripts\uv.exe sync --frozen --extra dev
.\scripts\Invoke-SecurityChecks.ps1 -PythonExecutable .\.venv\Scripts\python.exe

В производственной среде не устанавливайте напрямую из PyPI через интернет; используйте утверждённое внутреннее зеркало и фиксированные хеши из requirements.lock. uv.lock также фиксирует среды разработки и проверки. Файл .env не загружается. Настройки передаются в окружение процесса из платформы управления сервисами.

Контракт Python-заданий

  • Вход: /work/input/manifest.json и /work/input/<фиксированное имя> (только чтение)

  • Выход: /work/output/<имя файла, объявленное в python_prepare>

  • Публичное имя: во избежание конфликтов в собственном выводе создаётся новый файл с именем <request-id>-<порядковый номер>.<расширение>

  • Формат вывода: .txt, .md, .csv, .json в кодировке UTF-8

  • Стандартный вывод и стандартная ошибка: отбрасываются, модели не возвращаются

  • Сеть: отсутствует

  • Время выполнения: по умолчанию 60 секунд, максимум 300 секунд

  • Память: 256 MiB, CPU: 1, PID: 64

Список разрешённых импортов AST — это многоуровневая защита, а не песочница Python. Фактическая граница — это утверждение по отдельному каналу и изоляция ОС с помощью выделенной VM/rootless Docker.

Если при тайм-ауте не удаётся подтвердить успешность docker rm -f, раннер переводится в карантинное состояние, все последующие выполнения Python отклоняются, а каталог выполнения сохраняется в неизменном виде. Работа не возобновится, пока оператор не уничтожит и не пересоздаст выделенную VM.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides secure, sandboxed file system access for AI assistants to read, write, and manage project files with controlled command execution capabilities, all confined to a designated workspace directory.
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides a secure workspace for AI-driven file management and Python script execution designed to run on Vercel. It enables tools for full file operations and code execution within a sandboxed environment.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides a secure, constrained filesystem workspace for LLM agents to manage files, notes, and code artifacts via stdio or remote HTTP. It features granular access controls, including extension whitelisting, storage quotas, and immutable paths for safe automated file operations.
    BSD 3-Clause
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables LLMs to execute Python code securely in a sandboxed environment. Supports configurable restrictions like no network access and returns results including files.
    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/yokko001/m365-copilot-secure-python-mcp'

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