Skip to main content
Glama

privateGPT MCP Server

by Fujitsu-AI

privateGPT MCP-Server

Inhaltsverzeichnis

privateGPT MCP-Server

Eine Model Context Protocol (MCP)-Serverimplementierung ermöglicht Ihnen die Nutzung von privateGPT als Agent für Ihren bevorzugten MCP-Client. Dies ermöglicht die nahtlose Integration der leistungsstarken Funktionen von privateGPT in jede MCP-kompatible Anwendung.

Was ist MCP?

MCP ist ein offenes Protokoll, das standardisiert, wie Anwendungen Kontext für LLMs bereitstellen. Stellen Sie sich MCP wie einen USB-C-Anschluss für KI-Anwendungen vor. So wie USB-C eine standardisierte Möglichkeit bietet, Ihre Geräte mit verschiedenen Peripheriegeräten und Zubehör zu verbinden, bietet MCP eine standardisierte Möglichkeit, KI-Modelle mit verschiedenen Datenquellen und Tools zu verbinden.

Warum MCP?

MCP unterstützt Sie beim Aufbau von Agenten und komplexen Workflows auf Basis von LLMs. LLMs müssen häufig mit Daten und Tools integriert werden. MCP bietet:

  • Eine wachsende Liste vorgefertigter Integrationen, in die Ihr LLM direkt eingebunden werden kann
  • Die Flexibilität, zwischen LLM-Anbietern und -Anbietern zu wechseln
  • Best Practices zum Sichern Ihrer Daten innerhalb Ihrer Infrastruktur

So funktioniert es

Im Kern folgt MCP einer Client-Server-Architektur, bei der eine Hostanwendung eine Verbindung zu mehreren Servern herstellen kann:

MCP Allgemeine Architektur

  • MCP-Hosts : Programme wie Anwendungen, Claude Desktop, IDEs oder KI-Tools, die über MCP auf Daten zugreifen möchten
  • MCP-Clients : Protokoll-Clients, die 1:1-Verbindungen mit Servern aufrechterhalten
  • MCP-Server : Leichtgewichtige Programme, die jeweils spezifische Fähigkeiten über das standardisierte Model Context Protocol bereitstellen
  • Lokale Datenquellen : Die Dateien, Datenbanken und Dienste Ihres Computers, auf die MCP-Server sicher zugreifen können
  • Remote Services : Externe Systeme, die über das Internet verfügbar sind (z. B. über APIs), mit denen MCP-Server eine Verbindung herstellen können

Überblick

Dieser Server stellt eine Brücke zwischen MCP-Clients und der privateGPT-API bereit und ermöglicht Ihnen:

  • Chatten Sie mit privateGPT über öffentliche und private Wissensdatenbanken
  • Wissensquellen erstellen und verwalten
  • Organisieren Sie Quellen in Gruppen
  • Kontrollieren Sie den Zugriff durch gruppenbasierte Berechtigungen

Warum Agenten

Ein Agent im Zusammenhang mit LLMs (Large Language Models) und MCP-Servern ist eine spezialisierte Softwarekomponente, die als Vermittler zwischen Sprachmodellen und Anwendungen fungiert. Er übernimmt Aufgaben wie die Bearbeitung von Anfragen, die Interaktion mit dem LLM über MCP, die Verwaltung von Workflows, die Gewährleistung von Sicherheit und Effizienz im Gesamtsystem und vieles mehr. Durch den Einsatz von Agenten können komplexe KI-basierte Anwendungen effektiv, sicher und skalierbar gestaltet werden. Der Code für Agenten in diesem Repository kann zur Implementierung in eigene Lösungen/Anwendungen verwendet werden.

Interaktion zwischen Agenten, LLMs und MCP-Servern

Das Zusammenspiel dieser Komponenten ermöglicht die Entwicklung leistungsstarker, skalierbarer und sicherer KI-Anwendungen. Ein vereinfachtes Szenario veranschaulicht dieses Zusammenspiel:

  1. Benutzereingabe: Ein Benutzer sendet eine Anfrage über eine auf dem MCP-Server gehostete Benutzeroberfläche.
  2. Agentenverarbeitung: Ein Agent auf dem MCP-Server empfängt die Anfrage, validiert sie und bereitet sie für das LLM vor.
  3. LLM-Interaktion: Der Agent leitet die Anfrage an das LLM weiter, das eine Antwort generiert.
  4. Antwortverarbeitung: Der Agent empfängt die Antwort vom LLM, verarbeitet sie bei Bedarf weiter (z. B. Formatierung, Integration mit anderen Datenquellen) und sendet sie an den Benutzer zurück.
  5. Sicherheit und Protokollierung: Während dieses Prozesses überwacht der Agent Interaktionen, stellt sicher, dass Sicherheitsrichtlinien eingehalten werden, und protokolliert relevante Informationen für eine spätere Analyse.

Vorteile der Verwendung von Agenten in diesem Kontext

  • Modularität: Agenten ermöglichen eine klare Trennung der Verantwortlichkeiten, wodurch das System einfacher zu warten und zu skalieren ist.
  • Sicherheit: Die zentrale Verwaltung des Zugriffs und die Überwachung der Aktivitäten tragen zur Minimierung von Sicherheitsrisiken bei.
  • Effizienz: Automatisierte Agenten können Aufgaben schneller und konsistenter ausführen als manuelle Prozesse.
  • Flexibilität: Agenten können einfach angepasst oder erweitert werden, um neue Funktionen oder Änderungen der Geschäftsanforderungen zu unterstützen.

Bedeutung der Passwortverschlüsselung

Bei jeder Anwendung, die vertrauliche Daten verarbeitet, ist Sicherheit oberstes Gebot. Dieser Server verwaltet zwei wichtige Anmeldeinformationen:

  1. Proxy-Header: Wird beispielsweise von HAProxy zur Authentifizierung und Verwaltung des Datenverkehrs verwendet.
  2. LLM-Zugriffskennwörter: Werden verwendet, um den Zugriff auf die großen Sprachmodelle zu sichern.

Die Speicherung dieser Passwörter im Klartext birgt erhebliche Sicherheitsrisiken, darunter unbefugten Zugriff und potenzielle Datenschutzverletzungen. Um diese Risiken zu minimieren, ist es wichtig, diese Passwörter zu verschlüsseln und nur ihren Geheimtext innerhalb des Systems zu verarbeiten.

Vorteile der ausschließlichen Verwendung von Geheimtext

  • Erhöhte Sicherheit: Selbst wenn ein Angreifer Zugriff auf die Konfigurationsdateien oder Umgebungsvariablen erhält, bleiben verschlüsselte Passwörter ohne die entsprechenden Entschlüsselungsschlüssel unverständlich.
  • Compliance: Verschlüsselung hilft bei der Einhaltung von Sicherheitsstandards und Vorschriften, die den Schutz vertraulicher Informationen vorschreiben.
  • Integrität: Stellt sicher, dass Passwörter nicht manipuliert werden können, und bewahrt so die Integrität der Authentifizierungsmechanismen.

Sicherheit

