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, туннели и ретрансляция универсальных инструментов.
Граница доверия
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 installed
Maintenance
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
Securely search and manage workspace context files for AI agents and teams.
Runtime permission, approval, and audit layer for AI agent tool execution.
Cross-agent artifact workspace with provenance across Claude Code, Codex, Cursor, LangGraph.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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