Skip to main content
Glama

context-portal

Apache 2.0
234
  • Linux
  • Apple

Portal de contexto MCP (ConPort)

(¡Es un banco de memoria!)

Un servidor de Protocolo de Contexto de Modelo (MCP) respaldado por una base de datos para administrar el contexto del proyecto estructurado, diseñado para ser utilizado por asistentes de IA y herramientas de desarrollo dentro de IDE y otras interfaces.

¿Qué es el servidor MCP de Context Portal (ConPort)?

Context Portal (ConPort) es el banco de memoria de tu proyecto. Es una herramienta que ayuda a los asistentes de IA a comprender mejor tu proyecto de software específico, almacenando información importante como decisiones, tareas y patrones arquitectónicos de forma estructurada. Considéralo como la creación de una base de conocimiento específica para el proyecto, a la que la IA puede acceder y usar fácilmente para ofrecerte respuestas más precisas y útiles.

Qué hace:

  • Realiza un seguimiento de las decisiones del proyecto, el progreso y los diseños del sistema.
  • Almacena datos de proyectos personalizados (como glosarios o especificaciones).
  • Ayuda a la IA a encontrar información relevante del proyecto rápidamente (como una búsqueda inteligente).
  • Permite que la IA utilice el contexto del proyecto para obtener mejores respuestas (RAG).
  • Más eficiente para administrar, buscar y actualizar el contexto en comparación con los bancos de memoria simples basados en archivos de texto.

ConPort proporciona una forma robusta y estructurada para que los asistentes de IA almacenen, recuperen y gestionen diversos tipos de contexto del proyecto. Crea eficazmente un grafo de conocimiento específico para cada proyecto , capturando entidades como decisiones, progreso y arquitectura, junto con sus relaciones. Esta base de conocimiento estructurada, mejorada mediante incrustaciones vectoriales para la búsqueda semántica, actúa como un potente backend para la Generación Aumentada de Recuperación (RAG) , lo que permite a los asistentes de IA acceder a información precisa y actualizada para obtener respuestas más contextuales y precisas.

Reemplaza los antiguos sistemas de gestión de contexto basados en archivos al ofrecer un backend de base de datos más fiable y consultable (SQLite por espacio de trabajo). ConPort está diseñado para ser un backend de contexto genérico, compatible con diversos IDE e interfaces de cliente compatibles con MCP.

Las características principales incluyen:

  • Almacenamiento de contexto estructurado utilizando SQLite (una base de datos por espacio de trabajo, creada automáticamente).
  • Servidor MCP ( context_portal_mcp ) creado con Python/FastAPI.
  • Un conjunto completo de herramientas MCP definidas para la interacción (consulte "Herramientas ConPort disponibles" a continuación).
  • Compatibilidad con múltiples espacios de trabajo mediante workspace_id .
  • Modo de implementación principal: STDIO para una integración IDE estrecha.
  • Permite construir un gráfico de conocimiento del proyecto dinámico con relaciones explícitas entre los elementos de contexto.
  • Incluye almacenamiento de datos vectoriales y capacidades de búsqueda semántica para potenciar el RAG avanzado.
  • Actúa como un backend ideal para la generación aumentada de recuperación (RAG) , proporcionando a la IA una memoria de proyecto precisa y consultable.
  • Proporciona un contexto estructurado que los asistentes de IA pueden aprovechar para el almacenamiento en caché rápido con proveedores de LLM compatibles.

Prerrequisitos

Antes de comenzar, asegúrese de tener instalado lo siguiente:

  • Python: se recomienda la versión 3.8 o superior.
    • Descargar Python
    • Asegúrese de que Python se agregue a la RUTA de su sistema durante la instalación (especialmente en Windows).
  • uv: (Muy recomendable) Un entorno Python rápido y un gestor de paquetes. Usar uv simplifica significativamente la creación de entornos virtuales y la instalación de dependencias.
    • Instalar uv
    • Si elige no utilizar uv , puede utilizar venv y pip estándar de Python, pero se prefiere uv para este proyecto.

