Skip to main content
Glama

context-portal

Apache 2.0
234
  • Linux
  • Apple

Kontextportal MCP (ConPort)

(Es ist eine Erinnerungsbank!)

Ein datenbankgestützter Model Context Protocol (MCP)-Server zur Verwaltung strukturierter Projektkontexte, der für die Verwendung durch KI-Assistenten und Entwicklertools innerhalb von IDEs und anderen Schnittstellen konzipiert ist.

Was ist der Context Portal MCP-Server (ConPort)?

Context Portal (ConPort) ist die Gedächtnisbank Ihres Projekts. Es ist ein Tool, das KI-Assistenten hilft, Ihr spezifisches Softwareprojekt besser zu verstehen, indem es wichtige Informationen wie Entscheidungen, Aufgaben und Architekturmuster strukturiert speichert. Stellen Sie sich das als Aufbau einer projektspezifischen Wissensdatenbank vor, auf die die KI leicht zugreifen und die sie nutzen kann, um Ihnen präzisere und hilfreichere Antworten zu geben.

Was es bewirkt:

  • Behält den Überblick über Projektentscheidungen, den Projektfortschritt und die Systemdesigns.
  • Speichert benutzerdefinierte Projektdaten (wie Glossare oder Spezifikationen).
  • Hilft der KI, relevante Projektinformationen schnell zu finden (wie eine intelligente Suche).
  • Ermöglicht KI, den Projektkontext für bessere Antworten zu nutzen (RAG).
  • Effizienter für die Verwaltung, Suche und Aktualisierung von Kontext im Vergleich zu einfachen, auf Textdateien basierenden Speicherbänken.

ConPort bietet KI-Assistenten eine robuste und strukturierte Möglichkeit, verschiedene Projektkontexte zu speichern, abzurufen und zu verwalten. Es erstellt effektiv einen projektspezifischen Wissensgraphen , der Entitäten wie Entscheidungen, Fortschritt und Architektur sowie deren Beziehungen erfasst. Diese strukturierte Wissensbasis, erweitert durch Vektoreinbettungen für die semantische Suche, dient dann als leistungsstarkes Backend für Retrieval Augmented Generation (RAG) und ermöglicht KI-Assistenten den Zugriff auf präzise, aktuelle Informationen für kontextbezogenere und präzisere Antworten.

Es ersetzt ältere dateibasierte Kontextverwaltungssysteme, indem es ein zuverlässigeres und abfragbareres Datenbank-Backend (SQLite pro Arbeitsbereich) bietet. ConPort ist als generisches Kontext-Backend konzipiert, das mit verschiedenen IDEs und Client-Schnittstellen kompatibel ist, die MCP unterstützen.

Zu den wichtigsten Funktionen gehören:

  • Strukturierter Kontextspeicher mit SQLite (eine Datenbank pro Arbeitsbereich, automatisch erstellt).
  • MCP-Server ( context_portal_mcp ), erstellt mit Python/FastAPI.
  • Eine umfassende Suite definierter MCP-Tools für die Interaktion (siehe „Verfügbare ConPort-Tools“ weiter unten).
  • Unterstützung mehrerer Arbeitsbereiche über workspace_id .
  • Primärer Bereitstellungsmodus: STDIO für enge IDE-Integration.
  • Ermöglicht den Aufbau eines dynamischen Projekt-Wissensgraphen mit expliziten Beziehungen zwischen Kontextelementen.
  • Beinhaltet Vektordatenspeicherung und semantische Suchfunktionen zur Unterstützung erweiterter RAG.
  • Dient als ideales Backend für Retrieval Augmented Generation (RAG) und stellt der KI einen präzisen, abfragbaren Projektspeicher zur Verfügung.
  • Bietet strukturierten Kontext, den KI-Assistenten für schnelles Caching mit kompatiblen LLM-Anbietern nutzen können.

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass Folgendes installiert ist:

  • Python: Version 3.8 oder höher wird empfohlen.
    • Python herunterladen
    • Stellen Sie sicher, dass Python während der Installation zum PATH Ihres Systems hinzugefügt wird (insbesondere unter Windows).
  • uv: (Sehr empfehlenswert) Eine schnelle Python-Umgebung und ein Paketmanager. Die Verwendung von uv vereinfacht die Erstellung virtueller Umgebungen und die Installation von Abhängigkeiten erheblich.
    • UV installieren
    • Wenn Sie uv nicht verwenden möchten, können Sie die Standard-Python-Programme venv und pip verwenden, für dieses Projekt wird jedoch uv bevorzugt.

