Company Secure Python MCP
Company Secure Python MCP
Это минимальный MCP-сервер, спроектированный по принципу «чистой комнаты» и предназначенный исключительно для использования из Copilot Studio. Код прежнего m365-copilot-companion-mcp не переиспользуется. Аудиторский отчёт в родительском каталоге рассматривается как негативное требование, а функциональность сокращена до 6 инструментов.
Текущий статус — «эталонная реализация, подлежащая проверке безопасности». Не разворачивайте в производственной среде, пока не настроены выделенная VM или выделенный rootless Docker, Entra ID, терминация TLS, ACL для ключей, внутренний реестр, DLP/SIEM и не завершены реальные интеграционные тесты Docker.
Предоставляемые функции
Инструмент | Функция | Основные ограничения |
| список одного уровня | только общий ввод, собственный ввод и собственный вывод; до 200 элементов |
| чтение текста в кодировке UTF-8 | разрешённые расширения, 1 MiB, до 200 000 символов, отображение недоверенных данных |
| создание нового текста | только собственный вывод, нельзя перезаписывать или удалять, только разрешённые расширения |
| фиксация запроса на выполнение | фиксирует код, хеш входных данных и имя выходного файла; не выполняет |
| проверка статуса собственного запроса | не возвращает ни тело кода, ни подпись утверждения |
| выполнение утверждённого запроса | подпись по отдельному каналу, однократно, 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.
This server cannot be deployed
Maintenance
Related MCP Connectors
Sandbox workspace tools: search, file read, DB queries, integrations. Returns synthetic data.
Securely search and manage workspace context files for AI agents and teams.
Runtime permission, approval, and audit layer for AI agent tool execution.
Manage files and folders directly from your workspace. Read and write files, list directories, cre…
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceProvides 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
- FlicenseNot gradedqualityDmaintenanceProvides 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.-
- AlicenseNot gradedqualityBmaintenanceProvides 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
- AlicenseNot gradedqualityAmaintenanceEnables LLMs to execute Python code securely in a sandboxed environment. Supports configurable restrictions like no network access and returns results including files.29 PyPIMIT