Skip to main content
Glama

Why LocalNest?

Every other MCP server forces you to choose: memory or code intelligence. Never both.

LocalNest is the first to combine all three pillars into one server that runs entirely on your machine:

Pillar

What it does

Why it matters

Code Intelligence

Hybrid BM25+vector search, AST-aware chunking, symbol finding (defs/usages/callers)

Your AI understands code structure, not just text

Knowledge Graph

Temporal entity-triple store with multi-hop traversal and as_of time-travel queries

Architectural decisions, dependencies, and facts — versioned over time

Persistent Memory

Cross-session recall, semantic dedup, agent-scoped isolation, conversation ingestion

Your AI remembers what you taught it — forever


Related MCP server: AI Knowledge Center MCP

How LocalNest Compares

No other MCP server covers all three pillars. Here's how the landscape breaks down:

vs Memory-Only Servers

LocalNest

Mem0

Basic Memory

MCP Memory Service

AgentMemory

Persistent AI memory

Yes

Yes

Yes

Yes

Yes

Knowledge graph

Yes

No

No

No

No

Semantic code search

Yes

No

No

No

No

Symbol finding (defs/usages)

Yes

No

No

No

No

AST-aware chunking

Yes

No

No

No

No

Local-first / no cloud

Yes

Hybrid

Yes

Yes

Yes

MCP tools

74

8

~10

24

43

Mem0 has 41k stars and $24M in funding — but it's memory-only with no code intelligence. Basic Memory integrates with Obsidian but can't search code. AgentMemory has auto-capture hooks but zero code features.

vs Code Intelligence Servers

LocalNest

GitNexus

claude-context

codebase-memory-mcp

CodeGraphContext

Semantic code search

Yes

Yes

Yes

Yes

Yes

Knowledge graph

Yes

Code-only

No

Code-only

Yes

Persistent AI memory

Yes

No

No

No

No

Cross-session recall

Yes

No

No

No

No

Symbol finding

Yes

Yes

No

Yes

Yes

Temporal time-travel queries

Yes

No

No

No

No

Conversation ingestion

Yes

No

No

No

No

Local-first / no cloud

Yes

Yes

Partial

Yes

Yes

MCP tools

74

16

~5

14

~10

GitNexus (27k stars) has strong code search but no memory. claude-context (Zilliz, 5.9k stars) is Milvus-backed with no KG or memory. codebase-memory-mcp (DeusData) is the closest competitor — code + KG in a single binary — but has no AI memory layer.

Full Feature Matrix

Feature

LocalNest

codebase-memory-mcp

GitNexus

claude-context

Basic Memory

Mem0

Semantic code search (hybrid BM25+vec)

Yes

Yes

Yes

Yes

No

No

Knowledge graph (entities + triples)

Yes

Code-only

Code-only

No

No

No

Persistent AI memory

Yes

No

No

No

Yes

Yes

Symbol finding (defs/usages/callers)

Yes

Yes

Yes

No

No

No

AST-aware chunking

Yes

Yes

Yes

Yes

No

No

Temporal time-travel queries

Yes

No

No

No

No

No

Multi-hop graph traversal

Yes

No

No

No

No

No

Conversation ingestion

Yes

No

No

No

No

No

Agent-scoped isolation

Yes

No

No

No

No

No

Semantic dedup

Yes

No

No

No

No

No

Hooks system (pre/post callbacks)

Yes

No

No

No

No

No

Interactive TUI dashboard

Yes

No

No

No

No

No

Local-first / no cloud

Yes

Yes

Yes

Partial

Yes

Hybrid

MCP tools

74

14

16

~5

~10

8

Zero external deps

No (Node.js)

Yes (binary)

No

No

No

No

LocalNest is the only server that checks every box in the first three rows.


Quick Start

# Install
npm install -g localnest-mcp

# Setup workspace + embeddings
localnest setup

# Verify
localnest doctor

Interactive dashboard:

localnest dashboard

MCP Client Config

After setup, add this to your AI client config:

{
  "mcpServers": {
    "localnest": {
      "command": "localnest-mcp",
      "startup_timeout_sec": 30,
      "env": {
        "MCP_MODE": "stdio",
        "LOCALNEST_CONFIG": "~/.localnest/config/localnest.config.json",
        "LOCALNEST_INDEX_BACKEND": "sqlite-vec",
        "LOCALNEST_MEMORY_ENABLED": "true"
      }
    }
  }
}

Works with Claude Code, Cursor, Windsurf, Cline, Continue, Gemini CLI, and any MCP-compatible client.


Tool Suites

LocalNest exposes 74 specialized MCP tools, organized into focused suites:

Full parameter reference: Tool Documentation


Agentic Workflows

LocalNest is designed as the foundational context layer for AI coding agents:

  • Cold startagent_prime instantly hydrates the context window with relevant memories, recent changes, and project state.

  • Deep investigationfind runs fused search across code fragments and historical design decisions in a single call.

  • Continuous learningteach saves architectural rules that persist across sessions, ensuring agents never repeat mistakes.

  • Outcome capturecapture_outcome records what worked and what didn't, building an experience base over time.


Enterprise-Grade Quality

  • OIDC Trusted Publishing for verifiable npm provenance

  • Continuous CodeQL static analysis on all branches

  • OpenSSF Scorecard monitoring and proactive Dependabot updates


Troubleshooting

Direct npm install -g git+https://... may fail with TAR_ENTRY_ERRORS. This is a known npm limitation.

Fix: clone, pack, install

git clone https://github.com/wmt-mobile/localnest.git
cd localnest && npm pack
npm install -g ./localnest-mcp-*.tgz
cd $(npm root -g)/localnest-mcp && npm install --no-save @huggingface/transformers
localnest doctor

Resources


Available Tools

74 tools
localnest_agent_primeAgent PrimeA
Read-onlyIdempotent

[MANDATORY_START] The single most important tool for task initialization. Rehydrates project context, recalled memories, KG entities, relevant files, recent changes, and suggested actions in one call. Always call this BEFORE deeper research.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskYes
project_pathNo
nestNo
branchNo
max_memoriesNo
max_entitiesNo
max_filesNo
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already indicate read-only, non-destructive, and idempotent behavior. The description adds rich behavioral context by listing exactly what is rehydrated (memories, KG entities, files, changes, suggestions), going well beyond the annotations.

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

Conciseness5/5

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

The description is extremely concise: two sentences that front-load the most critical information—mandatory use, purpose, and usage order. Every word contributes value, with no redundancy.

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

Completeness4/5

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

Given the presence of an output schema, the description does not need to detail return values. It covers the core functionality and usage order adequately. However, it could briefly mention that the tool returns a structured context package to further set expectations.

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

Parameters2/5

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

With 8 parameters and 0% schema description coverage, the description does not explain any parameter beyond their names. For instance, 'max_memories' and 'max_entities' are not described, leaving agents to guess their semantics. The description should outline key parameters but fails to do so.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Rehydrates project context, recalled memories, KG entities, relevant files, recent changes, and suggested actions in one call.' It identifies itself as the primary initialization tool and distinguishes from siblings by emphasizing it should be called before deeper research.

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

Usage Guidelines4/5

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

The description explicitly says 'Always call this BEFORE deeper research,' providing clear when-to-use guidance. However, it does not mention when not to use it or suggest alternatives, leaving a gap for potential misuse in non-initialization scenarios.

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

localnest_auditAuditA
Read-onlyIdempotent

Run a comprehensive self-audit of LocalNest health. Returns memory coverage by project, KG density metrics (entities, triples, orphans, duplicates, connected components), unpopulated nests, broken bridges, stale memories, a 0-100 health score, and actionable suggestions. Call once to get a full integrity dashboard.

ParametersJSON Schema
NameRequiredDescriptionDefault
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already indicate read-only, non-destructive, and idempotent behavior. The description adds value by detailing the returned metrics (memory coverage, KG density, health score, suggestions) and framing it as a self-audit, providing context beyond annotations.

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

Conciseness5/5

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

Three concise sentences: purpose, metrics, usage hint. Front-loaded with the verb 'Run,' no wasted words.

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

Completeness4/5

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

Given the tool's complexity and rich annotations, the description sufficiently covers purpose and output. The return values are defined in the output schema, so detail is adequate.

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

Parameters2/5

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

The single parameter (response_format) is not mentioned in the description. With 0% schema description coverage, the description should compensate by explaining the parameter or its effect, but it does not. The agent must rely solely on the schema.

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

Purpose5/5

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

The description clearly states the tool runs a comprehensive self-audit of LocalNest health, listing specific metrics like memory coverage, KG density, and health score. It distinguishes itself from siblings like localnest_health and localnest_kg_stats by being a comprehensive dashboard.

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

Usage Guidelines3/5

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

The description advises 'Call once to get a full integrity dashboard,' implying infrequent use for overall health checks. However, it lacks explicit guidance on when not to use it or how it differs from sibling tools like localnest_health.

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

localnest_backupBackup DatabaseA
Idempotent

Create a point-in-time backup of the LocalNest memory database using SQLite VACUUM INTO. The backup is a clean, compacted SQLite file verified with PRAGMA integrity_check. If destination is omitted, the backup is written to {memoryDbDir}/backups/{timestamp}.db.

ParametersJSON Schema
NameRequiredDescriptionDefault
destinationNoAbsolute or relative path for the backup file. Defaults to {memoryDbDir}/backups/{timestamp}.db
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations indicate idempotent and not destructive. The description adds valuable context: uses VACUUM INTO, creates compacted files, and verifies integrity. It does not contradict annotations.

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

Conciseness5/5

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

Two sentences, no wasted words. Front-loaded with verb and resource. Clearly structured.

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

Completeness5/5

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

For a simple backup tool with two parameters and an output schema, the description covers the main behavior, default location, and verification step. No missing essential information.

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

Parameters3/5

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

Schema description coverage is 50% with destination described, leaving response_format to schema. The description adds default destination behavior but not the enum options. Provides some added value but not comprehensive.

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

Purpose5/5

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

The description clearly states the action (create a point-in-time backup), the method (SQLite VACUUM INTO), and the result (clean, compacted SQLite file). It distinguishes from other tools like restore or database operations.

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

Usage Guidelines3/5

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

The description implies usage for creating backups but does not explicitly state when to use versus alternatives or any prerequisites. No mention of 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.

localnest_capture_outcomeCapture OutcomeA

[COMPLETE_MISSION] One-call mission summary capture. Use this after completing a task, fixing a bug, or making a major architectural decision to persist the "Winner" state for future agents.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskNo
titleNo
summaryNo
detailsNo
contentNo
event_typeNotask
statusNocompleted
kindNoknowledge
importanceNo
confidenceNo
files_changedNo
has_testsNo
tagsNo
linksNo
root_pathNo
project_pathNo
branch_nameNo
topicNo
featureNo
nestNo
branchNo
source_refNo
terseNoverbose
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false. The description implies a write operation ('persist the Winner state') but does not add behavioral details like idempotency, side effects, or requirements. It does not contradict annotations.

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

Conciseness5/5

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

Single sentence with a clear tag and purpose. No unnecessary words; front-loaded with intent. Each sentence earns its place.

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

Completeness2/5

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

Given the complexity (24 optional parameters, output schema exists), the description lacks guidance on how to construct input or what output to expect. It does not explain the meaning of parameters or the structure of the response, leaving gaps for the agent.

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

Parameters1/5

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

Schema description coverage is 0% with 24 parameters. The description provides no information about any parameter, leaving the agent to infer from names and types alone.

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

Purpose5/5

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

The description clearly states it is for capturing mission summaries after completing tasks, fixing bugs, or making major decisions. It uses specific verb and resource ('capture outcome', 'persist Winner state'), distinguishing it from siblings like memory_store or diary_write.

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

Usage Guidelines4/5

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

Explicitly states when to use: after completing a task, bug fix, or major architectural decision. However, it does not mention when not to use or alternatives, though the context is clear enough.

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

localnest_diary_readDiary ReadA
Read-onlyIdempotent

Read recent diary entries for a specific agent. Only returns entries belonging to the requesting agent.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYes
topicNo
limitNo
offsetNo
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already state readOnlyHint and idempotentHint. Description adds the important behavioral detail that entries are filtered by requester identity, which is beyond annotation scope.

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

Conciseness5/5

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

Two sentences, minimal and front-loaded. Every word serves purpose.

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

Completeness3/5

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

Tool has 5 parameters, one required. Description is adequate for basic purpose but lacks detail on parameter usage (topic filtering, pagination). Output schema exists, partially compensating.

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

Parameters2/5

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

Schema coverage is 0%, but description offers no parameter explanations. While parameter names and defaults are self-explanatory, topic is ambiguous and pagination semantics are undocumented. Description fails to add value beyond schema.

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

Purpose5/5

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

Description clearly states the action: read recent diary entries for a specific agent, and adds a key constraint: only returns requesting agent's entries. Distinguishes from diary_write sibling.

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

Usage Guidelines4/5

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

Implies usage for reading diary entries specifically; the constraint 'only returns entries belonging to the requesting agent' clarifies authorization. No explicit when-not-to-use, but the read-only nature is clear.

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

localnest_diary_writeDiary WriteA

Write a private diary entry for an agent. Diary entries are isolated and only visible to the owning agent.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYes
contentYes
topicNo
terseNoverbose
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations provide no behavioral hints (readOnlyHint=false etc.), so description carries burden. It adds privacy context but fails to disclose side effects like overwriting behavior, limits, or idempotency.

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

Conciseness5/5

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

Two sentences, front-loaded with verb, zero waste. Every word adds value.

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

Completeness3/5

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

Has output schema, so return values are covered. But missing parameter explanations and behavioral details (e.g., does it append or overwrite?) make it only partially complete for a write operation.

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

Parameters2/5

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

Schema has 0% description coverage for 5 parameters. The description omits any parameter details, leaving agents unaware of agent_id, content, topic, terse, and response_format semantics.

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

Purpose5/5

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

The description clearly states 'Write a private diary entry for an agent' with specific verb and resource, and distinguishes from sibling 'localnest_diary_read' by emphasizing privacy and isolation.

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

Usage Guidelines4/5

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

The description indicates when to use (private per-agent diary entries) but does not explicitly mention when not to use or suggest alternatives like 'localnest_memory_store' for non-private storage.

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

localnest_embed_statusEmbedding StatusA
Read-onlyIdempotent

Return active embedding backend/model status and vector-search readiness.

ParametersJSON Schema
NameRequiredDescriptionDefault
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true and idempotentHint=true, confirming safe operation. The description adds detail on what status is checked (backend/model and vector-search readiness), providing beyond the annotations without contradiction.

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

Conciseness5/5

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

The description is a single, well-front-loaded sentence with no wasted words. It efficiently communicates the tool's purpose.

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

Completeness5/5

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

For a simple read-only status check tool with one optional parameter and an existing output schema, the description covers the essential behavior. The presence of the output schema relieves the need to document return values, and the description is complete enough for an agent to use correctly.

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

Parameters2/5

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

Schema description coverage is 0% for the single parameter 'response_format'. The description does not mention this parameter or explain its effect (output format selection). For a low-coverage schema, the description should compensate but fails to add any parameter semantics.

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

Purpose5/5

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

The description clearly states the tool returns 'active embedding backend/model status and vector-search readiness.' It uses a specific verb ('Return') and identifies the exact resource, distinguishing it from sibling status tools like memory_status or index_status.

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

Usage Guidelines3/5

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

The description implies the tool is for checking embedding backend status, but it does not explicitly state when to use it over similar status tools (e.g., memory_status, server_status). No alternatives or exclusions are mentioned.

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

localnest_file_changedFile ChangedB
Read-onlyIdempotent

Report that a file was edited and receive proactive hints about high-importance memories linked to it. Memories with importance >= 70 that reference the file are flagged with suggest_update=true, indicating the memory may need updating to reflect the file change.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

B3.4/5.0
Behavior2/5

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

The description adds detail about flagging high-importance memories, but uses 'report' which contradicts the readOnlyHint annotation, suggesting a write operation when the tool is declared read-only.

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

Conciseness5/5

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

The description is two concise sentences that efficiently convey the core functionality without unnecessary detail.

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

Completeness4/5

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

The description explains the output (flagged memories with suggest_update=true) and is fairly complete given the presence of an output schema, though it omits response_format behavior.

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

Parameters3/5

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

With 0% schema description coverage, the description does not explicitly describe parameters but contextually implies 'path' is the file changed and 'response_format' controls output, partially compensating.

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

Purpose5/5

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

The description clearly states the tool reports a file edit and provides proactive hints about linked memories with importance >= 70, making the purpose specific and distinct from sibling tools.

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

Usage Guidelines2/5

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

The description implies use after a file edit but provides no explicit guidance on when to use this tool versus alternatives, nor does it 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.

localnest_findUnified FindA
Read-onlyIdempotent

Search across memory entries, code chunks, and knowledge graph triples in a single call. Results are re-ranked across all sources using normalized scores. Each item includes a source field ("memory", "code", or "triple"). Use the sources parameter to limit which backends are queried.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
limitNo
project_pathNo
all_rootsNo
sourcesNo
item_formatNoverbose
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds valuable behavioral details such as re-ranking with normalized scores and the inclusion of a source field, enhancing transparency beyond annotations.

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

Conciseness5/5

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

The description is three sentences, front-loads the core functionality, and contains no unnecessary words, achieving high conciseness.

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

Completeness3/5

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

The description explains the tool's multi-source search and re-ranking, but lacks details on the output schema (which exists separately) and does not clarify parameter usage beyond 'sources', leaving some gaps for an agent.

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

Parameters2/5

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

Schema description coverage is 0%, and the description only explains the 'sources' parameter. Six other parameters (query, limit, project_path, all_roots, item_format, response_format) are left without additional meaning, making the description insufficient.

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

Purpose5/5

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

The description clearly states that the tool performs a unified search across memory entries, code chunks, and knowledge graph triples, distinguishing it from single-backend sibling tools like memory_recall and kg_query.

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

Usage Guidelines4/5

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

The description indicates when to use this tool (for multi-source search) and mentions the 'sources' parameter to limit backends, providing clear context but no explicit alternatives or exclusions.

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

localnest_find_callersFind CallersA
Read-onlyIdempotent

Find every call site of a function or method across indexed files. Returns file path, line number, and surrounding context for each call. Requires the project to be indexed first via localnest_index_project.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesThe function or method name to find callers of
project_pathNoScope search to a specific project
languageNoFilter by language: typescript, javascript, python, go, rust
max_resultsNo
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, covering safety. Description adds context about requiring indexing and returning file path, line number, and surrounding context. No contradiction with annotations.

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

Conciseness5/5

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

Two short sentences: first states purpose and return fields, second states prerequisite. No unnecessary information, well front-loaded.

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

Completeness4/5

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

Combined with schema, the description covers key return fields and prerequisite. It could mention filtering options like project_path and language for completeness, but overall it is sufficient.

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

Parameters2/5

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

Schema coverage is 60%, but description does not elaborate on parameters beyond what schema provides. It adds 'surrounding context' which is not in schema, but does not explain other parameters like project_path, language, max_results, or response_format.

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

Purpose5/5

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

Description clearly states it finds call sites of a function or method, specifying the verb (find) and resource (call sites). It distinguishes from sibling tools like localnest_find_usages by focusing on callers explicitly.

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

Usage Guidelines3/5

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

Requires project to be indexed first, which is a clear prerequisite. However, it does not explicitly state when to use this tool over siblings (e.g., localnest_find_implementations, localnest_find_usages) or provide when-not-to-use guidance.

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

localnest_find_definitionFind DefinitionA
Read-onlyIdempotent

Jump to the declaration location(s) of a symbol across TypeScript, JavaScript, Python, Go, and Rust files. Returns file path, line range, and declaration text. Requires the project to be indexed first via localnest_index_project.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesThe symbol name to find the definition of
project_pathNoScope search to a specific project
languageNoFilter by language: typescript, javascript, python, go, rust
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false. Description adds useful behavioral context (requires indexing, returns specific fields) without contradicting annotations.

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

Conciseness5/5

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

Two sentences, front-loaded with purpose and output, ends with prerequisite. No wasted words.

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

Completeness4/5

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

With output schema present, description doesn't need to detail return values. Mentions key output fields and precondition. Could clarify behavior if symbol not found, but overall sufficient.

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

Parameters3/5

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