Die folgenden Sicherheitsfunktionen gewährleisten Datenschutz und sichere Kommunikation zwischen Clientanwendung und Server. Diese Funktionen umfassen Verschlüsselung, Entschlüsselung, Schlüsselverwaltung und Transportsicherheit.


1. Transport Layer Security (TLS)

  • Um die Kommunikation zwischen Client und Server abzusichern, kann TLS aktiviert werden. Alle zwischen Client und Server übertragenen Daten werden mit TLS (mindestens Version 1.2) verschlüsselt.

Warum sollte TLS zwischen Client und Server aktiviert werden?

a. Verschlüsselung der Kommunikation

  • TLS (Transport Layer Security) stellt sicher, dass alle zwischen Client und Server übertragenen Daten verschlüsselt sind. Dadurch werden sensible Informationen wie Passwörter, Kreditkartendaten und persönliche Daten vor Lauschangriffen (Man-in-the-Middle-Angriffen) geschützt.

b. Datenintegrität

  • TLS garantiert, dass die übertragenen Daten unverändert bleiben. Die Integritätsprüfung stellt sicher, dass die empfangenen Daten genau so sind, wie sie gesendet wurden.

c. Authentifizierung

  • TLS ermöglicht die sichere Authentifizierung des Servers (und optional auch des Clients) durch digitale Zertifikate. Dies verhindert, dass Nutzer Opfer von Phishing-Angriffen auf gefälschten Webseiten werden.

d. Schutz vor Man-in-the-Middle-Angriffen

  • TLS verschlüsselt die Verbindung und macht es Angreifern nahezu unmöglich, den Datenverkehr abzufangen oder zu manipulieren. Ohne TLS könnten Angreifer Datenpakete abfangen und verändern.

e. Einhaltung von Sicherheitsstandards und -vorschriften

  • Viele gesetzliche Anforderungen (z. B. DSGVO, PCI-DSS) schreiben eine sichere Datenübertragung vor. TLS ist ein grundlegender Bestandteil dieser Sicherheitsanforderungen.

f. Verhinderung von Downgrade- und Replay-Angriffen

  • TLS schützt vor Angriffen, die versuchen, eine Verbindung auf eine unsichere Version herunterzustufen (Downgrade-Angriffe) oder zuvor gültige Anfragen erneut abzuspielen (Replay-Angriffe).

Abschluss

Die Aktivierung von TLS zwischen Client und Server ist unerlässlich, um Datenschutz, Sicherheit und Kommunikationsintegrität zu gewährleisten. Es schützt nicht nur vertrauliche Informationen, sondern trägt auch zur Einhaltung von Compliance-Anforderungen bei und stärkt das Benutzervertrauen.


2. Passwortverschlüsselung

Passwörter können mit RSA (Rivest-Shamir-Adleman) Public-Key-Kryptografie verschlüsselt werden. Dadurch wird sichergestellt, dass sensible Daten, wie z. B. Benutzerpasswörter, niemals im Klartext übertragen werden.

Verfahren

  • Public-Key-Verschlüsselung mit einer Schlüssellänge von 2048 Bit .
  • Padding : RSA_PKCS1_PADDING zur Verbesserung der Sicherheit und Verhinderung bekannter Padding-Angriffe.

Verfahren

  1. Der Serveradministrator verschlüsselt das Passwort des Clients mit dem öffentlichen Schlüssel des Servers ( id_rsa_public.pem ), indem er node security/generate_encrypted_password.js ~/.ssh/id_rsa_public.pem ausführt und das verschlüsselte Passwort an den Client aushändigt.
  2. Alternativ: Der Client verschlüsselt das Passwort mit dem öffentlichen Schlüssel des Servers ( id_rsa_public.pem ) mithilfe der keygen -Funktion. Dazu muss die Funktion in der Serverkonfiguration ( privateGPT.env.json ) aktiviert werden. Wichtig: Die Verwendung dieser Funktion bedeutet auch die Datenübertragung über das Netzwerk. Stellen Sie daher sicher, dass der Datenverkehr sicher ist und nicht abgefangen werden kann.
  3. Schließlich wird das verschlüsselte Passwort an den Server gesendet, wo es mit dem privaten Schlüssel des Servers entschlüsselt wird.

Vorteile

  • Durch die asymmetrische Verschlüsselung wird sichergestellt, dass nur der Server das Passwort entschlüsseln kann.
  • Selbst wenn der Kommunikationskanal kompromittiert wird, bleiben verschlüsselte Daten sicher.

3. Schlüsselverwaltung

Zur Sicherung der Datenkommunikation und Verschlüsselungsprozesse werden die folgenden Grundsätze der Schlüsselverwaltung befolgt:

Öffentlicher Schlüssel

  • Sicher auf dem Server gespeichert ( id_rsa.pub ).
  • Wird nur zur Verschlüsselung verwendet und stellt bei Offenlegung kein Sicherheitsrisiko dar.

PEM-Schlüssel

  • Sicher auf dem Server gespeichert ( id_rsa_public.pem ).
  • Muss mithilfe des öffentlichen Zertifikats erstellt werden (siehe: Serverkonfiguration )

Privater Schlüssel

  • Sicher auf dem Server gespeichert ( id_rsa ).
  • Eingeschränkter Zugriff mit entsprechenden Dateiberechtigungen ( chmod 600 ).
  • Wird ausschließlich für Entschlüsselungsvorgänge verwendet.

Schlüsselrotation

  • Schlüssel können regelmäßig oder bei Erkennung eines Sicherheitsvorfalls rotiert werden. Wichtig: Bei einer Neuvergabe verlieren die Clients oder KI-Agenten sofort den Zugriff auf den MCP-Server und benötigen einen neuen RSA-Schlüssel (verschlüsseltes Passwort)!
  • Alte Schlüssel werden sicher ungültig gemacht.

4. Entschlüsselung auf dem Server

Die Entschlüsselung erfolgt ausschließlich auf dem Server mit dem privaten Schlüssel:

Verfahren

  1. Der Server erhält das verschlüsselte Passwort vom Client.
  2. Der private Schlüssel entschlüsselt das Passwort, um den ursprünglichen Klartext abzurufen.
  3. Das entschlüsselte Passwort wird intern verwendet (z. B. zur Authentifizierung) und niemals im Klartext gespeichert.

Sichere Handhabung

  • Entschlüsselte Passwörter bleiben nur für die Dauer der Verarbeitung im Speicher erhalten.
  • Durch sichere Speicherverwaltungsverfahren wird sichergestellt, dass vertrauliche Daten unmittelbar nach der Verwendung gelöscht werden.

Zertifikatsvalidierung

  • Um die Authentizität von Server und Client sicherzustellen, werden Zertifikate auf beiden Seiten validiert.
  • Optional kann zur Erhöhung der Sicherheit gegenseitiges TLS aktiviert werden.

5. Autorisierungstoken

Token werden verwendet, um Anfragen zu authentifizieren und sicherzustellen, dass nur autorisierte Benutzer auf das System zugreifen können:

