Company Secure Python MCP
Company Secure Python MCP
Ein Clean-Room-Design-Minimal-MCP-Server, der ausschließlich für die Nutzung mit Copilot Studio vorgesehen ist. Der Code des früheren m365-copilot-companion-mcp wird nicht wiederverwendet. Der Auditbericht im übergeordneten Verzeichnis wird als negative Anforderung behandelt, und die Funktionen werden auf 6 Tools reduziert.
Der aktuelle Status ist „sicherheitsüberprüfbare Referenzimplementierung". Bis zum Abschluss des realen Docker-Integrationstests mit dedizierter VM oder dediziertem rootless Docker, Entra ID, TLS-Terminierung, Schlüssel-ACL, internem Registry und DLP/SIEM nicht in Produktion einsetzen.
Bereitgestellte Funktionen
Tool | Funktion | Hauptbeschränkungen |
| Auflistung einer Ebene | Nur gemeinsame Eingabe, eigene Ausgabe, maximal 200 Einträge |
| UTF-8-Text lesen | Nur zulässige Erweiterungen, 1 MiB, maximal 200.000 Zeichen, keine nicht vertrauenswürdigen Daten |
| Neuen Text erstellen | Nur eigene Ausgabe, kein Überschreiben, nur zulässige Erweiterungen |
| Ausführungsanforderung fixieren | Code, Eingabe-Hash und Ausgabename fixieren, keine Ausführung |
| Status der eigenen Anforderung prüfen | Code und Genehmigungssignatur werden nicht zurückgegeben |
| Genehmigte Anforderung ausführen | Nur über separaten Pfad genehmigt, nur einmal, Docker, kein Netzwerk |
E-Mail, Kalender, Zwischenablage, Registry, ODBC, Webabruf, beliebige URLs, Shell, PowerShell, Paketinstallation, Selbstaktualisierung, Autostart, Browser, Tool Forge, Tunnel und allgemeine Tool-Weiterleitung sind nicht implementiert.
Vertrauensgrenze
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]Der Genehmigungsschlüssel wird nicht an den MCP-Dienst übergeben. Der MCP-Dienst besitzt nur den öffentlichen Genehmigungsschlüssel und den Prüfschlüssel. Python-Code wird nicht mit dem Host-Python ausgeführt; es gibt kein Fallback auf lokale Ausführung.
Zuerst zu lesende Dokumente
Prüfung in der Entwicklungsumgebung
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.exeIn der Produktion nicht direkt von PyPI im Internet installieren, sondern den genehmigten internen Mirror und den fixierten Hash aus requirements.lock verwenden. uv.lock fixiert auch die Entwicklungs- und Testumgebung. .env wird nicht gelesen. Die Konfiguration wird von der Dienstverwaltungsplattform an die Prozessumgebung übergeben.
Vertrag für Python-Jobs
Eingabe:
/work/input/manifest.jsonund/work/input/<fixierter Name>(nur lesbar)Ausgabe:
/work/output/<in python_prepare deklarierter Dateiname>Öffentlicher Name: Zur Kollisionsvermeidung als
<request-id>-<laufende Nummer>.<Erweiterung>neu in der eigenen Ausgabe erstellenAusgabeformat: UTF-8
.txt,.md,.csv,.jsonStandardausgabe und Standardfehler: Verwerfen, nicht an das Modell zurückgeben
Netzwerk: Keins
Ausführungszeit: Standard 60 Sekunden, maximal 300 Sekunden
Speicher: 256 MiB, CPU: 1, PID: 64
Die Import-Erlaubnisliste für AST ist eine Verteidigung in der Tiefe und gilt nicht als Python-Sandbox. Die tatsächliche Grenze bilden die Genehmigung über einen separaten Pfad und die OS-Isolation durch die dedizierte VM bzw. das rootless Docker.
Wenn bei einem Timeout der Erfolg von docker rm -f nicht bestätigt werden kann, wird der Runner in den Quarantänezustand versetzt, alle weiteren Python-Ausführungen werden vollständig abgelehnt und das Ausführungsverzeichnis wird gesichert. Der Betrieb wird erst wieder aufgenommen, wenn der Betreiber die dedizierte VM verworfen und neu aufgebaut hat.
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