Skip to main content
Glama

LoreConvo v0.10.6Tu memoria sigue a tu identidad, no a tu herramienta — con tu consentimiento.

LoreConvo es la única memoria de IA que lleva tu contexto a través de Claude Code, Cowork, Codex, Cursor y Hermes Agent. Una instalación, una memoria, en todos tus entornos de código.

Instala directamente desde el marketplace de plugins de Claude Code, o vía PyPI: uvx loreconvo

¿Por qué LoreConvo?

Funciona dondequiera que trabajes

LoreConvo funciona en Claude Code, Cowork, Cursor, Codex y Hermes — la misma capa de memoria, sin importar qué cliente uses. Cuando cambias de proyecto a mitad de camino, tu contexto viaja contigo automáticamente.

La mayoría de las herramientas aíslan la memoria por máquina o espacio de trabajo. LoreConvo almacena todo localmente en una base de datos SQLite que tú posees, y lo muestra dondequiera que estés. La captura ocurre de dos maneras: explícitamente mediante las herramientas de guardado, o automáticamente al final de la sesión si instalas los hooks opcionales. De cualquier manera, puedes inspeccionar, editar o eliminar cualquier memoria en cualquier momento.

Tú controlas lo que se guarda

LoreConvo te da el control: la captura automática solo se ejecuta si eliges instalar los hooks de sesión, cada guardado es inspeccionable, y puedes eliminar cualquier memoria en cualquier momento.

Cada memoria te muestra exactamente de dónde proviene — qué superficie la capturó, cuándo, a qué contexto de proyecto pertenece, y qué skill la generó. Sin misterios. Procedencia completa.

Tu memoria permanece en tu máquina

LoreConvo almacena todo en una base de datos SQLite en tu propia máquina. Tus datos permanecen locales a menos que habilites explícitamente la función opcional de resumen con IA (Pro, desactivada por defecto), que envía un extracto de la transcripción a la API de Anthropic usando tu propia clave. Sin cuentas en la nube. Sin proveedor con acceso a tu historial de sesiones.

Tus sesiones viven en ~/.loreconvo/sessions.db — un archivo que posees, puedes respaldar y eliminar cuando quieras.

Memoria estructurada, no transcripciones crudas

LoreConvo captura dos tipos de memoria para cada sesión:

  • Memoria episódica: lo que sucedió — resúmenes, artefactos creados, preguntas abiertas dejadas atrás

  • Memoria semántica: lo que se decidió — conclusiones estables sobre el proyecto que persisten entre sesiones

Juntas, estas le dan a Claude un registro estructurado y buscable de la historia de tu proyecto, no solo un montón de transcripciones de chat.

Related MCP server: ai-memory

Benchmark de Recuperación

La búsqueda FTS5 de LoreConvo se evalúa contra un corpus sintético de 60 sesiones (6 áreas temáticas, 36 consultas etiquetadas).

Variante

Recall@5

MRR

FTS5 + expansión de tokens compuestos (por defecto)

88.9%

0.875

FTS5 base (sin expansión)

72.2%

0.708

La expansión de tokens compuestos (preprocesamiento de consultas camelCase / snake_case) eleva el Recall@5 en +35.7 pp en consultas que usan identificadores técnicos como autoSave, pipeline_tracker y get_context_for.

Informe completo del benchmark | Reproducir

Inicio Rápido

Un comando para instalar:

bash install.sh

Esto crea un entorno virtual, instala dependencias y verifica que todo funcione. Sin cambios en el Python del sistema, sin comandos pip manuales.

Usando LoreConvo

Claude Code (Terminal)

Inicia una sesión con el plugin cargado:

claude --plugin-dir /path/to/loreconvo

O cárgalo dentro de una sesión existente:

/plugin add /path/to/loreconvo

Reemplaza /path/to/loreconvo con la ubicación donde guardaste la carpeta fuente.

Después de hacer cambios en el código, usa /reload-plugins para actualizar sin reiniciar.

Una vez cargado, Claude tiene acceso automáticamente a las 39 herramientas MCP de LoreConvo. Pídele a Claude que "guarde esta sesión" o "recuerde lo que discutimos sobre X" y usará las herramientas por sí mismo.

Cowork (Aplicación de escritorio)

  1. Haz clic en el botón + junto al cuadro de mensaje

  2. Selecciona Plugins

  3. Selecciona Añadir plugin

  4. Navega hasta la carpeta fuente de loreconvo

Importante: Acceso compartido a la base de datos

Cowork se ejecuta en una VM sandbox y no puede ver el sistema de archivos de tu Mac por defecto. Para leer sesiones guardadas por Claude Code, pídele a Claude en Cowork:

"Monta mi carpeta ~/.loreconvo"

Una vez montada, Cowork lee y escribe en la misma base de datos que Claude Code. Las sesiones guardadas en Code aparecen instantáneamente en Cowork.

Claude Chat (Web)

Chat no admite plugins, por lo que LoreConvo proporciona un puente de un comando. Ejecuta esto en tu terminal:

bash export-to-chat.sh

Esto exporta tu última sesión y la copia a tu portapapeles (macOS). Cambia a Chat y pega (Cmd+V). Chat tiene instantáneamente el contexto de tu sesión de Code o Cowork.

Para buscar una sesión específica:

bash export-to-chat.sh "tax prep"

Cómo Funciona en Todas las Superficies

El valor central de LoreConvo es que el contexto persiste automáticamente entre las superficies de Claude. Aquí está la cadena completa:

Claude Code  (~/.claude/settings.json via `claude mcp add`)
  |-- SessionEnd hook --> auto_save.py --> ~/.loreconvo/sessions.db
  |-- SessionStart hook <-- auto_load.py <-+
                                           |
Cursor       (.cursor/mcp.json) <--MCP-----+
Codex        (~/.codex/config.toml) <--MCP-+
Hermes Agent (~/.hermes/config.yaml) <-MCP-+
Cowork       (MCP-native execution env) <--+
  All surfaces: save_session / get_recent_sessions / search_sessions

Claude Chat (web)
  |-- export-to-chat.sh --> clipboard --> paste into Chat

Claude Code es la superficie principal. Los hooks se ejecutan automáticamente:

  • Cuando una sesión termina, auto_save.py captura la conversación y guarda un resumen estructurado (decisiones, artefactos, preguntas abiertas, etiquetas) en la base de datos SQLite local.

  • Cuando una nueva sesión comienza, auto_load.py consulta la base de datos, puntúa las sesiones recientes por calidad de señal, e inyecta el contexto más relevante en la sesión como contexto del sistema. Las sesiones con preguntas abiertas y decisiones obtienen la puntuación más alta; las sesiones de baja señal se filtran. También indexa cualquier MEMORY.md encontrado en el directorio del proyecto (ver Indexación automática de MEMORY.md a continuación).

Cursor se conecta a través de .cursor/mcp.json en la raíz del proyecto — el mismo protocolo MCP que Claude Code. Consulta INSTALL.md para detalles de configuración.

OpenAI Codex se conecta a través de ~/.codex/config.toml usando una sección [mcp_servers.<name>]. Consulta INSTALL.md para detalles de configuración.

Hermes Agent se conecta a través de ~/.hermes/config.yaml bajo la clave mcp_servers:. Consulta INSTALL.md para detalles de configuración.

Claude Chat (web) no admite plugins. El script export-to-chat.sh cubre la brecha: exporta tu sesión más reciente a tu portapapeles para que puedas pegarla directamente en Chat. Esto le da a Chat el mismo contexto que Code habría cargado automáticamente.

El resultado: cuando cambias de superficie a mitad de proyecto, nunca tienes que volver a explicar lo que estabas haciendo.

Tus Datos Siempre Están Disponibles

LoreConvo funciona a través de herramientas MCP cuando están disponibles y recurre automáticamente a scripts incluidos cuando no lo están. Tus sesiones están seguras independientemente del estado de MCP — las mismas operaciones de guardado, búsqueda y recuperación funcionan de cualquier manera. No necesitas configurar nada; el skill del plugin maneja el cambio silenciosamente.

Espacios de Trabajo de Proyecto

Los proyectos de LoreConvo son espacios de trabajo persistentes — cada sesión, decisión y artefacto de tu trabajo en un proyecto es buscable desde cualquier superficie de Claude.

# Create a project workspace
create_project("my-api", "REST API project", expected_skills=["openapi", "python"])

# Add persistent project instructions (optional)
create_project(
    "my-api",
    description="REST API project",
    instructions="Python 3.10+, SQLite only. No cloud dependencies. Deploy via Docker."
)

# See recent sessions, skill usage, and open questions for the project
get_project("my-api")

# Search scoped to the project
search_sessions("auth design", project="my-api")

Instrucciones de Proyecto (opcional): Cuando creas un proyecto, puedes almacenar instrucciones o restricciones persistentes que Claude verá al inicio de la sesión. Esto es útil para hacer cumplir estándares de todo el proyecto sin repetirlos en cada archivo CLAUDE.md. Las instrucciones se muestran en el contexto de auto-carga antes de los resúmenes de sesiones recientes.