Token-Verwaltung

  • Bei erfolgreicher Anmeldung werden Token generiert.
  • Sie sind kurzlebig und verfallen automatisch nach einer vordefinierten Zeit.
  • Token werden mit HMAC oder RSA signiert und sind somit manipulationssicher.

6. Einschränkung der Schlüsselgenerierung (Keygen)

Um Missbrauch des Systems zu verhindern, ist die Schlüsselgenerierung ( keygen ) eingeschränkt:

Konfiguration

  • Der Server verfügt über eine Konfigurationsoption ( ALLOW_KEYGEN ), um die Schlüsselgenerierung zu aktivieren oder zu deaktivieren.
  • Versuche, die Keygen-Funktion aufzurufen, wenn sie deaktiviert ist, führen zu einer Fehlermeldung.

Überwachungsprotokollierung

  • Alle Keygen-Vorgänge werden zu Prüf- und Überwachungszwecken protokolliert.

7. Zertifikatsbasierte Zugriffskontrolle (CBAC)

  • Da der Agent bei aktivierter Zertifikatsauthentifizierung kein Passwort benötigt und sich mit einem Schlüssel am Server anmeldet, ist er automatisch an diesen Server gebunden. Möchte er sich bei einem anderen MCP privateGPT-Server anmelden, wird dieser Anmeldeversuch abgelehnt, da der Schlüssel mit dem privaten Zertifikat des Servers abgeglichen wird.

Merkmale

  • Auf Funktionen wie keygen , store_user und edit_source können nur autorisierte Rollen zugreifen.
  • Unberechtigte Zugriffsversuche werden mit detaillierten Fehlermeldungen abgelehnt.

Konfiguration

  • Aktivierte oder deaktivierte Funktionen können in der Konfiguration des Servers angegeben werden ( Functions ).

8. Sichere Konfiguration

Die Serverkonfiguration enthält mehrere sicherheitsrelevante Optionen:

SSL_VALIDATE

  • Validiert SSL/TLS-Zertifikate, um eine sichere Kommunikation zu gewährleisten.
  • Kann je nach Umgebungsanforderungen (z. B. Test vs. Produktion) aktiviert oder deaktiviert werden.

PW_ENCRYPTION

  • Aktiviert oder deaktiviert die Kennwortverschlüsselung.
  • Gewährleistet die Kompatibilität in Umgebungen, in denen eine Verschlüsselung nicht möglich ist.

9. Protokollierung und Überwachung

Alle sicherheitsrelevanten Ereignisse werden zur Überwachung und Fehlerbehebung protokolliert:

Protokollierte Ereignisse

  • Fehlgeschlagene Anmeldeversuche.
  • Anfragen zur Schlüsselgenerierung.
  • Unbefugte Zugriffsversuche.
  • Verschlüsselungs- und Entschlüsselungsfehler.

Zusammenfassung

Die implementierten Sicherheitsfunktionen gewährleisten:

  • Vertraulichkeit sensibler Daten durch Verschlüsselung und sicheren Transport.
  • Integrität der Vorgänge durch robustes Schlüsselmanagement und Token-Validierung.
  • Rollenbasierte und konfigurierbare Zugriffskontrolle für Systemfunktionen.
  • Umfassende Überwachung zur proaktiven Erkennung und Reaktion auf Sicherheitsbedrohungen.

Zusammen sorgen diese Maßnahmen für eine sichere Umgebung für die Client-Server-Kommunikation und Datenverarbeitung.

Funktionsübersicht für privateGPT Server

Der privateGPT-Server bietet umfangreiche Funktionen für eine effiziente, flexible und sichere Kommunikation mit dem Model Context Protocol (MCP). Nachfolgend finden Sie eine Übersicht über die wichtigsten Funktionen des Servers.


Hauptmerkmale

1. Authentifizierung und Autorisierung

  • Anmeldefunktion : Authentifizieren Sie Benutzer mit E-Mail und Passwort, um Zugriffstoken zu generieren.
  • Abmeldefunktion : Machen Sie Benutzertoken sicher ungültig, um Sitzungen zu beenden.

2. Chat-Verwaltung

  • Chat starten : Beginnen Sie eine Unterhaltung mit dem Server, optional unter Verwendung öffentlicher Wissensdatenbanken oder bestimmter Gruppenkontexte.
  • Chat fortsetzen : Setzen Sie eine laufende Unterhaltung fort, indem Sie die Chat-ID und eine Folgenachricht angeben.
  • Chat-Informationen abrufen : Rufen Sie Metadaten und Nachrichten für einen bestimmten Chat anhand seiner ID ab.
  • Alle Chats löschen : Löscht die bisherigen Chatverläufe des ausführenden Benutzers (Chatverlauf).
  • Chat löschen : Löscht den aktuellen Chat des ausführenden Benutzers.

3. Konzernleitung

  • Gruppen auflisten : Zeigen Sie persönliche und zuweisbare Gruppen an, die dem Benutzer zur Verfügung stehen.
  • Gruppen erstellen : Fügen Sie zu Organisationszwecken neue Gruppen mit Namen und Beschreibungen hinzu.
  • Gruppen löschen : Entfernen Sie vorhandene Gruppen (sofern in der Konfiguration aktiviert).

4. Quellenverwaltung

  • Quellen erstellen : Fügen Sie neue Quellen mit Inhalten hinzu und weisen Sie sie bestimmten Gruppen zu.
  • Quellen bearbeiten : Aktualisieren Sie vorhandene Quellen mit neuen Inhalten oder Metadaten.
  • Quellen löschen : Entfernen Sie Quellen, die nicht mehr benötigt werden.
  • Quellen abrufen : Rufen Sie Informationen zu einer bestimmten Quelle anhand ihrer ID ab.
  • Quellen auflisten : Alle Quellen anzeigen, die einer bestimmten Gruppe zugewiesen sind.

5. Benutzerverwaltung

  • Benutzer erstellen : Registrieren Sie neue Benutzer mit anpassbaren Rollen, Gruppen und Einstellungen.
  • Benutzer bearbeiten : Aktualisieren Sie Benutzerinformationen, einschließlich Name, E-Mail, Passwort und Rollen.
  • Benutzer löschen : Entfernen Sie Benutzer aus dem System (sofern in der Konfiguration aktiviert).
  • Benutzer reaktivieren : Reaktivieren Sie einen Benutzer, der zuvor deaktiviert wurde.

6. Konfigurationsflexibilität

  • Funktionsaktivierung/-deaktivierung : Aktivieren oder deaktivieren Sie einzelne Serverfunktionen über die .env Konfigurationsdatei.
  • Sprachunterstützung : Passen Sie die Systemnachrichten des Servers an Ihre bevorzugte Sprache an (z. B. Englisch oder Deutsch).
  • SSL-Validierung : Aktivieren und deaktivieren Sie die SSL-Validierung für sichere Verbindungen zum Server.

7. Fehlerbehandlung und Protokollierung

  • Detaillierte Fehlermeldungen und Protokollierung für:
    • Ungültige Anfragen
    • Authentifizierungsfehler
    • API-Kommunikationsprobleme
  • Konfigurierbare Reaktionen beim Zugriff auf eine deaktivierte Funktion.

