JanuaPort

Funktion · Bündelung

Heute live

Viele MCP-Server rein, kuratierte Sichten raus.

Wer heute mehrere MCP-Server betreibt, gibt jedem Client jeden Server einzeln — eigenes Token, eigene Regeln, kein gemeinsames Protokoll. JanuaPort nimmt die Quellen auf, legt eine Kontrollschicht darüber und gibt pro Team oder Aufgabe einen eigenen Endpunkt aus, der nur zeigt, was dort hingehört.

Die kurze Antwort

Fremde MCP-Server und eigene Connectoren docken an derselben Stelle an und laufen ab dort durch dieselbe Kette: eine Anmeldung, eine deny-by-default-Policy, ein Protokoll. Nach außen gibt JanuaPort benannte Endpunkte aus — je einer pro Team oder Integration, mit genau den Werkzeugen, die dort gebraucht werden. Was ein Aufrufer an so einem Endpunkt tatsächlich sieht, bleibt die Schnittmenge aus seinem Scope und dem Zuschnitt: ein Zuschnitt kann nur weniger zeigen, nie mehr freigeben.

So läuft das

Vier Quellen, ein Zugang, zwei zugeschnittene Sichten.

Links docken die Quellen an, in der Mitte liegt die Kontrollschicht, rechts entstehen die benannten Endpunkte. Im vierten Akt liegt ein schreibendes Werkzeug im Zuschnitt, fehlt aber im Scope des Aufrufers — und erscheint deshalb nicht.

JANUAPORT · BÜNDELUNGEIN ZUGANG · EINE POLICY · EIN PROTOKOLL
1 · QUELLEN2 · KONTROLLSCHICHT3 · ZUSCHNITT4 · SCOPE ∩ SICHT

Quellen

githubFREMDER MCP-SERVERLIVE
lexware-officeEIGENER CONNECTORLIVE
ticket-systemFREMDER MCP-SERVERBEISPIEL
lagerbestand-apiEIGENER CONNECTORBEISPIEL
JanuaPort-Gateway

eine Kontrollschicht über allen Quellen

AUTH · EINE IDENTITÄTPOLICY · DENY-BY-DEFAULTAUDIT · APPEND-ONLY

Sichten