Usado con LoreDocs, LoreConvo forma un espacio de trabajo de proyecto portátil para todo Claude — memoria de sesión Y conocimiento estructurado, enteramente en tu máquina. Donde los espacios de trabajo de IA en la nube te atan a un ecosistema, el par Lore funciona en cada superficie de Claude que ya usas.

Indexación automática de MEMORY.md

Si tu proyecto tiene un archivo MEMORY.md, LoreConvo lo indexa automáticamente en cada inicio de sesión. El contenido se vuelve buscable junto con tus sesiones regulares a través de search_sessions.

Esto significa que Claude puede recordar convenciones del proyecto, notas de equipo o decisiones arquitectónicas de MEMORY.md sin que tengas que mencionarlas. Los resultados de búsqueda de MEMORY.md están etiquetados como memory_md y tienen source='file_memory' para que puedas distinguirlos de las entradas de sesión regulares.

¿Qué directorio se escanea?

Por defecto, LoreConvo escanea el directorio donde se ejecuta Claude Code (el directorio de trabajo actual). Para apuntar a un directorio diferente, pasa LORECONVO_PROJECT_PATH como una bandera de entorno en tu comando claude mcp add --scope user:

"--env=LORECONVO_PROJECT_PATH=/Users/YOUR_USERNAME/projects/my_project"

Reemplaza YOUR_USERNAME y my_project con tus valores reales. Usa la ruta absoluta completa — no uses ~ ni $HOME.

Filtrar entradas de MEMORY.md en los resultados de búsqueda

Para incluir entradas de MEMORY.md en una búsqueda, usa search_sessions normalmente — aparecen automáticamente. Para ver solo entradas de MEMORY.md, filtra por etiqueta:

"Busca sesiones de LoreConvo etiquetadas memory_md para 'convenciones de base de datos'."

El índice se actualiza cada vez que comienza una sesión (idempotente — no se acumulan duplicados).


Verificar la Instalación

Después de instalar, verifica que LoreConvo funcione pidiéndole a Claude:

"Ejecuta get_recent_sessions y muéstrame los resultados."

Si ves una lista de sesiones (o una lista vacía si es tu primera vez), LoreConvo está conectado. Si obtienes un error sobre herramientas faltantes, vuelve a ejecutar bash install.sh y recarga el plugin.

Para verificar los hooks (solo Claude Code):

"Comprueba si LoreConvo cargó automáticamente algún contexto al inicio de esta sesión."

Si el hook SessionStart está funcionando, Claude habrá recibido contexto de tus sesiones recientes automáticamente.

Configuración recomendada de CLAUDE.md

Para la mejor experiencia, añade el siguiente fragmento a tu ~/.claude/CLAUDE.md (global) o al CLAUDE.md de tu proyecto. Esto le dice a Claude cómo usar LoreConvo de manera consistente entre sesiones.

## LoreConvo (persistent session memory)

At session start:
1. Call `get_recent_sessions` to check for recent context relevant to the current work.
2. Use this context to avoid re-explaining things already discussed in prior sessions.

During the session:
- If important decisions are made or domain knowledge is shared, note it for the session summary.

At session end:
- Call `save_session` with a summary of what was accomplished, key decisions, open questions,
  and any artifacts created. Use appropriate tags (e.g., project name, surface).

Para usuarios de Cowork: Cowork no ejecuta hooks automáticamente. Añade instrucciones para llamar a get_recent_sessions al inicio de la sesión y save_session al final en tu CLAUDE.md de proyecto. Consulta COWORK_RESTORE.md para detalles.

Planes: Gratis vs Pro

LoreConvo es local-first y gratuito de usar. Pro ($8/mes) elimina el límite de sesiones y desbloquea resúmenes de calidad LLM, búsqueda de recuperación híbrida y vinculación entre productos. Todo se ejecuta en tu máquina en cualquier plan — Pro no añade ningún componente en la nube.

Búsqueda del nivel gratuito: palabras clave (FTS5) + orden por recencia. Búsqueda del nivel Pro: recuperación híbrida — vectorial (BGE-small-en-v1.5), BM25 de texto completo y reordenamiento por recencia combinados mediante fusión RRF. Encuentra sesiones por significado, no solo por palabras clave.

Gratis

Pro ($8/mes)

Sesiones guardadas

50

Ilimitadas

Búsqueda de texto completo (FTS5)

Sí

Sí

Indexación automática de MEMORY.md

Sí

Sí

Etiquetado de proyectos, vinculación de sesiones, historial de habilidades

Sí

Sí

Ganchos de carga/guardado automáticos

Sí

Sí

Local primero, sin nube, cero costes de API

Sí

Sí

Descubrimiento de sesiones relacionadas

Coocurrencia de palabras clave

Basado en incrustaciones (BGE-small-en-v1.5)

Resumen asíncrono de sesiones con LLM

--

Sí (Claude Haiku, opcional)

Recuperación híbrida: vector + BM25 + reordenación por relevancia (rebuild_index)

--

Sí (Pro)

Vinculación de documentos entre productos (get_docs_for_session, session_link_doc)

--

Sí (también requiere LoreDocs Pro)

Memoria de equipo: exportar/fusionar sesiones entre máquinas

--

Sí

Exportación para agentes gestionados de Anthropic (export_for_anthropic)

--

Sí

Consulta tu nivel actual y uso con get_tier. Activa una licencia Pro con vault_set_tier.

Características

  • Captura automática de sesiones: Las sesiones se guardan al finalizar y se cargan al iniciar mediante los ganchos de Claude Code; no se requiere ninguna llamada manual a save_session

  • Memoria entre clientes: Tu contexto te sigue entre Claude Code, Cowork, Cursor, Codex y Hermes; no queda bloqueado en un único IDE o máquina

  • Sesiones estructuradas: Captura decisiones, artefactos y preguntas abiertas; no solo texto bruto; el campo opcional reasoning_notes almacena las cadenas de razonamiento del agente

  • Organización por proyectos: Agrupa sesiones por proyecto con conjuntos de habilidades esperados

  • Seguimiento de habilidades: Registra qué habilidades se usaron para un filtrado inteligente

  • Etiquetado de personas: Personas jerárquicas para memoria específica del agente (p. ej., ron-bot:sql)

  • Búsqueda de texto completo: SQLite FTS5 para búsqueda rápida de palabras clave en todas las sesiones

  • Indexación automática de MEMORY.md: Tu MEMORY.md del proyecto se indexa automáticamente al inicio de la sesión y se puede buscar junto con las sesiones normales mediante search_sessions

  • Resumen asíncrono de sesiones con LLM (Pro): Las sesiones guardadas se mejoran con resúmenes de calidad LLM en segundo plano usando Claude Haiku. Actívalo configurando LORECONVO_ANTHROPIC_API_KEY. Un límite diario (LORECONVO_SUMMARIZER_DAILY_CAP, 100 por defecto) evita gastos descontrolados de API. Solo nivel Pro.

  • Descubrimiento de sesiones relacionadas por incrustaciones (Pro): get_related_sessions descubre automáticamente sesiones con contenido similar usando incrustaciones BGE-small-en-v1.5 (coseno >= 0.75). Hasta 10 enlaces automáticos bidireccionales por guardado, limitados al mismo proyecto. El nivel gratuito obtiene enlaces por coocurrencia de palabras clave. Establece LORECONVO_EMBEDDING_LINKS=0 para desactivar los enlaces por incrustaciones.

  • Vinculación de documentos entre productos (Pro): Descubre y vincula automáticamente los documentos de LoreDocs más relevantes para cualquier sesión, y viceversa. Usa dos herramientas nuevas: get_docs_for_session y session_link_doc. Requiere tanto LoreConvo Pro como LoreDocs Pro.

  • Local primero: Base de datos SQLite, sin dependencia de la nube, cero costes de API

Niveles

Gratis: 50 sesiones

  • Conjunto completo de funciones: carga automática, búsqueda de texto completo, etiquetado, vinculación de sesiones, exportación e importación

  • Almacenamiento local SQLite: tus datos, tu máquina, sin necesidad de cuenta en la nube

  • Instalación con un clic a través del Marketplace de Anthropic

Pro: $8/mes

  • Sesiones ilimitadas

  • Memoria de equipo: comparte sesiones con compañeros (exportación/importación asíncrona local primero, sin servidor necesario)

  • Descubrimiento de sesiones relacionadas y búsqueda semántica

  • Exportación para agentes gestionados de Anthropic

  • Resumen de sesiones con calidad LLM en segundo plano (asíncrono)

Mejora a Pro: $8/mes

Herramientas MCP

LoreConvo proporciona 39 herramientas MCP que Claude llama automáticamente durante las sesiones. La tabla siguiente muestra las más utilizadas; consulta el Catálogo de herramientas MCP para la referencia completa.

Herramienta

Qué hace

save_session

Guarda un resumen de sesión con decisiones, artefactos y etiquetas

get_recent_sessions

Lista sesiones recientes, opcionalmente filtradas por superficie

get_session

Recupera una sesión específica por ID

search_sessions

Búsqueda de texto completo en todas las sesiones guardadas

get_context_for