8. Sicherheitsfunktionen

  • Tokenbasierte Authentifizierung : Gewährleistet sicheren und kontrollierten Zugriff auf Serverfunktionen.
  • Eingeschränkter Gruppenzugriff : Option zum Beschränken des Zugriffs auf assignableGroups für mehr Datenschutz.

Beispiel-Anwendungsfälle

  1. Kundensupport : Verwenden Sie Chatfunktionen, um intelligente Gesprächsagenten zu erstellen.
  2. Wissensmanagement : Verwalten und Abrufen strukturierter Daten mit Quellen und Gruppen.
  3. Zusammenarbeit mehrerer Benutzer : Erstellen, bearbeiten und weisen Sie Benutzer für kollaborative Arbeitsabläufe Gruppen zu.
  4. Anpassbare Funktionalität : Aktivieren Sie nur die Funktionen, die Sie für Ihre Anwendung benötigen.

Anwendung

  1. Kopieren Sie die Datei privateGPT.env.json.example nach privateGPT.env.json , z. B. mit cp .\privateGPT.env.json.example .\privateGPT.env.json
  2. Konfigurieren Sie den Server, indem Sie die Datei privateGPT.env.json bearbeiten.
  3. Starten Sie den Server mit dem bereitgestellten Skript.
  4. Interagieren Sie mit dem Server über API-Aufrufe, um seine Funktionen zu nutzen.

Ausführliche Verwendungsanweisungen und Beispiele für jeden Endpunkt finden Sie in der API-Dokumentation .


Der privateGPT-Server ist ein leistungsstarkes Tool zur Verwaltung strukturierter Kommunikation und Daten in einer anpassbaren Umgebung. Passen Sie die Funktionen an Ihre Bedürfnisse an, um maximale Effizienz und Kontrolle zu gewährleisten.

Installation

  1. Klonen Sie das Repository:
git clone https://github.com/privateGPT-dev/MCP-Server-for-MAS-Developments.git cd MCP-Server-for-MAS-Developments

Nun müssen Sie wählen: Manuell oder automatisch.

Manually step-by-step Installation

  1. Installieren Sie npm , zum Beispiel:
sudo apt install npm
  1. Abhängigkeiten installieren
npm install
  1. Erstellen Sie das Projekt:
npm run build

or Automatic Installation

  1. Machen Sie InstallMPCServer.sh ausführbar (Linux):
sudo chmod +x InstallMPCServer.sh
  1. Führen Sie das Skript aus. Fertig. Achten Sie auf Fehlermeldungen und stellen Sie sicher, dass alles in Ordnung ist.
./InstallMPCServer.sh

Konfigurationsbeschreibung

Proxy-Konfiguration

Dieser Abschnitt enthält detaillierte Erklärungen zu den im System verwendeten Proxy_Config -Einstellungen.

Use Proxy

Wenn ein Proxy verwendet wird, müssen Sie einen Header zur Authentifizierung beim Proxy definieren.

SchlüsselBeschreibungBeispielwert
USE_PROXYLegt fest, ob die Anwendung routen solltrue
Anfragen über einen Proxy-Server.

Beispielkonfiguration eines HAProxy-Backends. Nur Anfragen mit 1234567890ABCDEFHIJ im Header werden akzeptiert:

backend mcpserver.mydomain.com acl valid_header req.hdr(X-Custom-Header) -m str "1234567890ABCDEFHIJ" http-request deny unless valid_header http-request del-header X-Custom-Header server stable 172.16.123.4:443 ssl verify none

Header Encryption

SchlüsselBeschreibungBeispielwert
HEDER_ENCRYPTEDGibt an, ob der benutzerdefinierte Proxy-Zugriffsheader verschlüsselt ist.true
  • "true" : Der Zugriffsheader ist verschlüsselt. Verwenden Sie das Verschlüsselungstool im Sicherheitsordner auf dem Server, um den Header zu verschlüsseln.
  • "false" : Der Zugriffsheader ist einfacher Text.

Access Header

Der benutzerdefinierte Header-Wert, der für die Proxy-Authentifizierung oder Zugriffskontrolle verwendet wird. Wenn HEADER_ENCRYPTED "true" ist, muss dieser Wert vor der Verwendung entschlüsselt werden.

SchlüsselBeschreibungBeispielwert
ACCESS_HEADERWird für die Proxy-Authentifizierung oder Zugriffskontrolle verwendet.123abc..

Hinweise

  • Stellen Sie sicher, dass ACCESS_HEADER ordnungsgemäß gesichert ist, wenn HEADER_ENCRYPTED auf "true" gesetzt ist.
  • Überprüfen Sie die Proxyservereinstellungen doppelt, um Verbindungsprobleme zu vermeiden.

Serverkonfiguration

Erstellen Sie zur sicheren Zertifikatsauthentifizierung eine .env Datei mit Ihren privateGPT-Anmeldeinformationen, z. B. privateGPT.env.json. In der .env Datei können die Einstellungen angepasst werden, um den Server und seine Funktionen anzupassen.

Generieren Sie die Zertifikate (wenn Sie keine SSH-Zertifikate haben, verwenden Sie ssh-keygen -t rsa ), es werden .pem-Dateien benötigt:

ssh-keygen -p -m PEM -f ~/.ssh/id_rsa ssh-keygen -f ~/.ssh/id_rsa.pub -e -m PEM > ~/.ssh/id_rsa_public.pem

Anschließend können Sie mit dem Encrypted Password Encryption Tool einen Chiffretext aus Passwörtern erstellen und diesen mit dem Encrypted Password Decryption Tool testen. Die Funktionsweise finden Sie im Abschnitt Security dieses Dokuments.

Als Nächstes sollten Sie die SSL/TLS-Zertifikate server.crt und server.key bereitstellen, um die verschlüsselte Kommunikation mit Clients und Agenten sicherzustellen. Wenn Sie selbstsignierte Zertifikate verwenden möchten, können Sie diese beispielsweise mit folgendem Befehl generieren:

openssl req -x509 -newkey rsa:2048 -nodes -keyout server.key -out server.crt -days 365 -subj "/CN=localhost"

Hinweis: Clients und Agenten können erkennen, dass der Server selbstsignierte Zertifikate verwendet, da diese im Vergleich zu offiziellen Zertifikaten, bei denen die Organisation und mehr überprüft werden, potenziell unsicher sind. Clients und Agenten können jedoch die Kommunikation mit diesen Zertifikaten mit den entsprechenden Parametern akzeptieren (siehe Beschreibung der jeweiligen Client- und Agentenparameter).


Nachfolgend finden Sie ein Beispiel für eine .env Konfigurationsdatei für den privateGPT-Server mit Beschreibungen der einzelnen Einstellungen. Passen Sie diese Werte an Ihre Umgebung und Anforderungen an.


Server Port

SchlüsselBeschreibungBeispielwert
HAFENDer Port, auf dem der MCP-Server läuft.5000

Language

