LoreConvo
OfficialLoreConvo v0.10.6
당신의 기억은 도구가 아닌 정체성을 따릅니다 — 당신의 동의와 함께.
LoreConvo는 Claude Code, Cowork, Codex, Cursor, Hermes Agent 전반에 걸쳐 컨텍스트를 전달하는 유일한 AI 메모리입니다. 한 번 설치하면, 어디서 코딩하든 하나의 메모리가 적용됩니다.
Claude Code의 플러그인 마켓플레이스에서 직접 설치하거나 PyPI를 통해 설치하세요:
uvx loreconvo
왜 LoreConvo인가?
어디서 작업하든 작동합니다
LoreConvo는 Claude Code, Cowork, Cursor, Codex, Hermes 전반에서 작동합니다 — 어떤 클라이언트를 사용하든 동일한 메모리 레이어가 적용됩니다. 프로젝트 중간에 전환해도 컨텍스트가 자동으로 함께 이동합니다.
대부분의 도구는 기계나 작업 공간별로 메모리를 격리합니다. LoreConvo는 모든 것을 당신이 소유한 SQLite 데이터베이스에 로컬로 저장하고, 어디에 있든 표시합니다. 캡처는 두 가지 방식으로 이루어집니다: 저장 도구를 통한 명시적 방식, 또는 선택적 후크를 설치한 경우 세션 종료 시 자동 방식입니다. 어느 쪽이든 언제든지 모든 메모리를 검사, 편집 또는 삭제할 수 있습니다.
저장되는 내용을 직접 제어합니다
LoreConvo는 당신에게 제어권을 부여합니다: 자동 캡처는 세션 후크를 설치하기로 선택한 경우에만 실행되며, 모든 저장은 검사 가능하고, 언제든지 모든 메모리를 삭제할 수 있습니다.
모든 메모리는 정확히 어디서 왔는지 표시합니다 — 어떤 표면에서 캡처했는지, 언제, 어떤 프로젝트 컨텍스트에 속하는지, 어떤 스킬이 생성했는지. 미스터리 없음. 완전한 출처 추적.
메모리는 당신의 기기에 남아 있습니다
LoreConvo는 모든 것을 당신의 기기에 있는 SQLite 데이터베이스에 저장합니다. 명시적으로 선택적 AI 요약 기능(Pro, 기본적으로 꺼짐)을 활성화하지 않는 한 데이터는 로컬에 유지됩니다. 이 기능은 당신의 키를 사용하여 세션 발췌문을 Anthropic API로 보냅니다. 클라우드 계정 없음. 세션 기록에 접근할 수 있는 공급업체 없음.
세션은 ~/.loreconvo/sessions.db에 저장됩니다 — 당신이 소유하고, 백업할 수 있고, 언제든지 삭제할 수 있는 파일입니다.
원시 대화 기록이 아닌 구조화된 메모리
LoreConvo는 각 세션에 대해 두 가지 유형의 메모리를 캡처합니다:
일화적 메모리: 무엇이 일어났는지 — 요약, 생성된 산출물, 남겨진 미해결 질문
의미적 메모리: 무엇이 결정되었는지 — 세션 간에 지속되는 프로젝트에 대한 안정적인 결론
이 둘을 함께 사용하면 Claude에게 프로젝트 기록의 구조화되고 검색 가능한 기록을 제공하며, 단순한 채팅 대화 기록 더미가 아닙니다.
Related MCP server: ai-memory
회상 벤치마크
LoreConvo의 FTS5 검색은 60개 세션 합성 코퍼스(6개 주제 영역, 36개 레이블링된 쿼리)를 기준으로 벤치마킹되었습니다.
변형 | Recall@5 | MRR |
FTS5 + 복합 토큰 확장(기본값) | 88.9% | 0.875 |
FTS5 기준(확장 없음) | 72.2% | 0.708 |
복합 토큰 확장(camelCase / snake_case 쿼리 전처리)은 autoSave, pipeline_tracker, get_context_for 같은 기술 식별자를 사용하는 쿼리에서 Recall@5를 +35.7 pp 향상시킵니다.
빠른 시작
설치를 위한 한 가지 명령:
bash install.sh이 명령은 가상 환경을 생성하고, 종속성을 설치하고, 모든 것이 작동하는지 확인합니다. 시스템 Python 변경 없음, 수동 pip 명령 없음.
LoreConvo 사용하기
Claude Code(터미널)
플러그인이 로드된 세션 시작:
claude --plugin-dir /path/to/loreconvo또는 기존 세션 내에서 로드:
/plugin add /path/to/loreconvo/path/to/loreconvo를 소스 폴더를 저장한 위치로 바꾸세요.
코드 변경 후에는 재시작 없이 /reload-plugins를 사용하여 새로고침하세요.
로드되면 Claude는 39개의 LoreConvo MCP 도구에 자동으로 액세스할 수 있습니다. Claude에게 "이 세션 저장" 또는 "X에 대해 논의한 내용 회상"을 요청하면 도구를 자체적으로 사용합니다.
Cowork(데스크톱 앱)
프롬프트 상자 옆의 + 버튼을 클릭합니다
플러그인 선택
플러그인 추가 선택
loreconvo소스 폴더로 이동
중요: 공유 데이터베이스 액세스
Cowork는 샌드박스 VM에서 실행되며 기본적으로 Mac의 파일 시스템을 볼 수 없습니다. Claude Code가 저장한 세션을 읽으려면 Cowork에서 Claude에게 요청하세요:
"내 ~/.loreconvo 폴더를 마운트해 줘"
마운트되면 Cowork는 Claude Code와 동일한 데이터베이스를 읽고 씁니다. Code에서 저장된 세션은 Cowork에 즉시 표시됩니다.
Claude Chat(웹)
Chat은 플러그인을 지원하지 않으므로 LoreConvo는 원커맨드 브리지를 제공합니다. 터미널에서 다음을 실행하세요:
bash export-to-chat.sh이 명령은 마지막 세션을 내보내고 클립보드에 복사합니다(macOS). Chat으로 전환하여 붙여넣기(Cmd+V)하세요. Chat은 Code 또는 Cowork 세션의 컨텍스트를 즉시 갖게 됩니다.
특정 세션을 검색하려면:
bash export-to-chat.sh "tax prep"여러 표면에서의 작동 방식
LoreConvo의 핵심 가치는 컨텍스트가 Claude 표면 간에 자동으로 유지된다는 것입니다. 전체 체인은 다음과 같습니다:
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 ChatClaude Code는 기본 표면입니다. 후크는 자동으로 실행됩니다:
세션이 종료되면
auto_save.py가 대화를 캡처하고 구조화된 요약(결정, 산출물, 미해결 질문, 태그)을 로컬 SQLite 데이터베이스에 저장합니다.새 세션이 시작되면
auto_load.py가 데이터베이스를 쿼리하고, 신호 품질로 최근 세션의 점수를 매기고, 가장 관련성 높은 컨텍스트를 시스템 컨텍스트로 세션에 주입합니다. 미해결 질문과 결정이 있는 세션이 가장 높은 점수를 받고, 신호가 낮은 세션은 필터링됩니다. 또한 프로젝트 디렉토리에서 발견된 MEMORY.md를 인덱싱합니다(MEMORY.md 자동 인덱싱 참조).
Cursor는 프로젝트 루트의 .cursor/mcp.json을 통해 연결합니다 — Claude Code와 동일한 MCP 프로토콜입니다. 설정 세부 사항은 INSTALL.md를 참조하세요.
OpenAI Codex는 [mcp_servers.<name>] 섹션을 사용하여 ~/.codex/config.toml을 통해 연결합니다. 설정 세부 사항은 INSTALL.md를 참조하세요.
Hermes Agent는 mcp_servers: 키 아래의 ~/.hermes/config.yaml을 통해 연결합니다. 설정 세부 사항은 INSTALL.md를 참조하세요.
Claude Chat(웹)은 플러그인을 지원하지 않습니다. export-to-chat.sh 스크립트가 그 격차를 메웁니다: 가장 최근 세션을 클립보드로 내보내 Chat에 직접 붙여넣을 수 있습니다. 이렇게 하면 Chat은 Code가 자동으로 로드했을 동일한 컨텍스트를 갖게 됩니다.
결과: 프로젝트 중간에 표면을 전환해도 무엇을 하고 있었는지 다시 설명할 필요가 없습니다.
데이터는 항상 사용 가능합니다
LoreConvo는 MCP 도구를 사용할 수 있을 때 이를 통해 작동하고, 사용할 수 없을 때 번들 스크립트로 자동 대체합니다. MCP 상태와 관계없이 세션은 안전합니다 — 동일한 저장, 검색, 회상 작업이 어느 쪽이든 작동합니다. 아무것도 구성할 필요가 없습니다. 플러그인 스킬이 자동으로 전환을 처리합니다.
프로젝트 작업 공간
LoreConvo 프로젝트는 영구 작업 공간입니다 — 프로젝트 작업의 모든 세션, 결정, 산출물은 모든 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")프로젝트 지침(선택 사항): 프로젝트를 생성할 때 세션 시작 시 Claude가 볼 영구 지침이나 제약 조건을 저장할 수 있습니다. 이는 모든 CLAUDE.md 파일에 반복하지 않고 프로젝트 전체 표준을 적용하는 데 유용합니다. 지침은 최근 세션 요약 앞의 자동 로드 컨텍스트에 표시됩니다.
LoreDocs와 함께 사용하면 LoreConvo는 모든 Claude를 위한 휴대용 프로젝트 작업 공간을 형성합니다 — 세션 메모리와 구조화된 지식, 전적으로 당신의 기기에서. 클라우드 AI 작업 공간이 하나의 생태계에 묶는 반면, Lore 페어는 이미 사용 중인 모든 Claude 표면에서 작동합니다.
MEMORY.md 자동 인덱싱
프로젝트에 MEMORY.md 파일이 있으면 LoreConvo는 모든 세션 시작 시 자동으로 인덱싱합니다. 내용은 search_sessions를 통해 일반 세션과 함께 검색 가능해집니다.
즉, Claude는 언급하지 않아도 MEMORY.md에서 프로젝트 규칙, 팀 메모 또는 아키텍처 결정을 회상할 수 있습니다. MEMORY.md의 검색 결과는 memory_md 태그와 source='file_memory'로 표시되어 일반 세션 항목과 구분할 수 있습니다.
어떤 디렉토리가 스캔되나요?
기본적으로 LoreConvo는 Claude Code가 실행 중인 디렉토리(현재 작업 디렉토리)를 스캔합니다. 다른 디렉토리를 지정하려면 claude mcp add --scope user 명령에 LORECONVO_PROJECT_PATH 환경 플래그로 전달하세요:
"--env=LORECONVO_PROJECT_PATH=/Users/YOUR_USERNAME/projects/my_project"YOUR_USERNAME과 my_project를 실제 값으로 바꾸세요. 전체 절대 경로를 사용하세요 — ~ 또는 $HOME을 사용하지 마세요.
검색 결과에서 MEMORY.md 항목 필터링
검색에 MEMORY.md 항목을 포함하려면 search_sessions를 일반적으로 사용하세요 — 자동으로 나타납니다. MEMORY.md 항목만 보려면 태그로 필터링하세요:
"LoreConvo 세션에서 memory_md 태그가 있는 'database conventions'를 검색해 줘."
인덱스는 세션이 시작될 때마다 업데이트됩니다(멱등적 — 중복이 누적되지 않음).
설치 확인
설치 후 LoreConvo가 작동하는지 확인하려면 Claude에게 요청하세요:
"
get_recent_sessions를 실행하고 결과를 보여줘."
세션 목록이 표시되면(처음이라면 빈 목록이어도) LoreConvo가 연결된 것입니다. 도구 누락 오류가 발생하면 bash install.sh를 다시 실행하고 플러그인을 새로고침하세요.
후크 확인(Claude Code 전용):
"이 세션 시작 시 LoreConvo가 컨텍스트를 자동 로드했는지 확인해 줘."
SessionStart 후크가 작동하면 Claude는 최근 세션의 컨텍스트를 자동으로 받았을 것입니다.
권장 CLAUDE.md 설정
최상의 경험을 위해 다음 스니펫을 ~/.claude/CLAUDE.md(전역) 또는 프로젝트의 CLAUDE.md에 추가하세요. 이는 Claude에게 세션 간에 LoreConvo를 일관되게 사용하는 방법을 알려줍니다.
## 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).Cowork 사용자용: Cowork는 후크를 자동으로 실행하지 않습니다. 프로젝트 CLAUDE.md에 세션 시작 시 get_recent_sessions를 호출하고 세션 종료 시 save_session을 호출하는 지침을 추가하세요. 자세한 내용은 COWORK_RESTORE.md를 참조하세요.
요금제: 무료 vs Pro
LoreConvo는 로컬 우선이며 무료로 사용할 수 있습니다. Pro($8/월)는 세션 제한을 제거하고 LLM 품질 요약, 하이브리드 검색 검색, 교차 제품 연결을 잠금 해제합니다. 두 요금제 모두 모든 것이 당신의 기기에서 실행됩니다 — Pro는 클라우드 구성 요소를 추가하지 않습니다.
무료 티어 검색: 키워드(FTS5) + 최신순 정렬. Pro 티어 검색: 하이브리드 검색 — 벡터(BGE-small-en-v1.5), BM25 전체 텍스트, 최신순 재순위를 RRF 융합으로 결합. 키워드뿐만 아니라 의미로 세션을 찾습니다.
Free | Pro (월 $8) | |
저장된 세션 | 50 | 무제한 |
전체 텍스트 검색 (FTS5) | 예 | 예 |
MEMORY.md 자동 인덱싱 | 예 | 예 |
프로젝트 태깅, 세션 연결, 스킬 기록 | 예 | 예 |
자동 로드 / 자동 저장 훅 | 예 | 예 |
로컬 우선, 클라우드 없음, API 비용 제로 | 예 | 예 |
관련 세션 발견 | 키워드 동시 발생 | 임베딩 기반 (BGE-small-en-v1.5) |
LLM 비동기 세션 요약 | -- | 예 (Claude Haiku, 옵트인) |
하이브리드 검색: 벡터 + BM25 + 최신성 재순위화 ( | -- | 예 (Pro) |
제품 간 문서 연결 ( | -- | 예 (LoreDocs Pro도 필요) |
팀 메모리 -- 머신 간 세션 내보내기/병합 | -- | 예 |
Anthropic 관리 에이전트 내보내기 ( | -- | 예 |
get_tier로 현재 티어와 사용량을 확인하세요. vault_set_tier로 Pro 라이선스를 활성화하세요.
기능
자동 세션 캡처: 세션은 Claude Code 훅을 통해 세션 종료 시 저장되고 세션 시작 시 로드됩니다. 수동으로
save_session을 호출할 필요가 없습니다.클라이언트 간 메모리: 컨텍스트가 Claude Code, Cowork, Cursor, Codex, Hermes 전반에서 사용자를 따라다닙니다. 하나의 IDE나 머신에 국한되지 않습니다.
구조화된 세션: 단순 원문이 아니라 결정, 산출물, 미해결 질문을 캡처합니다. 선택적
reasoning_notes필드에 에이전트 추론 체인을 저장합니다.프로젝트 구성: 예상 스킬 세트와 함께 세션을 프로젝트별로 그룹화합니다.
스킬 추적: 스마트 필터링을 위해 사용된 스킬을 기록합니다.
페르소나 태깅: 에이전트별 메모리를 위한 계층적 페르소나 (예:
ron-bot:sql)전체 텍스트 검색: 모든 세션에 대한 빠른 키워드 검색을 위한 SQLite FTS5
MEMORY.md 자동 인덱싱: 프로젝트의 MEMORY.md는 세션 시작 시 자동으로 인덱싱되며
search_sessions를 통해 일반 세션과 함께 검색할 수 있습니다.LLM 비동기 세션 요약 (Pro): 자동 저장된 세션은 백그라운드에서 Claude Haiku를 사용하여 LLM 수준의 요약으로 업그레이드됩니다.
LORECONVO_ANTHROPIC_API_KEY를 설정하여 옵트인하세요. 일일 상한(LORECONVO_SUMMARIZER_DAILY_CAP, 기본값 100)이 API 비용 폭주를 방지합니다. Pro 티어 전용입니다.임베딩 기반 관련 세션 발견 (Pro):
get_related_sessions는 BGE-small-en-v1.5 임베딩(코사인 >= 0.75)을 사용하여 유사한 콘텐츠의 세션을 자동으로 발견합니다. 저장당 최대 10개의 양방향 자동 링크가 생성되며, 동일 프로젝트 범위로 제한됩니다. Free 티어는 키워드 동시 발생 링크를 얻습니다.LORECONVO_EMBEDDING_LINKS=0을 설정하면 임베딩 링크를 비활성화할 수 있습니다.제품 간 문서 연결 (Pro): 모든 세션에 가장 관련성이 높은 LoreDocs 문서를 자동으로 발견하고 연결하며, 그 반대의 경우도 마찬가지입니다.
get_docs_for_session및session_link_doc라는 두 가지 새 도구를 사용합니다. LoreConvo Pro와 LoreDocs Pro가 모두 필요합니다.로컬 우선: SQLite 데이터베이스, 클라우드 의존성 없음, API 비용 제로
티어
Free - 50개 세션
전체 기능 세트: 자동 로드, 전체 텍스트 검색, 태깅, 세션 연결, 내보내기 및 가져오기
로컬 SQLite 저장소 -- 데이터는 내 머신에, 클라우드 계정 불필요
Anthropic Marketplace를 통한 원클릭 설치
Pro - 월 $8
무제한 세션
팀 메모리: 동료와 세션 공유 (로컬 우선 비동기 내보내기/가져오기, 서버 불필요)
관련 세션 발견 및 시맨틱 검색
Anthropic 관리 에이전트 내보내기
백그라운드에서 LLM 수준의 세션 요약 (비동기)
MCP 도구
LoreConvo는 세션 중 Claude가 자동으로 호출하는 39개의 MCP 도구를 제공합니다. 아래 표는 가장 일반적으로 사용되는 도구를 보여줍니다. 전체 참조는 MCP 도구 카탈로그를 참조하세요.
도구 | 기능 |
| 결정, 산출물, 태그가 포함된 세션 요약 저장 |
| 최근 세션 목록, 선택적으로 클라이언트로 필터링 |
| ID로 특정 세션 검색 |
| 저장된 모든 세션에 대한 전체 텍스트 검색 |
| 주제에 대한 관련 컨텍스트 가져오기 ("회상" 용도에 가장 적합) |
| 세션에 페르소나 태그 추가 |
| 관계 유형으로 관련 세션 연결 |
| 주어진 세션과 관련된 세션 찾기 |
| 예상 스킬이 있는 명명된 프로젝트 생성 |
| 프로젝트 세부 정보 및 연결된 세션 가져오기 |
| 모든 프로젝트 나열 |
| 특정 스킬을 사용한 세션 확인 |
| 로드할 관련 컨텍스트에 대한 선제적 제안 |
| 현재 티어 및 라이선스 키 상태 확인 |
| 활성 티어 설정 (free 또는 pro) |
| 세션을 휴대용 JSON 형식으로 내보내기 |
| 이전에 내보낸 JSON 파일에서 세션 가져오기 |
| 관련 세션을 영구 메모리 항목으로 병합 (Recall) |
| 현재 세션에 압축된 메모리 다이제스트 주입 (Recall) |
| 세션을 만료로 표시하고 지정된 날짜 이후 정리 |
| 사용 통계 표시 (세션 수, 클라이언트별 분석) |
| 디버깅을 위해 세션 내부 검사 |
| Anthropic 관리 에이전트 형식으로 세션 내보내기 (Pro) |
| LanceDB 시맨틱 검색 인덱스 재구축 (Pro) |
| 최초 설정 마법사 |
| 통합 활동 로그 보기 |
| 특정 세션에 연결된 LoreDocs 문서 검색 (Pro -- LoreDocs Pro 필요) |
| 세션과 LoreDocs 문서 간 링크 수동 생성 (Pro -- LoreDocs Pro 필요) |
| 자동 정리에서 제외하도록 세션 고정 또는 고정 해제 |
| 안티 패턴으로 태그된 세션 나열 (피해야 할 접근 방식) |
| 세션을 안티 패턴으로 태그하여 향후 회상에서 플래그 지정 |
| 세션에서 안티 패턴 태그 제거 |
| 구조화된 메모리 항목 저장: 결정, 미해결 질문 또는 산출물 |
| 유형, 프로젝트, 상태 및 최신성별로 구조화된 메모리 항목 쿼리 |
| 메모리 항목을 수명 주기에 따라 이동 (retire, answer, wont-answer) |
| 메모리 항목의 제목, 본문, 태그 또는 메타데이터 수정, 또는 프로젝트 간 이동 |
| 에이전트가 세션 시작 시 대상 컨텍스트를 자동 로드하도록 명명된 주제 구성을 저장 또는 업데이트 |
| 저장된 또는 호출 시 주제를 사용하여 에이전트를 위한 대상 세션 컨텍스트 반환 |
| 세션 및 해당 링크의 Mermaid 지식 그래프 내보내기 |
요구 사항
Python 3.10+
macOS 또는 Linux
mcp및click(install.sh에 의해 자동 설치됨)
데이터 및 개인정보 보호
LoreConvo는 로컬 우선입니다. 모든 데이터는 사용자 머신의 ~/.loreconvo/sessions.db에 저장됩니다.
수집되는 데이터: 저장 시 제공하는 세션 제목, 요약, 태그, 클라이언트 식별자, 프로젝트 이름 및 스킬 이름. 원격 측정, 사용 분석 또는 식별자는 자동으로 수집되지 않습니다.
저장소:
~/.loreconvo/sessions.db의 SQLite 데이터베이스. 클라우드 저장소 없음.LORECONVO_DB환경 변수로 경로를 재정의할 수 있습니다.제3자 공유: 기본적으로 없음.
LORECONVO_ANTHROPIC_API_KEY를 설정하여 선택적 AI 요약(Pro)을 활성화하는 경우에만 데이터가 머신을 떠나며, 이 경우 제한된 대화 내용 발췌문이 사용자 자신의 키로 Anthropic API에 전송됩니다. 키를 설정하지 않으면 모든 것이 로컬에 유지됩니다.보존:
delete_session을 통해 삭제하거나 데이터베이스 파일을 수동으로 제거할 때까지 데이터가 보존됩니다. 자동 만료 없음.
전체 개인정보 보호정책: https://labyrinthanalyticsconsulting.com/privacy
문제 해결
MCP 도구가 Claude Code에 표시되지 않나요?
먼저 bash install.sh를 실행했는지 확인하세요. .venv가 존재하고 종속성이 설치되어 있어야 합니다.
"No module named 'mcp'" 오류?
.mcp.json은 플러그인 폴더 안의 .venv/bin/python3을 가리킵니다. 폴더를 이동한 경우 bash install.sh를 다시 실행하세요.
Cowork에서 Code에 저장된 세션을 볼 수 없나요?
Cowork가 공유 데이터베이스에 액세스할 수 있도록 Claude에게 "내 ~/.loreconvo 폴더를 마운트해"라고 요청하세요.
대체 스크립트 (직접 DB 액세스)
MCP 서버에 연결할 수 없는 경우(예: 예약된 작업 또는 자동화 스크립트에서) scripts/save_to_loreconvo.py가 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"스크립트는 ~/.loreconvo/sessions.db에서 데이터베이스를 자동으로 감지합니다(또는 --db-path를 명시적으로 전달하세요). 올바른 UUID를 생성하고 MCP save_session 도구와 동일한 스키마를 작성합니다.
새로운 기능
v0.10.6 (2026-08-19)
수정됨: 실패 알림이 포착해야 할 바로 그 중단 상황에서 침묵할 수 있었음
저장 훅이 시작을 마치기 전에 충분히 일찍 크래시하면 실패가 전혀 기록되지 않았고, 그래서 "자동 저장이 중단되었습니다" 알림은 포착해야 할 바로 그 상황에서 침묵했습니다. 이제 저장 훅은 이렇게 일찍 죽더라도 백업 경로를 통해 실패를 기록하므로, 알림은 스스로 보고할 만큼 진행된 실패 모드뿐만 아니라 모든 실패 모드에서 발동합니다.
전체 릴리스 내역은 변경 로그를 참조하세요.
라이선스
Business Source License 1.1 (BSL 1.1) - Labyrinth Analytics Consulting
개인/비상업적 용도(최대 50개 세션)에는 무료입니다. 상업적 사용에는 유료 라이선스가 필요합니다. 2030-03-31에 Apache 2.0으로 전환됩니다. 자세한 내용은 LICENSE를 참조하세요.
Available Tools
33 toolsconsolidate_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).
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | heuristic | |
| project | Yes | ||
| surface | No | ||
| max_sessions | No |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| description | No | ||
| instructions | No | ||
| default_persona | No | ||
| expected_skills | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| project | No | ||
| days_back | No | ||
| output_path | No | ||
| session_ids | No |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | ||
| limit | No | ||
| format | No | json | |
| project | No | ||
| days_back | No | ||
| output_path | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| topic | No | ||
| project | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes | ||
| semantic | No | ||
| max_results | No | ||
| include_external | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| session_id | Yes |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| project | No | ||
| surface | No |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| disable | No | ||
| project | Yes | ||
| surface | No |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| project_name | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| skill | No | ||
| project | No | ||
| days_back | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| days_back | No | ||
| skill_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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")
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| dry_run | No | ||
| file_path | Yes | ||
| on_conflict | No | skip |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | ||
| limit | No | ||
| since | No | ||
| search | No | ||
| surface | No | ||
| session_id | No | ||
| show_stats | No |
TDQS
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.
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.
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.
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.
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.
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.
link_sessionsLink SessionsB
Link two related sessions.
Args: from_id: Source session ID to_id: Target session ID link_type: Relationship type - 'continues', 'related', or 'supersedes'
| Name | Required | Description | Default |
|---|---|---|---|
| to_id | Yes | ||
| from_id | Yes | ||
| link_type | No | continues |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It only states that it links sessions, without revealing whether the operation is idempotent, requires permissions, overwrites existing links, or has side effects. The link_type values ('continues', 'related', 'supersedes') are listed but their semantics and impact are not explained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: a one-line purpose followed by a clear parameter list. Every word is functional, with no redundancy or fluff. The structure is front-loaded and easy to scan, earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 parameters, no output schema, and no annotations, the description is incomplete. It lacks context on what linking means (persistent? affects retrieval?), error handling (e.g., invalid IDs), and how this tool complements siblings like get_related_sessions or session_link_doc. The minimal description leaves the agent with significant uncertainty.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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. The 'Args:' section adds meaning beyond the schema: 'Source session ID', 'Target session ID', and 'Relationship type - continues, related, or supersedes'. This clarifies the parameters' roles. However, it does not explain constraints (e.g., circular links, duplicates) or provide examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Link two related sessions,' clearly indicating the verb (Link) and resource (sessions). This distinguishes it from siblings like get_related_sessions (which retrieves links) and session_link_doc (which links sessions to documents). However, it does not specify what linking accomplishes functionally, such as whether it affects retrieval or is persistent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like get_related_sessions or session_link_doc. It does not mention prerequisites, limitations, or when not to use it. The sibling list is provided externally, but the description itself lacks explicit usage direction.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| agents | No | ||
| projects | No | ||
| tag_style | No | simple |
TDQS
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.
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.
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.
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.
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.
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": "..."}
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | ||
| keep_forever | No |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | ||
| title | Yes | ||
| project | No | ||
| summary | Yes | ||
| surface | Yes | ||
| end_date | No | ||
| artifacts | No | ||
| decisions | No | ||
| summarize | No | ||
| session_id | No | ||
| start_date | No | ||
| skills_used | No | ||
| open_questions | No | ||
| reasoning_notes | No | ||
| external_tool_session | No |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | ||
| limit | No | ||
| query | Yes | ||
| skills | No | ||
| persona | No | ||
| project | No | ||
| semantic | No | ||
| include_expired | No | ||
| include_external | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
session_link_docLink Session to DocA
Create a manual cross-product link from a LoreConvo session to a LoreDocs doc.
Manual links are accessible on all tiers. The target doc must not be in a vault with cross_link_opt_out enabled. Both products must be installed.
Args: session_id -- LoreConvo session UUID doc_id -- LoreDocs document ID vault_id -- LoreDocs vault containing the document
Returns dict with: ok -- bool reason -- failure description on error (generic; details in debug log)
| Name | Required | Description | Default |
|---|---|---|---|
| doc_id | Yes | ||
| vault_id | Yes | ||
| session_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It reveals that the tool creates a link (a write operation) and returns an ok/reason dict, but it lacks information about side effects, idempotency, permissions, or rate limits. The failure reason is noted as 'generic; details in debug log', which is only moderately transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (about 100 words), well-structured with a clear action statement, constraints list, parameter documentation, and return value description. Every sentence adds value, and the bulleted args/rets improve readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (3 string params, no output schema), the description covers the core action, constraints, parameters, and return values. It lacks examples, error handling details, and mention of uniqueness/duplication behavior, but overall it provides sufficient 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% coverage (no descriptions), so the description must compensate. It does so by explaining each parameter's purpose (e.g., 'session_id -- LoreConvo session UUID'), adding meaning beyond the raw schema. However, it could provide more detail (e.g., format constraints or examples).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action (create a manual cross-product link from a LoreConvo session to a LoreDocs doc), distinguishing it from sibling tools like link_sessions (which links sessions together) or get_docs_for_session (which retrieves existing links).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the context ('manual cross-product link', 'accessible on all tiers') and lists prerequisites (target doc not in opt-out vault, both products installed). However, it does not explicitly state when not to use this tool or mention alternatives, leaving some room for improvement.
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
| Name | Required | Description | Default |
|---|---|---|---|
| expires_at | Yes | ||
| session_id | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | ||
| source | No | unknown | |
| session_id | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | ||
| persona_name | Yes | ||
| relevance_note | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | ||
| source | No | unknown | |
| session_id | Yes |
TDQS
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.
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.
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.
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.
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.
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 TierAIdempotent
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).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| persona | No | ||
| project | No | ||
| days_back | No |
TDQS
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.
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.
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.
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.
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.
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.
33 tool updates
v0.8.3- First observed
consolidate_memories - First observed
create_project - First observed
export_for_anthropic - First observed
export_sessions - First observed
get_anti_patterns - First observed
get_context_for - First observed
get_docs_for_session - First observed
get_dream_log - First observed
get_memory_digest - First observed
get_project - First observed
get_recent_sessions - First observed
get_related_sessions - First observed
get_server_info - First observed
get_session - First observed
get_skill_history - First observed
get_stats - First observed
get_tier - First observed
import_sessions - First observed
inspect_sessions - First observed
link_sessions - First observed
list_projects - First observed
loreconvo_onboard - First observed
pin_session - First observed
rebuild_index - First observed
save_session - First observed
search_sessions - First observed
session_link_doc - First observed
set_session_expiry - First observed
tag_as_anti_pattern - First observed
tag_session - First observed
untag_anti_pattern - First observed
vault_set_tier - First observed
vault_suggest
TDQS
Scored across 33 tools
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.
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.
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.
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
Related MCP Connectors
Persistent memory for AI agents across Claude, ChatGPT and any MCP client.
- mcpOAuthai.butlerbrain
Persistent memory for AI assistants. Save once; recall from Claude, ChatGPT, or any MCP client.
Persistent AI memory shared across Claude, ChatGPT, coding agents, and compatible MCP clients.
Private memory for AI agents: save and recall facts across Claude Code, Codex, Cursor and ChatGPT.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables 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.4MIT
- AlicenseNot gradedqualityAmaintenancePersistent 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.54Apache 2.0
- AlicenseAqualityDmaintenancePersistent 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.42MIT
- AlicenseBqualityAmaintenancePersistent, local memory for AI coding agents that learns how you work, not just what you said. Supports Claude Code, Codex CLI, Cursor, and any MCP client.79235 PyPI73MIT