Obtiene contexto relevante para un tema (mejor para uso de "recuerdo")

tag_session

Añade una etiqueta de persona a una sesión

link_sessions

Conecta sesiones relacionadas con un tipo de relación

get_related_sessions

Encuentra sesiones relacionadas con una sesión dada

create_project

Crea un proyecto con nombre y habilidades esperadas

get_project

Obtiene detalles del proyecto y sesiones asociadas

list_projects

Lista todos los proyectos

get_skill_history

Muestra qué sesiones usaron una habilidad específica

vault_suggest

Sugerencias proactivas de contexto relevante para cargar

get_tier

Comprueba el nivel actual y el estado de la clave de licencia

vault_set_tier

Establece el nivel activo (gratis o Pro)

export_sessions

Exporta sesiones a un formato JSON portátil

import_sessions

Importa sesiones desde un archivo JSON exportado previamente

consolidate_memories

Fusiona sesiones relacionadas en entradas de memoria persistentes (Recuerdo)

get_memory_digest

Inyecta un resumen de memoria condensado en la sesión actual (Recuerdo)

set_session_expiry

Marca una sesión para que expire y se elimine después de una fecha determinada

get_stats

Muestra estadísticas de uso (número de sesiones, desglose por superficie)

inspect_sessions

Inspecciona los internos de las sesiones para depuración

export_for_anthropic

Exporta sesiones en formato de agente gestionado de Anthropic (Pro)

rebuild_index

Reconstruye el índice de búsqueda semántica de LanceDB (Pro)

loreconvo_onboard

Asistente de configuración inicial

get_dream_log

Consulta el registro de actividad de consolidación

get_docs_for_session

Recupera documentos de LoreDocs vinculados a una sesión específica (Pro: requiere LoreDocs Pro)

session_link_doc

Crea manualmente un enlace entre una sesión y un documento de LoreDocs (Pro: requiere LoreDocs Pro)

pin_session

Fija o desfija una sesión para excluirla de la limpieza automática

get_anti_patterns

Lista sesiones etiquetadas como antipatrones (enfoques a evitar)

tag_as_anti_pattern

Etiqueta una sesión como antipatrón para que los recuerdos futuros lo señalen

untag_anti_pattern

Elimina la etiqueta de antipatrón de una sesión

save_memory_item

Guarda un elemento de memoria estructurado: una decisión, una pregunta abierta o un artefacto

query_memory_items

Consulta elementos de memoria estructurados por tipo, proyecto, estado y actualidad

transition_memory_item

Mueve un elemento de memoria a través de su ciclo de vida (retirar, responder, no responder)

update_memory_item

Corrige el título, cuerpo, etiquetas o metadatos de un elemento de memoria, o muévelo entre proyectos

configure_agent_context

Almacena o actualiza una configuración de tema con nombre para que un agente cargue automáticamente contexto específico al inicio de la sesión

inject_agent_context

Devuelve contexto de sesión específico para un agente, usando temas almacenados o proporcionados en la llamada

graph_session_map

Exporta un grafo de conocimiento Mermaid de las sesiones y sus enlaces

Requisitos

  • Python 3.10+

  • macOS o Linux

  • mcp y click (se instalan automáticamente con install.sh)

Datos y privacidad

LoreConvo es local primero. Todos los datos residen en ~/.loreconvo/sessions.db en tu máquina.

  • Datos recopilados: Títulos de sesión, resúmenes, etiquetas, identificadores de superficie, nombres de proyectos y nombres de habilidades que proporcionas al guardar. No se recopilan telemetría, análisis de uso ni identificadores automáticamente.

  • Almacenamiento: Base de datos SQLite en ~/.loreconvo/sessions.db. Sin almacenamiento en la nube. Puedes cambiar la ruta con la variable de entorno LORECONVO_DB.

  • Uso compartido con terceros: Ninguno por defecto. Los datos salen de tu máquina solo si activas el resumen opcional con IA (Pro) configurando LORECONVO_ANTHROPIC_API_KEY, lo que envía un extracto limitado de la transcripción a la API de Anthropic con tu propia clave. Deja la clave sin configurar y todo permanece local.

  • Retención: Los datos se conservan hasta que los elimines mediante delete_session o borres manualmente el archivo de la base de datos. Sin caducidad automática.

  • Contacto: info@labyrinthanalyticsconsulting.com

Política de privacidad completa: https://labyrinthanalyticsconsulting.com/privacy

Solución de problemas

¿Las herramientas MCP no aparecen en Claude Code? Asegúrate de haber ejecutado bash install.sh primero. El .venv debe existir con las dependencias instaladas.

¿Error de "No module named 'mcp'"? El .mcp.json apunta a .venv/bin/python3 dentro de la carpeta del plugin. Si moviste la carpeta, vuelve a ejecutar bash install.sh.

¿Cowork no puede ver las sesiones guardadas en Code? Pide a Claude que "monte tu carpeta ~/.loreconvo" para que Cowork pueda acceder a la base de datos compartida.

Script de respaldo (acceso directo a la base de datos)

Si el servidor MCP no está disponible (p. ej., en tareas programadas o scripts de automatización), scripts/save_to_loreconvo.py proporciona las mismas operaciones principales directamente contra la base de datos SQLite.

# Save a session
python scripts/save_to_loreconvo.py \
    --title "Daily QA run" \
    --surface "qa" \
    --summary "Ran full test suite. All passing." \
    --tags '["qa", "automated"]'

# Read recent sessions
python scripts/save_to_loreconvo.py --read --limit 5

# Filter by surface
python scripts/save_to_loreconvo.py --read --surface code --limit 3

# Search sessions
python scripts/save_to_loreconvo.py --search "tax pipeline"

El script detecta automáticamente la base de datos en ~/.loreconvo/sessions.db (o pasa --db-path explícitamente). Genera UUIDs adecuados y escribe el mismo esquema que la herramienta save_session del MCP.

Novedades

v0.10.6 (2026-08-19)

Corregido: Las alertas de fallo podían quedar en silencio durante exactamente la interrupción que están destinadas a detectar

Si un gancho de guardado fallaba demasiado pronto —antes de terminar de iniciarse— nunca se registraba ningún fallo, por lo que la alerta de "el guardado automático ha dejado de funcionar" permanecía en silencio durante la misma situación que existe para detectar. Ahora los ganchos de guardado registran un fallo mediante una ruta de respaldo incluso cuando mueren tan pronto, de modo que la alerta se dispara para cada modo de fallo, no solo para los que logran avanzar lo suficiente como para informar por sí mismos.

Consulta el registro de cambios completo para ver todo el historial de versiones.

Licencia

Business Source License 1.1 (BSL 1.1) - Labyrinth Analytics Consulting

Gratis para uso personal/no comercial (hasta 50 sesiones). El uso comercial requiere una licencia de pago. Se convierte a Apache 2.0 el 2030-03-31. Consulta LICENSE para más detalles.

Available Tools

33 tools
consolidate_memoriesConsolidate MemoriesA

Run memory consolidation for a project to build a structured digest.

Analyzes recent sessions and extracts decisions, open questions, and tech stack facts. Free tier: up to 3 consolidations per day. Pro: unlimited.

Returns a digest dict with status, decisions found, open questions, and the formatted digest_markdown for reference.

Acquires an exclusive lock; returns status='lock_held' if another consolidation is already running.

Args: project: Project name (matches the --project tag used when saving sessions) surface: Surface to consolidate ('code', 'cowork', 'chat', etc.) or None for all max_sessions: Maximum number of recent sessions to analyze (default 50) mode: 'heuristic' (free, default). 'llm' requires Pro (v0.6.1).

NameRequiredDescriptionDefault
modeNoheuristic
projectYes
surfaceNo
max_sessionsNo

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description fully covers behavioral traits: exclusive lock yielding 'lock_held' status, return digest structure, mode differences (heuristic vs llm), tier restrictions, and session analysis scope.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with summary first then details, but slightly verbose. Each sentence adds value, though could be tightened.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema or annotations, but description fully covers parameters, return value (digest dict), edge cases (lock held), tier limitations, and mode differentiation, making it complete for an agent to use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but description comprehensively explains all 4 parameters: project (matches tag), surface (any or null for all), max_sessions (default 50), mode (heuristic free, llm requires Pro), adding critical context beyond bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states that the tool runs memory consolidation to build a structured digest, specifying actions (analyzes recent sessions, extracts decisions, open questions, tech stack facts) and distinguishing it from other memory/export tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Mentions free tier limits (3/day) and Pro unlimited, and the exclusive lock behavior, but does not explicitly contrast with alternative tools like get_memory_digest or get_context_for.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_projectCreate ProjectA

Create or update a project definition.

Projects group related sessions and can auto-associate based on skill usage.

Args: name: Project identifier (e.g., 'secret-agent-man', 'project-ron') description: What this project is about expected_skills: Skills typically used in this project's sessions default_persona: Auto-tag new sessions with this persona instructions: Optional project-wide instructions or constraints

NameRequiredDescriptionDefault
nameYes
descriptionNo
instructionsNo
default_personaNo
expected_skillsNo

TDQS

