# Hipocampo MCP

> Bilingual dual memory with SSC for AI agents. Semantic search, embeddings, profiles.

- name: io.github.carrasquelalex1/hipocampo
- version: 1.0.1
- connection class: R0 (autonomous)
- trust: 74/100 flags: no-repository
- quality: 70/100 (needs work)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.carrasquelalex1%2Fhipocampo
- tools: https://api.protogrid.dev/v1/servers/io.github.carrasquelalex1%2Fhipocampo/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "hipocampo": {
      "type": "http",
      "url": "https://alexbell1-hipocampo-mcp.hf.space/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 85
- provenance: 35
- drivers: +reachable +uptime-100% ~updated-79d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 70/100 (needs work)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 64 (weight 30)

- pass `tools.descriptions`: every tool has a description
- warn `tools.description_length`: 5 tools have descriptions over 1,024 characters, which crowds the context
- pass `tools.schemas`: every tool has an object input schema
- fail `tools.annotations`: no tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: search_hipocampo (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); compress_hipocampo (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); save_hipocampo (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
- pass `tools.token_cost`: about 7,442 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 75 (weight 15)

- warn `stability.changes`: 84 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 39, about 7,442 tokens to load them all
- tool set hash: c1f0591baf2d9a44dd44cb8e0a18f4b7
- tools last changed: 2026-10-18T03:48:58.349Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.carrasquelalex1/hipocampo.svg)](https://protogrid.dev/servers/io.github.carrasquelalex1/hipocampo)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-18 `save_hipocampo` changed (description, inputSchema)
  - before: Guarda un recuerdo en el Hipocampo (memoria_vectorial). INSERT inmediato y NO bloqueante: el embedding se genera en background (_finalize_save_bg) junto con dedup semántico, auto-link y auditoría de contradicciones. Hasta que el embedding se backfillea (~segundos), la memoria queda en tier WARM (embedding=NULL) y es recuperable por texto. Si ya existe un recuerdo casi idéntico (trigram), se advierte y se omite el guardado a menos que force=True. El dedup semántico (>0.9) corre en background y solo loguea — no bloquea. Args: content: Texto del recuerdo a guardar. memory_type: Tipo de memoria. Valores comunes: "event" (evento/experiencia), "decision" (decisión tomada), "profile" (dato personal). Por defecto: "event". code: Código o etiqueta corta para agrupar recuerdos (opcional). Ej: "documentacion", "bugfix", "feature", "setup". categories: Lista de categorías (opcional). Ej: ["python", "mcp", "infraestructura"]. session_id: Opcional. Identificador de sesión para aislar memorias. force: Si True, guarda incluso si existe un recuerdo muy similar. auto_link: Si True, busca recuerdos semánticamente similares (>0.75) y crea enlaces "similar" automáticamente. nivel: Nivel de memoria jerárquica: "episodica" (default) — detalle completo, comprimible, "semantica" — conocimiento consolidado, protegido, "automatica" — regla permanente, nunca se comprime. critico: Si True, la memoria NUNCA se olvida ni se archiva. Protección de por vida independiente del nivel. snapshot_for: Si se proporciona un ID de regla inmunológica, después de guardar se crea automáticamente un enlace "part_of" desde este recuerdo hacia esa regla. Esto permite que validate_immune_rule encuentre el snapshot pre-cambio vinculado. Returns: Confirmación con el ID asignado.
  - after: Guarda un recuerdo en el Hipocampo (memoria_vectorial). INSERT inmediato y NO bloqueante: el embedding se genera en background (_finalize_save_bg) junto con dedup semántico, auto-link y auditoría de contradicciones. Hasta que el embedding se backfillea (~segundos), la memoria queda en tier WARM (embedding=NULL) y es recuperable por texto. Si ya existe un recuerdo casi idéntico (trigram), se advierte y se omite el guardado a menos que force=True. El dedup semántico (>0.9) corre en background y solo loguea — no bloquea. Args: content: Texto del recuerdo a guardar. memory_type: Tipo de memoria. Valores comunes: "event" (evento/experiencia), "decision" (decisión tomada), "profile" (dato personal). Por defecto: "event". code: Código o etiqueta corta para agrupar recuerdos (opcional). Ej: "documentacion", "bugfix", "feature", "setup". categories: Lista de categorías (opcional). Ej: ["python", "mcp", "infraestructura"]. session_id: Opcional. Identificador de sesión para aislar memorias. force: Si True, guarda incluso si existe un recuerdo muy similar. auto_link: Si True, busca recuerdos semánticamente similares (>0.75) y crea enlaces "similar" automáticamente. nivel: Nivel de memoria jerárquica: "episodica" (default) — detalle completo, comprimible, "semantica" — conocimiento consolidado, protegido, "automatica" — regla permanente, nunca se comprime. critico: Si True, la memoria NUNCA se olvida ni se archiva. Protección de por vida independiente del nivel. snapshot_for: Si se proporciona un ID de regla inmunológica, después de guardar se crea automáticamente un enlace "part_of" desde este recuerdo hacia esa regla. Esto permite que validate_immune_rule encuentre el snapshot pre-cambio vinculado. autor: Procedencia del recuerdo (capa de fuente, 2026-10-17): "agente" (default; lo escribiste tú en una sesión), "usuario" (dictado o habla directa del usuario), "catalogo" (entrada generada al indexar archivos). Viaja en metadatos.autor y aparece como línea 🔖 en la búsqueda, para distinguir reencontrar de consultar. Returns: Confirmación con el ID asignado.
- 2026-10-18 `search_hipocampo` changed (description)
  - before: Busca en el Hipocampo (memoria dual con SSC / BIRE v3.6). Es solo lectura — no modifica datos, no tiene efectos secundarios. Sin límites de tasa (rate limits). Realiza búsqueda semántica + léxica híbrida en las bases de datos de memoria del usuario, incluyendo memoria técnica (*memoria_vectorial*) y de perfil (*memory_items*). Si se proporciona session_id, filtra solo memorias de esa sesión. Para búsquedas rápidas cuando el nombre corto sea preferido, usar quick_hipocampo_search (alias idéntico). Esta herramienta es la versión completa con nombre descriptivo. Args: query: Texto de búsqueda en lenguaje natural. Máximo 500 caracteres. Ejemplos: "proyecto contable", "perro", "planta medicinal", "API REST en Python", "gusta del té". session_id: Opcional. Filtra resultados a una sesión específica. rerank: Opcional (TypeSafe). Re-ordena el top-15 de resultados con un juicio de relevancia calibrado (una llamada extra, ~0.5-1s). Úsalo en búsquedas donde la precisión importa más que la latencia. Returns: Resultados formateados del BIRE como texto plano. Incluye: contenido encontrado, scores de relevancia, y metadatos. Si no hay coincidencias, indica búsqueda exitosa pero sin resultados.
  - after: Busca en el Hipocampo (memoria dual con SSC / BIRE v3.6). Es solo lectura — no modifica datos, no tiene efectos secundarios. Sin límites de tasa (rate limits). Realiza búsqueda semántica + léxica híbrida en las bases de datos de memoria del usuario, incluyendo memoria técnica (*memoria_vectorial*) y de perfil (*memory_items*). Si se proporciona session_id, filtra solo memorias de esa sesión. Para búsquedas rápidas cuando el nombre corto sea preferido, usar quick_hipocampo_search (alias idéntico). Esta herramienta es la versión completa con nombre descriptivo. Args: query: Texto de búsqueda en lenguaje natural. Máximo 500 caracteres. Ejemplos: "proyecto contable", "perro", "planta medicinal", "API REST en Python", "gusta del té". session_id: Opcional. Filtra resultados a una sesión específica. rerank: Opcional (TypeSafe). Re-ordena el top-15 de resultados con un juicio de relevancia calibrado (una llamada extra, ~0.5-1s). Úsalo en búsquedas donde la precisión importa más que la latencia. Returns: Resultados formateados del BIRE como texto plano. Incluye: contenido encontrado, scores de relevancia, y metadatos. Cada resultado trae una línea 🔖 de la capa de fuente (2026-10-17): procedencia (autoría), huella de lectura (memory_access) y madurez. "↻ ya traído hace Ns/min" ≈ segunda lectura en esta conversación (reconocer); sin procedencia y sin lecturas → consultar con sospecha. Si no hay coincidencias, indica búsqueda exitosa pero sin resultados.
- 2026-10-17 `list_trade_knowledge` added
  - Lista todas las memorias marcadas como conocimiento del oficio. Muestra id, preview, reusability, domain_profile y days since last access.
- 2026-10-17 `review_trade_knowledge` added
  - Revisa memorias de conocimiento del oficio candidatas a decaer. Presenta memorias con domain_profile='infrastructure' que están cerca de su fecha límite de decay (150+ días sin acceso de los 180). El agente puede: - Refuerza (reinforce): resetea el contador de acceso - Permite decay: la memoria sigue el ciclo normal Ejecutar cada 3 meses via systemd timer o manualmente.
- 2026-10-17 `preload_context` changed (description, inputSchema)
  - before: Pre-load context for a project or workspace. Extracts relevant memories from the project path and returns them as a compressed summary. Use this when starting work on a known project to restore working context. Args: project_path: Absolute path to the project or workspace. If empty, uses current working directory. k: Number of relevant memories to retrieve (default 8, max 20). Returns: Compressed context summary with project-relevant memories.
  - after: Pre-load context for a project or workspace. Extracts relevant memories from the project path and returns them as a compressed summary. Use this when starting work on a known project to restore working context. Args: project_path: Absolute path to the project or workspace. If empty, uses current working directory. k: Number of relevant memories to retrieve (default 8, max 20). rerank: Opcional (TypeSafe). Re-ordena los resultados antes de comprimir, con un juicio de relevancia calibrado. Returns: Compressed context summary with project-relevant memories.
- 2026-10-17 `update_hipocampo` changed (description, inputSchema)
  - before: Actualiza un recuerdo existente en el Hipocampo (memoria_vectorial). Si se proporciona content, se regenera el embedding automáticamente. Los campos no proporcionados no se modifican. Args: id: ID numérico del recuerdo a actualizar. content: Nuevo texto del recuerdo (opcional). Si se provee, se regenera el embedding. memory_type: Nuevo tipo de memoria (opcional). Ej: "event", "decision". code: Código o etiqueta corta (opcional). categories: Nueva lista de categorías (opcional). Returns: Confirmación de la actualización.
  - after: Actualiza un recuerdo existente en el Hipocampo (memoria_vectorial). Si se proporciona content, el embedding se regenera en BACKGROUND (no bloquea la llamada, igual que save_hipocampo): la fila conserva su embedding anterior hasta el backfill y la búsqueda semántica pasa al nuevo en cuanto esté listo. Los campos no proporcionados no se modifican. Args: id: ID numérico del recuerdo a actualizar. content: Nuevo texto del recuerdo (opcional). Si se provee, el embedding se regenera en background. memory_type: Nuevo tipo de memoria (opcional). Ej: "event", "decision". code: Código o etiqueta corta (opcional). categories: Nueva lista de categorías (opcional). meta_patch: Dict opcional que se FUSIONA sobre metadatos (sobrescribe solo las claves incluidas; el resto se conserva). Pensado para sincronizar md5/bytes sin escribir SQL a mano. Ej: {"md5": "6dbe9bdb...", "bytes": 52790} Returns: Confirmación de la actualización.
- 2026-10-17 `contradicciones_hipocampo` changed (description)
  - before: Detecta contradicciones semánticas de una memoria existente. Usa negation-probe embedding: embedea "AFIRMACIÓN: {contenido} — ¿Esto es FALSO según: ..." y compara con el embedding original. Si la distancia de la sonda de negación es MENOR que la del contenido original → señal de contradicción. Args: memory_id: ID numérico de la memoria en memoria_vectorial.
  - after: Detecta contradicciones semánticas de una memoria existente. Con TypeSafe activo (HIPOCAMPO_TYPESAFE=1): un Noul por candidato en una sola llamada, con probabilidad calibrada (umbral 0.7). Fallback: negation-probe embedding: embedea "AFIRMACIÓN: {contenido} — ¿Esto es FALSO según: ..." y compara con el embedding original. Si la distancia de la sonda de negación es MENOR que la del contenido original → señal de contradicción. Args: memory_id: ID numérico de la memoria en memoria_vectorial.
- 2026-10-17 `save_hipocampo` changed (description, inputSchema)
  - before: Guarda un recuerdo en el Hipocampo (memoria_vectorial). INSERT inmediato y NO bloqueante: el embedding se genera en background (_finalize_save_bg) junto con dedup semántico, auto-link y auditoría de contradicciones. Hasta que el embedding se backfillea (~segundos), la memoria queda en tier WARM (embedding=NULL) y es recuperable por texto. Si ya existe un recuerdo casi idéntico (trigram), se advierte y se omite el guardado a menos que force=True. El dedup semántico (>0.9) corre en background y solo loguea — no bloquea. Args: content: Texto del recuerdo a guardar. memory_type: Tipo de memoria. Valores comunes: "event" (evento/experiencia), "decision" (decisión tomada), "profile" (dato personal). Por defecto: "event". code: Código o etiqueta corta para agrupar recuerdos (opcional). Ej: "documentacion", "bugfix", "feature", "setup". categories: Lista de categorías (opcional). Ej: ["python", "mcp", "infraestructura"]. session_id: Opcional. Identificador de sesión para aislar memorias. force: Si True, guarda incluso si existe un recuerdo muy similar. auto_link: Si True, busca recuerdos semánticamente similares (>0.75) y crea enlaces "similar" automáticamente. nivel: Nivel de memoria jerárquica: "episodica" (default) — detalle completo, comprimible, "semantica" — conocimiento consolidado, protegido, "automatica" — regla permanente, nunca se comprime. critico: Si True, la memoria NUNCA se olvida ni se archiva. Protección de por vida independiente del nivel. Returns: Confirmación con el ID asignado.
  - after: Guarda un recuerdo en el Hipocampo (memoria_vectorial). INSERT inmediato y NO bloqueante: el embedding se genera en background (_finalize_save_bg) junto con dedup semántico, auto-link y auditoría de contradicciones. Hasta que el embedding se backfillea (~segundos), la memoria queda en tier WARM (embedding=NULL) y es recuperable por texto. Si ya existe un recuerdo casi idéntico (trigram), se advierte y se omite el guardado a menos que force=True. El dedup semántico (>0.9) corre en background y solo loguea — no bloquea. Args: content: Texto del recuerdo a guardar. memory_type: Tipo de memoria. Valores comunes: "event" (evento/experiencia), "decision" (decisión tomada), "profile" (dato personal). Por defecto: "event". code: Código o etiqueta corta para agrupar recuerdos (opcional). Ej: "documentacion", "bugfix", "feature", "setup". categories: Lista de categorías (opcional). Ej: ["python", "mcp", "infraestructura"]. session_id: Opcional. Identificador de sesión para aislar memorias. force: Si True, guarda incluso si existe un recuerdo muy similar. auto_link: Si True, busca recuerdos semánticamente similares (>0.75) y crea enlaces "similar" automáticamente. nivel: Nivel de memoria jerárquica: "episodica" (default) — detalle completo, comprimible, "semantica" — conocimiento consolidado, protegido, "automatica" — regla permanente, nunca se comprime. critico: Si True, la memoria NUNCA se olvida ni se archiva. Protección de por vida independiente del nivel. snapshot_for: Si se proporciona un ID de regla inmunológica, después de guardar se crea automáticamente un enlace "part_of" desde este recuerdo hacia esa regla. Esto permite que validate_immune_rule encuentre el snapshot pre-cambio vinculado. Returns: Confirmación con el ID asignado.
- 2026-10-17 `quick_hipocampo_search` changed (description, inputSchema)
  - before: Búsqueda rápida en el Hipocampo (alias corto de search_hipocampo). Es solo lectura — no modifica datos, no tiene efectos secundarios. Comportamiento y salida idénticos a search_hipocampo. Útil cuando el cliente MCP prefiera nombres de herramienta más cortos. Para nombre descriptivo, usar search_hipocampo. Args: query: Texto de búsqueda en lenguaje natural. Igual que search_hipocampo. Ej: "API REST en Python", "presupuesto". session_id: Opcional. Filtra resultados a una sesión específica. Returns: Mismo formato que search_hipocampo: resultados como texto plano con scores de relevancia y metadatos.
  - after: Búsqueda rápida en el Hipocampo (alias corto de search_hipocampo). Es solo lectura — no modifica datos, no tiene efectos secundarios. Comportamiento y salida idénticos a search_hipocampo. Útil cuando el cliente MCP prefiera nombres de herramienta más cortos. Para nombre descriptivo, usar search_hipocampo. Args: query: Texto de búsqueda en lenguaje natural. Igual que search_hipocampo. Ej: "API REST en Python", "presupuesto". session_id: Opcional. Filtra resultados a una sesión específica. rerank: Opcional (TypeSafe). Re-ordena el top-15 con un juicio de relevancia calibrado (una llamada extra, ~0.5-1s). Returns: Mismo formato que search_hipocampo: resultados como texto plano con scores de relevancia y metadatos.
- 2026-10-17 `search_hipocampo` changed (description, inputSchema)
  - before: Busca en el Hipocampo (memoria dual con SSC / BIRE v3.6). Es solo lectura — no modifica datos, no tiene efectos secundarios. Sin límites de tasa (rate limits). Realiza búsqueda semántica + léxica híbrida en las bases de datos de memoria del usuario, incluyendo memoria técnica (*memoria_vectorial*) y de perfil (*memory_items*). Si se proporciona session_id, filtra solo memorias de esa sesión. Para búsquedas rápidas cuando el nombre corto sea preferido, usar quick_hipocampo_search (alias idéntico). Esta herramienta es la versión completa con nombre descriptivo. Args: query: Texto de búsqueda en lenguaje natural. Máximo 500 caracteres. Ejemplos: "proyecto contable", "perro", "planta medicinal", "API REST en Python", "gusta del té". session_id: Opcional. Filtra resultados a una sesión específica. Returns: Resultados formateados del BIRE como texto plano. Incluye: contenido encontrado, scores de relevancia, y metadatos. Si no hay coincidencias, indica búsqueda exitosa pero sin resultados.
  - after: Busca en el Hipocampo (memoria dual con SSC / BIRE v3.6). Es solo lectura — no modifica datos, no tiene efectos secundarios. Sin límites de tasa (rate limits). Realiza búsqueda semántica + léxica híbrida en las bases de datos de memoria del usuario, incluyendo memoria técnica (*memoria_vectorial*) y de perfil (*memory_items*). Si se proporciona session_id, filtra solo memorias de esa sesión. Para búsquedas rápidas cuando el nombre corto sea preferido, usar quick_hipocampo_search (alias idéntico). Esta herramienta es la versión completa con nombre descriptivo. Args: query: Texto de búsqueda en lenguaje natural. Máximo 500 caracteres. Ejemplos: "proyecto contable", "perro", "planta medicinal", "API REST en Python", "gusta del té". session_id: Opcional. Filtra resultados a una sesión específica. rerank: Opcional (TypeSafe). Re-ordena el top-15 de resultados con un juicio de relevancia calibrado (una llamada extra, ~0.5-1s). Úsalo en búsquedas donde la precisión importa más que la latencia. Returns: Resultados formateados del BIRE como texto plano. Incluye: contenido encontrado, scores de relevancia, y metadatos. Si no hay coincidencias, indica búsqueda exitosa pero sin resultados.

Full history: https://api.protogrid.dev/v1/servers/io.github.carrasquelalex1%2Fhipocampo/changes

## Remotes

- https://alexbell1-hipocampo-mcp.hf.space/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (39)

- `add_watch_dir`: Agrega un directorio al watch list para auto-reindexación.
- `compress_hipocampo`: 
    Compress retrieved memories using a hybrid approach (extractive + LLM).

    First searches Hipocampo (SSC v1.0), then compresses the top-k results:
    - method="extractive": sentence-level keyword relevance (fast, no API cost)
    - method="llm": summarization via NVIDIA NIM (highest quality, API cost)
    - method="hybrid" (default): uses LLM for technical/code content, extractive for generic text

    Use this tool BEFORE sending context to another LLM to reduce prompt size
    while preserving critical information.

    Args:
        query: Natural language search query.
        k: Number of memories to retrieve (default 5, max 20).
        method: Compression method: "hybrid" (default), "extractive", or "llm".
        target_token: Target token count (-1 = auto, based on content).
        include_metadata: Include per-memory details in output.
        budget_ratio: Scale factor for auto-estimated tokens (default 1.0).

    Returns:
        Compressed context as plain text with compression statistics.
        Includes: compressed text, original/compressed char counts, ratio, latency.
    
- `consolidate_hipocampo`: 
    Consolidación jerárquica: migra memorias episódicas antiguas a semánticas.

    Busca recuerdos con nivel 'episodica' más antiguos que min_age_days
    y los promueve a 'semantica', opcionalmente comprimiendo su contenido.

    Args:
        min_age_days: Edad mínima en días para consolidar (default 7).
        dry_run: Si True, solo muestra qué se consolidaría.

    Returns:
        Reporte de la consolidación.
    
- `contradicciones_hipocampo`: 
    Detecta contradicciones semánticas de una memoria existente.

    Con TypeSafe activo (HIPOCAMPO_TYPESAFE=1): un Noul por candidato en una
    sola llamada, con probabilidad calibrada (umbral 0.7).
    Fallback: negation-probe embedding: embedea "AFIRMACIÓN: {contenido} — ¿Esto es FALSO según: ..."
    y compara con el embedding original. Si la distancia de la sonda de negación
    es MENOR que la del contenido original → señal de contradicción.

    Args:
        memory_id: ID numérico de la memoria en memoria_vectorial.
    
- `decay_hipocampo`: 
    Aplica decaimiento temporal a enlaces del grafo Y memorias antiguas.

    ENLACES: peso exponencial, half-life 90 días. Elimina enlaces < 0.01.
    MEMORIAS: archiva episodica sin acceso ni protección a memoria_historica.

    Protecciones (nunca se archivan):
      - nivel = automatica o semantica
      - metadatos.critico = true
      - con enlaces entrantes en memory_links

    Args:
        dry_run: True (default) = solo lectura. False = ejecuta cambios.
        min_age_days: Edad mínima en días para considerar memoria candidata.

    Returns:
        Reporte del decaimiento aplicado.
    
- `delete_hipocampo`: 
    Elimina un recuerdo del Hipocampo (memoria_vectorial) por su ID.

    Esta operación es irreversible. Una vez eliminado, el recuerdo
    no podrá recuperarse ni aparecerá en búsquedas futuras.

    Args:
        id: ID numérico del recuerdo a eliminar.

    Returns:
        Confirmación de eliminación.
    
- `graph_hipocampo`: 
    Explora el grafo de memoria desde un nodo raíz.

    Args:
        node_id: ID del recuerdo raíz. Si es 0, lista todos los nodos
                 con enlaces (vista general).
        depth: Profundidad de exploración (default 2, max 5).
        max_nodes: Máximo de nodos a mostrar (default 50).

    Returns:
        Árbol ASCII del grafo de memoria.
    
- `hipocampo_auto_repair`: 
    Intenta reparar automáticamente problemas detectados en el sistema.

    Reparaciones posibles:
    - Reiniciar PostgreSQL si está caído
    - Crear tablas faltantes desde esquema.sql
    - Verificar/configurar NVIDIA_API_KEY

    Returns:
        Reporte de reparaciones ejecutadas.
    
- `hipocampo_budget`: 
    Gestiona el presupuesto de memoria (budget + tiering automático).

    3 tiers:
      - HOT: embedding presente (memoria_vectorial con pgvector)
      - WARM: embedding=NULL (excluido de HNSW, sigue buscable léxicamente)
      - COLD: contenido movido a memoria_historica (fuera de búsqueda principal)

    Protecciones: automatica/semantica/critico/enlazadas → exemptas.

    Args:
        dry_run: True (default) = solo análisis. False = ejecuta tiering.
    
- `hipocampo_checkpoint`: 
    Comprime memorias antiguas usando checkpointing logarítmico.

    Con dry_run=True (default) es solo lectura — seguro, no modifica datos.
    Con dry_run=False es destructivo: comprime memorias antiguas de forma
    irreversible (las originales se eliminan tras comprimir). Idempotente:
    ejecutar múltiples veces no daña datos.

    Para ejecutar checkpoint como parte del ciclo completo de mantenimiento,
    usar hipocampo_maintenance (paso 3 del ciclo). Esta herramienta es para
    ejecución puntual o previsualización.

    Recomendado ejecutar periódicamente (semanal o mensual) para mantener
    el rendimiento del sistema.

    Args:
        dry_run: Si es True (default), solo muestra qué se comprimiría.
                 Si es False, ejecuta la compresión (irreversible).

    Returns:
        Reporte del checkpointing ejecutado o simulado.
        Incluye: cantidad de registros comprimidos, espacio liberado.
    
- `hipocampo_dedup`: 
    Detecta y opcionalmente fusiona duplicados en las tablas de memoria.

    Con merge=False (default) es solo lectura — seguro de ejecutar, no modifica datos.
    Con merge=True es destructivo: consolida filas duplicadas en una sola, operación
    irreversible. Usar con precaución. Ejecutar primero sin merge para previsualizar.

    ¿Qué es un duplicado? Dos registros con alta similitud semántica (embedding
    + texto), por encima del umbral configurable (default 0.95).

    El reporte incluye: cantidad de duplicados encontrados, IDs afectados y
    resumen de fusión si se ejecutó merge.

    Para ejecutar dedup como parte del ciclo completo de mantenimiento, usar
    hipocampo_maintenance (paso 2 del ciclo). Esta herramienta es para uso
    puntual o previsualización antes del merge.

    Args:
        merge: Si es True, fusiona los duplicados encontrados (irreversible).
               Si es False (default), solo muestra análisis (seguro).

    Returns:
        Reporte de duplicados encontrados o fusionados.
    
- `hipocampo_health`: 
    Ejecuta un health check completo del sistema Hipocampo.

    Verifica: PostgreSQL, NVIDIA API, tablas, espacio en disco, extensiones.

    Returns:
        Reporte formateado del estado del sistema.
    
- `hipocampo_maintenance`: 
    Ejecuta el ciclo completo de mantenimiento:
    1. Health check → auto-repair si es necesario
    2. Dedup → fusiona duplicados
    3. Checkpoint → comprime memorias antiguas
    4. Purge → limpia access logs antiguos (>30d)
    5. Tune → ajusta thresholds según métricas

    Nota: hipocampo_budget y decay_hipocampo se ejecutan manualmente
    o via cron separado (son destructivos y requieren dry_run previo).

    Returns:
        Reporte consolidado del mantenimiento.
    
- `hipocampo_stats`: 
    Muestra estadísticas de rendimiento del sistema Hipocampo.

    Analiza latencia de queries, métodos usados, scores promedios
    y da recomendaciones de optimización.

    Returns:
        Reporte de métricas y recomendaciones.
    
- `hipocampo_tune`: 
    Ajusta automáticamente los thresholds y pesos del SSC
    basado en las métricas de rendimiento acumuladas.

    Es destructivo: modifica los thresholds y pesos de forma irreversible.
    Sin embargo, es idempotente: ejecutarlo múltiples veces converge al
    mismo resultado. Usar con precaución.

    Para solo ver estadísticas sin modificar nada, usar hipocampo_stats
    (solo lectura). Para ejecutar el ciclo completo de mantenimiento
    (que incluye tune como paso 5), usar hipocampo_maintenance.

    Recomendado ejecutar solo después de acumular suficientes métricas
    (al menos 100 consultas registradas). No usar si el sistema funciona
    correctamente sin degradación.

    Returns:
        Reporte de ajustes aplicados (nuevos thresholds y pesos).
    
- `index_project`: 
    Indexa archivos de código fuente de un proyecto en Hipocampo (RAG).

    Escanea archivos PHP, JS, TS, Python, SQL, HTML, CSS, JSON, YAML,
    los divide en chunks significativos y los guarda como recuerdos con
    embedding para búsqueda semántica.

    La segunda corrida solo indexa archivos modificados (por mtime).

    Args:
        project_path: Ruta absoluta del proyecto a indexar.
                      Si está vacía, usa el directorio actual.
        force: Si True, re-indexa todo aunque no haya cambios.

    Returns:
        Estadísticas de la indexación.
    
- `link_hipocampo`: 
    Crea un enlace entre dos recuerdos en el grafo de memoria.

    Args:
        source_id: ID del recuerdo origen (numérico: memoria_vectorial; string: memory_items).
        target_id: ID del recuerdo destino.
        relation_type: Tipo de relación. Valores comunes:
                       "related" (default), "follow_up", "part_of",
                       "references", "similar", "chain", "validates", "contradicts".
        weight: Peso de la relación (0.0 a 1.0, default 1.0).

    Returns:
        Confirmación del enlace creado.
    
- `list_trade_knowledge`: Lista todas las memorias marcadas como conocimiento del oficio.

    Muestra id, preview, reusability, domain_profile y days since last access.
    
- `list_watch_dirs`: Lista los directorios configurados para auto-reindexación.
- `list_watches`: 
    Lista todos los webhooks registrados.

    Returns:
        Lista de watches con ID, patrón y URL.
    
- `path_hipocampo`: 
    Encuentra el camino más corto entre dos recuerdos en el grafo de memoria.

    Args:
        from_id: ID del recuerdo origen.
        to_id: ID del recuerdo destino.
        max_depth: Profundidad máxima de búsqueda (default 5, max 10).

    Returns:
        Camino encontrado como secuencia de nodos.
    
- `preload_context`: 
    Pre-load context for a project or workspace. Extracts relevant memories
    from the project path and returns them as a compressed summary.

    Use this when starting work on a known project to restore working context.

    Args:
        project_path: Absolute path to the project or workspace.
                      If empty, uses current working directory.
        k: Number of relevant memories to retrieve (default 8, max 20).
        rerank: Opcional (TypeSafe). Re-ordena los resultados antes de
                comprimir, con un juicio de relevancia calibrado.

    Returns:
        Compressed context summary with project-relevant memories.
    
- `profile_hipocampo`: 
    Guarda un dato de perfil personal en Hipocampo (memory_items).

    A diferencia de save_hipocampo (que guarda en memoria_vectorial técnica),
    esta herramienta guarda en memory_items, que está diseñado para datos
    personales: gustos, familia, preferencias, datos biográficos.

    Args:
        summary: Texto corto con el dato personal. Ej: "Al usuario le gusta el té de hierbas".
        extra: Información adicional en texto plano (opcional).
        categories: Categorías (opcional). Ej: ["personal_info", "gustos"].

    Returns:
        Confirmación con el ID asignado.
    
- `quick_hipocampo_search`: 
    Búsqueda rápida en el Hipocampo (alias corto de search_hipocampo).

    Es solo lectura — no modifica datos, no tiene efectos secundarios.
    Comportamiento y salida idénticos a search_hipocampo.

    Útil cuando el cliente MCP prefiera nombres de herramienta más cortos.
    Para nombre descriptivo, usar search_hipocampo.

    Args:
        query: Texto de búsqueda en lenguaje natural. Igual que
               search_hipocampo. Ej: "API REST en Python", "presupuesto".
        session_id: Opcional. Filtra resultados a una sesión específica.
        rerank: Opcional (TypeSafe). Re-ordena el top-15 con un juicio de
                relevancia calibrado (una llamada extra, ~0.5-1s).

    Returns:
        Mismo formato que search_hipocampo: resultados como texto plano
        con scores de relevancia y metadatos.
    
- `reindex_now`: Fuerza reindexación inmediata de un directorio (o todos los watch).
- `remove_watch_dir`: Elimina un directorio del watch list.
- `restaurar_historica`: 
    Restaura una memoria desde memoria_historica a memoria_vectorial.

    Reconstruye embedding automáticamente. La memoria vuelve al tier HOT.

    Args:
        historica_id: ID de la memoria en memoria_historica.
    
- `review_automatica`: 
    Revisa reglas 'automatica' sin revisión en los últimos N días.

    Las reglas automatica son permanentes por diseño, pero pueden degradarse
    a 'semantica' si no han sido útiles (review_count=0) después de max_age_days.

    Con dry_run=True solo lista las reglas candidatas a degradación.
    Con dry_run=False las degrada a 'semantica' (no se borran, solo pierden
    inmunidad de compresión).

    Args:
        max_age_days: Edad máxima sin revisión antes de considerar degradación (default 30).
        dry_run: Si True, solo muestra qué se degradaría.

    Returns:
        Reporte de reglas encontradas.
    
- `review_trade_knowledge`: Revisa memorias de conocimiento del oficio candidatas a decaer.

    Presenta memorias con domain_profile='infrastructure' que están
    cerca de su fecha límite de decay (150+ días sin acceso de los 180).
    El agente puede:
    - Refuerza (reinforce): resetea el contador de acceso
    - Permite decay: la memoria sigue el ciclo normal

    Ejecutar cada 3 meses via systemd timer o manualmente.
    
- `rollback_checkpoint`: 
    Revierte un checkpoint usando el snapshot guardado previamente.

    Busca el snapshot por ID y verifica qué IDs originales fueron comprimidos.
    Si los originales aún existen, reporta que no se necesita rollback.
    Si fueron eliminados, intenta restaurarlos.

    Args:
        snapshot_id: ID del snapshot [CHECKPOINT SNAPSHOT] guardado.

    Returns:
        Reporte de la operación de rollback.
    
- `save_hipocampo`: 
    Guarda un recuerdo en el Hipocampo (memoria_vectorial).

    INSERT inmediato y NO bloqueante: el embedding se genera en background
    (_finalize_save_bg) junto con dedup semántico, auto-link y auditoría de
    contradicciones. Hasta que el embedding se backfillea (~segundos), la
    memoria queda en tier WARM (embedding=NULL) y es recuperable por texto.

    Si ya existe un recuerdo casi idéntico (trigram), se advierte y se omite
    el guardado a menos que force=True. El dedup semántico (>0.9) corre en
    background y solo loguea — no bloquea.

    Args:
        content: Texto del recuerdo a guardar.
        memory_type: Tipo de memoria. Valores comunes:
                     "event" (evento/experiencia),
                     "decision" (decisión tomada),
                     "profile" (dato personal).
                     Por defecto: "event".
        code: Código o etiqueta corta para agrupar recuerdos (opcional).
              Ej: "documentacion", "bugfix", "feature", "setup".
        categories: Lista de categorías (opcional).
                    Ej: ["python", "mcp", "infraestructura"].
        session_id: Opcional. Identificador de sesión para aislar memorias.
        force: Si True, guarda incluso si existe un recuerdo muy similar.
        auto_link: Si True, busca recuerdos semánticamente similares (>0.75)
                   y crea enlaces "similar" automáticamente.
        nivel: Nivel de memoria jerárquica:
               "episodica" (default) — detalle completo, comprimible,
               "semantica" — conocimiento consolidado, protegido,
               "automatica" — regla permanente, nunca se comprime.
        critico: Si True, la memoria NUNCA se olvida ni se archiva.
                 Protección de por vida independiente del nivel.
        snapshot_for: Si se proporciona un ID de regla inmunológica,
                      después de guardar se crea automáticamente un enlace
                      "part_of" desde este recuerdo hacia esa regla.
                      Esto permite que validate_immune_rule encuentre el
                      snapshot pre-cambio vinculado.
        autor: Procedencia del recuerdo (capa de fuente, 2026-10-17):
               "agente" (default; lo escribiste tú en una sesión),
               "usuario" (dictado o habla directa del usuario),
               "catalogo" (entrada generada al indexar archivos).
               Viaja en metadatos.autor y aparece como línea 🔖 en la
               búsqueda, para distinguir reencontrar de consultar.

    Returns:
        Confirmación con el ID asignado.
    
- `search_code`: 
    Busca código fuente indexado en Hipocampo (RAG).

    Similar a search_hipocampo pero filtra solo recuerdos de tipo
    code_snippet y devuelve fragmentos de código real con
    ubicación de archivo.

    Args:
        query: Consulta en lenguaje natural.
        k: Número de resultados (default 5, max 20).
        language: Filtrar por lenguaje (php, javascript, python, sql, etc.).
                  Vacío = todos los lenguajes.

    Returns:
        Fragmentos de código relevantes con metadatos de archivo.
    
- `search_hipocampo`: 
    Busca en el Hipocampo (memoria dual con SSC / BIRE v3.6).

    Es solo lectura — no modifica datos, no tiene efectos secundarios.
    Sin límites de tasa (rate limits).

    Realiza búsqueda semántica + léxica híbrida en las bases de datos de
    memoria del usuario, incluyendo memoria técnica (*memoria_vectorial*) y
    de perfil (*memory_items*).

    Si se proporciona session_id, filtra solo memorias de esa sesión.

    Para búsquedas rápidas cuando el nombre corto sea preferido, usar
    quick_hipocampo_search (alias idéntico). Esta herramienta es la
    versión completa con nombre descriptivo.

    Args:
        query: Texto de búsqueda en lenguaje natural. Máximo 500 caracteres.
               Ejemplos: "proyecto contable", "perro", "planta medicinal",
               "API REST en Python", "gusta del té".
        session_id: Opcional. Filtra resultados a una sesión específica.
        rerank: Opcional (TypeSafe). Re-ordena el top-15 de resultados con un
                juicio de relevancia calibrado (una llamada extra, ~0.5-1s).
                Úsalo en búsquedas donde la precisión importa más que la latencia.

    Returns:
        Resultados formateados del BIRE como texto plano.
        Incluye: contenido encontrado, scores de relevancia, y metadatos.
        Cada resultado trae una línea 🔖 de la capa de fuente (2026-10-17):
        procedencia (autoría), huella de lectura (memory_access) y madurez.
        "↻ ya traído hace Ns/min" ≈ segunda lectura en esta conversación
        (reconocer); sin procedencia y sin lecturas → consultar con sospecha.

        Si no hay coincidencias, indica búsqueda exitosa pero sin resultados.
    
- `set_nivel_hipocampo`: 
    Cambia el nivel jerárquico de un recuerdo.

    Niveles:
      - "episodica" — detalle completo, comprimible por checkpoint
      - "semantica" — conocimiento consolidado, protegido de compresión
      - "automatica" — regla permanente, nunca se comprime/checkpointea

    Args:
        id: ID del recuerdo.
        nivel: Nuevo nivel: "episodica", "semantica", o "automatica".

    Returns:
        Confirmación del cambio.
    
- `unlink_hipocampo`: 
    Elimina un enlace del grafo de memoria.

    Args:
        id: ID del enlace a eliminar (si se conoce).
        source_id: Si no se provee id, elimina por source+target+type.
        target_id: ID destino (requerido si no hay id).
        relation_type: Tipo de relación (opcional si no hay id).

    Returns:
        Confirmación de eliminación.
    
- `unwatch_hipocampo`: 
    Elimina un webhook registrado por su ID.

    Args:
        id: ID del watch a eliminar.

    Returns:
        Confirmación de eliminación.
    
- `update_hipocampo`: 
    Actualiza un recuerdo existente en el Hipocampo (memoria_vectorial).

    Si se proporciona content, el embedding se regenera en BACKGROUND (no
    bloquea la llamada, igual que save_hipocampo): la fila conserva su
    embedding anterior hasta el backfill y la búsqueda semántica pasa al
    nuevo en cuanto esté listo. Los campos no proporcionados no se modifican.

    Args:
        id: ID numérico del recuerdo a actualizar.
        content: Nuevo texto del recuerdo (opcional). Si se provee, el embedding
                 se regenera en background.
        memory_type: Nuevo tipo de memoria (opcional). Ej: "event", "decision".
        code: Código o etiqueta corta (opcional).
        categories: Nueva lista de categorías (opcional).
        meta_patch: Dict opcional que se FUSIONA sobre metadatos (sobrescribe
                    solo las claves incluidas; el resto se conserva). Pensado
                    para sincronizar md5/bytes sin escribir SQL a mano.
                    Ej: {"md5": "6dbe9bdb...", "bytes": 52790}

    Returns:
        Confirmación de la actualización.
    
- `validate_immune_rule`: 
    Valida una regla inmunológica (Nivel 4).

    Analiza una regla 'automatica' marcada como REGLA INMUNOLÓGICA:
    1. Verifica snapshots pre-cambio vinculados en memory_links
    2. Detecta reglas contradictorias sobre el mismo archivo/proyecto
    3. Reporta reglas huérfanas (>30d sin enlaces entrantes)

    Args:
        rule_id: ID de la regla inmunológica a validar.

    Returns:
        Reporte de validación con recomendaciones.
    
- `watch_hipocampo`: 
    Registra un webhook que se dispara cuando se crea/modifica/elimina
    un recuerdo cuyo contenido o metadatos contengan el patrón dado.

    Args:
        pattern: Texto a buscar en contenido o metadatos del recuerdo.
        webhook_url: URL que recibirá un POST con event, id, content, metadatos.

    Returns:
        Confirmación con ID del watch creado.
    
