LoreConvo
OfficialLoreConvo v0.10.6
あなたのメモリはツールではなく、あなたのアイデンティティに従います — あなたの同意のもとに。
LoreConvo は、Claude Code、Cowork、Codex、Cursor、Hermes Agent をまたいでコンテキストを運ぶ唯一の AI メモリです。1 回のインストール、1 つのメモリ、どこでコードを書いても同じです。
Claude Code のプラグインマーケットプレイスから直接インストールするか、PyPI 経由でインストールします:
uvx loreconvo
LoreConvo を選ぶ理由
どこでも使える
LoreConvo は Claude Code、Cowork、Cursor、Codex、Hermes で動作します — どのクライアントを使っても同じメモリレイヤーが使えます。プロジェクトの途中で切り替えても、コンテキストは自動的に一緒に移動します。
ほとんどのツールはメモリをマシンやワークスペースごとに隔離します。LoreConvo はすべてをあなたが所有する SQLite データベースにローカル保存し、どこにいても表示します。キャプチャは 2 つの方法で行われます: save ツールによる明示的な方法と、オプションのフックをインストールした場合のセッション終了時の自動方法です。どちらの場合も、いつでもメモリを確認、編集、削除できます。
保存内容はあなたが制御
LoreConvo はあなたに制御権を与えます: 自動キャプチャはセッションフックをインストールした場合のみ実行され、すべての保存は検査可能で、いつでも任意のメモリを削除できます。
すべてのメモリは、どこから来たのかを正確に表示します — どのサーフェスがキャプチャしたか、いつ、どのプロジェクトコンテキストに属するか、どのスキルが生成したか。謎はありません。完全な来歴があります。
メモリはあなたのマシンに残る
LoreConvo はすべてを自分のマシン上の SQLite データベースに保存します。オプションの AI 要約機能(Pro、デフォルトではオフ)を明示的に有効にしない限り、データはローカルに留まります。この機能は、あなた自身のキーを使用して Anthropic API にトランスクリプトの抜粋を送信します。クラウドアカウントは不要です。セッション履歴にアクセスできるベンダーもありません。
セッションは ~/.loreconvo/sessions.db に保存されます — これはあなたが所有し、バックアップでき、いつでも削除できるファイルです。
生のトランスクリプトではなく、構造化されたメモリ
LoreConvo は各セッションについて 2 種類のメモリをキャプチャします:
エピソード記憶: 何が起こったか — 要約、作成された成果物、残された未解決の質問
意味記憶: 何が決定されたか — セッションをまたいで持続するプロジェクトに関する安定した結論
これらを合わせることで、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 ポイント 向上させます。
クイックスタート
インストールは 1 コマンド:
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 に次のように依頼します:
"Mount my ~/.loreconvo folder"
マウントされると、Cowork は Claude Code と同じデータベースを読み書きします。Code で保存されたセッションは、Cowork に即座に表示されます。
Claude Chat(Web)
Chat はプラグインをサポートしていないため、LoreConvo は 1 コマンドのブリッジを提供します。ターミナルでこれを実行します:
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 は、~/.codex/config.toml の [mcp_servers.<name>] セクションを使用して接続します。セットアップの詳細は INSTALL.md を参照してください。
Hermes Agent は、~/.hermes/config.yaml の mcp_servers: キーで接続します。セットアップの詳細は INSTALL.md を参照してください。
Claude Chat(Web)はプラグインをサポートしていません。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 ワークスペースが 1 つのエコシステムに縛るのに対し、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 エントリのみを表示するには、タグでフィルタリングします:
"Search LoreConvo sessions tagged memory_md for 'database conventions'."
インデックスはセッションが開始されるたびに更新されます(冪等 — 重複は蓄積されません)。
インストールの確認
インストール後、LoreConvo が機能していることを確認するには、Claude に次のように依頼します:
"Run
get_recent_sessionsand show me the results."
セッションのリスト(初めての場合は空のリスト)が表示されたら、LoreConvo は接続されています。ツールが見つからないというエラーが発生した場合は、bash install.sh を再実行してプラグインをリロードしてください。
フックの確認(Claude Code のみ):
"Check if LoreConvo auto-loaded any context at the start of this session."
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/mo) | |
保存セッション | 50 | 無制限 |
全文検索(FTS5) | あり | あり |
MEMORY.md自動インデックス化 | あり | あり |
プロジェクトタグ付け、セッションリンク、スキル履歴 | あり | あり |
自動ロード / 自動保存フック | あり | あり |
ローカルファースト、クラウドなし、APIコストゼロ | あり | あり |
関連セッションの発見 | キーワード共起 | 埋め込みベース(BGE-small-en-v1.5) |
LLM非同期セッション要約 | -- | あり(Claude Haiku、オプトイン) |
ハイブリッド検索:ベクトル + BM25 + 新しさによる再ランキング( | -- | あり(Pro) |
クロスプロダクト文書リンク( | -- | あり(LoreDocs Proも必要) |
チームメモリ -- マシン間でのセッションのエクスポート/マージ | -- | あり |
Anthropic管理エージェント向けエクスポート( | -- | あり |
現在のティアと使用状況は get_tier で確認できます。Proライセンスは vault_set_tier でアクティベートします。
機能
自動セッションキャプチャ: セッションはセッション終了時に保存され、セッション開始時にClaude Codeフックを介して読み込まれます。手動で
save_sessionを呼び出す必要はありません。クロスクライアントメモリ: コンテキストはClaude Code、Cowork、Cursor、Codex、Hermes間で追従します。1つのIDEやマシンに固定されません。
構造化セッション: 決定事項、成果物、未解決の質問をキャプチャします。単なる生テキストではなく、オプションの reasoning_notes フィールドにエージェントの推論チェーンを保存します。
プロジェクト整理: 期待されるスキルセットとともにセッションをプロジェクトごとにグループ化します。
スキル追跡: スマートフィルタリングのために使用されたスキルを記録します。
ペルソナタグ付け: エージェント固有のメモリのための階層的ペルソナ(例:
ron-bot:sql)全文検索: 全セッションにわたる高速キーワード検索のためのSQLite FTS5
MEMORY.md自動インデックス化: プロジェクトのMEMORY.mdはセッション開始時に自動的にインデックス化され、通常のセッションと同様に
search_sessionsで検索できます。LLM非同期セッション要約(Pro): 自動保存されたセッションは、バックグラウンドでClaude Haikuを使用してLLM品質の要約にアップグレードされます。
LORECONVO_ANTHROPIC_API_KEYを設定することでオプトインします。1日の上限(LORECONVO_SUMMARIZER_DAILY_CAP、デフォルト100)により、API費用の暴走を防ぎます。Proティアのみ。埋め込みベースの関連セッション発見(Pro):
get_related_sessionsは、BGE-small-en-v1.5埋め込み(コサイン類似度 >= 0.75)を使用して、類似コンテンツを持つセッションを自動的に発見します。保存ごとに最大10件の双方向自動リンクを作成し、同じプロジェクト内に限定されます。無料ティアではキーワード共起リンクが提供されます。LORECONVO_EMBEDDING_LINKS=0を設定すると埋め込みリンクを無効化できます。クロスプロダクト文書リンク(Pro): 任意のセッションに最も関連するLoreDocs文書を自動的に発見してリンクし、その逆も行います。
get_docs_for_sessionとsession_link_docの2つの新しいツールを使用します。LoreConvo ProとLoreDocs Proの両方が必要です。ローカルファースト: SQLiteデータベース、クラウド依存なし、APIコストゼロ
ティア
Free - 50セッション
全機能セット:自動ロード、全文検索、タグ付け、セッションリンク、エクスポートとインポート
ローカルSQLiteストレージ -- あなたのデータ、あなたのマシン、クラウドアカウント不要
Anthropic Marketplaceからのワンクリックインストール
Pro - $8/月
無制限のセッション
チームメモリ:チームメイトとセッションを共有(ローカルファーストの非同期エクスポート/インポート、サーバー不要)
関連セッションの発見とセマンティック検索
Anthropic管理エージェント向けエクスポート
バックグラウンドでのLLM品質のセッション要約(非同期)
MCPツール
LoreConvoは、セッション中にClaudeが自動的に呼び出す39のMCPツールを提供します。 以下の表は最も一般的に使用されるツールを示しています。完全なリファレンスは MCP Tool Catalog を参照してください。
ツール | 説明 |
| 決定事項、成果物、タグを含むセッション要約を保存する |
| 最近のセッションを一覧表示する。必要に応じてサーフェスでフィルタリング可能 |
| IDで特定のセッションを取得する |
| 保存済みの全セッションにわたる全文検索 |
| トピックに関連するコンテキストを取得する(「想起」用途に最適) |
| セッションにペルソナタグを追加する |
| 関連セッションをリレーションシップタイプで接続する |
| 指定したセッションに関連するセッションを見つける |
| 期待されるスキルを持つ名前付きプロジェクトを作成する |
| プロジェクトの詳細と関連セッションを取得する |
| すべてのプロジェクトを一覧表示する |
| 特定のスキルを使用したセッションを確認する |
| 読み込む関連コンテキストのプロアクティブな提案 |
| 現在のティアとライセンスキーの状態を確認する |
| アクティブなティア(無料または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環境変数でパスを上書きできます。第三者との共有: デフォルトでは一切ありません。
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で保存したセッションを表示できない場合 Claudeに「~/.loreconvo フォルダをマウントして」と依頼すると、Coworkが共有データベースにアクセスできるようになります。
フォールバックスクリプト(直接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)
修正: 障害アラートが、本来検知すべきまさにそのネットワークの障害中に無音になることがある
セーブフックが起動を完了する前に早い段階でクラッシュした場合、失敗は一切記録されず、「自動保存が機能しなくなりました」というアラートは、まさに検知しなければならないその障害の間、沈黙したままでした。今後は、セーブフックがこのように早い段階で終了でもバックアップ経路を経由して失敗を記録するため、アラートは自分自身で報告できる段階まで進んだ障害モードだけではなく、あらゆる障害モードで発火します。
完全なリリース履歴は、changelog でご確認ください。
ライセンス
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