Schema covers 75% of parameters with descriptions. Description does not add extra meaning beyond the schema, but the existing schema is adequate. Baseline 3.

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

Purpose5/5

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

Clearly states it jumps to declaration locations of a symbol across multiple languages, returning file path, line range, and text. Distinguishes from siblings like find, find_callers, etc. by focusing on definitions.

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

Usage Guidelines4/5

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

Explicitly mentions precondition: project must be indexed via localnest_index_project. Does not compare to alternatives, but provides clear context for usage.

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

localnest_find_implementationsFind ImplementationsA
Read-onlyIdempotent

Find every class, struct, or object that implements a given interface or trait. Supports TypeScript implements, Python class inheritance, Rust impl-for, and Go struct patterns. Requires the project to be indexed first via localnest_index_project.

ParametersJSON Schema
NameRequiredDescriptionDefault
interface_nameYesThe interface or trait name to find implementations of
project_pathNoScope search to a specific project
languageNoFilter by language: typescript, javascript, python, go, rust
max_resultsNo
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A4.2/5.0
Behavior4/5

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

The annotations indicate a safe, read-only operation, and the description aligns by describing a search/find action. It adds the behavioral trait that indexing is required, which is beyond what annotations provide. 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.

Conciseness5/5

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

Two concise sentences front-load the main purpose and then provide a necessary prerequisite. Every sentence is informative and there is no fluff.

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

Completeness4/5

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

The description covers the core functionality and the prerequisite. Given that an output schema exists, return values need no explanation. It could provide more detail on parameter usage, but it is adequate for a simple tool.

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

Parameters3/5

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

Schema description coverage is 60%, and the description does not add additional meaning or examples beyond the schema's parameter descriptions. For instance, it doesn't explain how the 'language' parameter filters patterns. The description provides no extra value for parameters.

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

Purpose5/5

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

The description clearly states it finds classes, structs, or objects that implement a given interface/trait, listing specific language patterns. This distinguishes it from sibling tools like localnest_find_definition and localnest_find_callers.

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

Usage Guidelines4/5

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

The description explicitly mentions the prerequisite of indexing via localnest_index_project, providing clear context for when the tool can be used. It does not explicitly state alternatives or when not to use it, but the context is sufficient for a straightforward tool.

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

localnest_find_usagesFind UsagesC
Read-onlyIdempotent

[USAGE_ANALYSIS] Find call sites and import usages of a symbol by name.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYes
project_pathNo
all_rootsNo
globNo*
max_resultsNo
case_sensitiveNo
context_linesNo
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already indicate readOnly, idempotent, and non-destructive behavior. The description adds that it finds call sites and import usages, which is mildly informative. However, it does not disclose how results are returned, pagination, error cases, or whether it respects project boundaries.

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

Conciseness4/5

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

The description is a single sentence with a helpful tag prefix ('[USAGE_ANALYSIS]'), making it concise and front-loaded. However, it is so brief that it sacrifices useful detail, though it avoids verbosity.

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

Completeness2/5

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

Given the tool has 8 parameters and an output schema (not shown), the description fails to explain return values, edge cases, or usage scenarios. It is insufficient for an agent to fully understand how to use the tool, especially with no schema descriptions.

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

Parameters2/5

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

The input schema has 8 parameters with 0% description coverage, yet the description only mentions 'symbol by name'. It provides no explanations for parameters like project_path, glob, max_results, context_lines, etc., leaving the agent to guess their meaning.

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

Purpose4/5

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

The description clearly states that the tool finds call sites and import usages of a symbol, which distinguishes it from siblings like find_definition, find_implementations, and find_callers. However, it does not explicitly mention the scope (e.g., project_path) or confirm that it is a code analysis tool.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as find_callers or find_implementations. There is no mention of prerequisites (e.g., indexing) or context for effective use.

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

localnest_get_symbolGet SymbolC
Read-onlyIdempotent

[SYMBOL_INDEX] Look up symbol definitions/exports by name using fast regex search.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYes
project_pathNo
all_rootsNo
globNo*
max_resultsNo
case_sensitiveNo
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

C2.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds the behavioral detail of 'fast regex search', which is accurate and provides minor additional context. No contradictions.

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

Conciseness4/5

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

The description is a single sentence, very concise. It is front-loaded with a bracket prefix. However, it could be slightly more structured while remaining brief.

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

Completeness2/5

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

Given the tool has 7 parameters (1 required), an output schema, and a complex environment with many siblings, the description is too minimal. It does not explain return values, parameter usage, or when to prefer this over similar tools.

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

Parameters1/5

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

Schema coverage is 0% (no descriptions in the schema), and the description provides no explanation for any of the 7 parameters. It fails to add meaning beyond the schema, leaving the agent with no semantic guidance.

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

Purpose4/5

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

The description clearly states the action ('look up'), resource ('symbol definitions/exports'), and method ('fast regex search'). It gives a specific purpose but does not explicitly distinguish from similar siblings like localnest_find_definition or localnest_find_usages.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, nor any exclusions or prerequisites. The description lacks context for decision-making.

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

localnest_graph_bridgesGraph BridgesA
Read-onlyIdempotent

Discover cross-nest bridges (default) or cross-branch bridges within a nest. Use mode="cross-branch" with a nest to find entities that span different branches within that nest.

ParametersJSON Schema
NameRequiredDescriptionDefault
nestNo
modeNocross-nest
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly and idempotent hints; the description adds behavioral context about discovering bridges and mode-specific behavior. 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.

Conciseness5/5

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

Two sentences, front-loaded with purpose. No unnecessary words. Highly concise.

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

Completeness4/5

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

With output schema present, return value explanation is unnecessary. The description covers the two modes and the key parameter usage, leaving little ambiguity for a tool of this complexity.

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

Parameters3/5

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

Schema description coverage is 0%, so description must compensate. It explains mode and the role of nest for cross-branch, but does not clarify response_format or the optionality of nest for cross-nest mode.

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

Purpose5/5

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

The description clearly states the tool discovers bridges, with two modes (cross-nest and cross-branch), and distinguishes from siblings by focusing on bridges rather than traversal or other graph operations.

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

Usage Guidelines4/5

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

Provides clear context on when to use each mode, especially specifying that mode='cross-branch' requires a nest. Does not explicitly exclude alternative tools 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.

localnest_graph_traverseGraph TraverseB
Read-onlyIdempotent

Traverse the knowledge graph from a starting entity with configurable max hops (default 2). Uses recursive CTEs with cycle prevention. Returns discovered entities with path information.

ParametersJSON Schema
NameRequiredDescriptionDefault
start_entity_idYes
max_hopsNo
directionNoboth
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds implementation details (recursive CTEs, cycle prevention) and return type (path information), which provide useful context beyond annotations but not extensive.

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

Conciseness5/5

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

The description is three concise sentences, front-loading the core purpose first. Every sentence adds value without redundancy, making it efficient and easy to parse.

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

Completeness3/5

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

With 4 parameters, no schema descriptions, and an output schema (unseen), the description is minimal. It covers the basic traversal idea but lacks details on direction, response format, or output structure, leaving the agent partially informed.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It explains start_entity_id and max_hops (including default), but omits direction and response_format, leaving two parameters with enums unexplained. This is insufficient for full parameter understanding.

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

Purpose4/5

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

The description clearly states that the tool traverses the knowledge graph from a starting entity with configurable max hops, which is a specific verb-resource combination. However, it does not explicitly differentiate from sibling tools like kg_query or find_*, though the concept of traversal is distinct.

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

Usage Guidelines2/5

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. It does not mention prerequisites, exclusions, or when not to use it, leaving the agent without decision-making support.

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

localnest_healthHealthB
Read-onlyIdempotent

Return a compact runtime health summary for fast smoke checks.

ParametersJSON Schema
NameRequiredDescriptionDefault
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds that it is 'compact' and for 'fast smoke checks,' which provides useful behavioral context beyond annotations, but does not detail what the summary contains or any limitations.

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

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the core purpose. Every word adds value; no redundancy.

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

Completeness3/5

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

For a simple health-check tool with detailed annotations and an output schema, the description adequately conveys its lightweight nature. However, it lacks parameter guidance and does not clarify the relationship with similar tools, leaving some contextual gaps.

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

Parameters2/5

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

The schema has one parameter (response_format) with 0% description coverage, and the description does not mention this parameter or its possible values. The agent is left unaware that it can request 'json' or 'markdown' output, which is a significant gap.

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

Purpose4/5

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

The description clearly states it returns a 'runtime health summary' for 'fast smoke checks,' indicating a specific lightweight health check. However, it doesn't explicitly distinguish from sibling tools like localnest_server_status, which may serve a similar purpose.

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

Usage Guidelines3/5

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

The phrase 'for fast smoke checks' implies usage context (quick verification), but there is no guidance on when not to use this tool or how it differs from alternatives like localnest_server_status or localnest_index_status.

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

localnest_helpHelpC
Read-onlyIdempotent

Get task-scoped tool guidance. Describe what you want to do and receive a tailored list of tools, workflow steps, and tips.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskNo
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaNo

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already mark it as read-only, idempotent, non-destructive. Description adds what the output looks like (tailored list, workflow steps, tips) but does not detail behavior like handling of unrecognized tasks or rate limits.

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

Conciseness5/5

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

Single, efficient sentence that conveys the core value proposition with no extraneous words.

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

Completeness3/5

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

Given the simple parameters and existing output schema (not shown), the description is somewhat complete for a help tool, but lacks parameter details and usage guidance, leaving gaps for an agent to correctly invoke it.

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

Parameters1/5

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

Schema description coverage is 0%. The description does not explain the two parameters (task, response_format) nor their default values or constraints. Schema provides no descriptions, so the description must compensate, but it fails to do so.

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

Purpose4/5

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

The description clearly states the tool provides task-scoped tool guidance including tailored list of tools, workflow steps, and tips. It uses a specific verb 'Get' and resource, and the purpose is distinct among many sibling tools due to its help nature.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool over alternatives like localnest_usage_guide or localnest_whats_new. Only implies usage when needing task-scoped guidance.

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

localnest_hooks_list_eventsHooks List EventsA
Read-onlyIdempotent

Returns all valid hook event names that listeners can subscribe to. Covers memory lifecycle (store, update, delete, recall), knowledge graph operations (addEntity, addTriple, invalidate), graph traversal, diary, ingestion, dedup, taxonomy, and catch-all wildcards.

ParametersJSON Schema
NameRequiredDescriptionDefault
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already indicate read-only, non-destructive, idempotent behavior. The description adds valuable context about the specific event categories covered, enhancing understanding beyond annotations.

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

Conciseness5/5

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

Two sentences, front-loaded with the core purpose, and efficiently lists event categories without unnecessary detail.

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

Completeness4/5

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

Given the presence of an output schema, the description adequately covers the tool's purpose and event scope. However, it could briefly note that the output is a list of strings or similar.

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

Parameters2/5

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

The only parameter (response_format) has clear enum and default in the schema, but the description provides no guidance on parameter use. With 0% schema coverage, the description should compensate but does not.

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

Purpose5/5

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

The description clearly states the tool returns all valid hook event names that listeners can subscribe to, and enumerates categories of events. It is specific and distinguishes from sibling tools like localnest_hooks_stats.

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

Usage Guidelines3/5

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

The description implies use when needing available event names, but does not explicitly state when not to use or provide alternatives. There is no comparison with sibling tools, leaving some ambiguity.

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

localnest_hooks_statsHooks StatsA
Read-onlyIdempotent

Returns hook system statistics: whether hooks are enabled, total registered listener count, and a breakdown of listener counts per event type.

ParametersJSON Schema
NameRequiredDescriptionDefault
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, destructiveHint, idempotentHint. Description adds specific behavioral context by listing exact statistics returned. No additional behavioral traits disclosed, but annotations cover safety.

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

Conciseness5/5

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

Single concise sentence that front-loads purpose. No unnecessary words. Efficient and clear.

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

Completeness4/5

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

For a simple stats tool with one parameter and output schema present, description covers main output. Missing explanation of response_format parameter, but overall sufficiently complete given annotations and output schema.

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

Parameters2/5

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

Single parameter 'response_format' has enum and default, but description does not mention it at all. With 0% schema description coverage, description should explain the parameter's effect (JSON vs markdown output). Fails to add value beyond schema.

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

Purpose5/5

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

Clearly states the verb 'returns' and resource 'hook system statistics', listing specific data items: enabled status, total listener count, per-event breakdown. This distinguishes it from siblings like 'localnest_hooks_list_events'.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives. Sibling 'localnest_hooks_list_events' exists but no comparison provided. Lacks context for selection.

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

localnest_index_projectIndex ProjectC

Build or refresh semantic index for a project or across all roots.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_pathNo
all_rootsNo
forceNo
max_filesNo
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

C2.9/5.0
Behavior2/5

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

The description only states 'build or refresh' without elaborating on side effects like time consumption, resource usage, or whether existing indices are overwritten. With annotations providing minimal information (e.g., destructiveHint=false), more context 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.

Conciseness4/5

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

The description is a single, front-loaded sentence that efficiently conveys the core purpose. However, it sacrifices necessary detail, which is a trade-off acceptable for conciseness but reduces completeness.

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

Completeness2/5

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

Despite having an output schema (per context signals), the description fails to cover key usage aspects like parameter explanations and pre/post conditions. For a tool with five parameters and no schema descriptions, this is notably incomplete.

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

Parameters2/5

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

With 0% schema description coverage, the description should explain parameters, but only hints at project_path and all_roots via 'for a project or across all roots.' The force, max_files, and response_format parameters are not described, so the description adds limited value over the schema.

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

Purpose5/5

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

The description clearly states the tool's action ('Build or refresh semantic index') and its scope ('for a project or across all roots'), providing a specific verb and resource that distinguishes it from related index tools like localnest_index_status.

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

Usage Guidelines2/5

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

The description lacks guidance on when to use this tool versus alternatives, such as localnest_index_status for checking index state or localnest_search_* for querying. No prerequisites or exclusions are mentioned.

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

localnest_index_statusIndex StatusB
Read-onlyIdempotent

Return local semantic index status and metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, destructiveHint, and idempotentHint, so the description adds minimal extra context beyond mentioning metadata. No contradictions, but the description could be more detailed.

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

Conciseness5/5

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

The description is a single sentence that is to the point and contains no extraneous information. It is appropriately concise.

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

Completeness3/5

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

Given the presence of annotations and an output schema, the description is somewhat complete. However, it lacks detail on what specific status and metadata are returned, which would enhance completeness.

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

Parameters2/5

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

The description does not mention the single parameter response_format, and schema description coverage is 0%. The enum makes the schema clear, but the description adds no value beyond the schema.

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

Purpose4/5

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

The description clearly states the tool returns local semantic index status and metadata. It uses a specific verb and resource, distinguishing it from other tools by its focus on the index.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. There is no mention of when to choose it over similar tools like localnest_embed_status or localnest_health.

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

localnest_ingest_jsonIngest JSON ConversationA
Idempotent

Ingest a JSON conversation export (array of {role, content, timestamp?} objects) into memory entries and knowledge graph triples. Pass the full JSON text directly.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesFull JSON text content to ingest
source_labelNoOptional label for re-ingestion tracking
nestNo
branchNo
agent_idNo
terseNoverbose
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare idempotentHint=true and destructiveHint=false, so the agent knows it's idempotent and non-destructive. The description adds that it creates memory entries and KG triples, but does not disclose merging or overwrite behavior. No contradiction with annotations.

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

Conciseness5/5

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

Two sentences: first states purpose concisely, second gives an instruction. Front-loaded with key information, no redundant words.

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

Completeness2/5

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

Despite having an output schema and 7 parameters, the description only addresses the main input format. It omits details about non-required parameters (nest, branch, agent_id, terse, response_format) and the output format, making it incomplete for an agent to fully understand tool behavior.

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

Parameters2/5

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

With only 29% schema description coverage, the description should compensate but only reinforces the 'content' parameter ('Pass the full JSON text directly'). It does not explain the purpose of nest, branch, agent_id, terse, or response_format, leaving their semantics unclear.

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

Purpose5/5

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

The description clearly states the tool ingests a JSON conversation export (specific format: array of objects with role, content, optional timestamp) into memory entries and knowledge graph triples. It uses a specific verb and resource, and the format is distinct from sibling tools like localnest_ingest_markdown.

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

Usage Guidelines3/5

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

The description implies usage for JSON conversation exports, which distinguishes it from localnest_ingest_markdown for Markdown. However, it does not explicitly state when to use this tool versus alternatives, nor does it provide any 'when not to use' guidance.

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

localnest_ingest_markdownIngest Markdown ConversationA
Idempotent

Ingest a Markdown conversation export into memory entries and knowledge graph triples. Pass the full text content directly — file reading is handled by the CLI, not MCP tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesFull markdown text content to ingest
source_labelNoOptional label for re-ingestion tracking (e.g. filename)
nestNo
branchNo
agent_idNo
terseNoverbose
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations indicate idempotentHint: true, but the description does not mention idempotency or behavior on re-ingestion. It adds the file-handling caveat but lacks detail on side effects or performance characteristics. Adequate but could be improved.

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

Conciseness5/5

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

Two sentences that are front-loaded with purpose and a critical usage note. No extraneous information, every word earns its place.

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

Completeness3/5

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

While the tool has an output schema (so return format is covered), the description omits explanation of optional parameters like nest, branch, agent_id, and response modes. For a tool with 7 parameters, this leaves gaps for new users.

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

Parameters2/5

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

Schema coverage is low (only 29% of parameters have descriptions). The description only implicitly references content and source_label, ignoring nest, branch, agent_id, terse, and response_format. This provides little added value for parameter understanding.

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

Purpose5/5

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

The description clearly states the tool's action: 'Ingest a Markdown conversation export into memory entries and knowledge graph triples.' It specifies the resource (Markdown conversation) and outcome (memory and KG entries), distinguishing it from sibling tools like localnest_ingest_json for JSON input.

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

Usage Guidelines4/5

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

Provides explicit guidance: 'Pass the full text content directly — file reading is handled by the CLI, not MCP tools.' This tells the agent to avoid file reading and to pass raw markdown text. Slightly lower score because it does not explicitly state when not to use or list alternatives, though the context is clear.

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

localnest_kg_add_entities_batchKG Add Entities BatchA
Idempotent

Create up to 500 entities in a single transactional batch. Returns created/duplicate counts and per-row errors. Use response_format "verbose" to get back an ids[] array.

ParametersJSON Schema
NameRequiredDescriptionDefault
entitiesYes
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A4.3/5.0
Behavior5/5

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

The description discloses key behaviors: batch size limit (500), transactional grouping, return of created/duplicate counts and per-row errors, and the ability to retrieve an ids array via verbose response format. Annotations indicate idempotent and not destructive, which aligns with the description. No contradiction.

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

Conciseness5/5

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

Two sentences convey all essential information: batch size, transactional nature, return values, and verbose option. No filler or redundancy. Every sentence adds value.

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

Completeness4/5

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

The description covers the core operation adequately given the tool's complexity. With an output schema present, return value explanation is not needed. However, it omits detail on per-row error format and does not explain the entities structure, which could be needed. Still, for a batch creation tool, it is mostly complete.

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

Parameters2/5

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

With 0% schema description coverage, the description carries the burden. It only covers the 'response_format' parameter by noting the verbose option. The main 'entities' parameter (with nested fields) is not described at all—no explanation of name, type, properties, or memory_id. This is a significant gap.

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

Purpose5/5

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

The description clearly states the tool creates entities in batch (up to 500) with transactional semantics. It distinguishes from the single-entity sibling by its batch nature and explicitly mentions return values (counts, errors, optional ids). The verb 'Create' and resource 'entities batch' are specific and unambiguous.

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

Usage Guidelines4/5

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

The description implies usage for batch creation without explicitly contrasting with alternatives. The phrase 'single transactional batch' suggests atomicity and batching, which helps the agent decide when to use this vs. the single-entity add tool. However, it lacks explicit when-not or alternative mentions.

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

localnest_kg_add_entityKG Add EntityB
Idempotent

Create or update an entity in the knowledge graph. Entity IDs are auto-generated as normalized slugs (lowercase, underscored).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
typeNoconcept
propertiesNo
memory_idNo
terseNoverbose
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

B3/5.0
Behavior3/5

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

Annotations already indicate idempotent, non-destructive write. The description adds that IDs are auto-generated slugs, but fails to clarify update behavior (upsert vs replace) or any side effects.

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