Installation über PyPI:

Erstellen und aktivieren Sie eine virtuelle Umgebung in dem Verzeichnis, in dem Sie Ihre MCP-Server installieren:

Verwendung von uv (empfohlen):

uv venv

Aktivieren Sie die Umgebung:

Linux/macOS (bash/zsh):

source .venv/bin/activate

Windows (Eingabeaufforderung):

.venv\Scripts\activate.bat

Windows (PowerShell):

.venv\Scripts\Activate.ps1

(Wenn in PowerShell Probleme mit der Ausführungsrichtlinie auftreten, müssen Sie möglicherweise zuerst Set-ExecutionPolicy RemoteSigned -Scope CurrentUser ausführen.)

Standard- venv verwenden (wenn kein uv verwendet wird):

In Ihrem MCP-Serververzeichnis:

python3 -m venv .venv # Or 'python -m venv .venv'

Die Aktivierungsbefehle sind dieselben wie oben für uv .

Installieren Sie ConPort über PyPi:

Der PyPI-Installationsbefehl für context-portal-mcp mit uv lautet:

uv pip install context-portal-mcp

Wenn Sie Standard-PIP in einer virtuellen Umgebung verwenden, lautet der Befehl:

pip install context-portal-mcp

Konfiguration für die PyPI-Installation

Wenn Sie ConPort über PyPI ( pip install context-portal-mcp ) installiert haben, kann der ConPort-Server direkt mit dem Python-Interpreter in Ihrer virtuellen Umgebung gestartet werden. Diese Methode ist im Allgemeinen zuverlässiger, da sie explizit auf die ausführbare Datei verweist.

Wichtig: Sie MÜSSEN den Platzhalterpfad /home/USER/PATH/TO/.venv/bin/python (oder C:\\Users\\USER\\PATH\\TO\\.venv\\Scripts\\python.exe unter Windows) durch den absoluten Pfad zur ausführbaren Python-Datei in Ihrer spezifischen virtuellen ConPort-Umgebung ersetzen.

Linux/macOS-Beispiel:

{ "mcpServers": { "conport": { "command": "/home/USER/PATH/TO/.venv/bin/python", "args": [ "-m", "context_portal_mcp.main", "--mode", "stdio", "--workspace_id", "${workspaceFolder}", "--log-file", "./logs/conport.log", "--log-level", "INFO" ] } } }

Windows-Beispiel:

{ "mcpServers": { "conport": { "command": "C:\\Users\\USER\\PATH\\TO\\.venv\\Scripts\\python.exe", "args": [ "-m", "context_portal_mcp.main", "--mode", "stdio", "--workspace_id", "${workspaceFolder}", "--log-file", "./logs/conport.log", "--log-level", "INFO" ] } } }
  • command : Dies muss der absolute Pfad zur ausführbaren python (oder python.exe unter Windows) innerhalb der .venv Ihrer ConPort-Installation sein.
  • args : Enthält die Argumente zum Ausführen des ConPort-Servermoduls ( -m context_portal_mcp.main ) und die Argumente des Servers ( --mode stdio --workspace_id "${workspaceFolder}" ).
  • ${workspaceFolder} : Diese IDE-Variable wird verwendet, um automatisch den absoluten Pfad des aktuellen Projektarbeitsbereichs bereitzustellen.
  • --log-file : Optional: Pfad zu einer Datei, in die Serverprotokolle geschrieben werden. Falls nicht angegeben, werden die Protokolle an stderr (Konsole) weitergeleitet. Nützlich für die dauerhafte Protokollierung und das Debuggen des Serververhaltens.
  • --log-level : Optional: Legt die minimale Protokollierungsstufe für den Server fest. Gültige Optionen sind DEBUG , INFO , WARNING , ERROR und CRITICAL . Standardmäßig ist INFO eingestellt. Bei Einstellung auf DEBUG erhalten Sie während der Entwicklung oder Fehlerbehebung ausführliche Ausgaben.

Bei der Installation über PyPI ist der Befehl conport-mcp direkt im Pfad Ihrer virtuellen Umgebung verfügbar. Der Befehl zum Ausführen des Servers lässt sich folgendermaßen vereinfachen:

conport-mcp --mode stdio --workspace_id "/actual/path/to/your/project_workspace"

Installation aus dem Git-Repository