A4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It does not disclose whether update is merge or replace, side effects, or error conditions. For a mutation tool, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very concise: three sentences overview plus a focused bullet list of parameters. No fluff; every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers the core operation and parameters, but lacks details on return value (expected for create/update), update behavior, and error handling. With 5 parameters and no output schema, more completeness would be beneficial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description includes an Args section that explains each parameter's purpose (e.g., 'expected_skills: Skills typically used in this project's sessions'). This fully compensates for the missing schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Stated as 'Create or update a project definition' – clear verb+resource. Title 'Create Project' is slightly but not misleadingly narrower. Differentiates from siblings like get_project and list_projects by indicating mutation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage via 'Projects group related sessions and can auto-associate based on skill usage.' Context signals and siblings (get_project, list_projects) help clarify when to use. However, no explicit when-not-to or alternatives are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_for_anthropicExport Sessions for AnthropicA

Export LoreConvo sessions to Anthropic managed-agents memory format. Pro only.

Produces a JSON file in 'anthropic-memory-v1' format, suitable for import into Anthropic managed-agents memory stores. Only non-periodic, non-file-memory sessions are exported (contamination control).

NOTE: Field mapping is preliminary pending Anthropic beta API schema stabilization. Cassandra will signal when the schema is stable. Save the output and validate against Anthropic docs before submitting to a managed-agents memory store.

Args: output_path: File path to write the export. If omitted, data is returned inline. project: Export only sessions from this project. session_ids: List of specific session UUIDs to export. Overrides project filter. days_back: Limit to sessions from the last N days.

NameRequiredDescriptionDefault
projectNo
days_backNo
output_pathNo
session_idsNo

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description covers important behaviors: export scope (session types), output format ('anthropic-memory-v1'), field mapping instability warning, and behavior of output_path (file or inline). No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with introduction, constraints, note, and Args list. Front-loaded with primary action. The note on field mapping is relevant but slightly lengthy; overall concise for the information provided.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description covers key aspects: format, filtering options, instability warning, and inline return behavior. Could mention return structure or size expectations, but sufficiently complete for a moderately complex tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage 0%, but description explains all 4 parameters in the Args section, including purpose and behavior (e.g., session_ids overrides project). This fully compensates for the lack of schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Export LoreConvo sessions to Anthropic managed-agents memory format' – a specific verb and resource, and distinguishes from siblings like 'export_sessions' by specifying the target format. The 'Pro only' restriction adds clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Describes constraints: 'Only non-periodic, non-file-memory sessions are exported' and notes field mapping instability. However, no explicit guidance on when to use this tool vs. alternatives like 'export_sessions' or 'import_sessions'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_sessionsExport SessionsA

Export sessions to JSON or JSONL for backup or migration.

Exports all matching sessions with full detail (including skills, tags, artifacts). Use output_path to write to a file; omit it to receive the data inline. Use import_sessions to load the exported file.

Args: output_path: File path to write export (e.g. '/tmp/loreconvo_export.json'). If omitted, data is returned inline. project: Export only sessions from this project. tags: Export only sessions that have any of these tags. days_back: Limit to sessions from the last N days. Omit for all time. limit: Max sessions to export (default 1000). format: 'json' (array wrapped in metadata) or 'jsonl' (one session per line).

NameRequiredDescriptionDefault
tagsNo
limitNo
formatNojson
projectNo
days_backNo
output_pathNo

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that the export includes full detail (skills, tags, artifacts) and explains output_path behavior. However, it does not mention whether the operation is read-only, any authorization needs, or potential side effects. Basic behavioral context is present but lacks depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is concise and well-structured: a purpose sentence followed by an Arg list. Every sentence adds value, and key information is front-loaded. No redundant or verbose phrasing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 6 parameters and no output schema or annotations, the description covers the core functionality, parameter semantics, and inline vs file behavior. It does not specify the structure of inline return data or error handling (e.g., file overwrite), but it is largely complete for the tool's purpose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description includes an Args section that explains each parameter (output_path, project, tags, days_back, limit, format) with context like default values and usage patterns. This adds significant meaning beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool exports sessions to JSON/JSONL for backup/migration. The verb 'export' and resource 'sessions' are specific, and the purpose is well-understood. However, it does not explicitly differentiate from sibling tools like get_session or search_sessions, which limits a top score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear guidance on using import_sessions to load exported data, and explains the output_path behavior (file vs inline). It does not specify when not to use this tool versus alternatives, but the mention of an explicit alternative is helpful.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_anti_patternsGet Anti-PatternsA

Retrieve sessions marked as anti-patterns.

Returns a list of dicts with a 'truncated' boolean. Use at session start or before attempting a known-tricky approach to surface past failures.

Args: topic: Optional keyword to filter within anti-patterns. Omit for all anti-patterns ordered by recency. When provided, uses FTS5 with a fan-out heuristic; result may be truncated if anti-patterns are sparse in the corpus. limit: Max results to return (1-100). Defaults to 10. project: Restrict to a specific project slug. Case-sensitive.

NameRequiredDescriptionDefault
limitNo
topicNo
projectNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses output structure (list of dicts with 'truncated' boolean), search behavior (FTS5, fan-out heuristic, potential truncation), and ordering (by recency). No annotations, so description fills the gap fully.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sections: general purpose/usage, then Args list. No redundant information. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers output, parameters, and usage guidance. Minor gaps: no mention of error handling or the meaning of 'truncated' boolean beyond existence, but sufficient for a read tool with output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 0% description coverage, but the description explains all three parameters in detail: topic (FTS5 behavior, truncation), limit (default 10, range 1-100), project (case-sensitive). Adds significant value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb 'retrieve' and specific resource 'sessions marked as anti-patterns'. Distinct from sibling tools like tag_as_anti_pattern (write) and search_sessions (general).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States 'Use at session start or before attempting a known-tricky approach to surface past failures', providing concrete context. Does not explicitly exclude other uses or mention alternatives, but sufficient guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_context_forGet Context for TopicA

Get relevant session context for a topic.

Use at the start of a session to load prior decisions and context about a topic. Returns the most relevant session excerpts.

Args: topic: The topic to find context for (e.g., 'K-1 parser', 'rental insurance') max_results: Max excerpts to return (default 5) include_external: If True, include sessions flagged as external_tool_session. Default False. semantic: If True, use LanceDB hybrid search (Pro only). Falls back to FTS5 if index not yet built.

NameRequiredDescriptionDefault
topicYes
semanticNo
max_resultsNo
include_externalNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries full burden. It explains return value ('most relevant session excerpts'), parameter behaviors (semantic fallback, include_external filtering), and notes Pro-only feature. However, it does not disclose edge cases like empty results or if the tool modifies state (though it appears read-only).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief and well-structured: a one-line summary, a usage recommendation, then a parameter list. Every sentence adds value, and the layout is easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the 4 parameters and presence of an output schema, the description covers key aspects: purpose, when to use, parameter details, and return type. It lacks minor details like case-sensitivity or partial match behavior, but overall provides sufficient context for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, meaning all parameter meaning is provided by the description. Each parameter (topic, max_results, include_external, semantic) is clearly explained with examples, defaults, and behavioral details (e.g., semantic fallback). This fully compensates for the lack of schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves session context for a topic, with specific usage guidance at session start. However, it does not explicitly differentiate from sibling tools like get_related_sessions or get_docs_for_session, which share similar retrieval functions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description suggests using at session start to load prior context, but does not mention when to avoid this tool or direct users to alternatives. Usage context is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_docs_for_sessionGet Docs for SessionA

Return LoreDocs documents cross-linked to a LoreConvo session. Pro tier only.

Queries the LoreDocs cross_product_links table. Both LoreConvo and LoreDocs must be installed. Returns an empty list for free-tier callers (not an error).

Manual links (link_type='manual') are always sorted first. Auto-links created with a stale embedding model are marked with is_stale=True and include an upgrade_message.

Args: session_id -- LoreConvo session UUID limit -- max results (default 5)

Returns dict with: schema_version -- int, for version negotiation by callers cross_product_available -- bool tier_gate -- "satisfied" | "pro_required" links -- list of link dicts reason -- set when cross_product_available is False

NameRequiredDescriptionDefault
limitNo
session_idYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full behavioral disclosure. It reveals that manual links are sorted first, auto-links with stale embeddings are marked with is_stale=True and include an upgrade_message. It also specifies the return dict structure. This is comprehensive for a read tool, though it doesn't mention permissions beyond the tier requirement.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured. The first sentence immediately states the core purpose. Subsequent details are organized logically with clear sections for arguments and return value. Every sentence adds value without unnecessary verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description thoroughly explains the return dictionary with schema_version, cross_product_available, tier_gate, links, and reason. It also covers edge cases like free-tier behavior and stale embeddings. The agent has all necessary information to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds significant meaning to both parameters: session_id is a LoreConvo session UUID, and limit is the max results with a default of 5. Since schema description coverage is 0%, the description fully compensates by providing clear semantics that the schema alone lacks.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool returns LoreDocs documents cross-linked to a LoreConvo session. This is a specific verb+resource combination, and it distinguishes itself from siblings like 'get_session' by focusing on cross-linking. The purpose is immediately clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage context: Pro tier only, both LoreConvo and LoreDocs must be installed, and free-tier callers get an empty list. While it doesn't explicitly compare to sibling tools, the context is sufficient for an agent to know when this tool is applicable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_dream_logGet Dream LogA