Instalación mediante PyPI:

Cree y active un entorno virtual en el directorio donde instala sus servidores MCP:

Uso de uv (recomendado):

uv venv

Activar el entorno:

Linux/macOS (bash/zsh):

source .venv/bin/activate

Windows (símbolo del sistema):

.venv\Scripts\activate.bat

Ventanas (PowerShell):

.venv\Scripts\Activate.ps1

(Si encuentra problemas con la política de ejecución en PowerShell, es posible que primero deba ejecutar Set-ExecutionPolicy RemoteSigned -Scope CurrentUser ).

Usando venv estándar (si no usas uv ):

En el directorio de su servidor MCP:

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

Los comandos de activación son los mismos que para uv arriba.

Instalar ConPort a través de PyPi:

El comando de instalación de PyPI para context-portal-mcp usando uv es:

uv pip install context-portal-mcp

Si está utilizando pip estándar dentro de un entorno virtual, el comando es:

pip install context-portal-mcp

Configuración para la instalación de PyPI

Si instaló ConPort mediante PyPI ( pip install context-portal-mcp ), el servidor ConPort puede iniciarse directamente mediante el intérprete de Python en su entorno virtual. Este método suele ser más fiable, ya que apunta explícitamente al ejecutable.

Importante: DEBE reemplazar la ruta del marcador de posición /home/USER/PATH/TO/.venv/bin/python (o C:\\Users\\USER\\PATH\\TO\\.venv\\Scripts\\python.exe en Windows) con la ruta absoluta al ejecutable de Python dentro de su entorno virtual ConPort específico.

Ejemplo de Linux/macOS:

{ "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" ] } } }

Ejemplo de Windows:

{ "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 : Esta debe ser la ruta absoluta al ejecutable de python (o python.exe en Windows) dentro del .venv de su instalación de ConPort.
  • args : Contiene los argumentos para ejecutar el módulo del servidor ConPort ( -m context_portal_mcp.main ) y los argumentos del servidor ( --mode stdio --workspace_id "${workspaceFolder}" ).
  • ${workspaceFolder} : esta variable IDE se utiliza para proporcionar automáticamente la ruta absoluta del espacio de trabajo del proyecto actual.
  • --log-file : Opcional: Ruta al archivo donde se escribirán los registros del servidor. Si no se proporciona, los registros se redirigen a stderr consola. Útil para el registro persistente y la depuración del comportamiento del servidor.
  • --log-level : Opcional: Establece el nivel mínimo de registro del servidor. Las opciones válidas son DEBUG , INFO , WARNING , ERROR y CRITICAL . El valor predeterminado es INFO . Se establece en DEBUG para obtener una salida detallada durante el desarrollo o la resolución de problemas.

Al instalarlo mediante PyPI, el comando conport-mcp está disponible directamente en la ruta de su entorno virtual. El comando para ejecutar el servidor se simplifica así:

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

Instalación desde el repositorio Git

Estas instrucciones le guiarán en la configuración de ConPort mediante la clonación de su repositorio Git y la instalación de dependencias. El uso de un entorno virtual es crucial.

  1. Clonar el repositorio: abra su terminal o símbolo del sistema y ejecute:
    git clone https://github.com/GreatScottyMac/context-portal.git cd context-portal
  2. Crear y activar un entorno virtual:
    • Usando uv (recomendado): En el directorio context-portal :
      uv venv
      • Activar el entorno:
        • Linux/macOS (bash/zsh):
          source .venv/bin/activate
        • Windows (símbolo del sistema):
          .venv\Scripts\activate.bat
        • Ventanas (PowerShell):
          .venv\Scripts\Activate.ps1
          (Si encuentra problemas con la política de ejecución en PowerShell, es posible que primero deba ejecutar Set-ExecutionPolicy RemoteSigned -Scope CurrentUser ).
    • Usando venv estándar (si no se usa uv ): En el directorio context-portal :
      python3 -m venv .venv # Or 'python -m venv .venv'
      • Los comandos de activación son los mismos que para uv arriba.
  3. Instalar dependencias: Con su entorno virtual activado:
    • Uso de uv (recomendado):
      uv pip install -r requirements.txt
      Nota: uv suele detectar y usar el .venv en el directorio actual, incluso sin activación explícita para los comandos uv pip install . Sin embargo, la activación sigue siendo recomendable, especialmente si se pretende ejecutar scripts de Python directamente.
    • Usando pip estándar:
      pip install -r requirements.txt
  4. Verificar la instalación (opcional): asegúrese de que su entorno virtual esté activado.
    • Usando uv :
      uv run python src/context_portal_mcp/main.py --help
    • Usando python estándar: bash python src/context_portal_mcp/main.py --help Esto debería generar la ayuda de la línea de comandos para el servidor ConPort.

Configuración recomendada (invocación directa de Python):

Esta configuración invoca directamente al intérprete de Python desde el entorno virtual context-portal . Es un método fiable que no depende de que uv sea el comando ni de que el cliente admita un campo cwd para el proceso del servidor.

Importante:

  • DEBE reemplazar las rutas de marcador de posición con las rutas absolutas correspondientes a donde ha clonado y configurado su repositorio context-portal .
  • La variable "${workspaceFolder}" para el argumento --workspace_id es un marcador de posición IDE común que debe expandirse a la ruta absoluta del espacio de trabajo de su proyecto actual.

Ejemplo de Linux/macOS:

Imagina que tu repositorio context-portal está clonado en /home/youruser/mcp-servers/context-portal .

{ "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" ] } } }