Diese Anleitung führt Sie durch die Einrichtung von ConPort, indem Sie das Git-Repository klonen und Abhängigkeiten installieren. Die Verwendung einer virtuellen Umgebung ist entscheidend.

  1. Klonen Sie das Repository: Öffnen Sie Ihr Terminal oder Ihre Eingabeaufforderung und führen Sie Folgendes aus:
    git clone https://github.com/GreatScottyMac/context-portal.git cd context-portal
  2. Erstellen und Aktivieren einer virtuellen Umgebung:
    • Verwenden von uv (empfohlen): Im context-portal :
      uv venv
      • Aktivieren Sie die Umgebung:
        • Linux/macOS (bash/zsh):
          source .venv/bin/activate
        • Windows (Eingabeaufforderung):
          .venv\Scripts\activate.bat
        • Windows (PowerShell):
          .venv\Scripts\Activate.ps1
          (Wenn in PowerShell Probleme mit der Ausführungsrichtlinie auftreten, müssen Sie möglicherweise zuerst Set-ExecutionPolicy RemoteSigned -Scope CurrentUser ausführen.)
    • Verwenden von Standard- venv (wenn kein uv verwendet wird): Im context-portal :
      python3 -m venv .venv # Or 'python -m venv .venv'
      • Die Aktivierungsbefehle sind dieselben wie oben für uv .
  3. Abhängigkeiten installieren: Wenn Ihre virtuelle Umgebung aktiviert ist:
    • Verwendung von uv (empfohlen):
      uv pip install -r requirements.txt
      Hinweis: uv kann die .venv im aktuellen Verzeichnis häufig auch ohne explizite Aktivierung für uv pip install erkennen und verwenden. Die Aktivierung ist jedoch weiterhin empfehlenswert, insbesondere wenn Sie Python-Skripte direkt ausführen möchten.
    • Standard- pip verwenden:
      pip install -r requirements.txt
  4. Installation überprüfen (optional): Stellen Sie sicher, dass Ihre virtuelle Umgebung aktiviert ist.
    • Verwenden von uv :
      uv run python src/context_portal_mcp/main.py --help
    • Standard python verwenden: bash python src/context_portal_mcp/main.py --help Dies sollte die Befehlszeilenhilfe für den ConPort-Server ausgeben.

Empfohlene Konfiguration (direkter Python-Aufruf):

Diese Konfiguration ruft den Python-Interpreter direkt aus der virtuellen Umgebung des context-portal auf. Dies ist eine zuverlässige Methode, die nicht davon abhängt, ob uv der Befehl ist oder der Client ein cwd -Feld für den Serverprozess unterstützt.

Wichtig:

  • Sie MÜSSEN Platzhalterpfade durch die absoluten Pfade ersetzen, die dem Ort entsprechen, an dem Sie Ihr context-portal Repository geklont und eingerichtet haben.
  • Die Variable "${workspaceFolder}" für das Argument --workspace_id ist ein allgemeiner IDE-Platzhalter, der zum absoluten Pfad Ihres aktuellen Projektarbeitsbereichs erweitert werden sollte.

Linux/macOS-Beispiel:

Stellen Sie sich vor, Ihr context-portal Repository ist unter /home/youruser/mcp-servers/context-portal geklont.

{ "mcpServers": { "conport": { "command": "/home/youruser/mcp-servers/context-portal/.venv/bin/python", "args": [ "/home/youruser/mcp-servers/context-portal/src/context_portal_mcp/main.py", "--mode", "stdio", "--workspace_id", "${workspaceFolder}", "--log-file", "./logs/conport.log", "--log-level", "INFO" ] } } }

Windows-Beispiel:

Stellen Sie sich vor, Ihr context-portal Repository ist unter C:\Users\YourUser\MCP-servers\context-portal geklont. Beachten Sie die Verwendung von doppelten Backslashes \\ für Pfade in JSON-Strings.