Das System unterstützt standardmäßig: de , en , pt , es , nl und fr . Jede Sprache kann einfach durch Anpassung der privateGPT-messages.js hinzugefügt werden. Diese Datei sollte nach der Anpassung sowohl in /src als auch in /dist gespeichert werden.

SchlüsselBeschreibungBeispielwert
SPRACHEDie Sprache für die Systemmeldungen des Servers ( en oder de )."de"

SSL Validation

SchlüsselBeschreibungBeispielwert
SSL_VALIDATEVerwenden Sie "false" nur, wenn das Zertifikat des Servers vom Client nicht validiert werden kann."false"

Encryption

SchlüsselBeschreibungBeispielwert
PW_ENCRYPTIONWenn auf "true" gesetzt, akzeptiert der Server nur Passwörter im Geheimtext."false"
ÖFFENTLICHER SCHLÜSSELGibt den Dateisystempfad zur öffentlichen PEM-Datei des Servers an, die für RSA verwendet wird."~/.ssh/id_rsa_public.pem"
PRIVATER_SCHLÜSSELGibt den Dateisystempfad zur privaten Schlüsseldatei des Servers an, die für RSA verwendet wird."~/.ssh/id_rsa_public.pem"

SSL/TLS

SchlüsselBeschreibungBeispielwert
ENABLE_TLSWenn auf "true" gesetzt, ermöglicht der Server nur TLS-verschlüsselte Kommunikation mit Clients und Agenten."true"
SSL_KEY_PATHGibt den Dateisystempfad zur SSL/TLS-Schlüsseldatei des Servers an, die für SSL/TLS verwendet wird."~/.ssh/certs/server.key"
SSL_CERT_PATHGibt den Dateisystempfad zum für SSL/TLS verwendeten Serverzertifikat an."~/.ssh/certs/server.crt"

Restrictions

SchlüsselBeschreibungBeispielwert
EINGESCHRÄNKTE_GRUPPENDie Einstellung true verhindert den Clientzugriff auf assignableGroups .true
ENABLE_OPEN_AI_COMP_APIDie Einstellung true aktiviert den Kompatibilitätsmodus für die OpenAI-API.false

Logging

SchlüsselBeschreibungBeispielwert
WRITTEN_LOGFILELogdatei aktivieren. Bei „ false wird keine Logdatei logs/server.log geschrieben. Bei „true“ kann das Log über „http://:3000“ des Servers abgerufen werden.true
LOG_IPsProtokollieren Sie die IP-Adressen der Clients/Agenten. Wenn der Wert auf false gesetzt ist, werden diese Informationen durch \*\*\*\*\* ersetzt und können nicht wiederhergestellt werden.false
ANONYMOUS_MODEDeaktivieren Sie alles was mit Logging zu tun hat. Es werden keine Kommunikation, Fehler oder ähnliches geschrieben/gespeichert oder angezeigt.false\

Feature Activation/Deactivation

Steuern Sie die Verfügbarkeit einzelner Serverfunktionen. Setzen Sie den entsprechenden Wert auf true , um die Funktion zu aktivieren, oder auf false , um sie zu deaktivieren. Deaktivierte Funktionen geben eine Meldung zurück, dass sie nicht verfügbar sind.

SchlüsselBeschreibungBeispielwert
ENABLE_LOGINAktiviert oder deaktiviert die Login-Funktion.true
ENABLE_LOGOUTAktiviert oder deaktiviert die Abmeldefunktion.true
ENABLE_CHATAktiviert oder deaktiviert die Chat-Funktion.true
AKTIVIEREN_WEITER_CHATAktiviert oder deaktiviert die Fortsetzung eines Chats.true
AKTIVIEREN_GET_CHAT_INFOAktiviert oder deaktiviert das Abrufen von Chatinformationen.true
AKTIVIEREN_LÖSCHEN_ALLER_CHATSAktiviert oder deaktiviert das Abrufen von Chatinformationen.true
ENABLE_DELETE_CHATAktiviert oder deaktiviert das Abrufen von Chatinformationen.true
ENABLE_LIST_GROUPSAktiviert oder deaktiviert Listengruppen.true
AKTIVIEREN_STORE_GROUPAktiviert oder deaktiviert das Erstellen einer Gruppe.true
ENABLE_DELETE_GROUPAktiviert oder deaktiviert das Löschen einer Gruppe.false
ENABLE_CREATE_SOURCEAktiviert oder deaktiviert das Erstellen einer Quelle.true
ENABLE_EDIT_SOURCEAktiviert oder deaktiviert das Bearbeiten einer Quelle.true
ENABLE_DELETE_SOURCEAktiviert oder deaktiviert das Löschen einer Quelle.true
ENABLE_GET_SOURCEAktiviert oder deaktiviert das Abrufen einer Quelle.true
ENABLE_LIST_SOURCESAktiviert oder deaktiviert die Auflistung von Quellen.true
ENABLE_STORE_USERAktiviert oder deaktiviert das Erstellen eines Benutzers.true
ENABLE_EDIT_USERAktiviert oder deaktiviert das Bearbeiten eines Benutzers.false
ENABLE_DELETE_USERAktiviert oder deaktiviert das Löschen eines Benutzers.false
BENUTZER REAKTIVIEREN AKTIVIERENAktiviert oder deaktiviert die Reaktivierung eines Benutzers.false

Verwendung

  • Aktivieren einer Funktion : Setzen Sie den entsprechenden Wert in der .env Datei auf true .
  • Deaktivieren einer Funktion : Setzen Sie den entsprechenden Wert in der .env Datei auf false .
    • Der Server antwortet mit einer Meldung, dass die Funktion deaktiviert ist.

Beispiel für .env -Eintrag:

{ "privateGPT_Url": { "PRIVATE_GPT_API_URL": "https://<YOUR_privateGPT_URL>/api/v1", "API_URL": "https://<YOUR_privateGPT_URL>/api/v1" }, "Proxy_Config": { "USE_PROXY": "true", "HEADER_ENCRYPTED": "true", "ACCESS_HEADER": "Example: BptfJBeRGLbZas+..." }, "Server_Config": { "PORT": 5000, "LANGUAGE": "en", "SSL_VALIDATE": "false", "PW_ENCRYPTION": "true", "ALLOW_KEYGEN": "false", "PUBLIC_KEY": "~/.ssh/id_rsa_public.pem", "PRIVATE_KEY": "~/.ssh/id_rsa", "ENABLE_TLS": "true", "SSL_KEY_PATH": "~/.ssh/certs/server.key", "SSL_CERT_PATH": "~/.ssh/certs/server.crt" }, "Restrictions": { "RESTRICTED_GROUPS": false, "ENABLE_OPEN_AI_COMP_API": true }, "Logging": { "WRITTEN_LOGFILE": true, "LOG_IPs": true, "ANONYMOUS_MODE": false }, "Functions": { "ENABLE_LOGIN": true, "ENABLE_LOGOUT": true, "ENABLE_CHAT": true, "ENABLE_CONTINUE_CHAT": true, "ENABLE_GET_CHAT_INFO": true, "ENABLE_DELETE_ALL_CHATS": true, "ENABLE_DELETE_CHAT": true, "ENABLE_LIST_GROUPS": true, "ENABLE_STORE_GROUP": true, "ENABLE_DELETE_GROUP": true, "ENABLE_CREATE_SOURCE": true, "ENABLE_EDIT_SOURCE": true, "ENABLE_DELETE_SOURCE": true, "ENABLE_GET_SOURCE": true, "ENABLE_LIST_SOURCES": true, "ENABLE_STORE_USER": true, "ENABLE_EDIT_USER": false, "ENABLE_DELETE_USER": false, "ENABLE_REACTIVATE_USER": true } }