Ejemplo de Windows:

Imagina que tu repositorio context-portal está clonado en C:\Users\YourUser\MCP-servers\context-portal . Ten en cuenta el uso de barras invertidas dobles \\ para las rutas en cadenas JSON.

{ "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 : Esta debe ser la ruta absoluta al ejecutable de python (o python.exe en Windows) dentro del .venv de su instalación context-portal .
  • Primer argumento en args : debe ser la ruta absoluta al script main.py dentro de su instalación context-portal .
  • --workspace_id "${workspaceFolder}" : Esto le indica a ConPort qué contexto de proyecto administrar. ${workspaceFolder} debe ser resuelto por su IDE en la ruta raíz del proyecto actual.
  • --log-file : Opcional: Ruta al archivo donde se escribirán los registros del servidor. Si no se proporciona, los registros se redirigen a stderr consola. Útil para el registro persistente y la depuración del comportamiento del servidor.
  • --log-level : Opcional: Establece el nivel mínimo de registro del servidor. Las opciones válidas son DEBUG , INFO , WARNING , ERROR y CRITICAL . El valor predeterminado es INFO . Se establece en DEBUG para obtener una salida detallada durante el desarrollo o la resolución de problemas.

Cuando se instala a través de un repositorio Git clonado, el IDE normalmente construirá y ejecutará un comando similar a este:

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/ es la ruta absoluta donde clonaste el repositorio context-portal . "/actual/path/to/your/project_workspace" es la ruta absoluta a la raíz del proyecto cuyo contexto administrará ConPort (por ejemplo, ${workspaceFolder} en VS Code). ConPort crea automáticamente su base de datos en your_project_workspace/context_portal/context.db .

Propósito del argumento de línea de comandos --workspace_id :

Cuando inicia el servidor ConPort, particularmente en modo STDIO ( --mode stdio ), el argumento --workspace_id cumple varios propósitos clave:

  1. Contexto inicial del servidor: proporciona al proceso del servidor la ruta absoluta al espacio de trabajo del proyecto con el que debe estar asociado inicialmente.
  2. Comprobación crítica de seguridad: En modo STDIO, esta ruta se utiliza para realizar una comprobación vital que evita que el servidor cree por error sus archivos de base de datos ( context.db , conport_vector_data/ ) dentro de su propio directorio de instalación. Esto protege contra configuraciones incorrectas en las que el cliente podría no proporcionar correctamente la ruta del espacio de trabajo.
  3. Señal de lanzamiento del cliente: es la forma estándar que tiene un cliente MCP (como una extensión IDE) de indicar al servidor qué proyecto está lanzando.

Nota importante: El --workspace_id proporcionado al iniciar el servidor no se utiliza automáticamente como parámetro workspace_id en cada llamada posterior a la herramienta MCP. Las herramientas ConPort están diseñadas para requerir el parámetro workspace_id explícitamente en cada llamada (p. ej., get_product_context({"workspace_id": "..."}) ). Este diseño permite que una sola instancia de servidor administre múltiples espacios de trabajo y garantiza la claridad en cada operación. El cliente IDE/MCP de su cliente es responsable de proporcionar el workspace_id correcto en cada llamada a la herramienta.

Conclusión clave: ConPort depende fundamentalmente de un --workspace_id preciso para identificar el proyecto de destino. Asegúrese de que este argumento se resuelva correctamente en la ruta absoluta del espacio de trabajo de su proyecto, ya sea mediante variables del IDE como ${workspaceFolder} o proporcionando una ruta absoluta directa.

Borrar la caché de código de bytes de Python

A veces, tras actualizar o reinstalar ConPort, es posible que se produzcan comportamientos inesperados o errores debido a archivos de bytecode de Python obsoletos ( .pyc ) almacenados en los directorios __pycache__ . Borrar esta caché puede solucionar estos problemas.

Puede utilizar el comando find en sistemas similares a Unix (Linux, macOS, WSL) para localizar y eliminar estos archivos y directorios.

  1. Eliminar directorios __pycache__ :
    find . -type d -name "__pycache__" -exec rm -rf {} +
  2. Eliminar archivos .pyc :
    find . -type f -name "*.pyc" -delete

Dónde ejecutar estos comandos:

El directorio donde debes ejecutar estos comandos depende de cómo hayas instalado ConPort:

  • Si se instala desde el repositorio Git: ejecute estos comandos desde el directorio raíz de su repositorio context-portal clonado.
  • Si se instala a través de PyPI: ejecute estos comandos desde el directorio site-packages del entorno Python donde está instalado ConPort (por ejemplo, desde la raíz de lib/pythonX.Y/site-packages/ de su entorno virtual).
  • Si se ejecuta desde la imagen de Docker: normalmente, ejecutará estos comandos dentro del contenedor Docker en ejecución usando docker exec <container_id> <command> .

Uso con agentes LLM (instrucciones personalizadas)

La eficacia de ConPort con los agentes LLM se mejora significativamente al proporcionar instrucciones personalizadas o indicaciones del sistema específicas al LLM. Este repositorio incluye archivos de estrategia personalizados para diferentes entornos:

  • Para el código Roo:
    • roo_code_conport_strategy : contiene instrucciones detalladas para los LLM que operan dentro de la extensión Roo Code VS Code, guiándolos sobre cómo usar las herramientas ConPort para la gestión del contexto.
  • Para CLine:
    • cline_conport_strategy : contiene instrucciones detalladas para los LLM que operan dentro de la extensión Cline VS Code, guiándolos sobre cómo usar las herramientas ConPort para la gestión del contexto.
  • Para Windsurf Cascade:
    • cascade_conport_strategy : Guía específica para LLM integrados con el entorno Windsurf Cascade. Importante : Al iniciar una sesión en Cascade, es necesario indicarle explícitamente al LLM:
    Initialize according to custom instructions
  • Para uso general/independiente de la plataforma:
    • generic_conport_strategy : Proporciona un conjunto de instrucciones independiente de la plataforma para cualquier LLM compatible con MCP. Se centra en el uso de la operación get_conport_schema de ConPort para descubrir dinámicamente los nombres exactos de las herramientas de ConPort y sus parámetros, lo que guía al LLM sobre cuándo y por qué realizar interacciones conceptuales (como registrar una decisión o actualizar el contexto del producto) en lugar de codificar detalles específicos de la invocación de la herramienta.

Cómo utilizar estos archivos de estrategia:

  1. Identifique el archivo de estrategia relevante para el entorno de su agente LLM.
  2. Copiar todo el contenido de ese archivo.
  3. Péguelo en las instrucciones personalizadas de su LLM o en el área de mensajes del sistema. El método varía según la plataforma LLM (configuración de extensiones IDE, interfaz web, configuración de la API).

Estas instrucciones dotan al LLM de los conocimientos necesarios para:

  • Inicializar y cargar el contexto desde ConPort.
  • Actualizar ConPort con nueva información (decisiones, avances, etc.).
  • Gestionar datos y relaciones personalizados.
  • Comprenda la importancia de workspace_id . Consejo importante para iniciar sesiones: Para garantizar que el agente LLM inicialice y cargue el contexto correctamente, especialmente en interfaces que no siempre siguen estrictamente las instrucciones personalizadas en el primer mensaje, es recomendable iniciar la interacción con una directiva clara como: Initialize according to custom instructions. Esto puede ayudar a que el agente realice la secuencia de inicialización de ConPort definida en su archivo de estrategia.

Uso inicial de ConPort en un espacio de trabajo

Al empezar a usar ConPort en un espacio de trabajo de proyecto nuevo o existente, el servidor creará automáticamente la base de datos de ConPort ( context_portal/context.db ) si no existe. Para facilitar el arranque del contexto inicial del proyecto, especialmente el contexto del producto , tenga en cuenta lo siguiente:

Uso de un archivo projectBrief.md (recomendado)

  1. Cree projectBrief.md : en el directorio raíz del espacio de trabajo de su proyecto, cree un archivo llamado projectBrief.md .
  2. Añadir contenido: Complete este archivo con una descripción general de su proyecto. Esto podría incluir:
    • El objetivo o propósito principal del proyecto.
    • Características o componentes clave.
    • Público objetivo o usuarios.
    • Estilo arquitectónico general o tecnologías clave (si se conocen).
    • Cualquier otra información fundamental que defina el proyecto.
  3. Solicitud automática de importación: cuando un agente LLM que utiliza uno de los conjuntos de instrucciones personalizadas ConPort proporcionados (por ejemplo, roo_code_conport_strategy ) se inicializa en el espacio de trabajo, está diseñado para:
    • Verifique la existencia de projectBrief.md .
    • Si lo encuentra, leerá el archivo y le preguntará si desea importar su contenido al contexto del producto ConPort.
    • Si está de acuerdo, el contenido se agregará a ConPort, proporcionando una base inmediata para el contexto del producto del proyecto.

Inicialización manual

Si no se encuentra projectBrief.md , o si decide no importarlo:

  • El agente LLM (guiado por sus instrucciones personalizadas) normalmente le informará que el contexto del producto ConPort parece no inicializado.
  • Es posible que le ofrezca ayuda para definir el contexto del producto manualmente, posiblemente enumerando otros archivos en su espacio de trabajo para recopilar información relevante.

Al proporcionar un contexto inicial, ya sea a través de projectBrief.md o una entrada manual, permite que ConPort y el agente LLM conectado tengan una mejor comprensión fundamental de su proyecto desde el principio.

Herramientas ConPort disponibles

El servidor ConPort expone las siguientes herramientas a través de MCP, lo que permite la interacción con el grafo de conocimiento del proyecto subyacente. Esto incluye herramientas de búsqueda semántica basadas en almacenamiento de datos vectoriales . Estas herramientas facilitan la recuperación , crucial para la Generación Aumentada (RAG) mediante agentes de IA. Todas las herramientas requieren un argumento workspace_id (cadena, obligatorio) para especificar el espacio de trabajo del proyecto de destino.

  • Gestión del contexto del producto:
    • get_product_context : recupera los objetivos, las características y la arquitectura generales del proyecto.
    • update_product_context : Actualiza el contexto del producto. Acepta content completo (objeto) o patch_content (objeto) para actualizaciones parciales (use __DELETE__ como valor en patch para eliminar una clave).
  • Gestión activa del contexto:
    • get_active_context : recupera el foco de trabajo actual, los cambios recientes y los problemas abiertos.
    • update_active_context : Actualiza el contexto activo. Acepta content completo (objeto) o patch_content (objeto) para actualizaciones parciales (use __DELETE__ como valor en patch para eliminar una clave).
  • Registro de decisiones:
    • log_decision : Registra una decisión arquitectónica o de implementación.
      • Argumentos: summary (str, req), rationale (str, opt), implementation_details (str, opt), tags (lista[str], opt).
    • get_decisions : recupera las decisiones registradas.
      • Argumentos: limit (int, opt), tags_filter_include_all (lista[str], opt), tags_filter_include_any (lista[str], opt).
    • search_decisions_fts : Búsqueda de texto completo en los campos de decisión (resumen, justificación, detalles, etiquetas).
      • Argumentos: query_term (str, req), limit (int, opt).
    • delete_decision_by_id : elimina una decisión por su ID.
      • Argumentos: decision_id (int, req).
  • Seguimiento del progreso:
    • log_progress : registra una entrada de progreso o el estado de una tarea.
      • Argumentos: status (str, req), description (str, req), parent_id (int, opt), linked_item_type (str, opt), linked_item_id (str, opt).
    • get_progress : recupera entradas de progreso.
      • Argumentos: status_filter (str, opt), parent_id_filter (int, opt), limit (int, opt).
    • update_progress : actualiza una entrada de progreso existente.
      • Argumentos: progress_id (int, req), status (str, opt), description (str, opt), parent_id (int, opt).
    • delete_progress_by_id : elimina una entrada de progreso por su ID.
      • Argumentos: progress_id (int, req).
  • Gestión de patrones del sistema:
    • log_system_pattern : Registra o actualiza un patrón de sistema/codificación.
      • Argumentos: name (str, req), description (str, opt), tags (lista[str], opt).
    • get_system_patterns : recupera patrones del sistema.
      • Argumentos: tags_filter_include_all (lista[str], opt), tags_filter_include_any (lista[str], opt).
    • delete_system_pattern_by_id : elimina un patrón de sistema por su ID.
      • Argumentos: pattern_id (int, req).
  • Gestión de datos personalizados:
    • log_custom_data : Almacena/actualiza una entrada clave-valor personalizada en una categoría. El valor se puede serializar en JSON.
      • Argumentos: category (str, req), key (str, req), value (any, req).
    • get_custom_data : recupera datos personalizados.
      • Argumentos: category (str, opt), key (str, opt).
    • delete_custom_data : elimina una entrada de datos personalizada específica.
      • Argumentos: category (str, req), key (str, req).
    • search_project_glossary_fts : Búsqueda de texto completo dentro de la categoría de datos personalizados 'ProjectGlossary'.
      • Argumentos: query_term (str, req), limit (int, opt).
    • search_custom_data_value_fts : búsqueda de texto completo en todos los valores de datos, categorías y claves personalizados.
      • Argumentos: query_term (str, req), category_filter (str, opt), limit (int, opt).
  • Vinculación de contexto:
    • link_conport_items : crea un vínculo de relación entre dos elementos ConPort, construyendo explícitamente el gráfico de conocimiento del proyecto .
      • Argumentos: source_item_type (cad, req), source_item_id (cad, req), target_item_type (cad, req), target_item_id (cad, req), relationship_type (cad, req), description (cad, opt).
    • get_linked_items : recupera elementos vinculados a un elemento específico.
      • Argumentos: item_type (str, req), item_id (str, req), relationship_type_filter (str, opt), linked_item_type_filter (str, opt), limit (int, opt).
  • Historial y metaherramientas:
    • get_item_history : recupera el historial de versiones del producto o contexto activo.
      • Argumentos: item_type ("contexto_del_producto" | "contexto_activo", req), version (int, opt), before_timestamp (fecha_y_hora, opt), after_timestamp (fecha_y_hora, opt), limit (int, opt).
    • get_recent_activity_summary : proporciona un resumen de la actividad reciente de ConPort.
      • Argumentos: hours_ago (int, opt), since_timestamp (datetime, opt), limit_per_type (int, opt, predeterminado: 5).
    • get_conport_schema : recupera el esquema de las herramientas ConPort disponibles y sus argumentos.
  • Importación/Exportación:
    • export_conport_to_markdown : exporta datos de ConPort a archivos markdown.
      • Argumentos: output_path (str, opt, predeterminado: "./conport_export/").
    • import_markdown_to_conport : importa datos de archivos markdown a ConPort.
      • Argumentos: input_path (cadena, opt, predeterminado: "./conport_export/").
  • Operaciones por lotes:
    • batch_log_items : registra varios elementos del mismo tipo (por ejemplo, decisiones, entradas de progreso) en una sola llamada.
      • Args: item_type (str, req - p. ej., "decisión", "progress_entry"), items (list[dict], req - lista de diccionarios del modelo Pydantic para el tipo de elemento).

Estrategia de almacenamiento en caché rápida

ConPort se puede usar para proporcionar contexto estructurado (incluidos datos vectoriales para búsqueda semántica) que los asistentes de IA pueden aprovechar para el almacenamiento en caché de indicaciones con proveedores LLM compatibles (como Google Gemini, Anthropic Claude y OpenAI). El almacenamiento en caché de indicaciones reduce el coste de tokens y la latencia al reutilizar las partes de las indicaciones que se usan con frecuencia.

Este repositorio incluye un archivo de estrategia detallado ( context_portal/prompt_caching_strategy.yml ) que define cómo un asistente LLM debe identificar contenido almacenable en caché de ConPort y estructurar indicaciones para diferentes proveedores.

Los aspectos clave de la estrategia incluyen:

  • Identificar contenido almacenable en caché: priorizar el contexto grande y estable, como el contexto del producto, patrones de sistema detallados o entradas de datos personalizados específicos (especialmente aquellos marcados con metadatos cache_hint: true ).
  • Interacción específica del proveedor:
    • Almacenamiento en caché implícito (Gemini, OpenAI): Estructura las solicitudes colocando el contenido almacenable en caché de ConPort al principio de la solicitud. El proveedor LLM gestiona automáticamente el almacenamiento en caché.
    • Almacenamiento en caché explícito (antrópico): inserte un punto de interrupción cache_control después del contenido almacenable en caché de ConPort dentro de la carga útil del mensaje.
  • Sugerencias para el usuario: Los datos personalizados de ConPort pueden incluir metadatos como cache_hint: true para guiar explícitamente al asistente LLM en la priorización de contenido para el almacenamiento en caché.
  • Notificación del asistente LLM: el asistente LLM recibe instrucciones de notificar al usuario cuando estructura una solicitud para un posible almacenamiento en caché (por ejemplo, [INFO: Structuring prompt for caching] ).

Al utilizar ConPort para administrar el conocimiento de su proyecto y proporcionar al asistente de LLM esta estrategia de almacenamiento en caché rápida, puede mejorar la eficiencia y la rentabilidad de sus interacciones de IA.

Lectura adicional

Para obtener una comprensión más profunda del diseño, la arquitectura y los patrones de uso avanzados de ConPort, consulte:

Contribuyendo

En el futuro se agregarán aquí detalles sobre cómo contribuir al proyecto ConPort.

Licencia

Este proyecto está licenciado bajo la licencia Apache-2.0 .

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