{ "mcpServers": { "conport": { "command": "C:\\Users\\YourUser\\MCP-servers\\context-portal\\.venv\\Scripts\\python.exe", "args": [ "C:\\Users\\YourUser\\MCP-servers\\context-portal\\src\\context_portal_mcp\\main.py", "--mode", "stdio", "--workspace_id", "${workspaceFolder}", "--log-file", "./logs/conport.log", "--log-level", "INFO" ] } } }
  • command : Dies muss der absolute Pfad zur ausführbaren python (oder python.exe unter Windows) innerhalb der .venv Ihrer context-portal sein.
  • Erstes Argument in args : Dies muss der absolute Pfad zum Skript main.py innerhalb Ihrer context-portal sein.
  • --workspace_id "${workspaceFolder}" : Dies teilt ConPort mit, welcher Projektkontext verwaltet werden soll. ${workspaceFolder} sollte von Ihrer IDE in den Stammpfad des aktuellen Projekts aufgelöst werden.
  • --log-file : Optional: Pfad zu einer Datei, in die Serverprotokolle geschrieben werden. Falls nicht angegeben, werden die Protokolle an stderr (Konsole) weitergeleitet. Nützlich für die dauerhafte Protokollierung und das Debuggen des Serververhaltens.
  • --log-level : Optional: Legt die minimale Protokollierungsstufe für den Server fest. Gültige Optionen sind DEBUG , INFO , WARNING , ERROR und CRITICAL . Standardmäßig ist INFO eingestellt. Bei Einstellung auf DEBUG erhalten Sie während der Entwicklung oder Fehlerbehebung ausführliche Ausgaben.

Bei der Installation über ein geklontes Git-Repository erstellt und führt die IDE normalerweise einen Befehl ähnlich dem folgenden aus:

uv run python /path/to/your/context-portal/src/context_portal_mcp/main.py --mode stdio --workspace_id "/actual/path/to/your/project_workspace"

/path/to/your/context-portal/ ist der absolute Pfad, in den Sie das context-portal Repository geklont haben. "/actual/path/to/your/project_workspace" ist der absolute Pfad zum Stammverzeichnis des Projekts, dessen Kontext ConPort verwalten soll (z. B. ${workspaceFolder} in VS Code). ConPort erstellt seine Datenbank automatisch unter your_project_workspace/context_portal/context.db .

Zweck des Befehlszeilenarguments --workspace_id :

Wenn Sie den ConPort-Server starten, insbesondere im STDIO-Modus ( --mode stdio ), dient das Argument --workspace_id mehreren wichtigen Zwecken:

  1. Anfänglicher Serverkontext: Er stellt dem Serverprozess den absoluten Pfad zum Projektarbeitsbereich bereit, mit dem er anfänglich verknüpft werden soll.
  2. Kritische Sicherheitsüberprüfung: Im STDIO-Modus wird dieser Pfad für eine wichtige Überprüfung verwendet, die verhindert, dass der Server seine Datenbankdateien ( context.db , conport_vector_data/ ) versehentlich in seinem eigenen Installationsverzeichnis erstellt. Dies schützt vor Fehlkonfigurationen, bei denen der Client den Arbeitsbereichspfad möglicherweise nicht korrekt angibt.
  3. Client-Startsignal: Dies ist die Standardmethode für einen MCP-Client (wie eine IDE-Erweiterung), dem Server zu signalisieren, für welches Projekt er gestartet wird.

Wichtiger Hinweis: Die beim Serverstart angegebene --workspace_id wird nicht automatisch als workspace_id -Parameter für jeden nachfolgenden MCP-Tool-Aufruf verwendet. ConPort-Tools sind so konzipiert, dass sie den workspace_id Parameter bei jedem Aufruf explizit benötigen (z. B. get_product_context({"workspace_id": "..."}) ). Dieses Design unterstützt die Möglichkeit, dass eine einzelne Serverinstanz mehrere Arbeitsbereiche verwaltet, und sorgt für Übersichtlichkeit bei jedem Vorgang. Ihre Client-IDE/Ihr MCP-Client ist dafür verantwortlich, bei jedem Tool-Aufruf die korrekte workspace_id anzugeben.

Wichtigste Erkenntnis: ConPort ist zur Identifizierung des Zielprojekts unbedingt auf eine korrekte --workspace_id angewiesen. Stellen Sie sicher, dass dieses Argument korrekt in den absoluten Pfad Ihres Projektarbeitsbereichs aufgelöst wird, entweder durch IDE-Variablen wie ${workspaceFolder} oder durch Angabe eines direkten absoluten Pfads.

Python-Bytecode-Cache löschen

Nach der Aktualisierung oder Neuinstallation von ConPort kann es aufgrund veralteter Python-Bytecode-Dateien ( .pyc ), die in __pycache__ Verzeichnissen gespeichert sind, zu unerwartetem Verhalten oder Fehlern kommen. Das Leeren dieses Caches kann solche Probleme beheben.