Verwendung

Starten Sie den Server:

node dist/index.js

Der Server wird gestartet und wartet auf stdio auf MCP-Befehle.

Fehlerbehandlung

Der Server verarbeitet verschiedene Fehlerszenarien:

  • Authentifizierungsfehler
  • Netzwerkfehler
  • Ungültige Anfragen
  • API-Fehler
  • Ratenbegrenzung
  • Timeout-Fehler

Fehler werden den entsprechenden MCP-Fehlercodes zugeordnet und enthalten detaillierte Meldungen zur Fehlerbehebung.

Verfügbare Tools

Verschlüsseltes Passwort generieren

Generieren Sie ein Passwort für den Client und/oder den Proxy_Config->Password-Eintrag des Servers:

node security/generate_encrypted_password.js ~/.ssh/id_rsa_public.pem

Überprüfen Sie das generierte verschlüsselte Passwort

Um die Verschlüsselung zu überprüfen, verwenden Sie:

node security/generate_decrypted_password.js ~/.ssh/id_rsa

Weitere Informationen finden Sie in den Abschnitten Encrypted Password Generation Tool und Encrypted Password Decryption Tool weiter unten.


Tool zur verschlüsselten Passwortgenerierung

Überblick

Das Tool zur verschlüsselten Passwortgenerierung ist ein Node.js-Skript zur sicheren Verschlüsselung von Benutzerpasswörtern mithilfe der RSA-Public-Key-Kryptografie. Dieses Tool gewährleistet durch robuste Verschlüsselungsmechanismen den Schutz vertraulicher Passwortdaten während der Übertragung und Speicherung. Es ist eine wesentliche Komponente für Systeme, die eine sichere Passwortverwaltung und -übertragung zwischen Clients und Servern erfordern.

Merkmale

  • Sichere Verschlüsselung: Verwendet RSA (Rivest–Shamir–Adleman) Public-Key-Kryptografie zum Verschlüsseln vertraulicher Passwörter.
  • Benutzerfreundliche Oberfläche: Fordert Benutzer auf, ihre Passwörter sicher über die Befehlszeile einzugeben.
  • Fehlerbehandlung: Bietet umfassende Fehlermeldungen bei fehlenden Schlüsseln oder Verschlüsselungsproblemen.
  • Flexible Integration: Kann in größere Systeme integriert werden, die eine sichere Kennwortverwaltung und Verschlüsselung erfordern.

Wie es funktioniert

  1. Laden des öffentlichen Schlüssels: Das Skript lädt den öffentlichen RSA-Schlüssel aus einem angegebenen Dateipfad, der als Befehlszeilenargument bereitgestellt wird.
  2. Passworteingabe: Der Benutzer wird aufgefordert, sein Passwort sicher über die Befehlszeile einzugeben.
  3. Verschlüsselungsprozess: Mithilfe des geladenen öffentlichen Schlüssels und RSA_PKCS1_PADDING verschlüsselt das Skript das eingegebene Passwort.
  4. Ausgabe: Das verschlüsselte Passwort wird im Base64-Format angezeigt und ist bereit für die sichere Übertragung oder Speicherung.

Voraussetzungen

  • Node.js: Stellen Sie sicher, dass Node.js auf Ihrem System installiert ist. Sie können es von der offiziellen Node.js-Website herunterladen.
  • Öffentlicher RSA-Schlüssel: Sie müssen Zugriff auf den öffentlichen RSA-Schlüssel ( id_rsa_public.pem ) haben, der zum Verschlüsseln des Kennworts verwendet wird.

Installation

  • Abhängigkeiten installieren: Das Skript verwendet integrierte Node.js-Module, sodass keine zusätzlichen Abhängigkeiten erforderlich sind. Stellen Sie jedoch sicher, dass Ihre Node.js-Version ES6-Module unterstützt.
    rm -rf node_modules package-lock.json npm cache clean --force npm install

Verwendung

  1. Bereiten Sie Ihren öffentlichen RSA-Schlüssel vor: Stellen Sie sicher, dass Ihr öffentlicher RSA-Schlüssel ( id_rsa_public.pem ) sicher auf Ihrem MCP-Server gespeichert ist.
  2. Führen Sie das Skript aus. Sie finden es im security des MCP-Servers: Führen Sie das Skript mit Node.js aus und geben Sie den Pfad zu Ihrem öffentlichen Schlüssel als Befehlszeilenargument an.
    node encrypt_password.js /path/to/your/id_rsa_public.pem
    Beispiel:
    node security/encrypt_password.js ~/.ssh/id_rsa_public.pem
  3. Geben Sie Ihr Passwort ein: Geben Sie Ihr Passwort sicher ein, wenn Sie dazu aufgefordert werden.
    Please enter your password: ********
  4. Verschlüsseltes Passwort anzeigen: Das Skript gibt das verschlüsselte Passwort im Base64-Format aus.
    Encrypted Password: <Your_Encrypted_Password>

Tool zur Entschlüsselung verschlüsselter Passwörter

Überblick

Das Tool zur verschlüsselten Passwortentschlüsselung ist ein Node.js-Skript zum sicheren Entschlüsseln verschlüsselter Passwörter mithilfe der RSA-Private-Key-Kryptografie. Dieses Tool gewährleistet durch robuste Ver- und Entschlüsselungsmechanismen den Schutz vertraulicher Passwortdaten während der Übertragung und Speicherung. Verwenden Sie den privaten Schlüssel, um ein verschlüsseltes Passwort zu verifizieren oder zu entschlüsseln. Dies trägt dazu bei, die korrekte Verschlüsselung sicherzustellen.

Merkmale

  • Sichere Entschlüsselung: Verwendet RSA (Rivest–Shamir–Adleman)-Private-Key-Kryptografie zum Entschlüsseln vertraulicher Kennwortdaten.
  • Fehlerbehandlung: Bietet umfassende Fehlermeldungen bei fehlenden Schlüsseln oder Entschlüsselungsproblemen.
  • Benutzerfreundliche Oberfläche: Fordert Benutzer auf, verschlüsselte Passwörter sicher über die Befehlszeile einzugeben.
  • Flexible Integration: Kann in größere Systeme integriert werden, die eine sichere Kennwortverwaltung erfordern.

