Picard MCP Server
Überblick
Picard MCP ist ein umfassendes Speicherverwaltungssystem, das auf dem Model Context Protocol (MCP) -Standard basiert. Es besteht aus zwei Hauptkomponenten: einem MCP-Server, der sichere Speicherspeicher- und -abrufdienste bereitstellt, und einer Django-Client-Anwendung, die die Integration mit dem MCP-Server demonstriert. Das System ermöglicht Benutzern das Speichern, Abrufen und Verwalten ihrer Speicher unter Kontrolle der Zugriffsberechtigungen und ermöglicht semantische Suche und KI-gestützte Abfragen basierend auf gespeicherten Speicherdaten.
MCP-Konformität
Diese Implementierung folgt dem Model Context Protocol-Standard, der LLM-Anwendungen eine standardisierte Interaktion mit dem Server ermöglicht. Der MCP-Server stellt Folgendes bereit:
- Ressourcen : Nur-Lese-Endpunkte, die Daten an LLMs (Speicherinhalte) liefern
- Tools : Funktionale Endpunkte, die Aktionen ausführen (Speichererstellung, Aktualisierungen, Abfragen)
- Authentifizierung : OAuth 2.0-Implementierung für sicheren Zugriff auf geschützte Ressourcen
Schlüsselkomponenten
- MCP-Server : Eine FastAPI-basierte Implementierung des Model Context Protocol, die Folgendes bietet:
- OAuth 2.0-Authentifizierung und -Autorisierung mit PKCE-Unterstützung
- Speicher mit Vektoreinbettungen
- Berechtigungsbasierte Speicherzugriffskontrolle
- LLM-Integration für speicherbasierte Abfragen
- Django-Client : Eine Webanwendung, die die Integration mit dem MCP-Server demonstriert:
- Benutzerregistrierung und Authentifizierung
- OAuth 2.0-Clientimplementierung
- Benutzeroberfläche zum Erstellen, Abrufen und Verwalten von Speicher
- Persona-basierte Abfrageschnittstelle
Systemarchitektur
Gesamtarchitektur
Das Picard MCP-System folgt einer Client-Server-Architektur mit den folgenden Komponenten:
- MCP-Server : Zentraler Backend-Dienst, der Speicherspeicherung, -abruf und KI-Operationen übernimmt
- Erstellt mit FastAPI (FastMCP) für hohe Leistung und asynchrone Unterstützung
- Verwendet PostgreSQL mit pgvector-Erweiterung für Vektorspeicherung und semantische Suche
- Implementiert Datenmodelle für Benutzer, Erinnerungen (mit Vektoreinbettungen), OAuth-Clients und Token
- Verwendet SQLAlchemy ORM mit Alembic-Migrationen für die Datenbankverwaltung
- Implementiert OAuth 2.0 für sichere Authentifizierung und Autorisierung
- Integriert mit OpenAI API für Speichereinbettungen (text-embedding-3-small)
- Verwendet LangChain für LLM-Operationen, sofern verfügbar
- Bietet sowohl zustandsbehaftete als auch zustandslose Betriebsmodi
- Unterstützt streambaren HTTP-Transport für bessere Skalierbarkeit
- Django-Client : Webanwendung, die die Integration mit dem MCP-Server demonstriert
- Bietet Benutzerregistrierung, Authentifizierung und Profilverwaltung
- Implementiert OAuth 2.0-Client für die sichere Kommunikation mit dem MCP-Server
- Bietet eine benutzerfreundliche Oberfläche für Speicherverwaltung und Abfragen
- Verwendet eine eigene PostgreSQL-Datenbank, getrennt vom MCP-Server
- Docker-Infrastruktur : Containerisierte Bereitstellung für einfache Einrichtung und Skalierung
- Separate Container für MCP-Server (Port 8001), Django-Client (Port 8000) und PostgreSQL-Datenbanken
- Konfiguriertes Netzwerk für sichere Kommunikation zwischen Containern
- Volume-Mounting für dauerhafte Datenspeicherung
- Kompatibel sowohl mit der lokalen Docker-Bereitstellung als auch mit der Render-Cloud-Bereitstellung
Authentifizierungsansätze
Das System bietet zwei Hauptauthentifizierungsansätze:
1. Direktverbindung mit User Context Token Flow (empfohlen)
Dieser vereinfachte Ansatz ermöglicht es Benutzern, sich nur einmal beim Django-Client zu authentifizieren, wodurch die Notwendigkeit einer separaten MCP-Serverauthentifizierung vermieden wird:
- Kundenregistrierung :
- Der Django-Client registriert sich beim MCP-Server über den Endpunkt
/api/admin/clients/register
- Die Registrierung erfordert eine Administratorauthentifizierung und umfasst den Clientnamen, Umleitungs-URIs und die angeforderten Bereiche.
- Der MCP-Server gibt eine UUID-basierte Client-ID und ein kryptografisch sicheres Client-Geheimnis aus
- Client-Anmeldeinformationen sollten sicher gespeichert und niemals im clientseitigen Code offengelegt werden
- Der Django-Client registriert sich beim MCP-Server über den Endpunkt
- Ablauf der Benutzerauthentifizierung :
- Der Benutzer authentifiziert sich nur mit dem Django-Client
- Wenn der Benutzer eine Verbindung zum MCP-Server initiiert, sendet der Django-Client eine serverseitige Anfrage an den Endpunkt
/api/user-tokens/user-token
des MCP. - Die Anfrage umfasst:
- Client-Anmeldeinformationen (Client-ID und Client-Geheimnis)
- Benutzerinformationen (Benutzername und E-Mail)
- Option zum Erstellen eines Benutzers, falls nicht vorhanden
- Der MCP-Server überprüft die Client-Anmeldeinformationen und findet oder erstellt einen entsprechenden Benutzer
- Der MCP-Server stellt Zugriffs- und Aktualisierungstoken für den Benutzer aus
- Der Django-Client speichert diese Token sicher und verwendet sie für API-Anfragen
- API-Zugriff :
- Der Client schließt das Zugriffstoken in den Autorisierungsheader (
Authorization: Bearer {token}
) für alle API-Anfragen ein - Der MCP-Server validiert die Token-Signatur, das Ablaufdatum und die Zielgruppenansprüche
- Der MCP-Server erzwingt bereichsbasierte Berechtigungen für jeden Endpunkt
- Wenn das Zugriffstoken abläuft, verwendet der Client das Aktualisierungstoken, um ein neues zu erhalten
- Der Client schließt das Zugriffstoken in den Autorisierungsheader (
- Sicherheitsfunktionen :
- Nur vertrauliche Clients können diese Methode verwenden, wodurch Server-zu-Server-Sicherheit gewährleistet wird
- Die Client-Anmeldeinformationen werden bei jeder Token-Anforderung überprüft
- Token werden nach der Verwendung auf die schwarze Liste gesetzt, um Replay-Angriffe zu verhindern
- Rotation der Aktualisierungstoken: Jede Verwendung generiert ein neues Aktualisierungstoken und macht das alte ungültig
2. Standard-OAuth 2.0-Autorisierungscode-Flow mit PKCE (Legacy)
Das System unterstützt außerdem den standardmäßigen OAuth 2.0-Autorisierungscode-Flow mit PKCE für erhöhte Sicherheit gemäß den Standards RFC 6749 und RFC 7636. Dieser Ansatz erfordert die Authentifizierung von Benutzern sowohl beim Client als auch beim MCP-Server:
- Autorisierungsablauf :
- Der Benutzer initiiert die Anmeldung über den Django-Client
- Der Client generiert einen kryptografisch sicheren
state
zum CSRF-Schutz - Der Client generiert einen zufälligen PKCE-
code_verifier
und leitetcode_challenge
mithilfe von SHA-256 ab. - Der Client leitet zum
/authorize
-Endpunkt des MCP-Servers weiter mit:response_type=code
client_id
(UUID-Format)redirect_uri
scope
(durch Leerzeichen getrennte Liste, z. B.memories:read memories:write
)state
(für CSRF-Schutz)- PKCE-Parameter (
code_challenge
undcode_challenge_method=S256
)
- Der MCP-Server authentifiziert den Benutzer (sofern nicht bereits authentifiziert)
- Der MCP-Server validiert alle Parameter und leitet mit einem kurzlebigen Autorisierungscode zurück zum Client.
- Token-Austausch :
- Der Client überprüft, ob der zurückgegebene
state
mit dem in der Autorisierungsanfrage gesendeten übereinstimmt. - Der Client tauscht den Autorisierungscode gegen Zugriffs- und Aktualisierungstoken über
/token
-Endpunkt aus - Der MCP-Server stellt ein JWT-Zugriffstoken, ein Aktualisierungstoken, eine Ablaufzeit und gewährte Bereiche aus
- Der Client überprüft, ob der zurückgegebene
- API-Zugriff :
- Wie beim Direct Connect-Ansatz
Datenbankmodelle
Der MCP-Server verwendet SQLAlchemy ORM mit den folgenden Schlüsselmodellen:
- Benutzermodell :
- Speichert Benutzerinformationen mit E-Mail, Benutzername und gehashtem Passwort
- Enthält boolesche Flags für den Kontostatus (is_active, is_superuser)
- Durch eine Eins-zu-viele-Beziehung mit Erinnerungen verknüpft
- Speichermodell mit Vektorspeicher :
- Verwendet die pgvector-Erweiterung zum Speichern und Abfragen von Vektoreinbettungen (1536 Dimensionen)
- Unterstützt Textinhalte mit optionaler Verschlüsselung
- Beinhaltet Berechtigungskontrollen (privat/öffentlich)
- Unterstützt Ablaufdaten für zeitlich begrenzte Erinnerungen
- Mit Benutzern durch Fremdschlüsselbeziehung verknüpft
- OAuth-Modelle :
- OAuthClient : Speichert Client-Anwendungsdetails, einschließlich Client-ID, Client-Geheimnis, Umleitungs-URIs und autorisierte Bereiche
- AuthorizationCode : Verwaltet temporäre Autorisierungscodes mit PKCE-Unterstützung
- Token : Speichert Zugriffs- und Aktualisierungstoken mit Ablaufverfolgung
Das System verwendet Alembic für Datenbankmigrationen und gewährleistet so Schemaversionierung und einfache Updates.
Speicherverwaltungssystem
Die Kernfunktionalität von Picard MCP dreht sich um die Speicherverwaltung mit den folgenden Komponenten:
- Speicherkapazität :
- Erinnerungen werden als Text mit zugehörigen Metadaten gespeichert
- Vektor-Einbettungen (unter Verwendung des Text-Embedding-3-Small-Modells) ermöglichen semantische Suchfunktionen
- Berechtigungen steuern, wer auf jeden Speicher zugreifen kann
- Zeitstempel protokollieren Erstellung, Änderung und Ablauf
- Der gespeicherte Text wird im Ruhezustand verschlüsselt, während die Metadaten durchsuchbar bleiben
- Alle Bezeichner verwenden zur Skalierbarkeit das UUID-Format anstelle von sequentiellen Ganzzahlen
- Jeder Speicher wird mithilfe des Einbettungsmodells von OpenAI in eine Vektoreinbettung umgewandelt
- Einbettungen ermöglichen semantische Suche und Ähnlichkeitsabgleich
- PostgreSQL mit pgvector-Erweiterung bietet effiziente Vektorspeicherung und -abfrage
- Berechtigungsverwaltung :
- Jeder Speicher hat eine Berechtigungsstufe (privat oder öffentlich)
- Private Erinnerungen sind nur für den Besitzer zugänglich
- Öffentliche Erinnerungen können von anderen Benutzern für Persona-Abfragen abgerufen werden
- Das System ist so konzipiert, dass es für zukünftige Berechtigungstypen erweiterbar ist (z. B. für die statistische/aggregierte Verwendung).
- Auf freigegebene Erinnerungen können bestimmte Benutzer oder Gruppen zugreifen
- Berechtigungen können vom Speicherbesitzer jederzeit geändert werden
- Gedächtnisabruf :
- Benutzer können ihre eigenen Erinnerungen mit Filter- und Sortieroptionen abrufen
- Die semantische Suche ermöglicht das Auffinden von Erinnerungen anhand ihrer Bedeutung, nicht nur anhand von Schlüsselwörtern
- Vektorähnlichkeit (Kosinus) ermöglicht das Auffinden verwandter Erinnerungen in der gesamten Datenbank
- Die Top-N-ähnlichsten Erinnerungen werden basierend auf der Abfragerelevanz zurückgegeben
- Berechtigungsprüfungen stellen sicher, dass Benutzer nur auf autorisierte Speicher zugreifen
- LLM-Integration :
- Erinnerungen können als Kontext für LLM-Abfragen verwendet werden
- Benutzer können Personas basierend auf ihren öffentlichen Erinnerungen erstellen
- Andere Benutzer können diese Personas abfragen, um Antworten zu erhalten, die auf den Erinnerungen basieren
- Das System übernimmt automatisch Kontextmanagement und Prompt Engineering
Hauptmerkmale
MCP-Serverfunktionen
- OAuth 2.0-Authentifizierung :
- Autorisierungscode-Fluss mit PKCE für erhöhte Sicherheit
- Umfangsbasiertes Berechtigungssystem (
memories:read
,memories:write
,memories:admin
) - Tokenverwaltung mit Aktualisierungstoken-Unterstützung
- Kundenregistrierung und -verwaltung
- Speicherverwaltung :
- Erinnerungen erstellen, lesen, aktualisieren und löschen
- Vektoreinbettung für die semantische Suche
- Berechtigungsbasierte Zugriffskontrolle
- Stapelverarbeitung für effiziente Speicherverwaltung
- Benutzerverwaltung :
- Benutzerregistrierung und Authentifizierung
- Profilverwaltung und -einstellungen
- Aktivitätsverfolgung und -analyse
- Administratorkontrollen für die Systemverwaltung
- KI-Integration :
- OpenAI-API-Integration für Einbettungen und LLM-Abfragen
- Persona-Erstellung basierend auf Benutzererinnerungen
- Kontextbezogene Abfrageverarbeitung
- Anpassbare KI-Parameter und -Einstellungen
Django-Clientfunktionen
- Benutzeroberfläche :
- Klares, ansprechendes Design für Desktop und Mobilgeräte
- Intuitive Speicherverwaltungsoberfläche
- Erweiterte Such- und Filteroptionen
- Persona-Erstellungs- und Abfrageschnittstelle
- OAuth-Client-Implementierung :
- Sichere Token-Speicherung und -Verwaltung
- Automatische Token-Aktualisierung
- Umfangsbasierte Funktionsverfügbarkeit
- Fehlerbehandlung und Wiederherstellung
- Speichertools :
- Speichererstellung mit Rich-Text-Unterstützung
- Batch-Import und -Export
- Berechtigungsverwaltungsschnittstelle
- Tagging und Kategorisierung
MCP-Schnittstelle
MCP-Ressourcen
- Speicherressource :
memories://{memory_id}
- Gibt den Inhalt eines bestimmten Speichers mit Berechtigungsprüfungen zurück
- Parameter: memory_id (UUID)
- Antwort: Speicherinhalt mit Metadaten
- Benutzererinnerungsressource :
users://{user_id}/memories
- Gibt eine Liste von Erinnerungen für einen bestimmten Benutzer mit Berechtigungsprüfungen zurück
- Parameter: Benutzer-ID (UUID), optionale Filter
- Antwort: Liste der Speicherzusammenfassungen
MCP-Tools
- Erinnerungstool übermitteln : Erstellt eine neue Erinnerung
- Parameter: Text (Zeichenfolge), Berechtigung (Zeichenfolge)
- Rückgabe: Erstellte Speicherdetails mit UUID
- Update Memory Tool : Aktualisiert einen vorhandenen Speicher
- Parameter: memory_id (UUID), Text (Zeichenfolge)
- Rückgabe: Aktualisierte Speicherdetails
- Werkzeug „Speicher löschen“ : Löscht einen Speicher
- Parameter: memory_id (UUID)
- Rückgabe: Erfolgsbestätigung
- Query Memory Tool : Führt eine semantische Suche in Erinnerungen durch
- Parameter: Abfrage (Zeichenfolge), Limit (Ganzzahl)
- Rückgabe: Liste relevanter Erinnerungen
- Benutzer abfragen : Fragt die Persona eines Benutzers anhand von Erinnerungen ab
- Parameter: Benutzer-ID (UUID), Abfrage (Zeichenfolge)
- Rückgabe: Antwort basierend auf den Erinnerungen des Benutzers
API-Endpunkte
OAuth-Endpunkte
- Kundenregistrierung :
/register
- Methode: POST
- Beschreibung: Einen neuen OAuth-Client registrieren
- Anfrage: Clientdetails (ID, Geheimnis, Umleitungs-URIs, Bereiche)
- Antwort: Client-Anmeldeinformationen und Registrierungsinformationen
- Autorisierung :
/authorize
- Methode: GET
- Beschreibung: OAuth-Autorisierungsablauf initiieren
- Parameter: Antworttyp, Client-ID, Umleitungs-URI, Bereich, Status, Code-Challenge, Code-Challenge-Methode
- Antwort: Weiterleitung zum Client mit Autorisierungscode
- Token-Austausch :
/token
- Methode: POST
- Beschreibung: Autorisierungscode für Token austauschen
- Anfrage: grant_type, code, redirect_uri, client_id, client_secret, code_verifier
- Antwort: Zugriffstoken, Aktualisierungstoken, Ablauf und Umfangsinformationen
Speicherendpunkte
- Erinnerungen abrufen :
/api/tools
(Tool:get_memories
)- Methode: POST
- Beschreibung: Erinnerungen abrufen mit optionaler Filterung
- Authentifizierung: Bearer-Token
- Anfrage: Optionale Filterparameter (Benutzer-ID, Berechtigung, Ablaufstatus)
- Antwort: Liste der für den Benutzer zugänglichen Speicher
- Beispielanfrage:
- Speicher übermitteln :
/api/tools
(Tool:submit_memory
)- Methode: POST
- Beschreibung: Erstellen Sie eine neue Erinnerung
- Authentifizierung: Bearer-Token
- Anfrage: Speichertext, Berechtigungsstufe und Ablaufdatum (ISO 8601-Format, z. B. „2025-12-31T23:59:59Z“)
- Antwort: Erstellte Speicherdetails einschließlich UUID-Kennung
- Beispielanfrage:
- Erinnerungen abrufen :
/api/tools
(Tool:retrieve_memories
)- Methode: POST
- Beschreibung: Alle Erinnerungen für den authentifizierten Benutzer abrufen
- Authentifizierung: Bearer-Token
- Antwort: Liste der Speicherobjekte mit UUID-Kennungen
- Beispielanfrage:
- Speicher aktualisieren :
/api/tools
(Tool:update_memory
)- Methode: POST
- Beschreibung: Aktualisieren eines vorhandenen Speichers
- Authentifizierung: Bearer-Token
- Anfrage: Speicher-ID, aktualisierter Inhalt und optional aktualisiertes Ablaufdatum (ISO 8601-Format)
- Antwort: Speicherdetails aktualisiert
- Beispielanfrage:
- Berechtigungen ändern :
/api/tools
(Tool:modify_permissions
)- Methode: POST
- Beschreibung: Speicherberechtigungsstufe aktualisieren
- Authentifizierung: Bearer-Token
- Anfrage: Speicher-UUID und neue Berechtigungsstufe
- Antwort: Speicherdetails aktualisiert
- Beispielanfrage:
- Abfragebenutzer :
/api/tools
(Tool:query_user
)- Methode: POST
- Beschreibung: Abfrage der Persona eines Benutzers basierend auf Erinnerungen (öffentlich für andere Benutzer, öffentlich+privat für einen selbst)
- Authentifizierung: Bearer-Token
- Anfrage: Benutzer-UUID und Abfrageaufforderung
- Antwort: JSON mit nicht abgelaufenen Speichern, entweder alle gültigen Speicher oder die Top-N, die der Abfrage am ähnlichsten sind
- Antwort: KI-generierte Antwort basierend auf den Erinnerungen des Benutzers
- Beispielanfrage:
Einrichtung und Bereitstellung
Voraussetzungen
- Docker und Docker Compose
- Python 3.10+
- OpenAI-API-Schlüssel
Vollständiges Setup-Handbuch
- Klonen Sie das Repository:
- Erstellen Sie Umgebungsdateien für beide Komponenten:
- Bearbeiten Sie die Umgebungsdateien, um Ihre Konfiguration festzulegen:
- In
mcp_server/.env
: Legen Sie Ihre Datenbankanmeldeinformationen, den OpenAI-API-Schlüssel und die Administratoranmeldeinformationen fest - In
django_client/.env
: Legen Sie Ihre Datenbankanmeldeinformationen und OAuth-Einstellungen fest
- In
- Starten Sie die Dienste mit Docker Compose:Dadurch werden die folgenden Dienste gestartet:
db-mcp
: PostgreSQL-Datenbank für den MCP-Serverdb-django
: PostgreSQL-Datenbank für den Django-Clientmcp_server
: MCP-Server läuft auf http://localhost:8001django_client
: Django-Client, der auf http://localhost:8000 ausgeführt wird
- Erstellen Sie einen Administratorbenutzer für den MCP-Server:Dadurch wird ein Administratorbenutzer mit den in Ihren Umgebungsvariablen angegebenen Anmeldeinformationen erstellt.
- Registrieren Sie den Django-Client beim MCP-Server:Dadurch wird der Django-Client beim MCP-Server registriert und die
.env
Datei des Django-Clients mit den Client-Anmeldeinformationen aktualisiert. - Greifen Sie auf die Anwendungen zu:
- MCP-Server: http://localhost:8001
- Django-Client: http://localhost:8000
- Erstellen Sie im Django-Client ein Benutzerkonto und beginnen Sie mit der Verwendung der Anwendung.
Erste Tests
Um zu überprüfen, ob Ihr Setup ordnungsgemäß funktioniert, führen Sie die folgenden Tests aus:
- MCP-Servertests :Dadurch werden alle Unit-Tests für den MCP-Server ausgeführt, einschließlich OAuth-Endpunkte, Administratorfunktionen und Speicherverwaltung.
- Django-Client-Tests :Dadurch wird die Integration des Django-Clients mit dem MCP-Server getestet.
- Manuelles Testen :
- Erstellen Sie ein Benutzerkonto im Django-Client unter http://localhost:8000/register
- Melden Sie sich an und stellen Sie über OAuth eine Verbindung zum MCP-Server her
- Erinnerungen erstellen, abrufen und verwalten
- Testen Sie die semantische Suchfunktion
Sicherheitsüberlegungen
Datenschutz
- Der Speichertextinhalt wird im Ruhezustand mit der symmetrischen Fernet-Verschlüsselung von Python (AES-128 im CBC-Modus mit PKCS7-Padding) verschlüsselt, während die Metadaten durchsuchbar bleiben
- Personenbezogene Daten (PII) werden durch Textfeldverschlüsselung geschützt
- Zugriffstoken haben eine Ablaufzeit von einer Stunde, um die Gefährdung zu begrenzen
- Aktualisierungstoken sind langlebig, verwenden aber Rotation: Jede Verwendung generiert ein neues Aktualisierungstoken und macht das alte ungültig
- OAuth-Token werden sicher in der PostgreSQL-Datenbank des Django-Clients gespeichert
UUID-Verwendung
Alle Bezeichner im System verwenden aus mehreren Gründen das UUID v4-Format anstelle von fortlaufenden Ganzzahlen:
- Sicherheit : UUIDs geben keine Systeminformationen oder Datensatzzahlen preis
- Skalierbarkeit : UUIDs können ohne Datenbankkoordination generiert werden, was verteilte Systeme ermöglicht
- Nicht-Erratbarkeit : UUIDs sind praktisch unmöglich zu erraten, was Enumerationsangriffe verhindert
- Konsistenz : Die Verwendung von UUIDs im gesamten System vereinfacht die Integration mit anderen Diensten
Alle IDs in der API (Benutzer-ID, Speicher-ID, Client-ID usw.) müssen im UUID-Format vorliegen.
Bewährte Methoden für OAuth
- Die gesamte OAuth-Kommunikation muss in Produktionsumgebungen HTTPS verwenden.
- Autorisierungscodes sind nur einmalig verwendbar und von kurzer Dauer (max. 5 Minuten).
- PKCE ist für alle Clients, auch vertrauliche, zur umfassenden Verteidigung erforderlich
- Aktualisierungstoken sind langlebig, können aber von Benutzern oder Administratoren widerrufen werden
- Das System führt eine Token-Blacklist für widerrufene Token
Dokumentation
API-Dokumentation
Der MCP-Server enthält Swagger/OpenAPI-Dokumentation für alle Endpunkte:
- Greifen Sie bei laufendem Server unter
/docs
auf die Swagger-Benutzeroberfläche zu - Die OpenAPI-Spezifikation ist unter
/openapi.json
verfügbar. - Alle API-Endpunkte sind vollständig mit Anfrage-/Antwortschemata und Beispielen dokumentiert
Zusätzliche Dokumentationsdateien
- TESTING.md : Umfassender Leitfaden zum Testen der Anwendung
- Beschreibt alle implementierten Tests und deren Zweck
- Anweisungen zum Ausführen von Tests lokal und in CI/CD
- Dokumentiert die Testabdeckung und identifiziert Bereiche, die zusätzliche Tests erfordern
- DEBUGGING.md : Verfolgt Probleme und deren Lösungen
- Protokolliert bekannte Fehler, die noch nicht behoben wurden
- Dokumentiert zuvor behobene Fehler und deren Lösungen
- Bietet Anleitungen zur Fehlerbehebung bei häufigen Problemen
- PLANNING.md : Verfolgt die Aufschlüsselung der Aufgaben, die zur Implementierung der Site erforderlich sind
- Listet die Aufgaben und Unteraufgaben auf, die zur Implementierung der Site erforderlich sind
- Dokumentiert die Erledigung einer Aufgabe mit einem Kontrollkästchen
Einsatz
Dieses Projekt enthält eine docker-compose.yml
für die lokale Entwicklung und render.yaml
Blaupause für die Bereitstellung in Render. Dieselbe Codebasis funktioniert sowohl lokal in Docker-Containern als auch bei der Bereitstellung in Render-Cloud-Diensten.
MCP-Serverbereitstellung
- Docker-Bereitstellung (für die Produktion empfohlen):Die Docker Compose-Konfiguration umfasst:
- Netzwerkkonfiguration für die Kommunikation zwischen Containern
- Volume-Mounts für die dauerhafte Datenspeicherung
- Umgebungsvariablenkonfiguration aus .env-Dateien
- Portzuordnungen (8000 für Django-Client, 8001 für MCP-Server)
- Integritätsprüfungen für Dienstabhängigkeiten
- Render Cloud-Bereitstellung : Verwenden Sie die enthaltene
render.yaml
Blaupause zur Bereitstellung in Render.
Lizenz
MIT
This server cannot be installed
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 Django-basierte Implementierung des Model Context Protocol (MCP) zur Verwaltung politischer Präferenzen und Zukunftsvisionen.
Related MCP Servers
- AsecurityAlicenseAqualityModel Context Protocol (MCP) is a new, standardized protocol for managing context between large language models (LLMs) and external systems. In this repository, we provide an installer as well as an MCP Server for Upstash Developer API's.Last updated -165827TypeScriptMIT License
- AsecurityFlicenseAqualityA Model Context Protocol (MCP) server that optimizes token usage by caching data during language model interactions, compatible with any language model and MCP client.Last updated -4JavaScript
- -securityFlicense-qualityA Model Context Protocol service that wraps Django's migration commands as MCP endpoints, making it easy to manage migrations across multiple services and integrate with CI/CD pipelines.Last updated -Python
- -securityFlicense-qualityA Python-based implementation of the Model Context Protocol that enables communication between a model context management server and client through a request-response architecture.Last updated -Python