Sie können den Befehl find auf Unix-ähnlichen Systemen (Linux, macOS, WSL) verwenden, um diese Dateien und Verzeichnisse zu suchen und zu entfernen.

  1. Entfernen Sie __pycache__ Verzeichnisse:
    find . -type d -name "__pycache__" -exec rm -rf {} +
  2. Entfernen Sie .pyc -Dateien:
    find . -type f -name "*.pyc" -delete

Wo diese Befehle ausgeführt werden:

Das Verzeichnis, in dem Sie diese Befehle ausführen sollten, hängt davon ab, wie Sie ConPort installiert haben:

  • Bei Installation aus dem Git-Repository: Führen Sie diese Befehle aus dem Stammverzeichnis Ihres geklonten context-portal -Repositorys aus.
  • Bei Installation über PyPI: Führen Sie diese Befehle aus dem Verzeichnis „site-packages“ der Python-Umgebung aus, in der ConPort installiert ist (z. B. aus dem Stammverzeichnis von lib/pythonX.Y/site-packages/ Ihrer virtuellen Umgebung).
  • Beim Ausführen vom Docker-Image: Normalerweise führen Sie diese Befehle innerhalb des laufenden Docker-Containers mit docker exec <container_id> <command> aus.

Verwendung mit LLM-Agenten (Benutzerdefinierte Anweisungen)

Die Effektivität von ConPort mit LLM-Agenten wird durch die Bereitstellung spezifischer Anweisungen oder Systemaufforderungen für den LLM deutlich verbessert. Dieses Repository enthält maßgeschneiderte Strategiedateien für verschiedene Umgebungen:

  • Für Roo Code:
    • roo_code_conport_strategy : Enthält detaillierte Anweisungen für LLMs, die innerhalb der Roo Code VS Code-Erweiterung arbeiten, und erklärt ihnen, wie sie ConPort-Tools für die Kontextverwaltung verwenden.
  • Für CLine:
    • cline_conport_strategy : Enthält detaillierte Anweisungen für LLMs, die innerhalb der Cline VS Code-Erweiterung ausgeführt werden, und erklärt ihnen, wie sie ConPort-Tools für die Kontextverwaltung verwenden.
  • Für Windsurf Cascade:
    • cascade_conport_strategy : Spezifische Anleitung für LLMs, die in die Windsurf Cascade-Umgebung integriert sind. Wichtig : Beim Starten einer Sitzung in Cascade muss dem LLM explizit Folgendes mitgeteilt werden:
    Initialize according to custom instructions
  • Für die allgemeine/plattformunabhängige Verwendung:
    • generic_conport_strategy : Bietet einen plattformunabhängigen Satz von Anweisungen für jedes MCP-fähige LLM. Der Schwerpunkt liegt auf der Verwendung der ConPort-Operation get_conport_schema , um die genauen ConPort-Toolnamen und deren Parameter dynamisch zu ermitteln. Dadurch wird das LLM angewiesen, wann und warum konzeptionelle Interaktionen (wie das Protokollieren einer Entscheidung oder das Aktualisieren des Produktkontexts) durchgeführt werden sollen, anstatt spezifische Tool-Aufrufdetails fest zu codieren.

So verwenden Sie diese Strategiedateien:

  1. Identifizieren Sie die für die Umgebung Ihres LLM-Agenten relevante Strategiedatei.
  2. Kopieren Sie den gesamten Inhalt dieser Datei.
  3. Fügen Sie es in die benutzerdefinierten Anweisungen oder den Systemeingabeaufforderungsbereich Ihres LLM ein. Die Methode variiert je nach LLM-Plattform (IDE-Erweiterungseinstellungen, Web-UI, API-Konfiguration).

Diese Anweisungen vermitteln dem LLM das Wissen, um:

  • Kontext von ConPort initialisieren und laden.
  • Aktualisieren Sie ConPort mit neuen Informationen (Entscheidungen, Fortschritt usw.).
  • Verwalten Sie benutzerdefinierte Daten und Beziehungen.
  • Verstehen Sie die Bedeutung der workspace_id . Wichtiger Tipp zum Starten von Sitzungen: Um sicherzustellen, dass der LLM-Agent den Kontext korrekt initialisiert und lädt, insbesondere in Schnittstellen, die sich nicht immer strikt an die benutzerdefinierten Anweisungen der ersten Nachricht halten, empfiehlt es sich, die Interaktion mit einer klaren Anweisung wie „ Initialize according to custom instructions. Dies kann dazu beitragen, dass der Agent seine ConPort-Initialisierungssequenz gemäß seiner Strategiedatei ausführt.