Return recent consolidation log entries for transparency and diagnostics.

Each entry shows: timestamp, project, surface, mode, source_count, trigger. Use this to confirm consolidation ran, check rate limit status, and diagnose fallbacks (e.g. api_key_found=false for LLM-mode fallback).

Args: project: Filter by project (or None for all projects) surface: Filter by surface (or None for all) limit: Maximum number of entries to return (default 10, newest first)

NameRequiredDescriptionDefault
limitNo
projectNo
surfaceNo

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, but description explains entry fields and diagnostic purposes. Discloses fallback behavior (e.g., api_key_found=false). Lacks info on authentication or rate limiting details, but adequate given read-only nature.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with overview, entry fields, use cases, and parameter list. Every sentence is informative and no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but description explains output fields and usage. Covers all necessary context for an agent to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, and description adds full meaning: explains each parameter, defaults, filtering by null, and ordering (newest first). Goes beyond schema definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it returns recent consolidation log entries for transparency and diagnostics. Specific verb 'Return' and resource 'consolidation log entries' distinguish it from siblings like consolidate_memories.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit use cases provided: confirm consolidation ran, check rate limit status, diagnose fallbacks. Does not mention when not to use or alternatives, but clear enough for a diagnostic tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_memory_digestGet Memory DigestA

Retrieve the current memory digest for a project without re-running consolidation.

Returns None if no digest exists. Use consolidate_memories first to generate one.

Optionally set disable=True to suppress auto-load injection for this digest, or disable=False to re-enable injection. Omit disable to just read the current state.

Args: project: Project name surface: Surface filter (or None for all) disable: If provided, update the disabled flag on the digest

NameRequiredDescriptionDefault
disableNo
projectYes
surfaceNo

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Discloses that it returns None if no digest exists and that setting disable updates a flag. Does not cover error cases or side effects beyond the flag, but overall transparent about read and optional write behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise and well-structured: main purpose first, then return behavior, usage guidance, parameter explanation, and bulleted args. Every sentence adds value with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Explains return value and references sibling for generation. Covers the optional disable side-effect. Lacks error handling details (e.g., invalid project) and does not define 'auto-load injection', but sufficient for typical use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but description explains each parameter: project as name, surface as filter, and disable with its three behaviors. Adds meaning beyond schema, though surface could be more specific.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states what the tool does: 'Retrieve the current memory digest for a project without re-running consolidation.' It distinguishes from the sibling consolidate_memories by noting that this is a read-only retrieval that does not trigger consolidation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly advises to 'Use consolidate_memories first to generate one' if no digest exists. Also explains the three modes of the disable parameter. Could be more explicit about when not to use, but the guidance is clear and practical.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_projectGet ProjectC

Get project details including recent sessions and skill usage stats.

Args: project_name: The project identifier

NameRequiredDescriptionDefault
project_nameYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It only says 'Get project details', implying a read operation, but doesn't confirm safety, side effects, or error conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two sentences plus an args line. It front-loads the purpose. However, it could be more structured with explicit sections.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of output schema and 0% parameter coverage, the description is insufficient. It doesn't explain return structure, what constitutes 'recent sessions', or how skill usage stats are presented.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds minimal value over the schema: 'project_name: The project identifier' is vague. Schema coverage is 0%, but the description fails to clarify format, examples, or possible values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves project details, including recent sessions and skill usage stats. This distinguishes it from sibling tools like 'get_session' (single session) and 'get_stats' (general stats).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like 'list_projects' or 'get_session'. No conditions or exclusions mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_recent_sessionsGet Recent SessionsB

Get recent session summaries.

Use to see what work was done recently, optionally filtered by project or skill.

Args: limit: Max sessions to return (default 10) days_back: How far back to look (default 30 days) project: Filter to sessions in this project skill: Filter to sessions that used this skill

NameRequiredDescriptionDefault
limitNo
skillNo
projectNo
days_backNo

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It states it retrieves summaries, implying a read operation, but does not explicitly confirm no side effects, mention auth requirements, rate limits, or data freshness. The description is too minimal to fully cover the burden.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is structured with a purpose sentence, a usage sentence, and a bullet-like list of parameters. It is concise and front-loaded, though the 'Args:' line is slightly redundant. Overall, efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While an output schema exists (not shown), the description lacks details about result ordering, pagination, or what 'summaries' entail (e.g., which fields). This leaves uncertainty about the exact output, making it moderately complete but not fully self-contained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It lists all four parameters with clear, meaningful explanations: 'Max sessions to return,' 'How far back to look,' and filters for project/skill. This adds value beyond the schema's type definitions and defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get recent session summaries' with a specific verb and resource. It also mentions optional filters by project or skill, distinguishing it from siblings like get_session (single session) or search_sessions (comprehensive search). However, it could be more explicit about the scope (e.g., 'summaries' vs full details).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says 'Use to see what work was done recently,' which provides basic context but no guidance on when not to use it or alternatives. Siblings like search_sessions or get_related_sessions are not mentioned, leaving the agent to infer appropriate usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_server_infoGet Server InfoA

Return MCP compatibility status for this LoreConvo server.

Returns product version, installed mcp SDK version, tested version, and compatibility status. Useful for diagnosing version mismatches on running servers without requiring a restart.

Returns dict with: product_name, product_version, mcp_installed, mcp_tested, mcp_accepted, status (ok|mismatch|undetermined|disabled|internal_error), note.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No contradictions with missing annotations. Describes return values in detail and implies read-only behavior. Could note absence of side effects, but still transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise, front-loaded with main purpose, then lists return fields efficiently. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite lacking an output schema, the description enumerates all return fields and their possible statuses, making it fully self-contained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist (0 params), so baseline 4 applies. Description adds no parameter info, which is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns MCP compatibility status for the LoreConvo server, listing all relevant fields. It distinguishes from sibling tools by focusing on server-level diagnostics rather than project or session data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly mentions it is useful for diagnosing version mismatches without restart, giving a clear use case. Does not explicitly exclude alternative scenarios, but the context is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_sessionGet SessionB

Get full details of a specific session.

Args: session_id: The UUID of the session to retrieve

NameRequiredDescriptionDefault
session_idYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. The description only says 'Get full details' without disclosing whether the tool requires authentication, has side effects, or what 'full details' entails. For a read operation, more transparency about behavior is needed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, using two sentences that front-load the purpose. Every sentence is necessary and there is no extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given one parameter, no output schema, and no annotations, the description provides the essential purpose and parameter meaning. However, it fails to describe what 'full details' includes, and could be more complete for a specific session retrieval tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaning beyond the schema by stating 'session_id: The UUID of the session to retrieve'. However, with 0% schema coverage, this is minimal. It does not describe format or constraints beyond the schema's type string.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get full details of a specific session', which is a specific verb-resource combination. It distinguishes from sibling tools like get_project or get_recent_sessions by targeting a specific session by ID.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives such as get_recent_sessions or search_sessions. The description lacks context on prerequisites or typical use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_skill_historyGet Skill HistoryA

Get all sessions that used a specific skill.

Useful for understanding how often a skill is used and in what contexts.

Args: skill_name: The skill to look up (e.g., 'rental-property-accounting') days_back: How far back to search (default 90 days)

NameRequiredDescriptionDefault
days_backNo
skill_nameYes

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must cover behavioral traits. It only states it returns sessions, but does not disclose read-only nature, permissions, pagination, or any side effects. Minimal behavioral insight.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise—two short sentences plus parameter documentation. Every word adds value. No redundancy or unnecessary text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has a simple purpose and an output schema exists, so the description does not need to detail return values. However, it omits potential edge cases (e.g., no matching skill) and ordering of results. Could be more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description adds meaning to both parameters: provides an example for skill_name and explains days_back as 'how far back to search' with a default of 90. This is adequate but not exceptional.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves all sessions using a specific skill. The verb 'get' and resource 'sessions' are explicit. It distinguishes from sibling tools like 'get_recent_sessions' by focusing on skill-specific history.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a use case: 'useful for understanding how often a skill is used and in what contexts.' This gives context for when to use it, but it lacks explicit alternatives or when-not-to-use scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_statsGet Usage StatsA

Return a usage dashboard: session counts by surface, project, and tag; storage metrics (DB size, estimated tokens stored); and the 5 most recent sessions.