/mcp/v/fibu-teamTEAM „BUCHHALTUNG" · 3 WERKZEUGE
lexware_office_list_voucherslexware_office_get_invoicelexware_office_list_contacts
/mcp/v/devTEAM „ENTWICKLUNG" · 3 WERKZEUGE
github_search_issuesgithub_list_pull_requestsgithub_create_issue
SICHTBAR = SCOPE ∩ SICHTeine Sicht schneidet zu — freigeben kann nur die Policy
Audit-Log · append-onlyLive
    LIVE — heute gebaut: der Anschluss fremder MCP-Server und der Lexware-Office-ConnectorBEISPIEL — exemplarische Quellengestrichelt = Sicht — Zuschnitt, keine eigene Berechtigungnicht im Scope → nicht in der Sicht (fail-closed)

    Das Problem

    Ein Server mehr heißt heute: ein Zugang mehr. Für jeden.

    MCP-Server vermehren sich schnell — für das Ticketsystem, für die Buchhaltung, für das Repository. Jeder für sich ist nützlich. Zusammen sind sie eine Verwaltungsaufgabe, die niemand bestellt hat.

    Ein Zugang je Server

    Jeder MCP-Server will eigenständig eingerichtet werden — eigene Adresse, eigenes Token, eigene Ablaufdaten. Fünf Server und dreißig Mitarbeiter ergeben im Zweifel hundertfünfzig Zugänge, die jemand anlegen, erneuern und wieder entziehen muss.

    Regeln, die nirgends zusammenlaufen

    Was ein Server erlaubt, entscheidet der Server. Wer wo was darf, steht in fünf verschiedenen Konfigurationen — und niemand kann die Frage „Was darf die KI heute?" in einem Satz beantworten.

    Kein gemeinsames Protokoll

    Jeder Server protokolliert anders, manche gar nicht. Für eine Prüfung müssen Sie die Spuren aus mehreren Systemen zusammensuchen — falls es sie gibt.

    Die Kontrollschicht

    Fremde MCP-Server, Ihre Regeln.

    Ein fremder MCP-Server wird in JanuaPort als benannte Integration eingetragen. Seine Werkzeuge erscheinen unter einem eigenen Namensraum — im KI-Werkzeug also als github_search_issues statt als namenloses search_issues — und laufen ab dann durch dieselbe Kette wie jeder eigene Connector: Auth, Policy, Vault, Audit. Für den KI-Client ist es ein Server statt fünf; für Sie ist es eine Stelle, an der die Regeln stehen.

    Eine Anmeldung

    Der Mitarbeiter meldet sich einmal an — per SSO oder Token. Dahinter liegen alle Quellen, gleich ob eigener Connector oder fremder MCP-Server. Ein zugeschnittener Endpunkt bekommt dabei keinen eigenen Anmeldeweg: es ist dieselbe Anmeldung wie am allgemeinen Zugang.

    Eine Policy

    Deny-by-default für jede Quelle. Freigegeben ist, was ausdrücklich freigegeben wurde; ein schreibendes Werkzeug verlangt eine eigene, werkzeuggenaue Freigabe — „gib dem Token GitHub" gibt nie versehentlich Schreibrechte mit.

    Ein Protokoll

    Jeder Aufruf landet im selben append-only-Protokoll — mit Identität, Werkzeug und Ergebnis. Eine Spur für alles, nicht fünf.

    Sichten

    Jedes Team bekommt seinen eigenen Zugang.

    Ein Team bekommt einen eigenen Endpunkt, der nur die Systeme zeigt, mit denen es arbeitet. Die Buchhaltung sieht Belege und Kontakte, die Entwicklung sieht Issues und Pull Requests — statt einer Werkzeugliste, in der beide erst suchen müssen. (Im Produkt heißen diese Zugänge Endpoint-Views.)

    Aus Team oder Integration

    Eine Sicht entsteht entweder aus einem Team — dann trägt sie dessen Werkzeug-Bündel — oder aus einer einzelnen Integration, die einen eigenen Endpunkt bekommen soll.

    Die Adresse gehört der Sicht, nicht dem Team-Namen

    Team-Name, interne Kennung und der Bezeichner in der Adresse sind drei getrennte Dinge. Die Adresse löst ausschließlich über den Bezeichner auf: das Team „Buchhaltung" kann unter /mcp/v/fibu-team liegen, und ein Umbenennen des Teams ändert die Adresse nicht.

    Umschalten ohne Neustart

    Sichten werden zur Laufzeit aufgelöst: an- und abschalten wirkt ohne Neustart des Gateways, neu verbundene Clients sehen den neuen Stand.

    Unbekannt heißt geschlossen

    Eine Adresse, hinter der keine Sicht steht, antwortet mit 404 — fail-closed. Es gibt keinen stillen Rückfall auf den allgemeinen Endpunkt.

    Und wenn eine Integration nur noch über ihren eigenen Endpunkt laufen soll?

    Dann nehmen Sie sie ausdrücklich aus dem Sammel-Endpunkt heraus. Das ist ein Schalter, den jemand bewusst umlegt — es gibt keine Automatik „eigener Endpunkt, also exklusiv" — und er lässt sich nur setzen, solange diese Integration ihren eigenen Endpunkt hat. Sonst wäre sie nirgends mehr erreichbar.

    Der Gewinn ist Kontext-Ökonomie: Die Werkzeugliste am allgemeinen Endpunkt bleibt kurz, jede KI-Sitzung startet mit weniger Kontext, und die Rückfrage „warum sehe ich diese Integration doppelt?" entfällt. Wer alle Integrationen so schaltet, landet beim Muster schlanker Default-Endpunkt. Das ist ein möglicher Betriebspfad, kein Soll-Zustand: Ein Client, der mehrere Integrationen zugleich braucht, ist über den allgemeinen Endpunkt einfacher bedient.

    Der Schalter ändert, wo eine Integration angeboten wird — nicht, wer sie benutzen darf. Scopes werden dadurch weder vergeben noch entzogen.

    Was eine Sicht ist — und was nicht

    Eine Sicht ist Zuschnitt, nie Sicherheitsgrenze.

    sichtbar = Scope ∩ Sicht

    Was ein Aufrufer an einem Endpunkt tatsächlich sieht, ist die Schnittmenge aus seinem Scope und dem Zuschnitt der Sicht. Eine Sicht kann deshalb nie mehr freigeben, als der Scope ohnehin erlaubt — sie kann nur weniger zeigen. Steht ein Werkzeug im Zuschnitt, fehlt aber im Scope, erscheint es nicht: fail-closed.

    Die Entscheidung, wer was darf, trifft ausschließlich die Policy — deny-by-default, unverändert an jedem Endpunkt. Wer einen zugeschnittenen Zugang als Schutzmauer verkauft, verspricht etwas, das er nicht hält: Der Zuschnitt ist Präsentation, die Berechtigung ist die Policy. Genau deshalb ist eine Sicht ungefährlich — und genau deshalb ersetzt sie keine Berechtigung.

    Ehrlich eingeordnet

    Was hier heute läuft — und was Beispiel ist.

    Der Anschluss fremder MCP-Server, die zugeschnittenen Endpunkte und der Exklusiv-Schalter sind gebaut und im Produkt enthalten; eine GitHub-Spezifikation liegt bei. Der Lexware-Office-Connector läuft gegen ein echtes Konto. Ticket-System und Lagerbestand-API stehen exemplarisch für Ihre eigenen Systeme und tragen in der Animation den BEISPIEL-Tag.

    Die Werkzeug-Namen im Bild sind keine Platzhalter: Sie stehen wörtlich in den Spezifikationen, die das Produkt mitbringt, und erscheinen im KI-Werkzeug genau so — mit dem Namen der Integration davor. Und der Zuschnitt bleibt Zuschnitt: Er ordnet, was jemand sieht, und entscheidet nie, was jemand darf.

    Häufige Fragen

    Was Betreiber uns dazu fragen.

    Müssen meine Mitarbeiter weiterhin jeden MCP-Server einzeln in ihrem KI-Werkzeug eintragen?

    Nein. Sie tragen eine Adresse ein. Dahinter liegen alle angebundenen Quellen — fremde MCP-Server ebenso wie eigene Connectoren — unter derselben Anmeldung, derselben Policy und demselben Protokoll. Für das KI-Werkzeug ist es ein Server statt fünf.

    Ändert sich die Adresse eines Team-Endpunkts, wenn wir das Team umbenennen?

    Nein. Team-Name, interne Kennung und der Bezeichner in der Adresse sind drei getrennte Dinge, und die Adresse löst ausschließlich über den Bezeichner auf. Umbenennen bleibt deshalb folgenlos. Wer die Adresse wirklich ändern will, ändert ausdrücklich den Bezeichner — danach ist die alte Adresse geschlossen, es gibt keine Weiterleitung.

    Kann ein zugeschnittener Zugang jemandem mehr geben, als er ohnehin dürfte?

    Nein. Sichtbar ist die Schnittmenge aus dem Scope des Aufrufers und dem Zuschnitt der Sicht. Eine Sicht kann deshalb nur weniger zeigen, nie mehr freigeben. Steht ein Werkzeug im Zuschnitt, fehlt aber im Scope, erscheint es nicht und lässt sich auch nicht aufrufen.

    Was passiert, wenn jemand eine Adresse errät, hinter der keine Sicht steht?

    Sie antwortet mit 404. Es gibt keinen stillen Rückfall auf den allgemeinen Endpunkt — ein Client, der plötzlich die volle Werkzeugliste bekäme statt der schmalen, wäre eine Verhaltensänderung, die niemand bemerkt.

    Bleibt der allgemeine Endpunkt unverändert, wenn wir Sichten einführen?

    Ja. Sichten kommen additiv dazu; wer die allgemeine Adresse nutzt, merkt von ihnen nichts. Nur wenn jemand eine einzelne Integration ausdrücklich exklusiv schaltet, wird sie dort nicht mehr angeboten — und das geht nur, solange diese Integration ihren eigenen Endpunkt hat.

    Selbst ausprobieren

    In 5 Minuten selbst testen.

    Ein docker compose up, Port 8484 — das 30-Tage-Trial mit vollem Funktionsumfang ist im Produkt eingebaut. Kein Account, kein Phone-Home.

    Quickstart öffnen