Erste ConPort-Nutzung in einem Arbeitsbereich

Wenn Sie ConPort zum ersten Mal in einem neuen oder bestehenden Projektarbeitsbereich verwenden, wird die ConPort-Datenbank ( context_portal/context.db ) automatisch vom Server erstellt, falls sie noch nicht vorhanden ist. Um den initialen Projektkontext, insbesondere den Produktkontext , zu erstellen, beachten Sie Folgendes:

Verwenden einer projectBrief.md Datei (empfohlen)

  1. Erstellen Sie projectBrief.md : Erstellen Sie im Stammverzeichnis Ihres Projektarbeitsbereichs eine Datei mit dem Namen projectBrief.md .
  2. Inhalt hinzufügen: Füllen Sie diese Datei mit einer allgemeinen Übersicht über Ihr Projekt. Dies könnte Folgendes beinhalten:
    • Das Hauptziel oder der Hauptzweck des Projekts.
    • Hauptfunktionen oder Komponenten.
    • Zielgruppe oder Benutzer.
    • Allgemeiner Architekturstil oder Schlüsseltechnologien (sofern bekannt).
    • Alle anderen grundlegenden Informationen, die das Projekt definieren.
  3. Automatische Eingabeaufforderung zum Importieren: Wenn ein LLM-Agent, der einen der bereitgestellten benutzerdefinierten ConPort-Befehlssätze (z. B. roo_code_conport_strategy ) verwendet, im Arbeitsbereich initialisiert wird, ist er für Folgendes ausgelegt:
    • Überprüfen Sie, ob projectBrief.md vorhanden ist.
    • Wenn die Datei gefunden wird, wird sie gelesen und Sie werden gefragt, ob Sie ihren Inhalt in den ConPort- Produktkontext importieren möchten.
    • Wenn Sie zustimmen, wird der Inhalt zu ConPort hinzugefügt und bietet eine sofortige Grundlage für den Produktkontext des Projekts.

Manuelle Initialisierung

Wenn projectBrief.md nicht gefunden wird oder Sie es nicht importieren möchten:

  • Der LLM-Agent (geleitet durch seine benutzerdefinierten Anweisungen) informiert Sie normalerweise darüber, dass der ConPort-Produktkontext nicht initialisiert zu sein scheint.
  • Es bietet Ihnen möglicherweise Hilfe bei der manuellen Definition des Produktkontexts an, möglicherweise durch Auflisten anderer Dateien in Ihrem Arbeitsbereich, um relevante Informationen zu sammeln.

Indem Sie den anfänglichen Kontext entweder über projectBrief.md oder durch manuelle Eingabe bereitstellen, ermöglichen Sie ConPort und dem verbundenen LLM-Agenten von Anfang an ein besseres grundlegendes Verständnis Ihres Projekts.

Verfügbare ConPort-Tools