Provides visibility into your memory usage -- who saved what, how much is stored, and what's been captured most recently.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It accurately describes the tool as read-only ('provides visibility'), and details the output structure. However, it does not explicitly state that no side effects occur, which would strengthen transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with two focused sentences. The first sentence immediately states the return value and its composition, while the second adds context. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description adequately covers return values (session counts, storage, recent sessions) and dimensions (surface, project, tag). It could be improved by specifying how metrics are grouped or that data is aggregated. But for a simple stats tool, it is fairly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and schema coverage is 100% (vacuously). The description adds value by explaining what the tool returns without needing to detail parameters. Baseline score of 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns a usage dashboard with specific metrics: session counts by surface/project/tag, storage metrics, and recent sessions. It effectively distinguishes itself from sibling tools like get_session and get_recent_sessions by focusing on aggregate statistics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for gaining visibility into memory usage, but does not explicitly state when to use it versus alternatives like get_recent_sessions or get_server_info. No exclusions or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_tierGet License TierA

Return the current LoreConvo license tier and status.

Use this to confirm whether the Pro license key is loaded and valid.

Returns a dict with keys: is_pro -- bool, True if Pro tier is active mode -- "licensed" | "dev_bypass" | "free" | "invalid_key" product -- product name from the license payload (if licensed) exp -- expiry date or "never" (if licensed) email -- customer email (if licensed and present) error -- error message (if mode is "invalid_key")

NameRequiredDescriptionDefault

No parameters

TDQS

A4.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, but the description fully explains the tool's behavior: it returns a dict with specific keys. Though it implies a read-only operation, it does not explicitly state lack of side effects, but this is acceptable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: one sentence for purpose, one for usage, then a bulleted list for output. It is front-loaded and every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, but the description provides a detailed breakdown of the return dict. Combined with no parameters, the description is fully adequate for an agent to understand and use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and schema description coverage is 100% (empty). The description adds significant value by detailing the return dictionary structure, which is not present in the input schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Return the current LoreConvo license tier and status,' using a specific verb and resource. It distinguishes this tool from siblings like 'get_server_info' and 'vault_set_tier' by focusing on license details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit usage guidance: 'Use this to confirm whether the Pro license key is loaded and valid.' This tells the agent exactly when to invoke this tool, with no conflicting siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

import_sessionsImport SessionsA

Import sessions from a LoreConvo export file (JSON or JSONL).

Reads an export created by export_sessions and saves sessions into the local database. Session UUIDs are preserved so re-importing is safe.

Args: file_path: Path to the export file (JSON or JSONL format). on_conflict: What to do if a session ID already exists. 'skip' (default) -- leave the existing session unchanged. 'replace' -- overwrite with the imported version. dry_run: If True, parse and validate the file but make no DB changes.

NameRequiredDescriptionDefault
dry_runNo
file_pathYes
on_conflictNoskip

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses that sessions are saved to the database, UUIDs are preserved, and dry_run prevents DB changes. It also explains the on_conflict behavior (skip/replace). This provides good transparency, though it lacks details on permissions or error handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured: a concise one-sentence summary followed by a brief paragraph and a clear bulleted Args list. Every sentence adds value with no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 3 parameters and no output schema, the description covers the core functionality and parameters well. However, it does not describe the return value (e.g., success/error response), which would be useful for an import tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description compensates fully. The Args section explains each parameter: file_path (path to file), on_conflict (options with default 'skip'), and dry_run (boolean). This adds significant meaning beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states 'Import sessions from a LoreConvo export file (JSON or JSONL)'. It specifies the action (import), the resource (sessions from export), and the allowed formats, clearly distinguishing it from siblings like export_sessions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description notes that it reads exports created by export_sessions and saves to the local database, implying it is used after export. It also mentions that re-importing is safe due to UUID preservation. However, it does not explicitly state when not to use it or provide alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inspect_sessionsInspect SessionsA

Inspect stored sessions: list, filter, or get full detail for one session.

Answers 'what do you know about me?' and helps users find, browse, and understand their stored session memory.

Args: session_id: If provided, return full detail for this specific session. search: Full-text search query across title, summary, decisions, tags. tag: Filter by tag substring (e.g. 'agent:ron', 'side_hustle'). surface: Filter by surface ('code', 'cowork', 'chat'). since: Return sessions on or after this date (YYYY-MM-DD). limit: Max sessions to return (default 20). show_stats: If True, include aggregate counts (total, by_surface, by_project).

NameRequiredDescriptionDefault
tagNo
limitNo
sinceNo
searchNo
surfaceNo
session_idNo
show_statsNo

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided. Description implies a read-only operation ('inspect') but does not explicitly state behavioral traits like no mutations or performance impacts. It provides reasonable context but could be more explicit about being non-destructive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is well-structured with a brief overview followed by a clear parameter list. It is slightly verbose but each sentence adds value. No wasted words, though could be more compact while retaining clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 7 parameters with no required fields and no output schema, the description adequately covers all parameters and usage scenarios. It explains return behavior for session_id and default limit. Missing mention of return format but acceptable for a list/detail tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description's 'Args' section adds full meaning to all 7 parameters, including details like 'Full-text search query across title, summary, decisions, tags' and 'Filter by tag substring.' This exceeds what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool's purpose: 'Inspect stored sessions: list, filter, or get full detail for one session.' It uses a specific verb ('inspect') and resource ('sessions') and differentiates from siblings like 'search_sessions' and 'get_session' by being a comprehensive browsing tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description provides a clear use case ('Answers 'what do you know about me?'') and explains when to use each parameter (e.g., session_id for detail, search for query). However, it does not explicitly state when not to use this tool or mention alternatives among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_projectsList ProjectsA

List all defined projects with session counts.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries the burden. It correctly implies a read operation and discloses the output includes session counts, but does not mention auth, rate limits, or ordering. Acceptable for a simple list tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single, succinct sentence with no wasted words. Front-loaded with action and resource. Every word is purposeful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (0 params, no annotations, but has output schema), the description fully conveys what the tool does. No additional context needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters in the schema, so description adds no param info. It implicitly confirms no filtering or arguments are needed (lists all). Baseline for 0-param tools is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List'), the resource ('all defined projects'), and includes a specific detail ('with session counts'), distinguishing it from siblings like get_project (single project) and create_project.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states it lists all projects, but provides no explicit guidance on when to use this vs alternatives like get_project or search_sessions. For a simple list tool, this is minimally adequate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

loreconvo_onboardOnboard LoreConvoA

Set up or update your LoreConvo workspace configuration.

Call this once after installing LoreConvo to get a recommended setup. Call again any time to add projects or agents, or to regenerate your reference doc.

Creates:

  • Project registrations for each project listed

  • A config file at ~/.loreconvo/onboard_config.json

  • A reference doc (markdown) in the response -- paste it into your CLAUDE.md or a LoreDocs vault so your AI assistant can apply your conventions consistently

Args: name: Your workspace or team name (e.g. 'Labyrinth Analytics') projects: Snake_case project identifiers (e.g. ['side_hustle', 'finance']) agents: Agent names that will tag sessions (e.g. ['ron', 'meg']) tag_style: 'simple' (status + priority) or 'detailed' (adds effort, scout-run markers, date tag guidance)

Surfaces: code (Claude Code), cowork (Claude.ai Projects), chat (Claude.ai chat), codex (Codex CLI). Custom values are allowed for other tools. Agent identity: use tags=['agent:name'] -- not the surface field.

NameRequiredDescriptionDefault
nameNo
agentsNo
projectsNo
tag_styleNosimple

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It details what is created (project registrations, config file, reference doc) and explains the response includes a markdown doc to paste. Also clarifies surface and agent identity usage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with purpose first, then bullet points for outputs and args. Slightly verbose but each sentence adds value. Front-loaded with key call instructions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but description explains the reference doc response. Covers all aspects: when to call, what it creates, args, surface field guidance. Complete for a setup tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description must add meaning for all parameters. It does so: name (workspace/team name), projects (snake_case identifiers), agents (agent names), tag_style (simple vs detailed with explanation). Provides full semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool sets up or updates LoreConvo workspace configuration. It distinguishes from sibling tools by specifying it's called once after install and again for updates, listing specific outputs like project registrations and config file.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to call (once after install, again for updates) and provides guidance on surface field and agent identity. Lacks explicit when-not conditions or alternatives, but context from siblings makes usage clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pin_sessionPin SessionA

Pin or unpin a session to exclude it from automated cleanup.

keep_forever=True (default): session excluded from future cleanup; any existing expires_at is cleared atomically. keep_forever=False: pin removed; session can receive expiry again.

Returns: {"ok": True, "session_id": "...", "keep_forever": bool} {"ok": False, "code": "invalid_session_id", "message": "..."} {"ok": False, "code": "invalid_param", "message": "..."} {"ok": False, "code": "session_not_found", "message": "..."} {"ok": False, "code": "db_error", "message": "..."} {"ok": False, "code": "feature_disabled", "message": "..."}

NameRequiredDescriptionDefault
session_idYes
keep_foreverNo

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose all behavioral traits. It explains that pinning atomically clears expires_at and unpinning removes the pin. It lists error codes, but does not mention auth requirements or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is concise, uses bullet points for parameter details and return values, and front-loads the core purpose. Every sentence is necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of annotations and output schema, the description covers behavior, parameters, and error codes well. It could mention potential limits (e.g., maximum pinned sessions) but is otherwise complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description fully compensates. It explains the meaning and effects of keep_forever (default true, clears expiry atomically) and implicitly covers session_id as required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the verb ('pin or unpin') and resource ('session'), with a specific purpose: to exclude from automated cleanup. This distinguishes it from sibling tools like set_session_expiry.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use each value of keep_forever, providing clear context for usage. However, it does not explicitly contrast with sibling tools or state when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rebuild_indexRebuild Semantic IndexA