Conciseness4/5

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

The description is concise at two sentences, front-loading the purpose. However, it could be more structured to include parameter details without being verbose.

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

Completeness2/5

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

Despite having 6 parameters, enums, nested objects, and an output schema, the description provides minimal context. Essential details about parameters and update semantics are missing.

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

Parameters1/5

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

With 0% schema description coverage, the description adds almost no parameter info. Only the name-to-ID relationship is hinted; type, properties, memory_id, terse, and response_format are unexplained.

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

Purpose5/5

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

The description clearly states the tool creates or updates an entity in the knowledge graph, distinguishing it from siblings like kg_add_triple or batch variants. The mention of auto-generated IDs adds specificity.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like kg_add_entities_batch, kg_add_triple, or other update tools. The description does not mention prerequisites or exclusions.

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

localnest_kg_add_tripleKG Add TripleB

Add a subject-predicate-object triple to the knowledge graph. Entities are auto-created on first reference. Detects contradictions (same subject+predicate with different valid object) and warns without blocking.

ParametersJSON Schema
NameRequiredDescriptionDefault
subject_nameYes
predicateYes
object_nameYes
subject_idNo
object_idNo
valid_fromNo
valid_toNo
confidenceNo
source_memory_idNo
source_typeNomanual
terseNoverbose
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already indicate a write operation (readOnlyHint=false) and non-destructive nature (destructiveHint=false). The description adds valuable context: entities auto-create on first reference and contradictions are warned without blocking. This goes beyond annotations, though some details (like return structure) are missing.

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

Conciseness5/5

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

The description is two sentences long, front-loaded with the main action, and contains no superfluous information. Every sentence adds value.

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

Completeness3/5

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

Given the tool's complexity (12 parameters, behavioral nuances), the description is somewhat brief. It covers the core purpose and key behaviors but omits details like how to use optional parameters, expected return values (though output schema exists), and interaction with other KG tools. It is minimally adequate.

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

Parameters2/5

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

With 0% schema description coverage, the description is expected to explain parameters. It only hints at the three required ones (subject, predicate, object) but does not clarify the many optional parameters (e.g., confidence, valid_from, source). This is insufficient for effective usage.

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

Purpose4/5

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

The description clearly states the action (add a triple) and the resource (knowledge graph). It mentions auto-creation and contradiction detection. However, it does not explicitly differentiate from sibling tools like batch or entity-only tools, so it is not a 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives (e.g., batch version for multiple triples). It does not mention prerequisites or when to avoid using it.

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

localnest_kg_add_triples_batchKG Add Triples BatchA
Idempotent

Add up to 500 triples in a single transactional batch. Entities auto-created on first reference. Deduplicates against active triples.

ParametersJSON Schema
NameRequiredDescriptionDefault
triplesYes
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations indicate idempotent and non-destructive write. The description adds transactional behavior, auto-creation of entities, and deduplication beyond annotations, though it omits error handling and partial failure details.

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

Conciseness5/5

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

Two short sentences deliver the purpose, limit, and key behaviors without fluff or redundancy, front-loading essential information.

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

Completeness3/5

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

Covers core purpose and behaviors but lacks details on error handling, validation, return format (though output schema exists), and nuances of deduplication, making it adequate but not fully complete.

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

Parameters2/5

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

With 0% schema description coverage, the text explains none of the 10 parameter fields in the triples array item, leaving the agent to infer meaning from property names alone.

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

Purpose5/5

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

The description clearly states the tool adds up to 500 triples in a transactional batch, differentiating it from the singular add_triple sibling. It also notes automatic entity creation, fully clarifying the operation's scope and side effects.

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

Usage Guidelines3/5

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

The description implies usage for batch additions and mentions deduplication, but does not explicitly compare to siblings like add_triple or add_entities_batch, nor provide when-not-to-use guidance.

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

localnest_kg_as_ofKG As-Of QueryA
Read-onlyIdempotent

Query triples for an entity at a specific point in time. mode="event" (default) returns facts whose valid_from/valid_to bracket the date (event-time axis). mode="transaction" returns every triple LocalNest knew at that time via recorded_at, regardless of valid_to (transaction-time axis).

ParametersJSON Schema
NameRequiredDescriptionDefault
entity_idYes
as_of_dateYes
modeNoevent
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate read-only and idempotent behavior; the description adds crucial context about the two temporal axes (event-time vs transaction-time) and what each mode returns, enhancing transparency beyond the structured annotations.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the core purpose, and every sentence is necessary. No unnecessary fluff.

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

Completeness4/5

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

With an output schema present and good annotations, the description covers the tool's purpose and mode differentiation well. Minor omission of 'response_format' does not significantly impact completeness.

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

Parameters3/5

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

Schema coverage is 0%, so the description must clarify parameters. It implicitly covers 'entity_id' and 'as_of_date' via 'Query triples for an entity at a specific point in time' and explains the 'mode' enum, but 'response_format' is not mentioned. This partial compensation earns a 3.

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

Purpose5/5

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

The description uses a specific verb-resource pair ('Query triples for an entity at a specific point in time') and clearly distinguishes the two modes, making the tool's purpose immediately understandable.

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

Usage Guidelines4/5

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

The description explains when to use each mode ('event' vs 'transaction') but does not explicitly state when to prefer this tool over siblings like 'localnest_kg_query' or 'localnest_kg_timeline', though the temporal focus is implied.

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

localnest_kg_delete_entities_batchKG Delete Entities BatchA
DestructiveIdempotent

Delete up to 100 knowledge graph entities in one call. Cascades: also deletes all triples where each entity is subject or object. Returns count of deleted entities and removed triples.

ParametersJSON Schema
NameRequiredDescriptionDefault
entity_idsYes
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A4.4/5.0
Behavior5/5

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

Description adds cascade deletion of triples and return count of deleted entities and removed triples, going beyond annotations (destructiveHint, idempotentHint). Provides rich behavioral context.

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

Conciseness5/5

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

Two sentences with no waste. First sentence states action and limit, second sentence explains side effect and return value. Efficient.

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

Completeness4/5

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

Covers key aspects: operation, limit, cascade, return values. With annotations and output schema (exists), it is sufficiently complete. Could mention idempotency but annotations already cover.

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

Parameters3/5

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

Schema coverage is 0% as description does not name parameters explicitly. However, it implies entity_ids via 'entities' and adds constraint 'up to 100'. Does not mention response_format parameter, but schema has enum and default.

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

Purpose5/5

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

Description clearly states verb 'delete', resource 'knowledge graph entities', batch constraint 'up to 100', and distinguishes from sibling kg_delete_entity by specifying batch capability.

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

Usage Guidelines4/5

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

Provides explicit limit (up to 100) and cascade behavior, but does not explicitly tell when to use alternatives like kg_delete_entity for single or kg_add_entities_batch for add. Context is clear from sibling names.

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

localnest_kg_delete_entityKG Delete EntityA
DestructiveIdempotent

Delete a knowledge graph entity by ID. Cascades: also deletes all triples where the entity is subject or object.

ParametersJSON Schema
NameRequiredDescriptionDefault
entity_idYes
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already indicate destructive and idempotent behavior. The description adds crucial transparency by revealing the cascading side effect (deletes all triples referencing the entity), which goes beyond the annotations.

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

Conciseness5/5

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

Two concise sentences: the first states the primary action, the second explains the cascading behavior. No unnecessary words, effectively front-loads the core purpose.

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

Completeness4/5

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

The description covers the essential behavior (deletion with cascade) and is aided by annotations (destructive, idempotent) and an output schema. It could mention idempotency explicitly, but overall it provides sufficient context for the tool's operation.

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

Parameters2/5

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

The schema has 2 parameters (entity_id, response_format) with 0% schema description coverage. The description adds no information about these parameters. While entity_id is self-explanatory, response_format's role in controlling output format is not explained, which is a gap.

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

Purpose5/5

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

The description specifies the action 'Delete', the resource 'knowledge graph entity by ID', and the key behavior 'Cascades: also deletes all triples where the entity is subject or object.' This clearly distinguishes it from sibling tools like batch delete or add.

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

Usage Guidelines4/5

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

The description explicitly mentions cascading deletion, implying when to use this tool (for deleting an entity and its associated triples). However, it does not provide explicit guidance on when not to use it or alternatives like localnest_kg_delete_entities_batch.

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

localnest_kg_delete_triples_batchKG Delete Triples BatchA
DestructiveIdempotent

Hard-delete up to 100 knowledge graph triples by ID. Unlike invalidate (which sets valid_to), this permanently removes the triples.

ParametersJSON Schema
NameRequiredDescriptionDefault
triple_idsYes
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already indicate destructive behavior. The description adds the hard-delete permanence and the ID-based operation. However, it omits important behavioral details like error handling (e.g., invalid IDs) and whether the batch is atomic or partial.

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

Conciseness5/5

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

Two concise sentences: first defines the action and limit, second clarifies distinction from a sibling. No wasted words.

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

Completeness3/5

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

Provides the core purpose and a key comparison, but lacks parameter details and behavioral nuances (e.g., atomicity, error handling). Given an output schema exists, some missing context may be acceptable, but the description still leaves gaps.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It mentions 'by ID' for triple_ids but does not describe the ID format or constraints beyond the schema's min/max. The response_format parameter is completely ignored.

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

Purpose5/5

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

The description clearly states the tool hard-deletes knowledge graph triples by ID, with a batch size limit of 100. The contrast with 'invalidate' distinguishes it from a sibling, making purpose crystal clear.

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

Usage Guidelines4/5

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

The description explicitly contrasts with the sibling 'invalidate', providing clear when-to-use guidance for permanent vs soft deletion. However, it does not mention other relevant siblings like kg_delete_entities_batch or kg_delete_triple, leaving some gaps.

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

localnest_kg_invalidateKG Invalidate TripleA
Idempotent

Set valid_to on a triple to mark it as no longer current. The triple remains in history but is excluded from current-state queries.

ParametersJSON Schema
NameRequiredDescriptionDefault
triple_idYes
valid_toNo
terseNoverbose
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A3.6/5.0
Behavior4/5

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

The description explains that the triple remains in history but is excluded from current-state queries, adding context beyond annotations. It aligns with idempotentHint and non-destructive nature.

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

Conciseness5/5

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

Two sentences, front-loaded with the action, no wasted words. Concise and clear.

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

Completeness3/5

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

While output schema exists and behavioral context is provided, missing parameter explanations and lack of edge case handling (e.g., invalid triple_id) leave gaps.

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

Parameters2/5

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

Schema description coverage is 0%, and the description only mentions valid_to implicitly. It fails to explain triple_id, terse, or response_format parameters.

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

Purpose5/5

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

The description clearly states the tool sets valid_to on a triple to mark it as no longer current, distinguishing it from siblings like kg_add_triple or kg_delete_triples_batch.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool vs alternatives such as deleting a triple or updating it. The description lacks when-not-to-use instructions.

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

localnest_kg_queryKG Query EntityA
Read-onlyIdempotent

Query all relationships for an entity in the knowledge graph with optional direction filtering (outgoing, incoming, or both).

ParametersJSON Schema
NameRequiredDescriptionDefault
entity_idYes
directionNoboth
include_invalidNo
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate readOnly, idempotent, non-destructive. Description adds query scope but no additional behavioral details beyond what annotations provide.

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

Conciseness5/5

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

Single sentence, 15 words, front-loaded with key information. No wasted words.

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

Completeness2/5

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

Significant gaps: missing parameter details for three out of four parameters, no context on when to use vs sibling tools like localnest_find_* or memory queries.

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

Parameters3/5

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

Schema has 0% description coverage. Description only clarifies direction parameter; other parameters (entity_id, include_invalid, response_format) lack explanation, partially compensating.

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

Purpose5/5

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

Description clearly states it queries all relationships for an entity with optional direction filtering, using specific verb and resource. Distinguishes from sibling KG tools (add, delete, stats).

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

Usage Guidelines3/5

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

No explicit usage guidance or alternatives mentioned. Context implies query use-case but lacks when-not-to-use or comparisons to other query tools like localnest_kg_stats.

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

localnest_kg_statsKG StatisticsA
Read-onlyIdempotent

Get knowledge graph statistics: total entity count, total triple count, active triple count, and breakdown by predicate type.

ParametersJSON Schema
NameRequiredDescriptionDefault
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true and idempotentHint=true, so the description's role is to add detail. It accurately lists the output fields, providing behavioral transparency about what the tool returns. No contradictions or missing critical behaviors.

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

Conciseness5/5

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

The description is a single sentence that front-loads the purpose and enumerates the outputs. Every word contributes value, with no redundancy. Ideal conciseness.

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

Completeness5/5

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

Given the tool's low complexity (1 optional parameter, annotations present, output schema exists), the description fully covers what an agent needs: it names the tool's function and the specific statistics returned. No gaps.

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

Parameters4/5

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

The sole parameter 'response_format' is optional with default 'json' and enum values. Although the schema has no description (0% coverage), the parameter is self-explanatory and the tool description does not need to elaborate. The baseline for 0 parameters is 4, and this single trivial parameter justifies a 4.

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

Purpose5/5

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

The description clearly states the tool retrieves knowledge graph statistics and lists specific counts (total entity count, total triple count, active triple count, breakdown by predicate type). This specific verb-resource pairing effectively distinguishes it from sibling kg_* tools that modify or query the graph.

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

Usage Guidelines4/5

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

The description implies usage for obtaining summary statistics. While no explicit when-not-to-use or alternatives are given, the narrow purpose and sibling tool names (e.g., kg_query, kg_add_entity) provide sufficient context for when to use this tool.

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

localnest_kg_timelineKG Entity TimelineA
Read-onlyIdempotent

Get a chronological timeline of all triples for an entity, including invalidated facts. Ordered by valid_from date ascending.

ParametersJSON Schema
NameRequiredDescriptionDefault
entity_idYes
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate safe read operation (readOnlyHint=true). Description adds value by stating that invalidated facts are included and results are ordered by valid_from, going beyond annotation info.

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

Conciseness5/5

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

Single, front-loaded sentence with no filler. Every word serves a purpose.

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

Completeness5/5

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

With an output schema present, description adequately covers the tool's purpose and behavior. No gaps for a read-only timeline query.

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

Parameters2/5

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

Schema description coverage is 0%, and the tool description does not explain parameters. While entity_id is straightforward, response_format enum values are not described, leaving ambiguity.

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

Purpose5/5

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

Clearly specifies verb 'Get', resource 'chronological timeline of all triples for an entity', includes invalidated facts, and ordering. Distinguishes from sibling KG tools like kg_query or kg_as_of.

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

Usage Guidelines3/5

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

Implies usage for historical timeline view by mentioning invalidated facts and ordering, but lacks explicit guidance on when to use this vs alternatives like kg_query or kg_as_of.

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

localnest_list_projectsList ProjectsA
Read-onlyIdempotent

List first-level project directories under a root.

ParametersJSON Schema
NameRequiredDescriptionDefault
root_pathNo
max_entriesNo
limitNo
offsetNo
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, destructiveHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds context that it lists only 'first-level' directories, aligning with annotations and offering slight additional clarity.

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

Conciseness5/5

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

The description is a single, concise sentence with no redundant information, front-loading the core purpose.

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

Completeness3/5

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

Given the tool's simplicity and presence of an output schema, the description provides basic scope but omits details like default root_path, pagination behavior, or sorting order, leaving some gaps for a complete understanding.

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

Parameters2/5

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

The description does not explain any of the five parameters (root_path, max_entries, limit, offset, response_format), and schema coverage is 0%, so it fails to add meaning beyond the schema.

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

Purpose5/5

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

The description uses a specific verb ('List') and resource ('first-level project directories') with a clear scope ('under a root'), distinguishing it from sibling tools like localnest_list_roots and localnest_project_tree.

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

Usage Guidelines3/5

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

The description implies usage for listing top-level projects but does not explicitly state when to use this tool versus alternatives like localnest_list_roots or localnest_project_tree, nor provide exclusion criteria.

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

localnest_list_rootsList RootsB
Read-onlyIdempotent

List configured local roots available to this MCP server.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=false. Description adds no behavioral context beyond what annotations provide.

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

Conciseness5/5

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

Single sentence, no unnecessary words. Perfectly concise and appropriately sized.

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

Completeness2/5

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

Output schema exists (not shown), but parameter semantics are completely undocumented. Given low schema coverage and no parameter explanations, the description is insufficiently complete.

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

Parameters1/5

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

Schema coverage is 0% with no descriptions for any of the 3 parameters. Description does not explain parameters (limit, offset, response_format) at all, so no added value for agent.

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

Purpose5/5

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

Description clearly states verb 'List' and resource 'configured local roots', distinguishing it from sibling tools like localnest_list_projects which lists projects.

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

Usage Guidelines3/5

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

No explicit guidance on when to use or alternatives, but for a simple list tool, usage is implied. No misleading information.

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

localnest_memory_add_relationMemory Add RelationA
Idempotent

Link two memory entries with a named relation. Use to build a traversable knowledge graph (e.g. "depends_on", "contradicts", "supersedes", "related").

ParametersJSON Schema
NameRequiredDescriptionDefault
source_idYes
target_idYes
relation_typeNorelated
terseNoverbose
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare the tool as non-readonly, non-destructive, idempotent, and closed-world. The description adds the behavioral context of creating a relation in a knowledge graph. Since annotations cover the safety profile, the description's additional context earns a moderate rating. No contradictions with annotations.

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

Conciseness5/5

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

The description is two concise sentences. The first sentence states the core action, and the second provides usage context with examples. No extraneous words. Information is front-loaded and efficiently communicated.

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

Completeness3/5

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

Given the tool has 5 parameters and an output schema (assumed), the description covers the primary purpose and usage context but fails to explain key parameters like terse and response_format. Without addressing these details, the description is adequate for basic usage but leaves gaps for informed invocation.

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

Parameters2/5

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

The schema has 0% description coverage, so the description must explain all parameters. It only addresses relation_type implicitly via examples. The required parameters source_id and target_id are not described, and the optional parameters terse and response_format are completely omitted. This leaves significant ambiguity for the agent.

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

Purpose5/5

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

The description clearly states the action: 'Link two memory entries with a named relation.' It provides concrete examples of relation types ('depends_on', 'contradicts', etc.) and distinguishes this tool from siblings like memory_remove_relation and memory_suggest_relations. The verb-resource pairing is specific and unambiguous.

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

Usage Guidelines4/5

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

The description advises using the tool 'to build a traversable knowledge graph,' which provides clear context. However, it does not explicitly state when not to use it or compare it with alternatives like memory_suggest_relations or kg_add_triple. The guidance is clear but lacks exclusion criteria.

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

localnest_memory_capture_eventMemory Capture EventC

Ingest a background work event and auto-promote meaningful events into durable memory.

ParametersJSON Schema
NameRequiredDescriptionDefault
event_typeNotask
statusNocompleted
titleYes
summaryNo
contentNo
kindNoknowledge
importanceNo
confidenceNo
files_changedNo
has_testsNo
tagsNo
linksNo
scopeNo
nestNo
branchNo
source_refNo
terseNoverbose
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

C2.8/5.0
Behavior3/5

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

The description mentions 'auto-promote meaningful events,' implying a selection mechanism, but provides no details on how promotion works, what side effects occur (e.g., state changes, deletions), or any rate limits. Annotations (readOnlyHint=false) indicate mutability, but the description does not elaborate on behavioral traits beyond the summary.

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

Conciseness3/5

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

The description is a single sentence, which is concise but overly brief given the tool's complexity. It front-loads the core action but omits necessary details, making it less efficient for agent comprehension. A slightly longer description would improve clarity without sacrificing conciseness.

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

Completeness1/5

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

Despite having an output schema, the description is woefully incomplete for a tool with 18 parameters, nested objects, and no schema descriptions. It fails to explain return values, parameter usage, or the auto-promotion logic. An agent cannot fully understand how to invoke this tool correctly from the description alone.

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

Parameters1/5

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

With 0% schema description coverage and 18 parameters (many with enums and nested objects), the description adds no meaning to any parameter. It does not mention any parameters, defaults, or constraints. The agent must rely solely on schema structure, which is insufficient for correct invocation.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Ingest a background work event and auto-promote meaningful events into durable memory.' It specifies the verb (ingest, auto-promote) and resource (background work event, durable memory), distinguishing it from siblings like localnest_memory_store (explicit storage) and localnest_memory_events (retrieval).

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives. There are many sibling memory tools (e.g., memory_store, memory_events, memory_recall), but the description does not indicate use cases, prerequisites, or when not to use it. This lack of direction forces the agent to infer from context.

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