Wie es funktioniert

  1. Laden des privaten Schlüssels: Das Skript lädt den privaten RSA-Schlüssel aus einem angegebenen Dateipfad, der als Befehlszeilenargument bereitgestellt wird.
  2. Verschlüsselte Passworteingabe: Der Benutzer wird aufgefordert, ein verschlüsseltes Passwort im Base64-Format einzugeben.
  3. Entschlüsselungsprozess: Mithilfe des geladenen privaten Schlüssels und RSA_PKCS1_PADDING entschlüsselt das Skript das verschlüsselte Passwort.
  4. Ausgabe: Das entschlüsselte Klartextkennwort wird in der Konsole angezeigt.

Voraussetzungen

  • Node.js: Stellen Sie sicher, dass Node.js auf Ihrem System installiert ist. Sie können es von der offiziellen Node.js-Website herunterladen.
  • Privater RSA-Schlüssel: Sie müssen Zugriff auf den privaten RSA-Schlüssel ( id_rsa ) auf Ihrem MCP-Server haben, der zum Entschlüsseln des Kennworts verwendet wird.

Installation

  • Abhängigkeiten installieren: Das Skript verwendet integrierte Node.js-Module, sodass keine zusätzlichen Abhängigkeiten erforderlich sind. Stellen Sie jedoch sicher, dass Ihre Node.js-Version ES6-Module unterstützt.

Verwendung

  1. Bereiten Sie Ihren privaten RSA-Schlüssel vor: Stellen Sie sicher, dass Ihr privater RSA-Schlüssel ( id_rsa ) sicher auf Ihrem Computer gespeichert ist.
  2. Führen Sie das Skript aus. Sie finden es im security des MCP-Servers: :** Führen Sie das Skript mit Node.js aus und geben Sie den Pfad zu Ihrem privaten Schlüssel als Befehlszeilenargument an.
    node decrypt_password.js /path/to/your/id_rsa
    Beispiel:
    node decrypt_password.js ~/.ssh/id_rsa
  3. Geben Sie das verschlüsselte Passwort ein: Geben Sie bei der entsprechenden Aufforderung das verschlüsselte Passwort im Base64-Format ein.
    Please enter the encrypted password: <Your_Encrypted_Password>
  4. Entschlüsseltes Passwort anzeigen: Das Skript gibt das entschlüsselte Klartextpasswort aus.
    Decrypted Password: your_plaintext_password

Dadurch wird das verschlüsselte Passwort entschlüsselt und der ursprüngliche Wert angezeigt.

Hinweise

  • Stellen Sie sicher, dass die Dateien ~/.ssh/id_rsa_public.pem (öffentlicher Schlüssel) und ~/.ssh/id_rsa (privater Schlüssel) vorhanden sind und über die richtigen Berechtigungen verfügen.
  • Das Verschlüsselungstool ist auf den öffentlichen Schlüssel angewiesen, während das Entschlüsselungstool den privaten Schlüssel benötigt.

Projektstruktur

MCP-Server für MAS-Entwicklungen – Vollständige Projektübersicht