Rebuild the LanceDB semantic search index from all stored sessions. Pro only.

Run after first Pro activation, or to recover from a corrupted index. Downloads BAAI/bge-small-en-v1.5 (~130MB) once on first run; subsequent runs use the cached model. May take 1-2 minutes for large session stores.

Returns a dict with 'indexed' (sessions added to index) and 'total_in_db' (total sessions in SQLite, including those excluded from indexing).

NameRequiredDescriptionDefault

No parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully covers behavioral expectations. It discloses that it downloads BAAI/bge-small-en-v1.5 (~130MB) on first run, caches the model for subsequent runs, and may take 1-2 minutes for large session stores. It also states the return format, a dict with 'indexed' and 'total_in_db' keys. This is comprehensive and avoids surprises.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured. It leads with the main purpose, then provides usage context and behavioral details in separate short paragraphs. Every sentence adds value, and there is no redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters and no output schema, the description provides all necessary information. It explains the purpose, when to use, side effects (model download, time estimate), and return value. The description is complete for an agent to select and invoke this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the schema coverage is 100%. Per guidelines, the baseline score is 4 since no additional parameter description is needed. The description briefly mentions output format, which is helpful but not required for parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Rebuild the LanceDB semantic search index from all stored sessions.' It specifies the resource (LanceDB semantic search index) and the action (rebuild). It also distinguishes the tool by noting it is 'Pro only' and providing specific use cases (first Pro activation, recovery from corrupted index), setting it apart from sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use the tool: 'Run after first Pro activation, or to recover from a corrupted index.' It also mentions the model download and caching behavior, giving the agent a clear understanding of when invocation is appropriate. While it doesn't list alternatives, the context of sibling tools makes the intended use clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

save_sessionSave SessionA

Save a session summary to persistent memory.

Call this at the end of a session or when the user requests /bridge save. Captures decisions, artifacts, skills used, and open questions for recall in future sessions.

Args: title: Short descriptive title for the session surface: Where this session ran - 'cowork', 'code', or 'chat' summary: 2-3 paragraph narrative summary of what happened decisions: List of key decisions made during the session artifacts: List of files created or modified open_questions: Unresolved questions to carry forward tags: Freeform tags for categorization skills_used: Skills that were invoked during this session project: Project name if part of a defined project start_date: ISO 8601 start time (defaults to now) end_date: ISO 8601 end time session_id: Optional session ID to enable deduplication with the auto-save hook. If a session with this ID already exists (e.g., auto-saved at session end), the record is updated with the richer manual metadata. Artifacts from the existing record are preserved when the caller does not supply artifacts. If omitted, a new UUID is generated (existing behavior). external_tool_session: Set True when saving a session generated by an external tool (e.g., Anthropic Managed Agents). Flagged sessions are excluded from auto-load and search by default to prevent context contamination. Override exclusion with include_external=True on search, or set LORECONVO_EXTERNAL_TOOL_EXCLUSION=0 to disable globally. reasoning_notes: Optional free-form text capturing the reasoning chain or thought process behind decisions. Stored as-is; blank or None leaves the field empty. summarize: If True and ANTHROPIC_API_KEY is set, send the summary to Claude API (Haiku) for compression before saving. Opt-in only; defaults to False. Falls back to the raw summary on any API error or if the key is absent. See INSTALL.md Privacy Note.

NameRequiredDescriptionDefault
tagsNo
titleYes
projectNo
summaryYes
surfaceYes
end_dateNo
artifactsNo
decisionsNo
summarizeNo
session_idNo
start_dateNo
skills_usedNo
open_questionsNo
reasoning_notesNo
external_tool_sessionNo

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses behavioral traits: persistent memory storage, deduplication via session_id, update behavior preserving artifacts, exclusion of external tool sessions from auto-load/search, and opt-in summarization via Claude API. All key behavioral aspects are covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is fairly long but well-structured with a brief intro, usage trigger, and detailed parameter list. Each sentence adds value; minor redundancy could be trimmed (e.g., the session_id explanation is somewhat verbose), but overall efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 15 parameters, 3 required, no output schema, the description covers all parameters and behavioral nuances including deduplication, update semantics, exclusion logic, and summarization. It is complete for a save operation with no gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 0% description coverage, so the parameter descriptions carry full burden. Each of the 15 parameters is explained with purpose, defaults, and behavioral nuance (e.g., session_id deduplication, external_tool_session exclusion, summarize opt-in). This significantly adds meaning beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Save a session summary to persistent memory' with a specific verb and resource. It mentions when to call (end of session or /bridge save), but does not explicitly differentiate from sibling tools like consolidate_memories or import_sessions, though the purpose is distinct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage context: 'Call this at the end of a session or when the user requests /bridge save.' It does not specify when not to use or mention alternatives, but the trigger is clear and sufficient for most scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_sessionsSearch SessionsA

Search session memory by keyword, with optional filters.

Use to find sessions where a topic was discussed, a decision was made, or a specific skill/project was involved.

Args: query: Search keywords (matched against title, summary, decisions) persona: Filter to sessions tagged with this persona (supports prefix matching) tags: Filter to sessions with any of these tags skills: Filter to sessions that used any of these skills project: Filter to sessions in this project limit: Max results (default 10) include_external: If True, include sessions flagged as external_tool_session. Default False. Can also be enabled globally via LORECONVO_EXTERNAL_TOOL_EXCLUSION=0. semantic: If True, use LanceDB hybrid (vector + BM25) search instead of FTS5. Pro tier only. Falls back to FTS5 if index not built yet; run rebuild_index to build it after first Pro activation. include_expired: If True, include sessions whose expires_at is in the past. Default False (expired sessions are hidden from search).

NameRequiredDescriptionDefault
tagsNo
limitNo
queryYes
skillsNo
personaNo
projectNo
semanticNo
include_expiredNo
include_externalNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses important behaviors: default exclusion of expired and external sessions, fallback mechanism for semantic search, and global env variable for external tool inclusion. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with a brief intro, usage guidance, and parameter list. Though slightly lengthy, every sentence adds value. Could trim redundant phrasing (e.g., 'Use to find...' repeated).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists (no need to explain returns), all 9 parameters are explained, behavioral nuances are covered, and sibling context is provided. No gaps identified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description explains each parameter (query, persona, tags, skills, project, limit, include_external, semantic, include_expired) with details like prefix matching, default values, and conditions (e.g., 'Pro tier only').

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Search session memory by keyword, with optional filters,' with a specific verb and resource. It distinguishes itself from sibling tools like 'get_session' or 'get_recent_sessions' by focusing on keyword search with filters.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit use cases ('when a topic was discussed, a decision was made, or a specific skill/project was involved') but does not explicitly contrast with sibling tools like 'get_related_sessions' or 'inspect_sessions'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_session_expirySet Session ExpiryA

Set or clear an expiry date on a session.

After expires_at passes, the session is excluded from search_sessions, get_recent_sessions, and the auto-load hook. The session is NOT deleted -- recover it with search_sessions(include_expired=True). Pass expires_at=None to clear a previously set expiry.

Args: session_id: ID of the session to update expires_at: ISO 8601 date string (e.g. '2027-01-01T00:00:00Z'), or None to clear

NameRequiredDescriptionDefault
expires_atYes
session_idYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full behavioral disclosure. It explains that expired sessions are excluded from certain tools but not deleted, and that clearing expiry is possible via None. This covers key side effects, though it omits potential error behaviors (e.g., non-existent session).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured. It opens with a one-line purpose, follows with behavioral details in paragraph form, and ends with argument descriptions. Every sentence contributes useful information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of output schema, the description sufficiently covers return behavior (no deletion, recovery option) and impact on other tools. It could be improved by mentioning error handling for invalid inputs, but overall it is complete for a simple mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema coverage is 0%, requiring the description to fully explain parameters. It does so effectively: session_id is described as 'ID of the session to update,' and expires_at includes format guidance ('ISO 8601 date string') and the special value None. This significantly adds meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Set or clear an expiry date on a session,' specifying a precise verb and resource. It distinguishes itself from sibling tools like get_session or save_session by focusing solely on expiry management.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use the tool (setting or clearing expiry) and provides context on consequences (exclusion from searches, recovery). It offers clear usage details but does not explicitly exclude alternative scenarios or mention when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tag_as_anti_patternTag Session as Anti-PatternA

Mark an existing session as an anti-pattern. Idempotent.

Args: session_id: The sessions.id value to mark (TEXT <= 255 chars). source: Attribution for this tag (e.g., 'claude-code', 'agent:gina'). reason: Human-readable reason for the tag. Stored in audit log.