localnest_memory_check_duplicateMemory Check DuplicateA
Read-onlyIdempotent

Check whether content is a semantic duplicate of an existing memory entry. Uses embedding cosine similarity with configurable threshold (default 0.92). Returns the matching entry when a duplicate is found.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYes
thresholdNo
nestNo
branchNo
project_pathNo
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already indicate read-only, non-destructive, idempotent behavior. The description adds value by explaining the use of embedding cosine similarity and configurable threshold, and that it returns the matching entry. This goes beyond what annotations provide, though performance or side effects are not discussed.

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

Conciseness5/5

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

Two sentences, front-loaded with the core purpose. No unnecessary words; each sentence adds critical information. Structured for quick comprehension.

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

Completeness3/5

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

Given the existence of output schema (not shown), the description need not explain return format in detail, but it does mention returning the matching entry. However, it omits scoping parameters and default behavior when no duplicate is found, leaving the description somewhat incomplete. Adequate but not thorough.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must explain parameters. It only mentions 'content' implicitly and 'threshold', but fails to describe 'nest', 'branch', 'project_path', or 'response_format'. With six parameters, this leaves significant gaps in understanding the tool's usage.

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

Purpose5/5

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

The description clearly states the tool's purpose: checking semantic duplicates using embedding cosine similarity. It distinguishes itself from sibling memory tools (e.g., memory_store, memory_recall) by being specifically a duplicate check operation, and provides the method and default threshold.

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

Usage Guidelines3/5

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

The description implies a use case (checking before storing a memory) but does not explicitly state when to use this tool vs alternatives like memory_recall or memory_find. No when-not or alternative guidance is provided.

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

localnest_memory_deleteMemory DeleteA
DestructiveIdempotent

Delete a stored memory entry and all of its revisions.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
terseNoverbose
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A3.5/5.0
Behavior4/5

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

Annotations (destructiveHint=true) already indicate mutation; description adds that all revisions are deleted, which is beyond the annotation. No contradictions. Provides useful behavioral context beyond structured data.

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

Conciseness4/5

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

The description is a single sentence, front-loaded with the key action. It is concise and avoids redundancy, though it could be slightly more structured.

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

Completeness3/5

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

Given the tool's complexity (delete with revisions), annotations provide partial context. The description is brief and lacks guidance on when to use vs siblings (e.g., batch delete), but the presence of an output schema partially compensates.

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

Parameters1/5

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

Schema description coverage is 0%, leaving three parameters (id, terse, response_format) unexplained. The description does not add any meaning to the parameters beyond what the schema shows, failing to compensate for the lack of schema descriptions.

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

Purpose5/5

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

The description clearly states the action ('delete') and the resource ('a stored memory entry and all of its revisions'). It distinguishes from sibling tools like memory_delete_batch and memory_update by specifying single entry with revisions.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives like memory_delete_batch or memory_update. The usage is implied for single entry deletion but lacks context on prerequisites or exclusions.

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

localnest_memory_delete_batchMemory Delete BatchA
DestructiveIdempotent

Delete up to 100 memory entries in a single call. Returns the count of deleted entries and per-row errors for IDs that were not found or failed.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYes
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A3.8/5.0
Behavior4/5

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

Adds value beyond annotations by describing return of count and per-row errors; annotations already indicate destructiveness and idempotency.

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

Conciseness5/5

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

Two sentences, front-loaded with action and constraints, no wasted words.

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

Completeness3/5

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

Adequate for basic batch delete, but lacks details on permanence, partial success behavior, or authentication requirements; output schema may compensate partially.

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

Parameters2/5

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

Description does not explain what 'ids' represent or the effect of 'response_format', leaving 100% of parameter semantics uncovered.

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

Purpose5/5

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

Clearly states the tool deletes up to 100 memory entries in a single call, distinguishing it from the singular memory_delete sibling.

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

Usage Guidelines3/5

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

Implies batch usage but does not explicitly state when to prefer this over the singular delete or other alternatives.

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

localnest_memory_eventsMemory EventsB
Read-onlyIdempotent

List recently captured memory events and whether they were promoted into durable memory.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_pathNo
limitNo
offsetNo
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

B3.3/5.0
Behavior3/5

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

Annotations provide readOnlyHint=true and idempotentHint=true; description adds promotion info. No contradictions, but doesn't disclose pagination behavior or what 'recently' means. Adequate given annotation coverage.

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

Conciseness5/5

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

Single sentence, directly states core functionality. No wasted words.

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

Completeness2/5

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

With 4 parameters and 0% schema description coverage, the description should explain what 'recently' means, list output fields (though output schema exists), or clarify relation to other memory tools. Lacks sufficient context.

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

Parameters2/5

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

Schema description coverage is 0%; description adds no parameter guidance. Parameter names like limit/offset are somewhat self-explanatory, but the description should mention pagination or that project_path is needed.

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

Purpose5/5

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

The description clearly states it lists recently captured memory events and indicates whether they were promoted to durable memory. It distinguishes from siblings like localnest_memory_list (durable memory) and localnest_memory_capture_event (capture action).

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., localnest_memory_list, localnest_memory_status). Missing explicit context or exclusions.

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

localnest_memory_getMemory GetA
Read-onlyIdempotent

Fetch one stored memory with revision history.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true, destructiveHint=false, idempotentHint=true, which cover safety. The description adds the behavioral trait 'with revision history', providing context beyond annotations. However, it does not disclose any other behaviors like rate limits or permissions, which are less critical here.

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

Conciseness5/5

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

The description is a single sentence that is perfectly concise and front-loaded. Every word is necessary; there is no wasted text. It is appropriately sized for the tool's simplicity.

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

Completeness4/5

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

Given the tool's simplicity (single fetch with history), the description is mostly complete with the key feature mentioned. Output schema exists to detail the return structure. Minor omissions include error handling (e.g., not found) and confirmation of uniqueness, but these are standard and don't significantly impair understanding.

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

Parameters2/5

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

Schema description coverage is 0%, meaning the description must compensate by explaining parameters. The description does not mention 'id' (the required identifier) or 'response_format' (which controls output format). While the schema is self-explanatory, the description adds no semantic value, leaving the agent to infer parameter purpose.

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

Purpose5/5

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

The description 'Fetch one stored memory with revision history' uses a specific verb ('Fetch'), a clear resource ('one stored memory'), and adds a distinguishing feature ('revision history'). This clearly differentiates it from sibling tools like memory_list (lists) or memory_recall (search/recall).

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

Usage Guidelines4/5

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

The description implies usage for fetching a specific memory by ID with its history, but does not explicitly state when to use this over memory_recall, memory_related, or memory_list. No exclusions or alternatives are mentioned, but the context is clear for a targeted retrieval.

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

localnest_memory_listMemory ListB
Read-onlyIdempotent

List stored memories with optional scope, kind, nest, branch, and tag filters. Use item_format=compact to drop content/metadata (~50% fewer tokens) or lite to return only id+title (~85% fewer tokens).

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoknowledge
statusNoactive
project_pathNo
topicNo
nestNo
branchNo
actor_idNo
tagsNo
limitNo
offsetNo
item_formatNoverbose
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, destructiveHint, and idempotentHint, so the description correctly aligns with those. It adds value by highlighting token-saving item_format options ('~50% fewer tokens' etc.), but does not disclose other behavioral traits like pagination or result limits.

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

Conciseness5/5

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

Two sentences, no wasted words. The main purpose is front-loaded, and the token optimization advice is efficiently appended.

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

Completeness2/5

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

Despite having an output schema, the description is too brief for a tool with 12 parameters and no parameter descriptions in the schema. It lacks details on pagination, response format options, and many filters, leaving significant gaps for correct invocation.

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

Parameters2/5

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

Schema coverage is 0%, so the description must compensate. It mentions 'kind, nest, branch, and tag filters' and explains item_format, but omits many parameters (status, project_path, topic, actor_id, limit, offset, response_format). The mention of 'scope' as a filter is inaccurate. Overall, partial coverage with some added meaning.

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

Purpose4/5

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

The description clearly states 'List stored memories' with optional filters, establishing a specific verb and resource. It is differentiated from sibling memory tools like memory_store or memory_delete. However, it mentions 'scope' which is not an actual parameter, causing slight confusion.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like memory_recall or memory_events. The description provides no context on appropriate scenarios or exclusions, leaving the agent to infer usage.

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

localnest_memory_recallMemory RecallC
Read-onlyIdempotent

Recall the most relevant local memories for a task or query. Use item_format=compact to drop content/metadata (~50% fewer tokens) or lite to return only id+title (~85% fewer tokens).

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
root_pathNo
project_pathNo
branch_nameNo
topicNo
featureNo
kindNoknowledge
actor_idNo
tagsNo
limitNo
item_formatNoverbose
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false. The description adds value by explaining the item_format parameter and token savings, but does not disclose how relevance is determined or what data fields are returned beyond format notes. Overall, adds some context beyond annotations.

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

Conciseness5/5

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

The description is two sentences long. First sentence states purpose clearly. Second sentence provides actionable usage detail for the format parameter. No wasted words.

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

Completeness2/5

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

Given the tool has 12 parameters, 1 required, and an output schema, the description is incomplete. It fails to explain the function of most parameters, filtering capabilities (e.g., paths, tags, kind) or how the required query is used. The existence of an output schema reduces the need for return value explanation, but still not enough context for an agent to use the tool effectively.

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

Parameters1/5

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

Schema description coverage is 0% and there are 12 parameters. The description only explains the item_format parameter (and its enum values), leaving 11 parameters (including the required query) entirely undocumented. This is severely insufficient for an AI agent to use all parameters correctly.

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

Purpose4/5

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

The description clearly states 'Recall the most relevant local memories for a task or query' using a specific verb and resource. It implies a ranked retrieval, but does not explicitly differentiate from sibling tools like memory_list or memory_get.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool vs alternatives like localnest_memory_get, localnest_memory_list, or other memory tools. It only hints at token savings via item_format but lacks contextual selection advice.

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

localnest_memory_remove_relationMemory Remove RelationC
DestructiveIdempotent

Remove a relation between two memory entries.

ParametersJSON Schema
NameRequiredDescriptionDefault
source_idYes
target_idYes
terseNoverbose
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already indicate destructiveHint=true and idempotentHint=true. The description adds no additional behavioral context, such as whether the relation removal also affects the memory entries themselves or any side effects. It merely restates the tool's basic function.

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

Conciseness5/5

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

Single sentence, no redundancy. Every word is necessary and the description is appropriately concise.

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

Completeness2/5

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

Given the tool's complexity (removing relations, multiple parameters, output schema exists), the description is too sparse. It does not explain what a relation represents, the effect of the 'terse' or 'response_format' parameters, or the expected result. The presence of an output schema mitigates some completeness needs, but the description still lacks essential context.

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

Parameters1/5

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

Schema description coverage is 0%. The description does not elaborate on parameters like source_id, target_id, terse, or response_format, leaving their purpose and acceptable values unexplained. No value added beyond the schema.

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

Purpose5/5

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

The description clearly states the verb 'Remove' and the resource 'relation between two memory entries', which is specific and distinguishes it from siblings like 'localnest_memory_add_relation'.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as 'localnest_memory_add_relation' or 'localnest_memory_suggest_relations'. The description lacks context on prerequisites or exclusions.

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

localnest_memory_statusMemory StatusA
Read-onlyIdempotent

Return local memory feature status, consent state, and backend compatibility.

ParametersJSON Schema
NameRequiredDescriptionDefault
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint and idempotentHint. Description adds value by specifying the exact information returned (status, consent state, backend compatibility), which goes beyond the annotations.

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

Conciseness5/5

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

Single, clear sentence of 9 words. No unnecessary information. Front-loaded with the key action and resource.

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

Completeness4/5

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

Given the tool's simplicity and the presence of an output schema, the description adequately covers the purpose and return data. Could optionally mention that output schema describes the response structure.

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

Parameters2/5

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

Schema has 0% description coverage for the single parameter. The description does not mention the response_format parameter or its possible values, leaving the agent to infer from the enum alone.

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

Purpose5/5

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

Description uses a clear verb 'Return' and specifies the resource: local memory feature status, consent state, and backend compatibility. It clearly distinguishes from sibling memory tools that perform CRUD operations.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like localnest_server_status or other memory tools. Description does not mention 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.

localnest_memory_storeMemory StoreC

Store a durable local memory entry.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
contentYes
kindNoknowledge
summaryNo
statusNoactive
importanceNo
confidenceNo
tagsNo
linksNo
scopeNo
nestNo
branchNo
actor_idNo
source_typeNo
source_refNo
change_noteNo
terseNoverbose
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

C2/5.0
Behavior2/5

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

Annotations are all false, so the description must provide behavioral context. 'Durable' implies persistence but no details on overwrite behavior, concurrency, or side effects. With 18 parameters and no additional behavioral disclosure, transparency is low.

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

Conciseness2/5

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

The description is extremely concise at 6 words, but this brevity is detrimental given the tool's complexity. It is under-specified rather than efficiently informative.

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

Completeness1/5

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

For a tool with 18 parameters, nested objects, enums, and an output schema, the description provides virtually no context. It omits return value info, usage scenarios, and parameter interrelationships, making it severely incomplete.

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

Parameters1/5

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

Schema description coverage is 0%, yet the description adds zero parameter information. The schema has 18 parameters with many enums and nested objects, but the description does not explain their purpose or usage, failing to compensate for the coverage gap.

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

Purpose3/5

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

The description states 'Store a durable local memory entry,' indicating the verb 'Store' and resource 'memory entry'. However, it does not differentiate from sibling tools like localnest_memory_store_batch, localnest_memory_update, etc., making it only moderately clear.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., memory_store_batch, memory_update). The description lacks any context about 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.

localnest_memory_store_batchMemory Store BatchA

Store up to 100 memory entries in a single atomic transaction. Deduplicates via fingerprint and optional semantic similarity. Returns created/duplicate counts and per-row validation errors.

ParametersJSON Schema
NameRequiredDescriptionDefault
memoriesYes
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A4.2/5.0
Behavior4/5

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

The description adds context beyond annotations, mentioning atomic transaction, deduplication via fingerprint and semantic similarity, and returning counts and per-row errors. Since annotations only mark readOnlyHint=false and destructiveHint=false, the description effectively discloses write behavior and error handling.

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

Conciseness5/5

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

The description is a single sentence with three concise clauses: batch size and atomicity, deduplication method, and return values. It is front-loaded with the main action and contains no redundant information.

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

Completeness4/5

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

Given the tool's complexity and the presence of an output schema (which covers return values), the description covers key aspects: batch limit, atomicity, dedup, and error reporting. It does not detail parameter purposes but the schema provides structure. Slightly lacking in parameter guidance, but overall adequate.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It mentions deduplication and semantic similarity, hinting at fields like fingerprint and dedup_threshold, but does not explain the many other fields in the memories array. The description provides overall context but insufficient detail for each parameter.

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

Purpose5/5

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

The description clearly states 'Store up to 100 memory entries in a single atomic transaction', specifying verb, resource, batch size, and transaction behavior. It distinguishes from sibling tools like localnest_memory_store by emphasizing batch atomicity and deduplication.

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

Usage Guidelines4/5

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

The description implies use for batch storage with deduplication, which is clear. However, it lacks explicit guidance on when not to use or alternatives like localnest_memory_store for single entries. The batch nature and atomicity provide sufficient context for most agents.

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

localnest_memory_suggest_relationsMemory Suggest RelationsA
Read-onlyIdempotent

Find semantically similar memory entries that could be linked to a given memory. Uses dense embeddings (all-MiniLM-L6-v2) when available, falls back to token overlap. Returns candidates ranked by similarity without creating any relations — use localnest_memory_add_relation to confirm.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
thresholdNo
max_resultsNo
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A4.6/5.0
Behavior5/5

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

Annotations indicate read-only, non-destructive, idempotent behavior. The description adds algorithmic details (dense embeddings with fallback) and confirms no relations are created, aligning perfectly with annotations without contradiction.

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

Conciseness5/5

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

The description consists of two concise, well-structured sentences. The first states the core function and method, the second explains output nature and next steps. No unnecessary words.

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

Completeness5/5

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

For a suggestion tool with no side effects and an output schema, the description is complete. It covers what the tool does, how it works (embeddings, fallback), what it returns (ranked candidates), and what to do next (use add_relation). No gaps.

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

Parameters2/5

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

Schema description coverage is 0%, requiring the description to compensate. However, it does not explain any parameters (e.g., id, threshold, max_results, response_format) beyond what the schema already provides. The schema is clear, but the description adds no additional context for parameter usage.

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

Purpose5/5

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

The description clearly states the tool finds semantically similar memory entries that could be linked to a given memory, specifying the embedding model and fallback mechanism. It distinguishes itself from sibling tools like localnest_memory_add_relation and localnest_memory_related.

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

Usage Guidelines5/5

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

Explicitly states to use this tool for suggestions and then use localnest_memory_add_relation to confirm, providing clear guidance on when to use this tool versus alternatives.

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

localnest_memory_updateMemory UpdateB

Update a stored memory entry and append a revision.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
kindNoknowledge
titleNo
summaryNo
contentNo
statusNoactive
importanceNo
confidenceNo
tagsNo
linksNo
scopeNo
source_typeNo
source_refNo
change_noteNoMemory updated
terseNoverbose
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

B3/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false. The description adds that each update appends a revision, which is a key behavioral trait. However, it does not elaborate on what appending a revision entails (e.g., history retention, reversibility) or any authorization requirements.

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

Conciseness4/5

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

The description is a single, efficient sentence. It is not wasteful, but it could be more informative without becoming verbose. It earns its place for stating the core action and effect.

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

Completeness2/5

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

Given the tool's complexity (16 parameters, nested objects, enums, output schema), the description is too sparse. It does not cover the effect on existing data, return values, or the full range of updateable fields. Although an output schema exists, the description still lacks essential context.

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

Parameters1/5

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

With 16 parameters and 0% schema description coverage, the description provides no details about parameters. It does not mention which fields can be updated or how they affect the memory entry. The schema itself has enums and nested objects, but the description adds no semantic value.

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

Purpose5/5

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

The description clearly states the action ('Update') and the effect ('append a revision') on a specific resource ('a stored memory entry'). It distinguishes this from sibling tools like localnest_memory_store (create) and localnest_memory_delete (delete).

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention when to use memory_update vs memory_store for creation, or when not to use it. The agent must infer usage from the name alone.

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

localnest_nest_branchesNest BranchesA
Read-onlyIdempotent

List all branches (topics) within a specific nest with their memory entry counts.

ParametersJSON Schema
NameRequiredDescriptionDefault
nestYes
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already mark it as read-only, non-destructive, and idempotent. The description adds behavioral context by specifying that it returns memory entry counts per branch, which goes beyond the annotations.

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

Conciseness5/5

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

A single sentence with no filler. The verb and object are front-loaded, and every word contributes to understanding.

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

Completeness4/5

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

The tool has an output schema, so return values need less description. It covers the core function (list branches with counts) and is complete for a simple list tool, though it omits potential details like ordering or filtering.

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

Parameters3/5

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

Schema coverage is 0%, so the description should compensate. It implies the 'nest' parameter is the identifier and that output includes counts, but it doesn't explicitly describe the 'response_format' parameter (though schema provides enum and default). The description adds marginal value over the schema.

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

Purpose5/5

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

The description clearly states it lists all branches within a specific nest, including memory entry counts. The verb 'list' and resource 'branches' are specific, and it distinguishes itself from siblings like 'localnest_nest_list' (which lists nests) and 'localnest_nest_tree' (hierarchical view).

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

Usage Guidelines3/5

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

The description implies usage for enumerating branches in a nest but provides no explicit guidance on when to use this tool versus alternatives like 'localnest_nest_tree' or 'localnest_nest_list'. 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.

localnest_nest_listNest ListA
Read-onlyIdempotent

List all nests (top-level memory domains) with their memory entry counts.

ParametersJSON Schema
NameRequiredDescriptionDefault
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A4/5.0
Behavior4/5

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