Der ConPort-Server stellt über MCP die folgenden Tools bereit, die die Interaktion mit dem zugrunde liegenden Wissensgraphen des Projekts ermöglichen. Dazu gehören Tools für die semantische Suche auf Basis von Vektordatenspeicherung . Diese Tools unterstützen den Retrieval- Aspekt, der für die erweiterte Generierung (RAG) durch KI-Agenten entscheidend ist. Alle Tools benötigen ein workspace_id Argument (String, erforderlich), um den Zielprojekt-Arbeitsbereich anzugeben.

  • Produktkontextmanagement:
    • get_product_context : Ruft die allgemeinen Projektziele, Funktionen und Architektur ab.
    • update_product_context : Aktualisiert den Produktkontext. Akzeptiert den vollständigen content (Objekt) oder patch_content (Objekt) für Teilaktualisierungen (verwenden Sie __DELETE__ als Wert im Patch, um einen Schlüssel zu entfernen).
  • Aktives Kontextmanagement:
    • get_active_context : Ruft den aktuellen Arbeitsfokus, die letzten Änderungen und offene Probleme ab.
    • update_active_context : Aktualisiert den aktiven Kontext. Akzeptiert den vollständigen content (Objekt) oder patch_content (Objekt) für Teilaktualisierungen (verwenden Sie __DELETE__ als Wert im Patch, um einen Schlüssel zu entfernen).
  • Entscheidungsprotokollierung:
    • log_decision : Protokolliert eine Architektur- oder Implementierungsentscheidung.
      • Argumente: summary (str, req), rationale (str, opt), implementation_details (str, opt), tags (Liste[str], opt).
    • get_decisions : Ruft protokollierte Entscheidungen ab.
      • Argumente: limit (int, opt), tags_filter_include_all (Liste[str], opt), tags_filter_include_any (Liste[str], opt).
    • search_decisions_fts : Volltextsuche in allen Entscheidungsfeldern (Zusammenfassung, Begründung, Details, Tags).
      • Argumente: query_term (str, req), limit (int, opt).
    • delete_decision_by_id : Löscht eine Entscheidung anhand ihrer ID.
      • Argumente: decision_id (int, req).
  • Fortschrittsverfolgung:
    • log_progress : Protokolliert einen Fortschrittseintrag oder Aufgabenstatus.
      • Argumente: status (Str, Req), description (Str, Req), parent_id (Int, Opt), linked_item_type (Str, Opt), linked_item_id (Str, Opt).
    • get_progress : Ruft Fortschrittseinträge ab.
      • Argumente: status_filter (str, opt), parent_id_filter (int, opt), limit (int, opt).
    • update_progress : Aktualisiert einen vorhandenen Fortschrittseintrag.
      • Argumente: progress_id (int, req), status (str, opt), description (str, opt), parent_id (int, opt).
    • delete_progress_by_id : Löscht einen Fortschrittseintrag anhand seiner ID.
      • Argumente: progress_id (int, req).
  • Systemmusterverwaltung:
    • log_system_pattern : Protokolliert oder aktualisiert ein System-/Codierungsmuster.
      • Argumente: name (str, req), description (str, opt), tags (Liste[str], opt).
    • get_system_patterns : Ruft Systemmuster ab.
      • Argumente: tags_filter_include_all (Liste[str], opt), tags_filter_include_any (Liste[str], opt).
    • delete_system_pattern_by_id : Löscht ein Systemmuster anhand seiner ID.
      • Argumente: pattern_id (int, req).
  • Benutzerdefiniertes Datenmanagement:
    • log_custom_data : Speichert/aktualisiert einen benutzerdefinierten Schlüsselwerteintrag unter einer Kategorie. Der Wert ist JSON-serialisierbar.
      • Argumente: category (str, req), key (str, req), value (any, req).
    • get_custom_data : Ruft benutzerdefinierte Daten ab.
      • Argumente: category (str, opt), key (str, opt).
    • delete_custom_data : Löscht einen bestimmten benutzerdefinierten Dateneintrag.
      • Argumente: category (str, req), key (str, req).
    • search_project_glossary_fts : Volltextsuche innerhalb der benutzerdefinierten Datenkategorie „ProjectGlossary“.
      • Argumente: query_term (str, req), limit (int, opt).
    • search_custom_data_value_fts : Volltextsuche über alle benutzerdefinierten Datenwerte, Kategorien und Schlüssel.
      • Argumente: query_term (Str, Erf), category_filter (Str, Opt), limit (Int, Opt).
  • Kontextverknüpfung:
    • link_conport_items : Erstellt einen Beziehungslink zwischen zwei ConPort-Elementen und baut so explizit den Wissensgraphen des Projekts auf.
      • Argumente: source_item_type (Str, Req), source_item_id (Str, Req), target_item_type (Str, Req), target_item_id (Str, Req), relationship_type (Str, Req), description (Str, Opt).
    • get_linked_items : Ruft Elemente ab, die mit einem bestimmten Element verknüpft sind.
      • Argumente: item_type (str, req), item_id (str, req), relationship_type_filter (str, opt), linked_item_type_filter (str, opt), limit (int, opt).
  • Verlauf und Metatools:
    • get_item_history : Ruft den Versionsverlauf für das Produkt oder den aktiven Kontext ab.
      • Argumente: item_type ("product_context" | "active_context", req), version (int, opt), before_timestamp (datetime, opt), after_timestamp (datetime, opt), limit (int, opt).
    • get_recent_activity_summary : Bietet eine Zusammenfassung der letzten ConPort-Aktivitäten.
      • Argumente: hours_ago (int, opt), since_timestamp (Datum/Uhrzeit, opt), limit_per_type (int, opt, Standard: 5).
    • get_conport_schema : Ruft das Schema der verfügbaren ConPort-Tools und ihrer Argumente ab.
  • Import/Export:
    • export_conport_to_markdown : Exportiert ConPort-Daten in Markdown-Dateien.
      • Argumente: output_path (str, opt, Standard: "./conport_export/").
    • import_markdown_to_conport : Importiert Daten aus Markdown-Dateien in ConPort.
      • Argumente: input_path (str, opt, Standard: "./conport_export/").
  • Stapelverarbeitung:
    • batch_log_items : Protokolliert mehrere Elemente desselben Typs (z. B. Entscheidungen, Fortschrittseinträge) in einem einzigen Aufruf.
      • Argumente: item_type (str, req – z. B. „Entscheidung“, „Fortschrittseintrag“), items (Liste[Wörterbuch], req – Liste der Pydantic-Modellwörterbücher für den Elementtyp).