NameRequiredDescriptionDefault
reasonNo
sourceNounknown
session_idYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description provides idempotency and notes that the reason is stored in audit log. However, it does not disclose side effects, permissions, or error handling beyond that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: a one-sentence summary followed by a compact arg list. No redundant information, every line is useful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with no output schema, the description covers the action, idempotency, and parameters but omits details like return value, error cases, or what happens if session_id is invalid. This is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 0% description coverage, so the description fully compensates by explaining each parameter: session_id (constraint), source (example), reason (purpose and storage). This is thorough for a 3-parameter tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the purpose: 'Mark an existing session as an anti-pattern.' This is specific and distinguishes it from general tagging tools like 'tag_session', though it does not explicitly contrast with siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives such as 'tag_session' or 'untag_anti_pattern'. The description does not mention context, prerequisites, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tag_sessionTag SessionA

Tag a session with a persona for filtered recall.

Supports hierarchical personas (e.g., 'ron-bot:sql' matches 'ron-bot' queries).

Args: session_id: Session to tag persona_name: Persona identifier (e.g., 'ron-bot', 'ron-bot:sql', 'tax-prep') relevance_note: Optional note about why this session is relevant to the persona

NameRequiredDescriptionDefault
session_idYes
persona_nameYes
relevance_noteNo

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It mentions hierarchical persona matching but does not disclose whether tagging is additive or overwrites, the impact on existing tags, or any required permissions. The behavioral traits are minimally described.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with a clear purpose statement followed by bulleted parameter explanations. No redundant or unnecessary sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers purpose and parameters, and mentions hierarchical personas. However, it lacks information about return values, error handling, idempotency, or behavior when tagging an already-tagged session. Given the absence of annotations and output schema, these gaps reduce completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description includes an Args section that adds meaning beyond the schema: explains session_id as 'Session to tag', persona_name with examples, and relevance_note as optional. This significantly compensates for the schema's lack of descriptions (0% coverage in context signals).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action: 'Tag a session with a persona for filtered recall.' It uses a specific verb (tag) and resource (session with persona), distinguishing it from siblings like pin_session or tag_as_anti_pattern.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for 'filtered recall' but does not explicitly state when to use this tool versus alternatives such as pin_session or tag_as_anti_pattern. No when-not-to-use conditions or exclusions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

untag_anti_patternUntag Anti-PatternA

Remove an anti-pattern tag from a session. Idempotent.

The audit log row is written on successful removal; not written if the session was not tagged (idempotent no-op case).

Args: session_id: The sessions.id value to untag (TEXT <= 255 chars). source: Attribution for this untag (e.g., 'claude-code', 'admin'). reason: Human-readable reason for the removal. Stored in audit log.

NameRequiredDescriptionDefault
reasonNo
sourceNounknown
session_idYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, but the description fully discloses idempotency and audit log behavior (log written on success, not on no-op). This covers the main behavioral aspects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, well-structured with clear sections, and every sentence adds value. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description is self-contained. It explains idempotency, audit log, and all parameters, providing complete context for invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully explains each parameter: session_id as a sessions.id, source as attribution, reason as human-readable. This adds essential meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb 'untag' clearly indicates removal, and 'anti-pattern' specifies the tag type. It directly distinguishes from sibling tools like 'tag_as_anti_pattern' and 'tag_session'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when removing an anti-pattern tag, and idempotency indicates it's safe to call multiple times. However, it doesn't explicitly state when to use or not use alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vault_set_tierSet License TierA
Idempotent

Activate a tier (free or pro) for LoreConvo.

Pro tier removes the free-tier session limit (default: 50 sessions). After purchasing a Pro license, set LORECONVO_PRO= in your environment and restart the server, then call this tool with tier='pro' to confirm Pro is active. Reverting to tier='free' re-enables limits (existing sessions are preserved -- only new saves are blocked once the limit is hit).

NameRequiredDescriptionDefault
paramsYes

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses beyond annotations: Pro removes session limit, free re-enables limits preserving existing sessions, and env var prerequisite. No contradiction with annotations (idempotent, non-destructive).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise and well-structured: first sentence defines purpose, then specific details. No redundant sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, usage, prerequisites, effects, and idempotency. Output schema exists for return values, so complete for this simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Adds meaning to the single parameter 'tier' by explaining consequences of each value (pro removes limit, free re-enables). Schema description only says 'Tier to activate: free or pro', so tool description adds value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool activates a tier (free or pro) for LoreConvo, with specific effects for each tier. Distinguishes from sibling get_tier (read-only).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit steps: after purchasing Pro license, set env var, restart server, then call with tier='pro'. Also explains reverting to free. Lacks explicit 'when not to use' but context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vault_suggestGet Context SuggestionsA

Get proactive context suggestions based on your session history.

Analyzes recent sessions and surfaces:

  • Sessions with unresolved open questions that need follow-up

  • Sessions with key decisions worth reviewing before starting new work

  • Skill gaps: skills expected by a project but not used recently

Use at the start of a session to find the most valuable prior context, or when you're unsure what to work on next.

Args: project: Filter suggestions to this project persona: Filter to sessions tagged with this persona (prefix matching) days_back: How far back to look (default 14 days) limit: Max suggestions to return (default 5)

NameRequiredDescriptionDefault
limitNo
personaNo
projectNo
days_backNo

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must fully disclose behavior. It explains the output categories and parameters but fails to state whether the tool is read-only, has side effects, or performance implications. The description is adequate but lacks depth on behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a concise first sentence, bulleted output categories, usage guidance, and a parameter list. It is front-loaded and every sentence contributes value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the tool's purpose, usage, and parameter details. While it lacks an output schema, it explains what the tool surfaces. It is largely complete but could benefit from mentioning the return format or data structure for clarity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, but the description provides clear, contextual explanations for all four parameters, including default values for days_back and limit and prefix matching for persona. This fully compensates for the schema gap and adds significant meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool provides proactive context suggestions from session history, listing specific categories like unresolved questions and skill gaps. It uses the verb 'Get' and resource 'context suggestions', but does not explicitly differentiate from siblings like get_context_for or get_related_sessions, leaving some ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly advises using the tool at the start of a session or when unsure what to work on next. However, it does not mention when not to use it or suggest alternative tools for specific needs, such as searching for individual sessions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 33 tool updatesv0.8.3
    • First observedconsolidate_memories
    • First observedcreate_project
    • First observedexport_for_anthropic
    • First observedexport_sessions
    • First observedget_anti_patterns
    • First observedget_context_for
    • First observedget_docs_for_session
    • First observedget_dream_log
    • First observedget_memory_digest
    • First observedget_project
    • First observedget_recent_sessions
    • First observedget_related_sessions
    • First observedget_server_info
    • First observedget_session
    • First observedget_skill_history
    • First observedget_stats
    • First observedget_tier
    • First observedimport_sessions
    • First observedinspect_sessions
    • First observedlink_sessions
    • First observedlist_projects
    • First observedloreconvo_onboard
    • First observedpin_session
    • First observedrebuild_index
    • First observedsave_session
    • First observedsearch_sessions
    • First observedsession_link_doc
    • First observedset_session_expiry
    • First observedtag_as_anti_pattern
    • First observedtag_session
    • First observeduntag_anti_pattern
    • First observedvault_set_tier
    • First observedvault_suggest

TDQS

A3.7/5.0

Scored across 33 tools

Disambiguation4/5

Most tools have distinct purposes, but there is some overlap between get_context_for and search_sessions, as both retrieve session content based on queries. However, the former focuses on 'prior decisions and context' while the latter is a general search, so they are mostly distinguishable.

Naming Consistency5/5

All tool names follow a consistent snake_case and verb_noun pattern (e.g., consolidate_memories, create_project, search_sessions). Even compound names like tag_as_anti_pattern and untag_anti_pattern are logically consistent. No mixing of camelCase or other conventions.

Tool Count3/5

With 33 tools, the set is quite large for a memory server. Each tool serves a distinct purpose, but the overall scope might be overwhelming. The number is borderline high compared to typical well-scoped servers (3-15 tools), though the domain is broad.

Completeness4/5

The tool surface covers most lifecycle operations for sessions, projects, memory, and anti-patterns. Notable gaps include no explicit delete session tool (though set_session_expiry and pin_session manage lifecycle) and no update project tool. Overall, the set is comprehensive with minor gaps.

Maintenance

ActivityActive
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI coding agents to maintain persistent, cross-session memory of codebase architecture, naming conventions, and decisions through MCP tools. Eliminates repetitive project re-explanation by automatically injecting stored context into every session with local-first SQLite storage and optional team sharing capabilities.
    4
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Persistent memory for any AI assistant. Zero token cost until recall. Stores memories in local SQLite, ranks by 6-factor scoring, returns results 79% smaller than JSON. Works with Claude, ChatGPT, Grok, Cursor, Windsurf, and any MCP client.
    54
    Apache 2.0
  • A
    license
    A
    quality
    D
    maintenance
    Persistent memory API for AI agents — store, recall, and inject semantically-searchable context across sessions. EU-hosted, GDPR-compliant. Supports Claude, Cursor, Cline, and any MCP-compatible client.
    4
    2
    MIT