Annotations (readOnlyHint, destructiveHint, idempotentHint) already indicate safe read-only behavior. The description adds value by revealing that the output includes entry counts, providing behavioral context beyond annotations.

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

Conciseness5/5

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

Single sentence of 12 words with no redundancy. The purpose and output are front-loaded and every word adds value.

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

Completeness5/5

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

Given the tool's simplicity (list with one optional parameter) and the presence of an output schema, the description covers the essential points: what the tool lists and what it returns. It is fully adequate for agent decision-making.

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

Parameters2/5

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

Schema description coverage is 0% and the description does not explain the response_format parameter. Although the schema includes an enum and default, the description misses an opportunity to clarify how the parameter affects output (e.g., json vs markdown).

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

Purpose5/5

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

Description clearly states the verb 'list', the resource 'nests (top-level memory domains)', and the returned information 'with their memory entry counts'. It distinguishes from sibling tools like localnest_nest_branches and localnest_nest_tree by specifying 'top-level'.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives like localnest_nest_branches or localnest_nest_tree. The description implies it is for an overview of all nests, but does not state when to use or not use it.

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

localnest_nest_treeNest Taxonomy TreeB
Read-onlyIdempotent

Get the full taxonomy tree: all nests, their branches, and memory counts at each level.

ParametersJSON Schema
NameRequiredDescriptionDefault
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds no new behavioral details beyond stating it retrieves a tree. With good annotation coverage, the bar is lower, but the description could still clarify pagination or depth limits, which it does not.

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

Conciseness5/5

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

The description is a single sentence, front-loaded with the core action, and contains no redundant information. Every word serves a purpose, making it highly efficient.

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

Completeness3/5

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

Despite the tool being simple with one optional parameter and good annotations, the description fails to cover the parameter's role. It explains the output comprehensively but omits usage details, leaving it incomplete for effective invocation.

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

Parameters1/5

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

Schema description coverage is 0% for the only parameter 'response_format', and the description does not mention it or explain the meaning of the enum values (json vs markdown). An agent receives no guidance on how to use the parameter, which is a significant gap.

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

Purpose5/5

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

Description clearly states the tool retrieves the full taxonomy tree including nests, branches, and memory counts. The verb 'Get' and resource 'full taxonomy tree' are specific. It distinguishes from sibling tools like localnest_nest_list and localnest_nest_branches by implying a comprehensive hierarchical view.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. It does not mention prerequisites, limitations, or context for selection. Agents must infer usage from the description of the output, leaving ambiguity.

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

localnest_project_backfillProject BackfillA
Idempotent

Scan a directory for projects and create seed memory entries for those with zero existing memories. Detects package.json, Cargo.toml, go.mod, pyproject.toml, pom.xml, build.gradle, and .git. Use dry_run=true to preview without writing.

ParametersJSON Schema
NameRequiredDescriptionDefault
root_pathYes
dry_runNo
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations indicate idempotent and non-destructive. The description adds value by detailing the scanning behavior, the condition for seed creation (zero existing memories), and the specific project files detected. No annotation contradiction.

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

Conciseness5/5

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

Two tightly written sentences that front-load the core action (scan and create) and follow with a key usage note. No redundant words.

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

Completeness4/5

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

Given the tool has 3 parameters (1 required), an output schema, and no nested objects, the description covers the primary purpose and dry run usage. Lacks an explanation of what 'seed memory entries' entails, but is otherwise adequate for a focused tool.

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

Parameters3/5

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

Schema coverage is 0%, so the description bears the explanatory burden. It explains root_path (directory) and dry_run (preview flag), but does not mention response_format. This partial coverage is adequate but not complete.

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

Purpose5/5

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

The description clearly states the tool scans a directory for projects and creates seed memory entries for those with zero existing memories, listing detectable file types. This specific verb-resource combination distinguishes it from siblings like localnest_list_projects or localnest_index_project.

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

Usage Guidelines4/5

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

The description explicitly advises using dry_run=true to preview without writing, but lacks guidance on when to use this tool versus alternatives (e.g., index_project or list_projects) or conditions that would make this tool inappropriate.

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

localnest_project_treeProject TreeC
Read-onlyIdempotent

Return a compact tree of files/directories for a project path.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_pathYes
max_depthNo
max_entriesNo
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

C2.7/5.0
Behavior3/5

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

Annotations already indicate readOnly, non-destructive, idempotent. Description adds 'compact tree' but no further behavioral context (e.g., does not show contents, no impact on files, performance characteristics).

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

Conciseness4/5

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

Single sentence is very concise and front-loaded. However, it is too sparse; a slightly longer description could improve completeness without losing conciseness.

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

Completeness2/5

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

Despite having an output schema (unknown structure), the description fails to clarify what 'compact tree' means (structure, format, content). With 4 parameters and 0% schema coverage, the description is insufficient for reliable use.

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

Parameters1/5

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

Schema description coverage is 0%, and the description provides no explanation of parameters. The agent must infer meaning solely from the schema, lacking context for max_depth, max_entries, response_format.

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

Purpose4/5

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

Clearly states the tool returns a compact tree of files/directories for a project path. However, it does not differentiate from sibling tools like localnest_list_projects or localnest_find, which also deal with file structures.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. No description of prerequisites, limitations, or comparisons to other tools.

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

localnest_read_fileRead FileA
Read-onlyIdempotent

Read a bounded chunk of a file with line numbers.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
start_lineNo
end_lineNo
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds 'with line numbers', which is a behavioral trait not covered by annotations, enhancing transparency.

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

Conciseness4/5

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

The description is a single, front-loaded sentence that is concise but lacks detail. It earns its place but could be expanded slightly without becoming verbose.

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

Completeness2/5

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

Despite having an output schema, the description omits return format details (e.g., line numbers, response_format options). For a tool with 4 parameters and 0% schema coverage, this is insufficiently complete.

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

Parameters2/5

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

Schema description coverage is 0%, so the description should compensate. It only mentions 'bounded chunk' and 'line numbers', failing to explain parameters like start_line, end_line, path, or response_format.

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

Purpose5/5

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

The description clearly specifies the action ('Read') and the resource ('a bounded chunk of a file with line numbers'), which distinguishes it from sibling tools like localnest_find or localnest_search_files.

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

Usage Guidelines3/5

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

The description implies when to use (reading specific file lines) but provides no guidance on when not to use or alternatives, such as using localnest_find for content search.

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

localnest_rename_previewRename PreviewA
Read-onlyIdempotent

Preview every location that would change when renaming a symbol. Does NOT modify any files -- returns a dry-run list of changes grouped by file. Requires the project to be indexed first via localnest_index_project.

ParametersJSON Schema
NameRequiredDescriptionDefault
old_nameYesThe current symbol name to rename
new_nameYesThe desired new name
project_pathNoScope search to a specific project
max_resultsNo
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already mark the tool as read-only, idempotent, and non-destructive. The description adds that it requires the project to be indexed and returns a dry-run list grouped by file, which is useful context beyond annotations.

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

Conciseness5/5

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

The description is two sentences long, front-loaded with the core purpose, and contains no unnecessary words or repetitions.

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

Completeness5/5

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

With an output schema present, the description adequately covers purpose, safety, preconditions, and output format (dry-run grouped by file). No gaps remain.

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

Parameters3/5

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

Input schema coverage is 60% with descriptions for three parameters. The description does not add extra semantics for parameters, so it meets the baseline but does not exceed it.

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

Purpose5/5

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

The description clearly states the tool previews location changes when renaming a symbol, using specific verbs and resource. It distinguishes itself from sibling tools like localnest_find_usages and localnest_search_code by emphasizing it does not modify files and returns a dry-run list.

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

Usage Guidelines5/5

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

The description explicitly says when to use (to preview before renaming) and when not to use (does not modify files). It also states the prerequisite of indexing the project, guiding proper usage.

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

localnest_restoreRestore DatabaseA
DestructiveIdempotent

Restore the LocalNest memory database from a backup file. Verifies backup integrity before replacing the live database. IMPORTANT: The MCP server must be restarted after restore for changes to take effect.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYesPath to the backup .db file to restore from
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A4.4/5.0
Behavior5/5

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

Annotations indicate destructiveHint: true and idempotentHint: true. The description adds context: it verifies backup integrity before replacing the live database and requires a server restart. This adds value beyond annotations without contradiction.

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

Conciseness5/5

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

Three concise sentences, front-loaded with purpose. Every sentence adds necessary information: operation, verification, and post-restart requirement. No extraneous words.

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

Completeness4/5

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

Given the destructive nature and restart requirement, the description provides essential context. It could mention response_format behavior, but with output schema present, this is a minor gap. Overall it is adequate for agent invocation.

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

Parameters3/5

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

Input schema has 2 parameters with 50% description coverage. The description clarifies the source parameter as a 'backup .db file', but does not elaborate on response_format. The output schema exists, so return value info is not required. Schema does most of the work; description adds some value.

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

Purpose5/5

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

The description clearly states the tool restores the LocalNest memory database from a backup file, using a specific verb ('Restore') and resource ('memory database'). It distinguishes itself from siblings like localnest_backup by describing a distinct operation (restoring vs. backing up).

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

Usage Guidelines4/5

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

The description explains when to use this tool (to restore from a backup) and mentions a critical post-condition (server restart). However, it does not explicitly state when not to use it or compare to alternatives like localnest_backup. Clear context but missing exclusions.

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

localnest_search_codeSearch CodeA
Read-onlyIdempotent

[EXACT_MATCH] Search text across files under a project/root and return matching lines. Best for exact symbol names, imports, or known identifiers.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
project_pathNo
all_rootsNo
globNo*
max_resultsNo
case_sensitiveNo
context_linesNo
use_regexNo
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive behavior. The description adds that it performs exact matching and returns matching lines, which is useful context beyond the annotations.

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

Conciseness4/5

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

The description is a single sentence with a helpful tag [EXACT_MATCH]. It is concise but could be better structured with separate sections for usage and parameters.

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

Completeness2/5

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

Given 9 parameters, 0% schema description coverage, and an output schema (not shown), the description is insufficient. It lacks details on how to construct queries, filter by project, or interpret results, making it incomplete.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not explain any of the 9 parameters (query, project_path, glob, etc.). It only mentions 'search text across files', leaving the agent to infer parameter meanings from names alone.

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

Purpose5/5

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

The description clearly states the tool searches text across files and returns matching lines, and specifies it's best for exact symbol names, imports, or identifiers. This distinguishes it from sibling tools like search_files or search_hybrid.

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

Usage Guidelines4/5

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

It provides guidance on when to use ('Best for exact symbol names, imports, or known identifiers'), implying it is not for fuzzy or semantic search. However, it does not explicitly mention when not to use or name alternative tools.

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

localnest_search_filesSearch FilesA
Read-onlyIdempotent

[FAST_DISCOVERY] Search file paths and names matching a query. Use this first when looking for a module, feature, or component by name (e.g. "sso", "payment", "auth").

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
project_pathNo
all_rootsNo
max_resultsNo
case_sensitiveNo
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, destructiveHint, idempotentHint. Description adds 'FAST_DISCOVERY' but does not elaborate on behavioral traits like result limits or sorting. With annotations, baseline is acceptable but lacks added detail.

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

Conciseness5/5

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

Description is a single line with a tag and a sentence, extremely concise with no extraneous words. Front-loaded with '[FAST_DISCOVERY]' to immediately convey value.

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

Completeness3/5

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

Given the presence of an output schema and simple tool purpose, the description covers the basic use case. However, it lacks parameter guidance, which is needed given zero schema description coverage. Completeness is adequate but not outstanding.

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

Parameters2/5

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

Schema description coverage is 0%, meaning description adds no information about parameters beyond the schema itself. The description only mentions 'query' implicitly via examples, but does not explain project_path, all_roots, max_results, case_sensitive, or response_format.

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

Purpose5/5

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

The description clearly states it searches file paths and names, and the 'FAST_DISCOVERY' tag indicates speed. It distinguishes from siblings by advising 'use this first' for name-based searches.

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

Usage Guidelines4/5

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

Explicitly says to use this first when looking for a module/feature by name, implying it's for initial discovery. Does not explicitly name alternatives but context implies differentiation from code content search.

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

localnest_search_hybridSearch HybridB
Read-onlyIdempotent

[DEEP_ANALYSIS] Run lexical + semantic retrieval and return RRF-ranked results. Best for queries where concepts and context matter as much as exact keywords.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
project_pathNo
all_rootsNo
globNo*
max_resultsNo
case_sensitiveNo
min_semantic_scoreNo
auto_indexNo
use_rerankerNo
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already indicate read-only, idempotent behavior. The description adds meaningful context about the hybrid retrieval method and RRF ranking, which goes beyond the annotations. It does not contradict annotations and provides useful behavioral insight.

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

Conciseness5/5

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

The description is highly concise with just two sentences, no fluff, and front-loaded with the key purpose. Every word adds value.

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

Completeness3/5

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

Given the tool's complexity (10 parameters, hybrid search with RRF) and the presence of an output schema, the description is too minimal. It lacks guidance on parameter usage, configuration, and expected behavior, making it insufficient for an agent to use correctly without additional schema knowledge.

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

Parameters1/5

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

The input schema has 0% description coverage for parameters, and the description does not clarify any parameter meanings. Despite having many parameters (query, project_path, glob, etc.), the description offers no guidance on their use, failing to compensate for the missing schema descriptions.

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

Purpose4/5

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

The description clearly states it performs lexical+semantic retrieval with RRF ranking, distinguishing it from exact keyword searches. However, it does not explicitly contrast with other search sibling tools like localnest_search_code, which could be seen as a minor gap.

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

Usage Guidelines3/5

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

The description says 'best for queries where concepts and context matter as much as exact keywords,' providing a clear use case. But it does not mention when to avoid this tool or suggest alternative tools, leaving the agent without explicit guidance for different scenarios.

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

localnest_server_statusServer StatusB
Read-onlyIdempotent

Return runtime status and active configuration summary for this MCP server.

ParametersJSON Schema
NameRequiredDescriptionDefault
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already indicate the tool is read-only, idempotent, and non-destructive. The description adds context that it returns runtime status and active configuration, which is helpful. No behavioral contradictions.

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

Conciseness5/5

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

The description is a single, focused sentence with no unnecessary words. It efficiently states the tool's function.

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

Completeness3/5

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

The tool is simple with one optional parameter and an output schema. However, the description omits the response_format parameter, which is crucial for the agent to know. The output schema exists, so return values are covered, but the missing parameter info reduces completeness.

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

Parameters2/5

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

Schema description coverage is 0%, meaning the input schema parameter 'response_format' is not mentioned in the description. The description does not explain that the format can be chosen (json or markdown) via this parameter, leaving the agent uninformed.

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

Purpose4/5

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

The description clearly states 'Return runtime status and active configuration summary for this MCP server', specifying the verb and resource. However, it does not distinguish from the sibling 'localnest_health' tool, which may have overlapping purpose.

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

Usage Guidelines2/5

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

No usage guidelines are provided. The description does not indicate when to use this tool versus alternatives like 'localnest_health', nor does it mention any prerequisites or exclusions.

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

localnest_summarize_projectSummarize ProjectC
Read-onlyIdempotent

Return a high-level summary of a project directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_pathYes
max_filesNo
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds no additional behavioral context, such as performance characteristics, scope, or side effects.

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

Conciseness5/5

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

The description is a single, clear sentence with no unnecessary words. It is front-loaded and conveys the essential purpose efficiently.

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

Completeness2/5

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

Despite having an output schema, the description lacks details about what the summary contains or how parameters affect behavior. It is incomplete for a tool with three parameters and a nontrivial input schema.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not explain the meaning or usage of parameters like project_path, max_files, or response_format. The user must infer from the schema alone.

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

Purpose5/5

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

The description 'Return a high-level summary of a project directory' specifies a clear verb ('Return') and resource ('high-level summary of a project directory'). It distinguishes the tool from siblings like localnest_project_tree or localnest_list_projects, which serve different purposes.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like localnest_project_tree or localnest_index_status. There is no mention of use cases, prerequisites, or exclusions.

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

localnest_task_contextTask ContextC
Read-onlyIdempotent

[QUICK_REHYDRATION] Bundle runtime status, memory state, and relevant recall for a non-trivial task in one call.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNo
taskNo
root_pathNo
project_pathNo
branch_nameNo
topicNo
featureNo
kindNoknowledge
limitNo
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

C2.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds that it bundles status, memory, and recall, but does not explain read behavior or how the result is returned. No contradictions with annotations.

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

Conciseness3/5

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

A single sentence with a bracket prefix; moderately concise but lacks structure (e.g., bullet points). Could be improved with clearer separation of purpose and usage.

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

Completeness2/5

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

With 10 parameters and no parameter information, the description is incomplete despite having an output schema. The agent lacks critical context to properly formulate requests.

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

Parameters1/5

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

Schema has 10 parameters with 0% description coverage. The description provides no mapping or explanation for any parameter (e.g., query, task, kind). The agent cannot infer what each parameter does from the description alone.

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

Purpose4/5

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

The description clearly states the tool bundles runtime status, memory state, and relevant recall for a non-trivial task. The verb 'bundle' and the context 'QUICK_REHYDRATION' indicate a consolidation function, distinguishing it from other memory or status tools.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives. The phrase 'for a non-trivial task' provides vague context but does not specify prerequisites or when other tools (e.g., localnest_memory_recall, localnest_health) are more appropriate.

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

localnest_teachTeachA

Teach the agent a durable behavior rule. Stores a high-importance feedback memory that auto-surfaces in agent_prime when future tasks match the instruction domain. Use this to set persistent preferences, coding standards, or workflow rules that should apply across sessions. Teach memories can be listed (kind=feedback), updated, or deleted via existing memory CRUD tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
instructionYes
importanceNo
tagsNo
nestNo
branchNo
scopeNo
terseNoverbose
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A3.9/5.0
Behavior4/5

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

Discloses that it stores a high-importance feedback memory that auto-surfaces in relevant tasks and can be listed/updated/deleted. No annotation contradictions; readOnlyHint=false and destructiveHint=false are consistent with a mutating but non-destructive store operation.

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

Conciseness5/5

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

Concise two-sentence description plus a third sentence on CRUD management. Front-loaded with the core verb and resource ('Teach the agent a durable behavior rule'). Every sentence adds value.

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

Completeness2/5

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

Given 8 parameters including a nested scope object, the description lacks coverage for most parameters. Output schema exists but is not referenced. The description explains the high-level behavior but not the configuration knobs, leaving agents underinformed.

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

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description adds minimal parameter information. Only 'instruction' and 'importance' are hinted; tags, nest, branch, scope, terse, and response_format are completely unexplained. The description should clarify these optional parameters for effective use.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'teach a durable behavior rule' and distinguishes from sibling memory tools by emphasizing high-importance feedback that auto-surfaces in agent_prime. Examples like persistent preferences and coding standards further clarify purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit use cases: 'set persistent preferences, coding standards, or workflow rules'. Implicitly differentiates from general memory tools by noting that teach memories can be managed via existing CRUD tools, though no explicit when-not-to-use is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

localnest_update_selfUpdate SelfA
DestructiveIdempotent

Update localnest-mcp globally via npm and sync bundled skill. Supports stable, beta, or explicit version targets. Requires explicit user approval.

ParametersJSON Schema
NameRequiredDescriptionDefault
approved_by_userNo
dry_runNo
versionNolatest
reinstall_skillNo
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark it as destructive, idempotent, and open world. The description adds value by noting the need for user approval and the version support (stable, beta, explicit). This provides context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences, front-loading the main action and key constraints. Every sentence provides necessary information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive tool with 5 parameters, the description covers the core purpose and two parameters. It omits explanations for dry_run, reinstall_skill, and response_format. The presence of an output schema reduces need for return value details, but parameter gaps reduce completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It explains the 'version' parameter with target options and implies the 'approved_by_user' parameter. However, it does not explain 'dry_run', 'reinstall_skill', or 'response_format', leaving gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool updates the MCP server via npm and syncs a bundled skill. It specifies version targets (stable, beta, explicit). This distinguishes it from sibling tools like localnest_update_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions 'Requires explicit user approval,' which gives a usage condition. However, it does not explicitly state when not to use this tool or suggest alternatives, leaving some ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

localnest_update_statusUpdate StatusA
Read-onlyIdempotent

Check npm for the latest localnest-mcp version on the selected channel (cached, default every 120 minutes).