Prompte Caching-Strategie

ConPort kann verwendet werden, um strukturierten Kontext (einschließlich Vektordaten für die semantische Suche) bereitzustellen, den KI-Assistenten für das Prompt-Caching mit kompatiblen LLM-Anbietern (wie Google Gemini, Anthropic Claude und OpenAI) nutzen können. Prompt-Caching reduziert Token-Kosten und Latenz durch die Wiederverwendung häufig verwendeter Teile von Prompts.

Dieses Repository enthält eine detaillierte Strategiedatei ( context_portal/prompt_caching_strategy.yml ), die definiert, wie ein LLM-Assistent zwischenspeicherbare Inhalte von ConPort identifizieren und Eingabeaufforderungen für verschiedene Anbieter strukturieren soll.

Zu den wichtigsten Aspekten der Strategie gehören:

  • Identifizieren von zwischenspeicherbarem Inhalt: Priorisieren Sie großen, stabilen Kontext wie Produktkontext, detaillierte Systemmuster oder bestimmte benutzerdefinierte Dateneinträge (insbesondere solche, die mit den Metadaten „ cache_hint: true gekennzeichnet sind).
  • Anbieterspezifische Interaktion:
    • Implizites Caching (Gemini, OpenAI): Strukturieren Sie Eingabeaufforderungen, indem Sie zwischenspeicherbaren ConPort-Inhalt ganz am Anfang der Eingabeaufforderung platzieren. Der LLM-Anbieter übernimmt das Caching automatisch.
    • Explizites Caching (Anthropic): Fügen Sie innerhalb der Prompt-Nutzlast einen cache_control Haltepunkt nach dem zwischenspeicherbaren ConPort-Inhalt ein.
  • Benutzerhinweise: Die benutzerdefinierten Daten von ConPort können Metadaten wie cache_hint: true enthalten, um den LLM-Assistenten explizit bei der Inhaltspriorisierung für das Caching anzuleiten.
  • Benachrichtigung des LLM-Assistenten: Der LLM-Assistent wird angewiesen, den Benutzer zu benachrichtigen, wenn er eine Eingabeaufforderung für ein mögliches Caching strukturiert (z. B. [INFO: Structuring prompt for caching] ).

Indem Sie ConPort zur Verwaltung des Wissens Ihres Projekts verwenden und dem LLM-Assistenten diese schnelle Caching-Strategie zur Verfügung stellen, können Sie die Effizienz und Kosteneffizienz Ihrer KI-Interaktionen verbessern.

Weitere Informationen

Um ein tieferes Verständnis des Designs, der Architektur und der erweiterten Nutzungsmuster von ConPort zu erhalten, lesen Sie bitte:

Beitragen

Details zur Mitarbeit im ConPort-Projekt werden hier zukünftig ergänzt.

Lizenz

Dieses Projekt ist unter der Apache-2.0-Lizenz lizenziert.

Related MCP Servers

  • A
    security
    F
    license
    A
    quality
    Provides sophisticated context management for Claude, enabling persistent context across sessions, project-specific organization, and conversation continuity.
    Last updated -
    4
    1
    JavaScript
    • Apple
  • -
    security
    -
    license
    -
    quality
    A Model Context Protocol server that integrates ClickFunnels with Claude Desktop, allowing users to list and retrieve funnels and contacts from their ClickFunnels account through natural language.
    Last updated -
    TypeScript
  • A
    security
    F
    license
    A
    quality
    A Model Context Protocol server that enables AI assistants like Claude to access and search Atlassian Confluence content, allowing integration with your organization's knowledge base.
    Last updated -
    5
    1,071
    7
    TypeScript
    • Apple
  • A
    security
    A
    license
    A
    quality
    A Model Context Protocol server that enables AI assistants to interact with Confluence content, supporting operations like retrieving, searching, creating, and updating pages and spaces.
    Last updated -
    9
    3
    TypeScript
    MIT License

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/GreatScottyMac/context-portal'

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