Dieses Repository enthält den MCP-Server und alle zugehörigen Client-Implementierungen .
Nachfolgend finden Sie eine vollständige Verzeichnisstruktur , wie sie ab dem Projektstamm aufgeführt ist, einschließlich:

  • clients (C# .Net, C++, Go, Java, JavaScript, PHP, Python),
  • dist ,
  • docs ,
  • logs ,
  • security ,
  • src ,
  • tests ,
  • ver und alle Unterordner/Dateien.

Notiz:
Dies ist ein direkter Verzeichniseintrag mit minimalen Kommentaren.


Projektstruktur (vollständige Auflistung)

MCP-Server-for-MAS-Developments/ ├── dist │ └── public │ ├── index.html │ └── privateGPT-mcp-logo.png ├── docs │ └── images │ ├── alternative mcp client.png │ ├── mcp-general-architecture.png │ └── privateGPT-MCP.png ├── logs ├── security │ ├── generate_decrypted_password.js │ └── generate_encrypted_password.js ├── src │ ├── index.js │ ├── logger.js │ ├── privateGPT-messages.js │ ├── public │ │ ├── index.html │ │ └── privateGPT-mcp-logo.png │ ├── services │ │ └── privateGPT-service.ts │ └── types │ └── api.ts ├── tests ├── ver │ ├── index_np.js │ └── index_proxy_np.js └── clients ├── C# .Net │ ├── 1.0 mcp_login │ │ ├── bin │ │ │ └── Debug │ │ │ └── net9.0 │ │ ├── obj │ │ │ └── Debug │ │ │ └── net9.0 │ │ ├── mcp_login.csproj │ │ └── Program.cs │ ├── 1.1 mcp_logout │ │ ├── bin │ │ │ └── Debug │ │ │ └── net9.0 │ │ ├── obj │ │ │ └── Debug │ │ │ └── net9.0 │ │ ├── mcp_logout.csproj │ │ └── Program.cs │ ├── 2.0 mcp_chat │ │ ├── bin │ │ │ └── Debug │ │ │ └── net9.0 │ │ ├── obj │ │ │ └── Debug │ │ │ └── net9.0 │ │ ├── mcp_chat.csproj │ │ └── Program.cs │ ├── 2.1 mcp_continue_chat │ ├── 2.2 mcp_get_chat_info │ ├── 3.0 mcp_create_source │ ├── 3.1 mcp_get_source │ ├── 3.2 mcp_list_sources │ ├── 3.3 mcp_edit_source │ ├── 3.4 mcp_delete_source │ ├── 4.0 mcp_list_groups │ ├── 4.1 mcp_store_group │ ├── 4.2 mcp_delete_group │ ├── 5.0 mcp_store_user │ ├── 5.1 mcp_edit_user │ ├── 5.2 mcp_delete_user │ ├── Code Archiv │ │ ├── mcp_chat.cs │ │ ├── mcp_continue_chat.cs │ │ ├── ... │ │ └── mcp_store_user.cs │ └── README.md (14,924 bytes) ├── C++ │ ├── 1.0 mcp_login │ │ ├── MCPLoginClient.cpp │ │ └── MCPLoginClient.exe │ ├── 1.1 mcp_logout │ ├── 2.0 mcp_chat │ ├── 2.1 mcp_continue_chat │ ├── 2.2 mcp_get_chat_info │ ├── 3.0 mcp_create_source │ ├── 3.1 mcp_get_source │ ├── 3.2 mcp_list_sources │ ├── 3.3 mcp_edit_source │ ├── 3.4 mcp_delete_source │ ├── 4.0 mcp_list_groups │ ├── 4.1 mcp_store_group │ ├── 4.2 mcp_delete_group │ ├── 5.0 mcp_store_user │ ├── 5.1 mcp_edit_user │ ├── 5.2 mcp_delete_user │ ├── 9.0 mcp_keygen │ └── README.md (15,109 bytes) ├── Go │ ├── 1.0 mcp_login │ │ ├── MCPLoginClient.go │ │ └── MCPLoginClient.exe │ ├── 1.1 mcp_logout │ ├── 2.0 mcp_chat │ ├── 2.1 mcp_continue_chat │ ├── 2.2 mcp_get_chat_info │ ├── 3.0 mcp_create_source │ ├── 3.1 mcp_get_source │ ├── 3.2 mcp_list_sources │ ├── 3.3 mcp_edit_source │ ├── 3.4 mcp_delete_source │ ├── 4.0 mcp_list_groups │ ├── 4.1 mcp_store_group │ ├── 4.2 mcp_delete_group │ ├── 5.0 mcp_store_user │ ├── 5.1 mcp_edit_user │ ├── 5.2 mcp_delete_user │ ├── 9.0 mcp_keygen │ └── README.md (14,903 bytes) ├── Java │ ├── 1.0 mcp_login │ │ ├── json-20241224.jar │ │ ├── MCPLoginClient.class │ │ └── MCPLoginClient.java │ ├── 1.1 mcp_logout │ ├── 2.0 mcp_chat │ ├── 2.1 mcp_continue_chat │ ├── 2.2 mcp_get_chat_info │ ├── 3.0 mcp_create_source │ ├── 3.1 mcp_get_source │ ├── 3.2 mcp_list_sources │ ├── 3.3 mcp_edit_source │ ├── 3.4 mcp_delete_source │ ├── 4.0 mcp_list_groups │ ├── 4.1 mcp_store_group │ ├── 4.2 mcp_delete_group │ ├── 5.0 mcp_store_user │ ├── 5.1 mcp_edit_user │ ├── 5.2 mcp_delete_user │ └── README.md (16,208 bytes) ├── JavaScript │ ├── 1.0 mcp_login │ │ └── MCPLoginClient.js │ ├── 1.1 mcp_logout │ ├── 2.0 mcp_chat │ ├── 2.1 mcp_continue_chat │ ├── 2.2 mcp_get_chat_info │ ├── 3.0 mcp_create_source │ ├── 3.1 mcp_get_source │ ├── 3.2 mcp_list_sources │ ├── 3.3 mcp_edit_source │ ├── 3.4 mcp_delete_source │ ├── 4.0 mcp_list_groups │ ├── 4.1 mcp_store_group │ ├── 4.2 mcp_delete_group │ ├── 5.0 mcp_store_user │ ├── 5.1 mcp_edit_user │ ├── 5.2 mcp_delete_user │ ├── 9.0 mcp_keygen │ └── README.md (15,692 bytes) ├── PHP │ ├── 1.0 mcp_login │ │ └── MCPLoginClient.php │ ├── 1.1 mcp_logout │ ├── 2.0 mcp_chat │ ├── 2.1 mcp_continue_chat │ ├── 2.2 mcp_get_chat_info │ ├── 3.0 mcp_create_source │ ├── 3.1 mcp_get_source │ ├── 3.2 mcp_list_sources │ ├── 3.3 mcp_edit_source │ ├── 3.4 mcp_delete_source │ ├── 4.0 mcp_list_groups │ ├── 4.1 mcp_store_group │ ├── 4.2 mcp_delete_group │ ├── 5.0 mcp_store_user │ ├── 5.1 mcp_edit_user │ ├── 5.2 mcp_delete_user │ ├── 9.0 mcp_keygen │ └── README.md (15,636 bytes) └── Python ├── 1.0 mcp_login │ └── MCPLoginClient.py ├── 1.1 mcp_logout ├── 2.0 mcp_chat ├── 2.1 mcp_continue_chat ├── 2.2 mcp_get_chat_info ├── 3.0 mcp_create_source ├── 3.1 mcp_get_source ├── 3.2 mcp_list_sources ├── 3.3 mcp_edit_source ├── 3.4 mcp_delete_source ├── 4.0 mcp_list_groups ├── 4.1 mcp_store_group ├── 4.2 mcp_delete_group ├── 5.0 mcp_store_user ├── 5.1 mcp_edit_user ├── 5.2 mcp_delete_user ├── 9.0 mcp_keygen └── README.md (15,630 bytes)

Lizenz

Dieses Projekt ist unter der MIT-Lizenz lizenziert – Einzelheiten finden Sie in der Datei LICENSE.

-
security - not tested
A
license - permissive license
-
quality - not tested

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Eine Serverimplementierung, die eine sichere Kommunikation zwischen MCP-Clients und privateGPT ermöglicht, sodass Benutzer über Wissensdatenbanken mit privateGPT chatten und Quellen, Gruppen und Benutzer über ein standardisiertes Model Context Protocol verwalten können.

  1. privateGPT MCP-Server
    1. Was ist MCP?
    2. Überblick
  2. Warum Agenten
    1. Interaktion zwischen Agenten, LLMs und MCP-Servern
    2. Vorteile der Verwendung von Agenten in diesem Kontext
  3. Sicherheit
    1. Transport Layer Security (TLS)
    2. Warum sollte TLS zwischen Client und Server aktiviert werden?
    3. Abschluss
    4. Passwortverschlüsselung
    5. Schlüsselverwaltung
    6. Entschlüsselung auf dem Server
    7. Autorisierungstoken
    8. Einschränkung der Schlüsselgenerierung (Keygen)
    9. Zertifikatsbasierte Zugriffskontrolle (CBAC)
    10. Sichere Konfiguration
    11. Protokollierung und Überwachung
    12. Zusammenfassung
  4. Funktionsübersicht für privateGPT Server
    1. Hauptmerkmale
    2. Installation
    3. Konfigurationsbeschreibung
    4. Hinweise
    5. Server Port
    6. Language
    7. SSL Validation
    8. Encryption
    9. SSL/TLS
    10. Restrictions
    11. Logging
    12. Feature Activation/Deactivation
    13. Verwendung
    14. Verwendung
    15. Fehlerbehandlung
    16. Verfügbare Tools
  5. Tool zur verschlüsselten Passwortgenerierung
    1. Überblick
    2. Merkmale
    3. Wie es funktioniert
    4. Voraussetzungen
    5. Installation
    6. Verwendung
  6. Tool zur Entschlüsselung verschlüsselter Passwörter
    1. Überblick
    2. Merkmale
    3. Wie es funktioniert
    4. Voraussetzungen
    5. Installation
    6. Verwendung
    7. Projektstruktur
    8. Lizenz

Related MCP Servers

  • -
    security
    F
    license
    -
    quality
    Facilitates integration of PrivateGPT with MCP-compatible applications, enabling chat functionalities and secure management of knowledge sources and user access.
    Last updated -
    • Linux
  • -
    security
    A
    license
    -
    quality
    A server for the Machine Chat Protocol (MCP) that provides a YAML-based configuration system for LLM applications, allowing users to define resources, tools, and prompts without writing code.
    Last updated -
    5
    Python
    MIT License
    • Linux
    • Apple
  • -
    security
    -
    license
    -
    quality
    A specialized server that helps users create new Model Context Protocol (MCP) servers by providing tools and templates for scaffolding projects with various capabilities.
    Last updated -
    1
    TypeScript
  • A
    security
    F
    license
    A
    quality
    An implementation of the Model Context Protocol (MCP) server using Server-Sent Events (SSE) for real-time communication, providing tools for calculations and dynamic resource templates.
    Last updated -
    1
    JavaScript

View all related MCP servers

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/Fujitsu-AI/MCP-Server-for-MAS-Developments'

If you have feedback or need assistance with the MCP directory API, please join our Discord server