ParametersJSON Schema
NameRequiredDescriptionDefault
force_checkNo
channelNostable
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, indicating a safe, read-only operation. The description adds the caching behavior and channel selection, which are useful behavioral traits not covered by annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One concise sentence that front-loads the core purpose and caching detail. No wasted words, though could be slightly more structured with separate clauses.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple status check tool with full annotations and an output schema, the description covers the main idea but omits explanations for two parameters and does not describe the return values (though output schema may cover that). It is adequate but has gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It only hints at the 'channel' parameter ('on the selected channel') but does not explain 'force_check' or 'response_format'. Given three parameters, this is insufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool checks npm for the latest version on a selected channel, which distinguishes it from sibling tools like localnest_update_self (which performs the update) and localnest_server_status (which checks server health). The verb 'Check' and resource 'latest version' are specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context that the check is cached with a default 120-minute interval, implying users need not call it too frequently. However, it does not explicitly mention when not to use this tool or compare with alternatives like localnest_health.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

localnest_usage_guideUsage GuideA
Read-onlyIdempotent

Return concise best-practice guidance for users and AI agents using this MCP.

ParametersJSON Schema
NameRequiredDescriptionDefault
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaNo

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds context that the guidance is 'concise best-practice' oriented, which is consistent with the annotations. 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that efficiently communicates the tool's purpose without extraneous text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity and the presence of an output schema (as per context signals), the description adequately covers the tool's behavior. It could mention that the output format varies with the parameter, but overall it is complete enough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description provides no information about the 'response_format' parameter. Schema description coverage is 0%, so the description should compensate but does not. However, the schema itself includes enum and default values, partially mitigating the gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns 'concise best-practice guidance for users and AI agents using this MCP'. It is a specific verb+resource combination that distinguishes it from sibling tools, which are all functional tools for specific tasks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context (when guidance is needed) but does not explicitly state when to use or not use this tool versus alternatives. No exclusions or alternative tool mentions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

localnest_whats_newWhat's NewA
Read-onlyIdempotent

Cross-session delta: new memories, KG triples, file changes, and commits since a given timestamp or last session.

