byteforge-aegis-mcp
byteforge-aegis-mcp
Ein schreibgeschützter MCP-Server über die ByteForge Aegis Admin-API, bereitgestellt als Container hinter nginx mit Gatekeeper-Authentifizierung.
Warum
Agenten, die an Aegis und an Tenant-Integrationen arbeiten, müssen immer wieder die Frage beantworten: „Was ist tatsächlich in der Produktion konfiguriert?“ – Ist die Webhook-URL gesetzt, ist allow_self_registration aktiv, welche Sites existieren, existiert dieser Benutzer. Vor diesem Server wurde diese Frage mit handgestrickten Curls beantwortet, die den Master-API-Key trugen, oder gar nicht – eine Tenant-Provisioning-Anfrage wurde einst teilweise aufgrund einer Behauptung abgezeichnet, weil die Site-Konfiguration nicht ausgelesen werden konnte.
Related MCP server: readonly-mcp-akamai
Schreibgeschützt durch Konstruktion
Jedes Tool wird auf einen GET-Request abgebildet. Der Aegis-Client, den dieser Server umschließt, stellt auch create_site, update_site, delete_site, delete_user und ähnliche bereit – keines davon ist hier erreichbar, und keines sollte hinzugefügt werden. Der Wert dieses Servers liegt darin, dass er einem Agenten übergeben werden kann, ohne dass die Möglichkeit besteht, den Produktionszustand zu ändern. Ein mutierender Server gehört, falls jemals gewünscht, in eine separate und separat autorisierte Bereitstellung.
Werkzeuge
Tool | Was es beantwortet |
| Welcher Build live ist ( |
| Jeder Tenant auf der Instanz, mit Secrets |
| Die vollständige Konfiguration einer Site, nach UUID oder Domain |
| Alle Benutzer einer Site |
| Ein Benutzer auf einer Site, per E-Mail (Groß-/Kleinschreibung wird ignoriert) |
aegis_get_site und aegis_list_users akzeptieren sowohl eine Domain als auch eine UUID. Die Admin-API adressiert Sites nur per UUID (utils/identifiers.py resolve_site lehnt Nicht-UUIDs ab), daher wird eine Domain zuerst über den öffentlichen by-domain-Lookup aufgelöst – Aufrufer kennen fast immer die Domain, nicht die UUID.
Secrets in Antworten
Site-Reads enthalten tenant_api_key, webhook_secret und mailgun_api_key in voller Länge. Dies war eine bewusste Entscheidung von @jmazzahacks anstelle der Rückgabe von Präsenz-Booleans. Die Konsequenz: Alles, was hier gelesen wird, landet im Transkript des aufrufenden Agenten, daher sollten Antworten nicht in Tickets oder andere geteilte Oberflächen eingefügt werden. AEGIS_MASTER_API_KEY erstreckt sich über jede Site auf der Instanz.
Konfiguration
Variable | Zweck |
| Aegis-Instanz zum Lesen (z.B. |
| Master-Key. Erstreckt sich über jede Site |
|
|
| Bind-Adresse. FastMCP liest diese spezifisch aus |
Siehe example.env.
Lokale Entwicklung
uv venv --python 3.13 .venv
source .venv/bin/activate
uv pip install -r requirements.txt
AEGIS_API_URL=https://aegis.example.com \
AEGIS_MASTER_API_KEY=... \
MCP_TRANSPORT=stdio \
python aegis_mcp_server.pyDie venv befindet sich in .venv/ und nicht im Repository-Stammverzeichnis, wie es die benachbarten Aegis-Repos tun – uv venv weigert sich, eine in einem nicht leeren Verzeichnis zu erstellen.
Um es über das Netzwerk so zu testen, wie es bereitgestellt wird:
MCP_TRANSPORT=streamable-http FASTMCP_HOST=127.0.0.1 FASTMCP_PORT=8931 \
AEGIS_API_URL=... AEGIS_MASTER_API_KEY=... python aegis_mcp_server.py &
curl -s -X POST http://127.0.0.1:8931/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'Ein tools/list, das ohne vorheriges initialize erfolgreich ist, ist das Signal, dass der zustandslose Modus aktiv ist.
Build und Veröffentlichung
./build-publish.sh # or --no-cacheVeröffentlicht ghcr.io/jmazzahacks/byteforge-aegis-mcp:<n> und :latest, und erhöht dann VERSION. VERSION ist in .gitignore und wird vollständig vom Skript verwaltet – niemals manuell bearbeiten.
Im Gegensatz zu byteforge-aegis baut dieses Image VERSION nicht in sich selbst ein, daher ist die Reihenfolge „Schreiben nach Build“ des Skripts hier korrekt. Falls jemals ein Version-Endpunkt hinzugefügt wird, muss das Schreiben vor docker build verschoben werden, sonst meldet jedes Image eine Version zurück.
Bereitstellung
Läuft hinter einem mcp.<domain>-Dach-Vhost mit Gatekeeper auth_request-Authentifizierung. Siehe nginx-mcp-aegis.conf für den Location-Block. Der Container gibt keinen Host-Port frei – nginx erreicht ihn über den Containernamen im gemeinsamen Docker-Netzwerk, was wichtig ist, da der Master-Key eine direkte Exposition inakzeptabel macht.
Transport
streamable-http mit stateless_http=True. Nicht SSE: Wenn der langlebige SSE-GET von Claude Code stirbt, stellt er die Verbindung ohne erneutes Ausführen von initialize wieder her, der Server sieht zuerst tools/call, und der resultierende -32602 blockiert den Client, bis ein manuelles /mcp-Reload erfolgt. Zustandsloses streamable-http hat keinen Sitzungszustand zu verlieren, daher ist dieser Fehler strukturell unmöglich.
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 Servers
AlicenseAqualityCmaintenanceRead-only MCP server that allows AI assistants to query and monitor KVM Fleet devices, audit logs, and console sessions through the official REST API.5141MIT- AlicenseAqualityDmaintenanceRead-only MCP server for Akamai CDN that enables searching properties, browsing EdgeWorker code, querying DNS zones, inspecting network lists, and translating error codes via natural language.161MIT
- Alicense-qualityCmaintenanceA read-only MCP server that provides tools to list and read devices, MDM servers, blueprints, configurations, apps, packages, users, and other resources from Apple Business Manager and Apple School Manager.MIT
- Alicense-qualityCmaintenanceRead-only MCP server for Odoo.sh exposing builds, environments, logs, and system status via Web API and SSH without any write capabilities.MIT
Related MCP Connectors
Read-only Dant3 MCP for public rooms, agents, jobs and provisional machine onboarding.
Hosted MCP server for agent governance: MCP config audits, injection scans, scope-policy checks.
Read-only MCP server for ClassQuill, a tutoring-business-management platform.
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/jmazzahacks/byteforge-aegis-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server