ParametersJSON Schema
NameRequiredDescriptionDefault
sinceYes
agent_idNo
project_pathNo
limitNo
response_formatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds context about returning new items (delta) and the types of changes, which is useful beyond the annotations. 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that front-loads the key concept ('cross-session delta'). Every word adds value, with no unnecessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (5 parameters, many sibling tools, multiple data types), the description covers the essential purpose and output categories. With an output schema present, return value details are handled elsewhere. Could add more parameter-specific context but still adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description should compensate, but it only gives a high-level purpose. The parameter names ('since', 'agent_id', 'project_path', 'limit', 'response_format') are somewhat self-explanatory, but no format or scope details are provided. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose as a 'cross-session delta' that returns new memories, KG triples, file changes, and commits since a given timestamp or last session. It uses a specific verb ('delta') and resource ('cross-session'), and effectively distinguishes itself from sibling tools by combining multiple data types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for obtaining a summary of recent changes across sessions and data types. However, it does not explicitly state when not to use this tool or mention alternatives (e.g., specific memory_list or kg_query tools), leaving some guidance for the agent to infer.

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. Dates show when Glama detected each change.

  1. 73 tool updatesv0.3.0
    • Addedlocalnest_agent_prime
    • Addedlocalnest_audit
    • Addedlocalnest_backup
    • Changedlocalnest_capture_outcome12 fields changed
      • addedInput schema / properties / branch
        Added value: +{
        +  "maxLength": 200,
        +  "type": "string"
        +}
      • changedInput schema / properties / kind / enum
        Previous value: -[
        -  "knowledge",
        -  "preference"
        -]New value: +[
        +  "knowledge",
        +  "preference",
        +  "feedback"
        +]
      • addedInput schema / properties / nest
        Added value: +{
        +  "maxLength": 200,
        +  "type": "string"
        +}
      • addedInput schema / properties / terse
        Added value: +{
        +  "default": "verbose",
        +  "enum": [
        +    "minimal",
        +    "verbose"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / data / properties
        Added value: +{
        +  "auto_linked_entities": {
        +    "items": {},
        +    "type": "array"
        +  },
        +  "auto_triples": {
        +    "items": {},
        +    "type": "array"
        +  },
        +  "confidence": {
        +    "type": "number"
        +  },
        +  "content": {
        +    "type": "string"
        +  },
        +  "created": {
        +    "type": "boolean"
        +  },
        +  "duplicate": {
        +    "type": "boolean"
        +  },
        +  "id": {
        +    "type": "string"
        +  },
        +  "importance": {
        +    "type": "number"
        +  },
        +  "kind": {
        +    "type": "string"
        +  },
        +  "memory_id": {
        +    "type": "string"
        +  },
        +  "status": {
        +    "type": "string"
        +  },
        +  "summary": {
        +    "type": "string"
        +  },
        +  "title": {
        +    "type": "string"
        +  },
        +  "updated": {
        +    "type": "boolean"
        +  }
        +}
      • addedOutput schema / properties / data / type
        Added value: +"object"
      • addedOutput schema / properties / meta / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / meta / properties
        Added value: +{
        +  "count": {
        +    "maximum": 9007199254740991,
        +    "minimum": -9007199254740991,
        +    "type": "integer"
        +  },
        +  "guidance": {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "pagination": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "has_more": {
        +        "type": "boolean"
        +      },
        +      "limit": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "next_offset": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "offset": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "total_count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "query": {
        +    "type": "string"
        +  },
        +  "recommended_next_action": {
        +    "type": "string"
        +  },
        +  "schema_version": {
        +    "type": "string"
        +  },
        +  "scope": {
        +    "additionalProperties": {},
        +    "propertyNames": {
        +      "type": "string"
        +    },
        +    "type": "object"
        +  },
        +  "tool": {
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / meta / required
        Added value: +[
        +  "schema_version"
        +]
      • addedOutput schema / properties / meta / type
        Added value: +"object"
      • changedOutput schema / required
        Previous value: -[
        -  "data"
        -]New value: +[
        +  "data",
        +  "meta"
        +]
    • Addedlocalnest_diary_read
    • Addedlocalnest_diary_write
    • Changedlocalnest_embed_status8 fields changed
      • addedOutput schema / properties / data / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / data / propertyNames
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / type
        Added value: +"object"
      • addedOutput schema / properties / meta / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / meta / properties
        Added value: +{
        +  "count": {
        +    "maximum": 9007199254740991,
        +    "minimum": -9007199254740991,
        +    "type": "integer"
        +  },
        +  "guidance": {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "pagination": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "has_more": {
        +        "type": "boolean"
        +      },
        +      "limit": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "next_offset": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "offset": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "total_count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "query": {
        +    "type": "string"
        +  },
        +  "recommended_next_action": {
        +    "type": "string"
        +  },
        +  "schema_version": {
        +    "type": "string"
        +  },
        +  "scope": {
        +    "additionalProperties": {},
        +    "propertyNames": {
        +      "type": "string"
        +    },
        +    "type": "object"
        +  },
        +  "tool": {
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / meta / required
        Added value: +[
        +  "schema_version"
        +]
      • addedOutput schema / properties / meta / type
        Added value: +"object"
      • changedOutput schema / required
        Previous value: -[
        -  "data"
        -]New value: +[
        +  "data",
        +  "meta"
        +]
    • Addedlocalnest_file_changed
    • Addedlocalnest_find
    • Addedlocalnest_find_callers
    • Addedlocalnest_find_definition
    • Addedlocalnest_find_implementations
    • Changedlocalnest_find_usages6 fields changed
      • addedOutput schema / properties / data / anyOf
        Added value: +[
        +  {
        +    "additionalProperties": {},
        +    "properties": {
        +      "count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "has_more": {
        +        "type": "boolean"
        +      },
        +      "items": {
        +        "items": {},
        +        "type": "array"
        +      },
        +      "limit": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "next_offset": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "offset": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "total_count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "total_count",
        +      "count",
        +      "limit",
        +      "offset",
        +      "has_more",
        +      "next_offset",
        +      "items"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "items": {},
        +    "type": "array"
        +  }
        +]
      • addedOutput schema / properties / meta / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / meta / properties
        Added value: +{
        +  "count": {
        +    "maximum": 9007199254740991,
        +    "minimum": -9007199254740991,
        +    "type": "integer"
        +  },
        +  "guidance": {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "pagination": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "has_more": {
        +        "type": "boolean"
        +      },
        +      "limit": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "next_offset": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "offset": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "total_count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "query": {
        +    "type": "string"
        +  },
        +  "recommended_next_action": {
        +    "type": "string"
        +  },
        +  "schema_version": {
        +    "type": "string"
        +  },
        +  "scope": {
        +    "additionalProperties": {},
        +    "propertyNames": {
        +      "type": "string"
        +    },
        +    "type": "object"
        +  },
        +  "tool": {
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / meta / required
        Added value: +[
        +  "schema_version"
        +]
      • addedOutput schema / properties / meta / type
        Added value: +"object"
      • changedOutput schema / required
        Previous value: -[
        -  "data"
        -]New value: +[
        +  "data",
        +  "meta"
        +]
    • Changedlocalnest_get_symbol6 fields changed
      • addedOutput schema / properties / data / anyOf
        Added value: +[
        +  {
        +    "additionalProperties": {},
        +    "properties": {
        +      "count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "has_more": {
        +        "type": "boolean"
        +      },
        +      "items": {
        +        "items": {},
        +        "type": "array"
        +      },
        +      "limit": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "next_offset": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "offset": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "total_count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "total_count",
        +      "count",
        +      "limit",
        +      "offset",
        +      "has_more",
        +      "next_offset",
        +      "items"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "items": {},
        +    "type": "array"
        +  }
        +]
      • addedOutput schema / properties / meta / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / meta / properties
        Added value: +{
        +  "count": {
        +    "maximum": 9007199254740991,
        +    "minimum": -9007199254740991,
        +    "type": "integer"
        +  },
        +  "guidance": {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "pagination": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "has_more": {
        +        "type": "boolean"
        +      },
        +      "limit": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "next_offset": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "offset": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "total_count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "query": {
        +    "type": "string"
        +  },
        +  "recommended_next_action": {
        +    "type": "string"
        +  },
        +  "schema_version": {
        +    "type": "string"
        +  },
        +  "scope": {
        +    "additionalProperties": {},
        +    "propertyNames": {
        +      "type": "string"
        +    },
        +    "type": "object"
        +  },
        +  "tool": {
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / meta / required
        Added value: +[
        +  "schema_version"
        +]
      • addedOutput schema / properties / meta / type
        Added value: +"object"
      • changedOutput schema / required
        Previous value: -[
        -  "data"
        -]New value: +[
        +  "data",
        +  "meta"
        +]
    • Addedlocalnest_graph_bridges
    • Addedlocalnest_graph_traverse
    • Changedlocalnest_health8 fields changed
      • addedOutput schema / properties / data / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / data / propertyNames
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / type
        Added value: +"object"
      • addedOutput schema / properties / meta / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / meta / properties
        Added value: +{
        +  "count": {
        +    "maximum": 9007199254740991,
        +    "minimum": -9007199254740991,
        +    "type": "integer"
        +  },
        +  "guidance": {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "pagination": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "has_more": {
        +        "type": "boolean"
        +      },
        +      "limit": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "next_offset": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "offset": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "total_count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "query": {
        +    "type": "string"
        +  },
        +  "recommended_next_action": {
        +    "type": "string"
        +  },
        +  "schema_version": {
        +    "type": "string"
        +  },
        +  "scope": {
        +    "additionalProperties": {},
        +    "propertyNames": {
        +      "type": "string"
        +    },
        +    "type": "object"
        +  },
        +  "tool": {
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / meta / required
        Added value: +[
        +  "schema_version"
        +]
      • addedOutput schema / properties / meta / type
        Added value: +"object"
      • changedOutput schema / required
        Previous value: -[
        -  "data"
        -]New value: +[
        +  "data",
        +  "meta"
        +]
    • Addedlocalnest_help
    • Addedlocalnest_hooks_list_events
    • Addedlocalnest_hooks_stats
    • Changedlocalnest_index_project8 fields changed
      • addedOutput schema / properties / data / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / data / propertyNames
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / type
        Added value: +"object"
      • addedOutput schema / properties / meta / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / meta / properties
        Added value: +{
        +  "count": {
        +    "maximum": 9007199254740991,
        +    "minimum": -9007199254740991,
        +    "type": "integer"
        +  },
        +  "guidance": {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "pagination": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "has_more": {
        +        "type": "boolean"
        +      },
        +      "limit": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "next_offset": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "offset": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "total_count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "query": {
        +    "type": "string"
        +  },
        +  "recommended_next_action": {
        +    "type": "string"
        +  },
        +  "schema_version": {
        +    "type": "string"
        +  },
        +  "scope": {
        +    "additionalProperties": {},
        +    "propertyNames": {
        +      "type": "string"
        +    },
        +    "type": "object"
        +  },
        +  "tool": {
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / meta / required
        Added value: +[
        +  "schema_version"
        +]
      • addedOutput schema / properties / meta / type
        Added value: +"object"
      • changedOutput schema / required
        Previous value: -[
        -  "data"
        -]New value: +[
        +  "data",
        +  "meta"
        +]
    • Changedlocalnest_index_status8 fields changed
      • addedOutput schema / properties / data / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / data / propertyNames
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / type
        Added value: +"object"
      • addedOutput schema / properties / meta / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / meta / properties
        Added value: +{
        +  "count": {
        +    "maximum": 9007199254740991,
        +    "minimum": -9007199254740991,
        +    "type": "integer"
        +  },
        +  "guidance": {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "pagination": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "has_more": {
        +        "type": "boolean"
        +      },
        +      "limit": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "next_offset": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "offset": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "total_count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "query": {
        +    "type": "string"
        +  },
        +  "recommended_next_action": {
        +    "type": "string"
        +  },
        +  "schema_version": {
        +    "type": "string"
        +  },
        +  "scope": {
        +    "additionalProperties": {},
        +    "propertyNames": {
        +      "type": "string"
        +    },
        +    "type": "object"
        +  },
        +  "tool": {
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / meta / required
        Added value: +[
        +  "schema_version"
        +]
      • addedOutput schema / properties / meta / type
        Added value: +"object"
      • changedOutput schema / required
        Previous value: -[
        -  "data"
        -]New value: +[
        +  "data",
        +  "meta"
        +]
    • Addedlocalnest_ingest_json
    • Addedlocalnest_ingest_markdown
    • Addedlocalnest_kg_add_entities_batch
    • Addedlocalnest_kg_add_entity
    • Addedlocalnest_kg_add_triple
    • Addedlocalnest_kg_add_triples_batch
    • Addedlocalnest_kg_as_of
    • Addedlocalnest_kg_backfill_links
    • Addedlocalnest_kg_delete_entities_batch
    • Addedlocalnest_kg_delete_entity
    • Addedlocalnest_kg_delete_triples_batch
    • Addedlocalnest_kg_invalidate
    • Addedlocalnest_kg_query
    • Addedlocalnest_kg_stats
    • Addedlocalnest_kg_timeline
    • Changedlocalnest_list_projects6 fields changed
      • addedOutput schema / properties / data / anyOf
        Added value: +[
        +  {
        +    "additionalProperties": {},
        +    "properties": {
        +      "count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "has_more": {
        +        "type": "boolean"
        +      },
        +      "items": {
        +        "items": {},
        +        "type": "array"
        +      },
        +      "limit": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "next_offset": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "offset": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "total_count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "total_count",
        +      "count",
        +      "limit",
        +      "offset",
        +      "has_more",
        +      "next_offset",
        +      "items"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "items": {},
        +    "type": "array"
        +  }
        +]
      • addedOutput schema / properties / meta / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / meta / properties
        Added value: +{
        +  "count": {
        +    "maximum": 9007199254740991,
        +    "minimum": -9007199254740991,
        +    "type": "integer"
        +  },
        +  "guidance": {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "pagination": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "has_more": {
        +        "type": "boolean"
        +      },
        +      "limit": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "next_offset": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "offset": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "total_count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "query": {
        +    "type": "string"
        +  },
        +  "recommended_next_action": {
        +    "type": "string"
        +  },
        +  "schema_version": {
        +    "type": "string"
        +  },
        +  "scope": {
        +    "additionalProperties": {},
        +    "propertyNames": {
        +      "type": "string"
        +    },
        +    "type": "object"
        +  },
        +  "tool": {
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / meta / required
        Added value: +[
        +  "schema_version"
        +]
      • addedOutput schema / properties / meta / type
        Added value: +"object"
      • changedOutput schema / required
        Previous value: -[
        -  "data"
        -]New value: +[
        +  "data",
        +  "meta"
        +]
    • Changedlocalnest_list_roots6 fields changed
      • addedOutput schema / properties / data / anyOf
        Added value: +[
        +  {
        +    "additionalProperties": {},
        +    "properties": {
        +      "count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "has_more": {
        +        "type": "boolean"
        +      },
        +      "items": {
        +        "items": {},
        +        "type": "array"
        +      },
        +      "limit": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "next_offset": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "offset": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "total_count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "total_count",
        +      "count",
        +      "limit",
        +      "offset",
        +      "has_more",
        +      "next_offset",
        +      "items"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "items": {},
        +    "type": "array"
        +  }
        +]
      • addedOutput schema / properties / meta / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / meta / properties
        Added value: +{
        +  "count": {
        +    "maximum": 9007199254740991,
        +    "minimum": -9007199254740991,
        +    "type": "integer"
        +  },
        +  "guidance": {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "pagination": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "has_more": {
        +        "type": "boolean"
        +      },
        +      "limit": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "next_offset": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "offset": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "total_count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "query": {
        +    "type": "string"
        +  },
        +  "recommended_next_action": {
        +    "type": "string"
        +  },
        +  "schema_version": {
        +    "type": "string"
        +  },
        +  "scope": {
        +    "additionalProperties": {},
        +    "propertyNames": {
        +      "type": "string"
        +    },
        +    "type": "object"
        +  },
        +  "tool": {
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / meta / required
        Added value: +[
        +  "schema_version"
        +]
      • addedOutput schema / properties / meta / type
        Added value: +"object"
      • changedOutput schema / required
        Previous value: -[
        -  "data"
        -]New value: +[
        +  "data",
        +  "meta"
        +]
    • Changedlocalnest_memory_add_relation9 fields changed
      • addedInput schema / properties / terse
        Added value: +{
        +  "default": "verbose",
        +  "enum": [
        +    "minimal",
        +    "verbose"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / data / properties
        Added value: +{
        +  "id": {
        +    "type": "string"
        +  },
        +  "ok": {
        +    "type": "boolean"
        +  },
        +  "relation_type": {
        +    "type": "string"
        +  },
        +  "source_id": {
        +    "type": "string"
        +  },
        +  "target_id": {
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / data / type
        Added value: +"object"
      • addedOutput schema / properties / meta / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / meta / properties
        Added value: +{
        +  "count": {
        +    "maximum": 9007199254740991,
        +    "minimum": -9007199254740991,
        +    "type": "integer"
        +  },
        +  "guidance": {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "pagination": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "has_more": {
        +        "type": "boolean"
        +      },
        +      "limit": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "next_offset": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "offset": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "total_count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "query": {
        +    "type": "string"
        +  },
        +  "recommended_next_action": {
        +    "type": "string"
        +  },
        +  "schema_version": {
        +    "type": "string"
        +  },
        +  "scope": {
        +    "additionalProperties": {},
        +    "propertyNames": {
        +      "type": "string"
        +    },
        +    "type": "object"
        +  },
        +  "tool": {
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / meta / required
        Added value: +[
        +  "schema_version"
        +]
      • addedOutput schema / properties / meta / type
        Added value: +"object"
      • changedOutput schema / required
        Previous value: -[
        -  "data"
        -]New value: +[
        +  "data",
        +  "meta"
        +]
    • Changedlocalnest_memory_capture_event12 fields changed
      • addedInput schema / properties / branch
        Added value: +{
        +  "maxLength": 200,
        +  "type": "string"
        +}
      • changedInput schema / properties / kind / enum
        Previous value: -[
        -  "knowledge",
        -  "preference"
        -]New value: +[
        +  "knowledge",
        +  "preference",
        +  "feedback"
        +]
      • addedInput schema / properties / nest
        Added value: +{
        +  "maxLength": 200,
        +  "type": "string"
        +}
      • addedInput schema / properties / terse
        Added value: +{
        +  "default": "verbose",
        +  "enum": [
        +    "minimal",
        +    "verbose"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / data / properties
        Added value: +{
        +  "auto_linked_entities": {
        +    "items": {},
        +    "type": "array"
        +  },
        +  "auto_triples": {
        +    "items": {},
        +    "type": "array"
        +  },
        +  "confidence": {
        +    "type": "number"
        +  },
        +  "content": {
        +    "type": "string"
        +  },
        +  "created": {
        +    "type": "boolean"
        +  },
        +  "duplicate": {
        +    "type": "boolean"
        +  },
        +  "id": {
        +    "type": "string"
        +  },
        +  "importance": {
        +    "type": "number"
        +  },
        +  "kind": {
        +    "type": "string"
        +  },
        +  "memory_id": {
        +    "type": "string"
        +  },
        +  "status": {
        +    "type": "string"
        +  },
        +  "summary": {
        +    "type": "string"
        +  },
        +  "title": {
        +    "type": "string"
        +  },
        +  "updated": {
        +    "type": "boolean"
        +  }
        +}
      • addedOutput schema / properties / data / type
        Added value: +"object"
      • addedOutput schema / properties / meta / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / meta / properties
        Added value: +{
        +  "count": {
        +    "maximum": 9007199254740991,
        +    "minimum": -9007199254740991,
        +    "type": "integer"
        +  },
        +  "guidance": {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "pagination": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "has_more": {
        +        "type": "boolean"
        +      },
        +      "limit": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "next_offset": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "offset": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "total_count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "query": {
        +    "type": "string"
        +  },
        +  "recommended_next_action": {
        +    "type": "string"
        +  },
        +  "schema_version": {
        +    "type": "string"
        +  },
        +  "scope": {
        +    "additionalProperties": {},
        +    "propertyNames": {
        +      "type": "string"
        +    },
        +    "type": "object"
        +  },
        +  "tool": {
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / meta / required
        Added value: +[
        +  "schema_version"
        +]
      • addedOutput schema / properties / meta / type
        Added value: +"object"
      • changedOutput schema / required
        Previous value: -[
        -  "data"
        -]New value: +[
        +  "data",
        +  "meta"
        +]
    • Addedlocalnest_memory_check_duplicate
    • Changedlocalnest_memory_delete9 fields changed
      • addedInput schema / properties / terse
        Added value: +{
        +  "default": "verbose",
        +  "enum": [
        +    "minimal",
        +    "verbose"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / data / properties
        Added value: +{
        +  "id": {
        +    "type": "string"
        +  },
        +  "ok": {
        +    "type": "boolean"
        +  },
        +  "relation_type": {
        +    "type": "string"
        +  },
        +  "source_id": {
        +    "type": "string"
        +  },
        +  "target_id": {
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / data / type
        Added value: +"object"
      • addedOutput schema / properties / meta / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / meta / properties
        Added value: +{
        +  "count": {
        +    "maximum": 9007199254740991,
        +    "minimum": -9007199254740991,
        +    "type": "integer"
        +  },
        +  "guidance": {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "pagination": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "has_more": {
        +        "type": "boolean"
        +      },
        +      "limit": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "next_offset": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "offset": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "total_count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "query": {
        +    "type": "string"
        +  },
        +  "recommended_next_action": {
        +    "type": "string"
        +  },
        +  "schema_version": {
        +    "type": "string"
        +  },
        +  "scope": {
        +    "additionalProperties": {},
        +    "propertyNames": {
        +      "type": "string"
        +    },
        +    "type": "object"
        +  },
        +  "tool": {
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / meta / required
        Added value: +[
        +  "schema_version"
        +]
      • addedOutput schema / properties / meta / type
        Added value: +"object"
      • changedOutput schema / required
        Previous value: -[
        -  "data"
        -]New value: +[
        +  "data",
        +  "meta"
        +]
    • Addedlocalnest_memory_delete_batch
    • Changedlocalnest_memory_events6 fields changed
      • addedOutput schema / properties / data / anyOf
        Added value: +[
        +  {
        +    "additionalProperties": {},
        +    "properties": {
        +      "count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "has_more": {
        +        "type": "boolean"
        +      },
        +      "items": {
        +        "items": {},
        +        "type": "array"
        +      },
        +      "limit": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "next_offset": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "offset": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "total_count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "total_count",
        +      "count",
        +      "limit",
        +      "offset",
        +      "has_more",
        +      "next_offset",
        +      "items"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "items": {},
        +    "type": "array"
        +  }
        +]
      • addedOutput schema / properties / meta / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / meta / properties
        Added value: +{
        +  "count": {
        +    "maximum": 9007199254740991,
        +    "minimum": -9007199254740991,
        +    "type": "integer"
        +  },
        +  "guidance": {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "pagination": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "has_more": {
        +        "type": "boolean"
        +      },
        +      "limit": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "next_offset": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "offset": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "total_count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "query": {
        +    "type": "string"
        +  },
        +  "recommended_next_action": {
        +    "type": "string"
        +  },
        +  "schema_version": {
        +    "type": "string"
        +  },
        +  "scope": {
        +    "additionalProperties": {},
        +    "propertyNames": {
        +      "type": "string"
        +    },
        +    "type": "object"
        +  },
        +  "tool": {
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / meta / required
        Added value: +[
        +  "schema_version"
        +]
      • addedOutput schema / properties / meta / type
        Added value: +"object"
      • changedOutput schema / required
        Previous value: -[
        -  "data"
        -]New value: +[
        +  "data",
        +  "meta"
        +]
    • Changedlocalnest_memory_get8 fields changed
      • addedOutput schema / properties / data / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / data / properties
        Added value: +{
        +  "auto_linked_entities": {
        +    "items": {},
        +    "type": "array"
        +  },
        +  "auto_triples": {
        +    "items": {},
        +    "type": "array"
        +  },
        +  "confidence": {
        +    "type": "number"
        +  },
        +  "content": {
        +    "type": "string"
        +  },
        +  "created": {
        +    "type": "boolean"
        +  },
        +  "duplicate": {
        +    "type": "boolean"
        +  },
        +  "id": {
        +    "type": "string"
        +  },
        +  "importance": {
        +    "type": "number"
        +  },
        +  "kind": {
        +    "type": "string"
        +  },
        +  "memory_id": {
        +    "type": "string"
        +  },
        +  "status": {
        +    "type": "string"
        +  },
        +  "summary": {
        +    "type": "string"
        +  },
        +  "title": {
        +    "type": "string"
        +  },
        +  "updated": {
        +    "type": "boolean"
        +  }
        +}
      • addedOutput schema / properties / data / type
        Added value: +"object"
      • addedOutput schema / properties / meta / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / meta / properties
        Added value: +{
        +  "count": {
        +    "maximum": 9007199254740991,
        +    "minimum": -9007199254740991,
        +    "type": "integer"
        +  },
        +  "guidance": {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "pagination": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "has_more": {
        +        "type": "boolean"
        +      },
        +      "limit": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "next_offset": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "offset": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "total_count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "query": {
        +    "type": "string"
        +  },
        +  "recommended_next_action": {
        +    "type": "string"
        +  },
        +  "schema_version": {
        +    "type": "string"
        +  },
        +  "scope": {
        +    "additionalProperties": {},
        +    "propertyNames": {
        +      "type": "string"
        +    },
        +    "type": "object"
        +  },
        +  "tool": {
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / meta / required
        Added value: +[
        +  "schema_version"
        +]
      • addedOutput schema / properties / meta / type
        Added value: +"object"
      • changedOutput schema / required
        Previous value: -[
        -  "data"
        -]New value: +[
        +  "data",
        +  "meta"
        +]
    • Changedlocalnest_memory_list12 fields changed
      • addedInput schema / properties / actor_id
        Added value: +{
        +  "maxLength": 200,
        +  "type": "string"
        +}
      • addedInput schema / properties / branch
        Added value: +{
        +  "type": "string"
        +}
      • addedInput schema / properties / item_format
        Added value: +{
        +  "default": "verbose",
        +  "enum": [
        +    "verbose",
        +    "compact",
        +    "lite"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / kind / enum
        Previous value: -[
        -  "knowledge",
        -  "preference"
        -]New value: +[
        +  "knowledge",
        +  "preference",
        +  "feedback"
        +]
      • addedInput schema / properties / nest
        Added value: +{
        +  "type": "string"
        +}
      • addedInput schema / properties / tags
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / data / anyOf
        Added value: +[
        +  {
        +    "additionalProperties": {},
        +    "properties": {
        +      "count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "has_more": {
        +        "type": "boolean"
        +      },
        +      "items": {
        +        "items": {},
        +        "type": "array"
        +      },
        +      "limit": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "next_offset": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "offset": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "total_count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "total_count",
        +      "count",
        +      "limit",
        +      "offset",
        +      "has_more",
        +      "next_offset",
        +      "items"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "items": {},
        +    "type": "array"
        +  }
        +]
      • addedOutput schema / properties / meta / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / meta / properties
        Added value: +{
        +  "count": {
        +    "maximum": 9007199254740991,
        +    "minimum": -9007199254740991,
        +    "type": "integer"
        +  },
        +  "guidance": {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "pagination": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "has_more": {
        +        "type": "boolean"
        +      },
        +      "limit": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "next_offset": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "offset": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "total_count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "query": {
        +    "type": "string"
        +  },
        +  "recommended_next_action": {
        +    "type": "string"
        +  },
        +  "schema_version": {
        +    "type": "string"
        +  },
        +  "scope": {
        +    "additionalProperties": {},
        +    "propertyNames": {
        +      "type": "string"
        +    },
        +    "type": "object"
        +  },
        +  "tool": {
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / meta / required
        Added value: +[
        +  "schema_version"
        +]
      • addedOutput schema / properties / meta / type
        Added value: +"object"
      • changedOutput schema / required
        Previous value: -[
        -  "data"
        -]New value: +[
        +  "data",
        +  "meta"
        +]
    • Changedlocalnest_memory_recall10 fields changed
      • addedInput schema / properties / actor_id
        Added value: +{
        +  "maxLength": 200,
        +  "type": "string"
        +}
      • addedInput schema / properties / item_format
        Added value: +{
        +  "default": "verbose",
        +  "enum": [
        +    "verbose",
        +    "compact",
        +    "lite"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / kind / enum
        Previous value: -[
        -  "knowledge",
        -  "preference"
        -]New value: +[
        +  "knowledge",
        +  "preference",
        +  "feedback"
        +]
      • addedInput schema / properties / tags
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / data / anyOf
        Added value: +[
        +  {
        +    "additionalProperties": {},
        +    "properties": {
        +      "count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "has_more": {
        +        "type": "boolean"
        +      },
        +      "items": {
        +        "items": {},
        +        "type": "array"
        +      },
        +      "limit": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "next_offset": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "offset": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "total_count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "total_count",
        +      "count",
        +      "limit",
        +      "offset",
        +      "has_more",
        +      "next_offset",
        +      "items"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "items": {},
        +    "type": "array"
        +  }
        +]
      • addedOutput schema / properties / meta / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / meta / properties
        Added value: +{
        +  "count": {
        +    "maximum": 9007199254740991,
        +    "minimum": -9007199254740991,
        +    "type": "integer"
        +  },
        +  "guidance": {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "pagination": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "has_more": {
        +        "type": "boolean"
        +      },
        +      "limit": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "next_offset": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "offset": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "total_count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "query": {
        +    "type": "string"
        +  },
        +  "recommended_next_action": {
        +    "type": "string"
        +  },
        +  "schema_version": {
        +    "type": "string"
        +  },
        +  "scope": {
        +    "additionalProperties": {},
        +    "propertyNames": {
        +      "type": "string"
        +    },
        +    "type": "object"
        +  },
        +  "tool": {
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / meta / required
        Added value: +[
        +  "schema_version"
        +]
      • addedOutput schema / properties / meta / type
        Added value: +"object"
      • changedOutput schema / required
        Previous value: -[
        -  "data"
        -]New value: +[
        +  "data",
        +  "meta"
        +]
    • Changedlocalnest_memory_related6 fields changed
      • addedOutput schema / properties / data / anyOf
        Added value: +[
        +  {
        +    "additionalProperties": {},
        +    "properties": {
        +      "count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "has_more": {
        +        "type": "boolean"
        +      },
        +      "items": {
        +        "items": {},
        +        "type": "array"
        +      },
        +      "limit": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "next_offset": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "offset": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "total_count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "total_count",
        +      "count",
        +      "limit",
        +      "offset",
        +      "has_more",
        +      "next_offset",
        +      "items"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "items": {},
        +    "type": "array"
        +  }
        +]
      • addedOutput schema / properties / meta / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / meta / properties
        Added value: +{
        +  "count": {
        +    "maximum": 9007199254740991,
        +    "minimum": -9007199254740991,
        +    "type": "integer"
        +  },
        +  "guidance": {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "pagination": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "has_more": {
        +        "type": "boolean"
        +      },
        +      "limit": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "next_offset": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "offset": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "total_count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "query": {
        +    "type": "string"
        +  },
        +  "recommended_next_action": {
        +    "type": "string"
        +  },
        +  "schema_version": {
        +    "type": "string"
        +  },
        +  "scope": {
        +    "additionalProperties": {},
        +    "propertyNames": {
        +      "type": "string"
        +    },
        +    "type": "object"
        +  },
        +  "tool": {
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / meta / required
        Added value: +[
        +  "schema_version"
        +]
      • addedOutput schema / properties / meta / type
        Added value: +"object"
      • changedOutput schema / required
        Previous value: -[
        -  "data"
        -]New value: +[
        +  "data",
        +  "meta"
        +]
    • Changedlocalnest_memory_remove_relation9 fields changed
      • addedInput schema / properties / terse
        Added value: +{
        +  "default": "verbose",
        +  "enum": [
        +    "minimal",
        +    "verbose"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / data / properties
        Added value: +{
        +  "id": {
        +    "type": "string"
        +  },
        +  "ok": {
        +    "type": "boolean"
        +  },
        +  "relation_type": {
        +    "type": "string"
        +  },
        +  "source_id": {
        +    "type": "string"
        +  },
        +  "target_id": {
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / data / type
        Added value: +"object"
      • addedOutput schema / properties / meta / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / meta / properties
        Added value: +{
        +  "count": {
        +    "maximum": 9007199254740991,
        +    "minimum": -9007199254740991,
        +    "type": "integer"
        +  },
        +  "guidance": {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "pagination": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "has_more": {
        +        "type": "boolean"
        +      },
        +      "limit": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "next_offset": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "offset": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "total_count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "query": {
        +    "type": "string"
        +  },
        +  "recommended_next_action": {
        +    "type": "string"
        +  },
        +  "schema_version": {
        +    "type": "string"
        +  },
        +  "scope": {
        +    "additionalProperties": {},
        +    "propertyNames": {
        +      "type": "string"
        +    },
        +    "type": "object"
        +  },
        +  "tool": {
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / meta / required
        Added value: +[
        +  "schema_version"
        +]
      • addedOutput schema / properties / meta / type
        Added value: +"object"
      • changedOutput schema / required
        Previous value: -[
        -  "data"
        -]New value: +[
        +  "data",
        +  "meta"
        +]
    • Changedlocalnest_memory_status8 fields changed
      • addedOutput schema / properties / data / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / data / propertyNames
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / type
        Added value: +"object"
      • addedOutput schema / properties / meta / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / meta / properties
        Added value: +{
        +  "count": {
        +    "maximum": 9007199254740991,
        +    "minimum": -9007199254740991,
        +    "type": "integer"
        +  },
        +  "guidance": {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "pagination": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "has_more": {
        +        "type": "boolean"
        +      },
        +      "limit": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "next_offset": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "offset": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "total_count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "query": {
        +    "type": "string"
        +  },
        +  "recommended_next_action": {
        +    "type": "string"
        +  },
        +  "schema_version": {
        +    "type": "string"
        +  },
        +  "scope": {
        +    "additionalProperties": {},
        +    "propertyNames": {
        +      "type": "string"
        +    },
        +    "type": "object"
        +  },
        +  "tool": {
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / meta / required
        Added value: +[
        +  "schema_version"
        +]
      • addedOutput schema / properties / meta / type
        Added value: +"object"
      • changedOutput schema / required
        Previous value: -[
        -  "data"
        -]New value: +[
        +  "data",
        +  "meta"
        +]
    • Changedlocalnest_memory_store21 fields changed
      • addedInput schema / properties / actor_id
        Added value: +{
        +  "maxLength": 200,
        +  "type": "string"
        +}
      • addedInput schema / properties / branch
        Added value: +{
        +  "maxLength": 200,
        +  "type": "string"
        +}
      • removedInput schema / properties / change_note / default
        Removed value: -"Initial memory creation"
      • removedInput schema / properties / confidence / default
        Removed value: -0.7
      • removedInput schema / properties / importance / default
        Removed value: -50
      • changedInput schema / properties / kind / enum
        Previous value: -[
        -  "knowledge",
        -  "preference"
        -]New value: +[
        +  "knowledge",
        +  "preference",
        +  "feedback"
        +]
      • removedInput schema / properties / links / default
        Removed value: -[]
      • addedInput schema / properties / nest
        Added value: +{
        +  "maxLength": 200,
        +  "type": "string"
        +}
      • removedInput schema / properties / source_ref / default
        Removed value: -""
      • removedInput schema / properties / source_type / default
        Removed value: -"manual"
      • removedInput schema / properties / summary / default
        Removed value: -""
      • removedInput schema / properties / tags / default
        Removed value: -[]
      • addedInput schema / properties / terse
        Added value: +{
        +  "default": "verbose",
        +  "enum": [
        +    "minimal",
        +    "verbose"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / data / properties
        Added value: +{
        +  "auto_linked_entities": {
        +    "items": {},
        +    "type": "array"
        +  },
        +  "auto_triples": {
        +    "items": {},
        +    "type": "array"
        +  },
        +  "confidence": {
        +    "type": "number"
        +  },
        +  "content": {
        +    "type": "string"
        +  },
        +  "created": {
        +    "type": "boolean"
        +  },
        +  "duplicate": {
        +    "type": "boolean"
        +  },
        +  "id": {
        +    "type": "string"
        +  },
        +  "importance": {
        +    "type": "number"
        +  },
        +  "kind": {
        +    "type": "string"
        +  },
        +  "memory_id": {
        +    "type": "string"
        +  },
        +  "status": {
        +    "type": "string"
        +  },
        +  "summary": {
        +    "type": "string"
        +  },
        +  "title": {
        +    "type": "string"
        +  },
        +  "updated": {
        +    "type": "boolean"
        +  }
        +}
      • addedOutput schema / properties / data / type
        Added value: +"object"
      • addedOutput schema / properties / meta / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / meta / properties
        Added value: +{
        +  "count": {
        +    "maximum": 9007199254740991,
        +    "minimum": -9007199254740991,
        +    "type": "integer"
        +  },
        +  "guidance": {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "pagination": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "has_more": {
        +        "type": "boolean"
        +      },
        +      "limit": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "next_offset": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "offset": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "total_count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "query": {
        +    "type": "string"
        +  },
        +  "recommended_next_action": {
        +    "type": "string"
        +  },
        +  "schema_version": {
        +    "type": "string"
        +  },
        +  "scope": {
        +    "additionalProperties": {},
        +    "propertyNames": {
        +      "type": "string"
        +    },
        +    "type": "object"
        +  },
        +  "tool": {
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / meta / required
        Added value: +[
        +  "schema_version"
        +]
      • addedOutput schema / properties / meta / type
        Added value: +"object"
      • changedOutput schema / required
        Previous value: -[
        -  "data"
        -]New value: +[
        +  "data",
        +  "meta"
        +]
    • Addedlocalnest_memory_store_batch
    • Changedlocalnest_memory_suggest_relations6 fields changed
      • addedOutput schema / properties / data / anyOf
        Added value: +[
        +  {
        +    "additionalProperties": {},
        +    "properties": {
        +      "count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "has_more": {
        +        "type": "boolean"
        +      },
        +      "items": {
        +        "items": {},
        +        "type": "array"
        +      },
        +      "limit": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "next_offset": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "offset": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "total_count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "total_count",
        +      "count",
        +      "limit",
        +      "offset",
        +      "has_more",
        +      "next_offset",
        +      "items"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "items": {},
        +    "type": "array"
        +  }
        +]
      • addedOutput schema / properties / meta / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / meta / properties
        Added value: +{
        +  "count": {
        +    "maximum": 9007199254740991,
        +    "minimum": -9007199254740991,
        +    "type": "integer"
        +  },
        +  "guidance": {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "pagination": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "has_more": {
        +        "type": "boolean"
        +      },
        +      "limit": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "next_offset": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "offset": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "total_count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "query": {
        +    "type": "string"
        +  },
        +  "recommended_next_action": {
        +    "type": "string"
        +  },
        +  "schema_version": {
        +    "type": "string"
        +  },
        +  "scope": {
        +    "additionalProperties": {},
        +    "propertyNames": {
        +      "type": "string"
        +    },
        +    "type": "object"
        +  },
        +  "tool": {
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / meta / required
        Added value: +[
        +  "schema_version"
        +]
      • addedOutput schema / properties / meta / type
        Added value: +"object"
      • changedOutput schema / required
        Previous value: -[
        -  "data"
        -]New value: +[
        +  "data",
        +  "meta"
        +]
    • Changedlocalnest_memory_update10 fields changed
      • changedInput schema / properties / kind / enum
        Previous value: -[
        -  "knowledge",
        -  "preference"
        -]New value: +[
        +  "knowledge",
        +  "preference",
        +  "feedback"
        +]
      • addedInput schema / properties / terse
        Added value: +{
        +  "default": "verbose",
        +  "enum": [
        +    "minimal",
        +    "verbose"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / data / properties
        Added value: +{
        +  "auto_linked_entities": {
        +    "items": {},
        +    "type": "array"
        +  },
        +  "auto_triples": {
        +    "items": {},
        +    "type": "array"
        +  },
        +  "confidence": {
        +    "type": "number"
        +  },
        +  "content": {
        +    "type": "string"
        +  },
        +  "created": {
        +    "type": "boolean"
        +  },
        +  "duplicate": {
        +    "type": "boolean"
        +  },
        +  "id": {
        +    "type": "string"
        +  },
        +  "importance": {
        +    "type": "number"
        +  },
        +  "kind": {
        +    "type": "string"
        +  },
        +  "memory_id": {
        +    "type": "string"
        +  },
        +  "status": {
        +    "type": "string"
        +  },
        +  "summary": {
        +    "type": "string"
        +  },
        +  "title": {
        +    "type": "string"
        +  },
        +  "updated": {
        +    "type": "boolean"
        +  }
        +}
      • addedOutput schema / properties / data / type
        Added value: +"object"
      • addedOutput schema / properties / meta / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / meta / properties
        Added value: +{
        +  "count": {
        +    "maximum": 9007199254740991,
        +    "minimum": -9007199254740991,
        +    "type": "integer"
        +  },
        +  "guidance": {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "pagination": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "has_more": {
        +        "type": "boolean"
        +      },
        +      "limit": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "next_offset": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "offset": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "total_count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "query": {
        +    "type": "string"
        +  },
        +  "recommended_next_action": {
        +    "type": "string"
        +  },
        +  "schema_version": {
        +    "type": "string"
        +  },
        +  "scope": {
        +    "additionalProperties": {},
        +    "propertyNames": {
        +      "type": "string"
        +    },
        +    "type": "object"
        +  },
        +  "tool": {
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / meta / required
        Added value: +[
        +  "schema_version"
        +]
      • addedOutput schema / properties / meta / type
        Added value: +"object"
      • changedOutput schema / required
        Previous value: -[
        -  "data"
        -]New value: +[
        +  "data",
        +  "meta"
        +]
    • Addedlocalnest_nest_branches
    • Addedlocalnest_nest_list
    • Addedlocalnest_nest_tree
    • Addedlocalnest_project_backfill
    • Changedlocalnest_project_tree8 fields changed
      • addedOutput schema / properties / data / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / data / propertyNames
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / type
        Added value: +"object"
      • addedOutput schema / properties / meta / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / meta / properties
        Added value: +{
        +  "count": {
        +    "maximum": 9007199254740991,
        +    "minimum": -9007199254740991,
        +    "type": "integer"
        +  },
        +  "guidance": {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "pagination": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "has_more": {
        +        "type": "boolean"
        +      },
        +      "limit": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "next_offset": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "offset": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "total_count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "query": {
        +    "type": "string"
        +  },
        +  "recommended_next_action": {
        +    "type": "string"
        +  },
        +  "schema_version": {
        +    "type": "string"
        +  },
        +  "scope": {
        +    "additionalProperties": {},
        +    "propertyNames": {
        +      "type": "string"
        +    },
        +    "type": "object"
        +  },
        +  "tool": {
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / meta / required
        Added value: +[
        +  "schema_version"
        +]
      • addedOutput schema / properties / meta / type
        Added value: +"object"
      • changedOutput schema / required
        Previous value: -[
        -  "data"
        -]New value: +[
        +  "data",
        +  "meta"
        +]
    • Changedlocalnest_read_file8 fields changed
      • addedOutput schema / properties / data / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / data / propertyNames
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / type
        Added value: +"object"
      • addedOutput schema / properties / meta / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / meta / properties
        Added value: +{
        +  "count": {
        +    "maximum": 9007199254740991,
        +    "minimum": -9007199254740991,
        +    "type": "integer"
        +  },
        +  "guidance": {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "pagination": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "has_more": {
        +        "type": "boolean"
        +      },
        +      "limit": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "next_offset": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "offset": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "total_count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "query": {
        +    "type": "string"
        +  },
        +  "recommended_next_action": {
        +    "type": "string"
        +  },
        +  "schema_version": {
        +    "type": "string"
        +  },
        +  "scope": {
        +    "additionalProperties": {},
        +    "propertyNames": {
        +      "type": "string"
        +    },
        +    "type": "object"
        +  },
        +  "tool": {
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / meta / required
        Added value: +[
        +  "schema_version"
        +]
      • addedOutput schema / properties / meta / type
        Added value: +"object"
      • changedOutput schema / required
        Previous value: -[
        -  "data"
        -]New value: +[
        +  "data",
        +  "meta"
        +]
    • Addedlocalnest_rename_preview
    • Addedlocalnest_restore
    • Changedlocalnest_search_code6 fields changed
      • addedOutput schema / properties / data / anyOf
        Added value: +[
        +  {
        +    "additionalProperties": {},
        +    "properties": {
        +      "count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "has_more": {
        +        "type": "boolean"
        +      },
        +      "items": {
        +        "items": {},
        +        "type": "array"
        +      },
        +      "limit": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "next_offset": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "offset": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "total_count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "total_count",
        +      "count",
        +      "limit",
        +      "offset",
        +      "has_more",
        +      "next_offset",
        +      "items"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "items": {},
        +    "type": "array"
        +  }
        +]
      • addedOutput schema / properties / meta / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / meta / properties
        Added value: +{
        +  "count": {
        +    "maximum": 9007199254740991,
        +    "minimum": -9007199254740991,
        +    "type": "integer"
        +  },
        +  "guidance": {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "pagination": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "has_more": {
        +        "type": "boolean"
        +      },
        +      "limit": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "next_offset": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "offset": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "total_count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "query": {
        +    "type": "string"
        +  },
        +  "recommended_next_action": {
        +    "type": "string"
        +  },
        +  "schema_version": {
        +    "type": "string"
        +  },
        +  "scope": {
        +    "additionalProperties": {},
        +    "propertyNames": {
        +      "type": "string"
        +    },
        +    "type": "object"
        +  },
        +  "tool": {
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / meta / required
        Added value: +[
        +  "schema_version"
        +]
      • addedOutput schema / properties / meta / type
        Added value: +"object"
      • changedOutput schema / required
        Previous value: -[
        -  "data"
        -]New value: +[
        +  "data",
        +  "meta"
        +]
    • Changedlocalnest_search_files6 fields changed
      • addedOutput schema / properties / data / anyOf
        Added value: +[
        +  {
        +    "additionalProperties": {},
        +    "properties": {
        +      "count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "has_more": {
        +        "type": "boolean"
        +      },
        +      "items": {
        +        "items": {},
        +        "type": "array"
        +      },
        +      "limit": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "next_offset": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "offset": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "total_count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "total_count",
        +      "count",
        +      "limit",
        +      "offset",
        +      "has_more",
        +      "next_offset",
        +      "items"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "items": {},
        +    "type": "array"
        +  }
        +]
      • addedOutput schema / properties / meta / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / meta / properties
        Added value: +{
        +  "count": {
        +    "maximum": 9007199254740991,
        +    "minimum": -9007199254740991,
        +    "type": "integer"
        +  },
        +  "guidance": {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "pagination": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "has_more": {
        +        "type": "boolean"
        +      },
        +      "limit": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "next_offset": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "offset": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "total_count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "query": {
        +    "type": "string"
        +  },
        +  "recommended_next_action": {
        +    "type": "string"
        +  },
        +  "schema_version": {
        +    "type": "string"
        +  },
        +  "scope": {
        +    "additionalProperties": {},
        +    "propertyNames": {
        +      "type": "string"
        +    },
        +    "type": "object"
        +  },
        +  "tool": {
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / meta / required
        Added value: +[
        +  "schema_version"
        +]
      • addedOutput schema / properties / meta / type
        Added value: +"object"
      • changedOutput schema / required
        Previous value: -[
        -  "data"
        -]New value: +[
        +  "data",
        +  "meta"
        +]
    • Changedlocalnest_search_hybrid6 fields changed
      • addedOutput schema / properties / data / anyOf
        Added value: +[
        +  {
        +    "additionalProperties": {},
        +    "properties": {
        +      "count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "has_more": {
        +        "type": "boolean"
        +      },
        +      "items": {
        +        "items": {},
        +        "type": "array"
        +      },
        +      "limit": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "next_offset": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "offset": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "total_count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "total_count",
        +      "count",
        +      "limit",
        +      "offset",
        +      "has_more",
        +      "next_offset",
        +      "items"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "items": {},
        +    "type": "array"
        +  }
        +]
      • addedOutput schema / properties / meta / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / meta / properties
        Added value: +{
        +  "count": {
        +    "maximum": 9007199254740991,
        +    "minimum": -9007199254740991,
        +    "type": "integer"
        +  },
        +  "guidance": {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "pagination": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "has_more": {
        +        "type": "boolean"
        +      },
        +      "limit": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "next_offset": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "offset": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "total_count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "query": {
        +    "type": "string"
        +  },
        +  "recommended_next_action": {
        +    "type": "string"
        +  },
        +  "schema_version": {
        +    "type": "string"
        +  },
        +  "scope": {
        +    "additionalProperties": {},
        +    "propertyNames": {
        +      "type": "string"
        +    },
        +    "type": "object"
        +  },
        +  "tool": {
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / meta / required
        Added value: +[
        +  "schema_version"
        +]
      • addedOutput schema / properties / meta / type
        Added value: +"object"
      • changedOutput schema / required
        Previous value: -[
        -  "data"
        -]New value: +[
        +  "data",
        +  "meta"
        +]
    • Changedlocalnest_server_status8 fields changed
      • addedOutput schema / properties / data / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / data / propertyNames
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / type
        Added value: +"object"
      • addedOutput schema / properties / meta / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / meta / properties
        Added value: +{
        +  "count": {
        +    "maximum": 9007199254740991,
        +    "minimum": -9007199254740991,
        +    "type": "integer"
        +  },
        +  "guidance": {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "pagination": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "has_more": {
        +        "type": "boolean"
        +      },
        +      "limit": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "next_offset": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "offset": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "total_count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "query": {
        +    "type": "string"
        +  },
        +  "recommended_next_action": {
        +    "type": "string"
        +  },
        +  "schema_version": {
        +    "type": "string"
        +  },
        +  "scope": {
        +    "additionalProperties": {},
        +    "propertyNames": {
        +      "type": "string"
        +    },
        +    "type": "object"
        +  },
        +  "tool": {
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / meta / required
        Added value: +[
        +  "schema_version"
        +]
      • addedOutput schema / properties / meta / type
        Added value: +"object"
      • changedOutput schema / required
        Previous value: -[
        -  "data"
        -]New value: +[
        +  "data",
        +  "meta"
        +]
    • Changedlocalnest_summarize_project8 fields changed
      • addedOutput schema / properties / data / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / data / propertyNames
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / type
        Added value: +"object"
      • addedOutput schema / properties / meta / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / meta / properties
        Added value: +{
        +  "count": {
        +    "maximum": 9007199254740991,
        +    "minimum": -9007199254740991,
        +    "type": "integer"
        +  },
        +  "guidance": {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "pagination": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "has_more": {
        +        "type": "boolean"
        +      },
        +      "limit": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "next_offset": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "offset": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "total_count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "query": {
        +    "type": "string"
        +  },
        +  "recommended_next_action": {
        +    "type": "string"
        +  },
        +  "schema_version": {
        +    "type": "string"
        +  },
        +  "scope": {
        +    "additionalProperties": {},
        +    "propertyNames": {
        +      "type": "string"
        +    },
        +    "type": "object"
        +  },
        +  "tool": {
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / meta / required
        Added value: +[
        +  "schema_version"
        +]
      • addedOutput schema / properties / meta / type
        Added value: +"object"
      • changedOutput schema / required
        Previous value: -[
        -  "data"
        -]New value: +[
        +  "data",
        +  "meta"
        +]
    • Changedlocalnest_task_context9 fields changed
      • changedInput schema / properties / kind / enum
        Previous value: -[
        -  "knowledge",
        -  "preference"
        -]New value: +[
        +  "knowledge",
        +  "preference",
        +  "feedback"
        +]
      • addedOutput schema / properties / data / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / data / propertyNames
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / type
        Added value: +"object"
      • addedOutput schema / properties / meta / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / meta / properties
        Added value: +{
        +  "count": {
        +    "maximum": 9007199254740991,
        +    "minimum": -9007199254740991,
        +    "type": "integer"
        +  },
        +  "guidance": {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "pagination": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "has_more": {
        +        "type": "boolean"
        +      },
        +      "limit": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "next_offset": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "offset": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "total_count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "query": {
        +    "type": "string"
        +  },
        +  "recommended_next_action": {
        +    "type": "string"
        +  },
        +  "schema_version": {
        +    "type": "string"
        +  },
        +  "scope": {
        +    "additionalProperties": {},
        +    "propertyNames": {
        +      "type": "string"
        +    },
        +    "type": "object"
        +  },
        +  "tool": {
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / meta / required
        Added value: +[
        +  "schema_version"
        +]
      • addedOutput schema / properties / meta / type
        Added value: +"object"
      • changedOutput schema / required
        Previous value: -[
        -  "data"
        -]New value: +[
        +  "data",
        +  "meta"
        +]
    • Addedlocalnest_teach
    • Changedlocalnest_update_self8 fields changed
      • addedOutput schema / properties / data / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / data / properties
        Added value: +{
        +  "id": {
        +    "type": "string"
        +  },
        +  "ok": {
        +    "type": "boolean"
        +  },
        +  "relation_type": {
        +    "type": "string"
        +  },
        +  "source_id": {
        +    "type": "string"
        +  },
        +  "target_id": {
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / data / type
        Added value: +"object"
      • addedOutput schema / properties / meta / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / meta / properties
        Added value: +{
        +  "count": {
        +    "maximum": 9007199254740991,
        +    "minimum": -9007199254740991,
        +    "type": "integer"
        +  },
        +  "guidance": {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "pagination": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "has_more": {
        +        "type": "boolean"
        +      },
        +      "limit": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "next_offset": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "offset": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "total_count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "query": {
        +    "type": "string"
        +  },
        +  "recommended_next_action": {
        +    "type": "string"
        +  },
        +  "schema_version": {
        +    "type": "string"
        +  },
        +  "scope": {
        +    "additionalProperties": {},
        +    "propertyNames": {
        +      "type": "string"
        +    },
        +    "type": "object"
        +  },
        +  "tool": {
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / meta / required
        Added value: +[
        +  "schema_version"
        +]
      • addedOutput schema / properties / meta / type
        Added value: +"object"
      • changedOutput schema / required
        Previous value: -[
        -  "data"
        -]New value: +[
        +  "data",
        +  "meta"
        +]
    • Changedlocalnest_update_status8 fields changed
      • addedOutput schema / properties / data / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / data / propertyNames
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / type
        Added value: +"object"
      • addedOutput schema / properties / meta / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / meta / properties
        Added value: +{
        +  "count": {
        +    "maximum": 9007199254740991,
        +    "minimum": -9007199254740991,
        +    "type": "integer"
        +  },
        +  "guidance": {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "pagination": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "has_more": {
        +        "type": "boolean"
        +      },
        +      "limit": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "next_offset": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "offset": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "total_count": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "query": {
        +    "type": "string"
        +  },
        +  "recommended_next_action": {
        +    "type": "string"
        +  },
        +  "schema_version": {
        +    "type": "string"
        +  },
        +  "scope": {
        +    "additionalProperties": {},
        +    "propertyNames": {
        +      "type": "string"
        +    },
        +    "type": "object"
        +  },
        +  "tool": {
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / meta / required
        Added value: +[
        +  "schema_version"
        +]
      • addedOutput schema / properties / meta / type
        Added value: +"object"
      • changedOutput schema / required
        Previous value: -[
        -  "data"
        -]New value: +[
        +  "data",
        +  "meta"
        +]
    • Addedlocalnest_whats_new
  2. 33 tool updatesv0.0.5
    • First observedlocalnest_capture_outcome
    • First observedlocalnest_embed_status
    • First observedlocalnest_find_usages
    • First observedlocalnest_get_symbol
    • First observedlocalnest_health
    • First observedlocalnest_index_project
    • First observedlocalnest_index_status
    • First observedlocalnest_list_projects
    • First observedlocalnest_list_roots
    • First observedlocalnest_memory_add_relation
    • First observedlocalnest_memory_capture_event
    • First observedlocalnest_memory_delete
    • First observedlocalnest_memory_events
    • First observedlocalnest_memory_get
    • First observedlocalnest_memory_list
    • First observedlocalnest_memory_recall
    • First observedlocalnest_memory_related
    • First observedlocalnest_memory_remove_relation
    • First observedlocalnest_memory_status
    • First observedlocalnest_memory_store
    • First observedlocalnest_memory_suggest_relations
    • First observedlocalnest_memory_update
    • First observedlocalnest_project_tree
    • First observedlocalnest_read_file
    • First observedlocalnest_search_code
    • First observedlocalnest_search_files
    • First observedlocalnest_search_hybrid
    • First observedlocalnest_server_status
    • First observedlocalnest_summarize_project
    • First observedlocalnest_task_context
    • First observedlocalnest_update_self
    • First observedlocalnest_update_status
    • First observedlocalnest_usage_guide

TDQS

B3.4/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose, with detailed descriptions that eliminate ambiguity. Even multiple search tools are differentiated by their search strategy (exact match, fast discovery, deep analysis).

Naming Consistency5/5

All tools follow a consistent `localnest_verb_noun` pattern in snake_case, making it predictable and easy to navigate.

Tool Count3/5

74 tools is high, but they cover a broad range of functionality (memory, knowledge graph, indexing, search, hooks, etc.). The count is justified for a comprehensive local development assistant, but may be overwhelming for agents.

Completeness5/5

The tool surface appears complete for the intended use case: memory and knowledge graph CRUD, project indexing, semantic search, backup/restore, hooks, and self-update. No obvious gaps.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Local-first MCP server that gives any AI coding agent per-project memory, workflow intelligence, and always-on, lossless token & context optimization.
    37
    18
    3
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Local MCP server to index your codebase once and search it across AI sessions with keyword, semantic, or hybrid search, keeping all data on disk.
    105
    4
    MIT
  • F
    license
    B
    quality
    C
    maintenance
    A fully local, privacy-first MCP server that gives AI coding assistants deep repository intelligence with file-and-line-cited answers, persistent semantic memory, and agentic abilities like task planning and code review—all without any cloud API calls.
    23
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/wmt-mobile/localnest'

If you have feedback or need assistance with the MCP directory API, please join our Discord server