Skip to main content
Glama
tm42
by tm42

Mnemograph

A persistent, event-sourced knowledge graph for AI coding agents. Unlike simple key-value memory, Mnemograph captures entities, relations, and observations — enabling semantic search, tiered context retrieval, and git-based version control of your AI's memory.

Works with: Claude Code, opencode, codex CLI, Zed, Continue.dev, and any MCP-compatible agent.

Why Mnemograph?

AI coding sessions are ephemeral. Mnemograph gives your AI partner persistent memory that:

  • Survives across sessions — decisions, patterns, learnings persist

  • Supports semantic search — find relevant context by meaning, not just keywords

  • Provides tiered retrieval — shallow summaries to deep subgraphs based on need

  • Versions like code — branch, commit, diff, revert your knowledge graph

  • Enables collaboration — share memory repos across users or projects

Related MCP server: MegaMemory

Memory Scope: Local vs Global

Before using mnemograph, decide where to store memory:

Scope

Path

Use When

Project-local

./.claude/memory

Knowledge specific to this repo (architecture, decisions, patterns)

Global

~/.claude/memory

Cross-project knowledge (personal learnings, universal patterns, preferences)

Custom

Any path via MEMORY_PATH

Shared team memory, org-wide knowledge bases

Important: Agents should ask the user which scope to use when first setting up mnemograph for a project. This affects where knowledge is stored and whether it's shared across projects.

# Project-local (default)
MEMORY_PATH=".claude/memory"

# Global (cross-project)
MEMORY_PATH="$HOME/.claude/memory"

# CLI: use --global flag
mnemograph --global status
mnemograph --global graph

Quick Start

Option 1: Let Claude Code install it

Give Claude Code this repo URL and ask it to set up mnemograph:

https://github.com/tm42/mnemograph

Or point Claude to the setup instructions directly:

Read https://raw.githubusercontent.com/tm42/mnemograph/main/SETUP_CLAUDE_CODE.md and follow them

Option 2: Manual installation

# Install from PyPI
pip install mnemograph

# Add to Claude Code (global, available in all projects)
claude mcp add --scope user mnemograph \
  -e MEMORY_PATH="$HOME/.claude/memory" \
  -- uvx mnemograph

# Initialize memory directory
mkdir -p ~/.claude/memory

Option 3: Other MCP Clients

Each MCP client has a different configuration format. See UNIVERSAL_MCP_COMPATIBILITY.md for copy-paste configs for:

  • opencode~/.config/opencode/opencode.json

  • Codex CLI~/.codex/config.yaml

  • Zed~/.config/zed/settings.json

  • Continue.dev~/.continue/config.json

The key environment variable is MEMORY_PATH — set it to where you want the knowledge graph stored.

Option 4: Install from source

git clone https://github.com/tm42/mnemograph.git
cd mnemograph
uv sync

# Add to Claude Code (or adapt for your MCP client)
claude mcp add --scope user mnemograph \
  -e MEMORY_PATH="$HOME/.claude/memory" \
  -- uv run --directory /path/to/mnemograph mnemograph

Usage

MCP Tools (used by any agent)

Mnemograph exposes these tools via MCP:

Core Operations:

Tool

Description

remember

Primary storage: Store knowledge atomically (entity + observations + relations in one call)

recall

Primary retrieval: Get relevant context with auto token management. Use focus=['Entity'] for full details. Default output is human-readable prose.

create_entities

Create entities (auto-blocks duplicates >80% match)

create_relations

Link entities with typed edges (implements, uses, decided_for, etc.)

add_observations

Add facts/notes to existing entities

read_graph

Get the full knowledge graph (warning: may be large)

delete_entities

Remove entities (cascades to relations)

delete_relations

Remove specific relations

delete_observations

Remove specific observations

Session Lifecycle:

Tool

Description

session_start

Signal session start, get initial context. Returns quick_start guide.

session_end

Signal session end, optionally save summary

get_primer

Get oriented with the knowledge graph (call at session start)

Branching (Parallel Workstreams):

Tool

Description

create_branch

Create a named branch for isolated work (e.g., "feature/auth-refactor")

switch_branch

Switch to a different branch

list_branches

List all branches

merge_branch

Merge a branch into main

delete_branch

Delete a branch

get_current_branch

Get the current branch name

Graph Maintenance:

Tool

Description

find_similar

Find entities with similar names (duplicate detection)

find_orphans

Find entities with no relations

merge_entities

Merge duplicate entities (consolidates observations, redirects relations)

get_graph_health

Assess graph quality: orphans, duplicates, overloaded entities

suggest_relations

Suggest potential relations based on semantic similarity

create_entities_force

Create entities bypassing duplicate check

clear_graph

Clear all entities/relations (event-sourced, can rewind)

Time Travel:

Tool

Description

get_state_at

View graph state at any point in history

diff_timerange

Show what changed between two points in time

get_entity_history

Full changelog for a specific entity

rewind

Rewind graph to a previous state using git

restore_state_at

Restore graph to state at timestamp (audit-preserving)

reload

Reload graph state from disk (after git operations)

Edge Weights:

Tool

Description

get_relation_weight

Get weight breakdown (recency, co-access, explicit)

set_relation_importance

Set explicit importance weight (0.0-1.0)

get_strongest_connections

Find entity's most important connections

get_weak_relations

Find pruning candidates (low-weight relations)

Recall: Prose vs Graph Format

The recall tool returns context in prose format by default — human-readable text that agents can consume directly without parsing JSON:

# Default: prose format (human-readable)
recall(depth="medium", query="authentication")
# Returns:
# **MyApp** (project)
# A Python web service. Uses OAuth2 for user auth.
# Uses: PostgreSQL, Redis
#
# **Decisions:**
# • Decision: Use JWT — Stateless tokens for API authentication
#
# **Gotchas:**
# • Token expiry is 1 hour by default
# • Refresh tokens stored in Redis

# Optional: graph format (structured JSON)
recall(depth="medium", query="authentication", format="graph")

Depth levels:

  • shallow — Quick summary: entity counts, recent activity, gotchas

  • medium — Semantic search + 1-hop neighbors (~2000 tokens)

  • deep — Multi-hop traversal from focus entities (~5000 tokens)

Gotcha extraction: Observations prefixed with Gotcha:, Warning:, Note:, or Important: are automatically extracted into a dedicated section.

CLI Tools

mnemograph — Unified CLI for all memory operations:

# Basic operations
mnemograph status                # Show entity/relation counts, recent events
mnemograph log                   # View event history
mnemograph log --session X       # Filter by session
mnemograph sessions              # List all sessions
mnemograph export                # Export graph as JSON

# VCS commands (git-based version control)
mnemograph vcs init              # Initialize memory as git repo
mnemograph vcs commit -m "msg"   # Commit current state
mnemograph vcs log               # View commit history
mnemograph vcs revert --event ID # Undo specific events (compensating events)
mnemograph vcs revert --session X # Undo entire session

# Graph visualization
mnemograph graph                 # Open interactive graph viewer
mnemograph graph --watch         # Live reload mode (refresh button)

# Time travel
mnemograph show --at "2 days ago"  # View state at a point in time
mnemograph diff "1 week ago"       # Show changes since then
mnemograph history "EntityName"    # Full changelog for an entity
mnemograph rewind -n 1             # Git-based rewind by N commits
mnemograph restore --to "yesterday" # Event-based restore (audit-preserving)

# Graph health and maintenance
mnemograph health                # Show graph health report (orphans, duplicates, etc.)
mnemograph health --fix          # Interactive cleanup mode
mnemograph similar "React"       # Find entities similar to "React" (duplicate check)
mnemograph orphans               # List entities with no relations
mnemograph suggest "FastAPI"     # Suggest relations for an entity
mnemograph clear                 # Clear all entities and relations (with confirmation)

# Global options (come *before* the subcommand)
mnemograph --global status       # Use global memory (~/.claude/memory)
mnemograph --memory-path /path graph  # Custom memory location

Running from anywhere (without activating the venv):

# Using uv (recommended)
uv run --directory /path/to/mnemograph mnemograph graph

# Using uvx (if installed from PyPI)
uvx --from mnemograph mnemograph status

Graph Visualization — Interactive D3.js viewer:

  • Layout algorithms: Force-directed, Radial (hubs at center), Clustered (by component)

  • Color modes: By entity type, connected component, or degree centrality

  • Edge weight slider: Filter connections by strength

  • Live refresh: --watch mode with Refresh button for real-time updates

Architecture

~/.mnemograph/memory/    # or ~/.claude/memory, ~/.opencode/memory, etc.
├── mnemograph.db        # SQLite database (events + vectors)
├── state.json           # Cached materialized state (derived)
└── .git/                # Version history

Event sourcing means all changes are recorded as immutable events in SQLite. The current state is computed by replaying events. This enables:

  • Full history of all changes

  • Revert any operation

  • Branch/merge knowledge graphs

  • Audit trail of what Claude learned and when

Two-layer versioning:

  • mnemograph vcs revert — fine-grained, undo specific events via compensating events

  • mnemograph rewind / mnemograph restore — coarse-grained, git-level or timestamp-based restore

Branching

Branches let you work on isolated knowledge without affecting the main graph. Perfect for:

  • Exploratory work — try approaches without polluting shared knowledge

  • Feature-specific context — "feature/auth-refactor" keeps auth decisions separate

  • Multiple projects — switch context between different codebases

Creating and Using Branches

# Create a branch for your feature
create_branch(name="feature/auth-refactor")

# Work normally — all operations happen on this branch
remember(name="OAuth2", entity_type="concept",
         observations=["Implementing OAuth2 flow"])

# Switch back to main to see clean state
switch_branch(name="main")

# Merge when ready
merge_branch(source="feature/auth-refactor", target="main")

How Branching Works

  • Main branch always exists, contains shared knowledge

  • Feature branches inherit from main but additions stay isolated

  • Automatic filteringrecall, search, etc. only see current branch + main

  • Merge copies branch entities/relations into target branch

  • Delete cleans up after merge (or abandons exploratory work)

Branch Naming Conventions

Pattern

Use Case

feature/xyz

Feature-specific knowledge

explore/xyz

Exploratory/experimental work

project/xyz

Project-specific context

user/name

Personal workspace

Entity Types

Type

Purpose

Example

concept

Ideas, patterns, approaches

"Repository pattern", "Event sourcing"

decision

Choices with rationale

"Chose SQLite over Postgres for simplicity"

project

Codebases, systems

"auth-service", "mnemograph"

pattern

Recurring code patterns

"Error handling with Result type"

question

Open unknowns

"Should we add real-time sync?"

learning

Discoveries

"pytest fixtures simplify test setup"

entity

Generic (people, files, etc.)

"Alice", "config.yaml"

Topic Convention

Use topic entities as entry points for browsing related knowledge:

# Create topic entry points
create_entities([
    {"name": "topic/projects", "entityType": "entity"},
    {"name": "topic/decisions", "entityType": "entity"},
    {"name": "topic/patterns", "entityType": "entity"},
])

# Link entities to their topics
create_relations([
    {"from": "auth-service", "to": "topic/projects", "relationType": "part_of"},
    {"from": "Decision: Use Redis", "to": "topic/decisions", "relationType": "part_of"},
])

Standard topics:

  • topic/projects — Project entities

  • topic/decisions — Architectural decisions

  • topic/patterns — Patterns and practices

  • topic/learnings — Key discoveries

  • topic/questions — Open questions

This makes it easy to query "what decisions have we made?" by exploring topic/decisions.

Development

git clone https://github.com/tm42/mnemograph.git
cd mnemograph
uv sync                    # Install dependencies
uv run pytest --cov        # Run tests with coverage (enforces 75% minimum)
uv run ruff check .        # Lint
uv run mnemograph          # Run MCP server directly

Based On

Mnemograph builds on MCP server-memory — Anthropic's official memory server

License

MIT

Available Tools

31 tools
add_observationsA

Add atomic facts to existing entities. One fact per observation — don't dump paragraphs. Use prefixes: 'Gotcha: ...', 'Warning: ...', 'Status: ...', 'Source: ...'. For relations, use create_relations instead of 'X is related to Y' observations.

ParametersJSON Schema
NameRequiredDescriptionDefault
observationsYes

TDQS

A4.7/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses that observations should be atomic facts and warns against dumping paragraphs. However, it does not mention expectations about entity existence, overwrite behavior, or permissions, but the core behavioral traits are covered.

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

Conciseness5/5

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

Two concise sentences that front-load the purpose and immediately follow with usage rules. No wasted words.

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

Completeness5/5

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

Given no annotations, no output schema, and a simple nested array parameter, the description fully covers the tool's usage, format guidelines, and distinction from related tools. Nothing essential is missing.

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

Parameters4/5

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

Schema description coverage is 0% according to signals, but the description compensates by explaining the format of contents: one fact per observation, use prefixes, avoid paragraphs. This adds significant meaning beyond the schema property names.

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 'Add atomic facts to existing entities' clearly states the verb (add) and resource (atomic facts to entities). It also distinguishes from sibling tool create_relations by specifying that relations should use that tool instead.

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

Usage Guidelines5/5

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

Provides explicit guidance: one fact per observation, avoid paragraphs, use prefixes like 'Gotcha:', 'Warning:', etc. Directs agents to use create_relations for relations, giving clear when-to-use and 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.

branch_addA

Add entities to the current branch. Only works on non-main branches. Optionally includes relations between added entities.

ParametersJSON Schema
NameRequiredDescriptionDefault
entity_namesYesEntity names to add to current branch
include_relationsNoAlso include relations between added entities

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses the primary behavior (add entities) and a key constraint (non-main branches). It does not reveal potential side effects, failure modes, or permissions needed. The transparency is adequate but not 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 two sentences, critically front-loaded with the core purpose, and every word is necessary. No redundant or unclear phrasing.

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

Completeness4/5

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

Given two simple parameters, no output schema, and no annotations, the description covers the essential behavior and single constraint. It could mention return type or side effects, but it is sufficient for an agent to understand the tool's basic usage.

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

Parameters4/5

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

Schema coverage is 100%, and both parameters have descriptions. The description adds context: 'Add entities to the current branch' frames the operation, and 'Optionally includes relations between added entities' explains the boolean parameter's purpose beyond the schema's 'Also include relations'.

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 verb 'add' and the resource 'entities to the current branch', with a specific constraint (non-main branches). It also mentions optional inclusion of relations. However, it does not explicitly differentiate from sibling tools like 'add_observations' or 'create_relations', which slightly reduces clarity for an agent choosing between tools.

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

Usage Guidelines4/5

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

The description provides an explicit condition: 'Only works on non-main branches.' This tells the agent when to use it. However, it does not mention when not to use it or suggest alternatives, such as using 'branch_create' to create a new branch first.

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

branch_checkoutA

Switch to a different branch. Changes what entities/relations are visible in queries. Use 'main' to see everything.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesBranch name to switch to

TDQS

A4/5.0
Behavior3/5

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

The description discloses the behavioral effect on query visibility but does not mention side effects, permissions, or reversibility. With no annotations, this is adequate but not thorough.

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 wasted words. The action and effect are front-loaded, making it easy for an agent to quickly parse.

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 tool with one parameter and no output schema, the description covers the action, effect, and an example. It lacks error handling or edge case hints, but is largely complete.

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

Parameters4/5

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

The schema already describes the 'name' parameter fully, and the description adds value by providing a concrete example ('Use 'main'') beyond the schema's description.

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 'Switch' and resource 'branch', clearly states the effect on visibility of entities/relations, and implicitly distinguishes from sibling tools like branch_create or branch_list.

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 provides a hint to use 'main' to see everything, implying a default branch context, but no explicit when-to-use or when-not-to-use guidance compared to alternatives.

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

branch_createB

Create a new branch with seed entities. Uses BFS to expand from seeds to N-hop neighbors. Branch names follow format: / where type is project|feature|domain|spike|archive.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesBranch name (e.g., 'project/auth-service', 'feature/jwt')
depthNoHow many hops from seeds to include (default: 2)
checkoutNoSwitch to the new branch after creation
descriptionNoOptional branch description
seed_entitiesNoEntity names to seed the branch from

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It mentions BFS and naming, but omits critical details like error handling on duplicate names, whether the operation is destructive, or what the return value is. The description is insufficient for understanding 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 extremely concise with two sentences, no filler, and front-loads the core purpose. 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 the tool's complexity (5 params, no output schema, no annotations), the description lacks completeness. It does not explain what happens after creation, how seeds are used, or error conditions. More context is needed for accurate 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?

Schema coverage is 100%, so baseline is 3. The description adds the algorithm context and naming convention, but the schema already explains parameters well. The added value is moderate but not transformative.

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 a new branch with seed entities, specifies the BFS expansion algorithm, and provides the naming convention. This distinguishes it from sibling tools like branch_checkout or branch_add, which have 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 Guidelines3/5

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

The description does not explicitly state when to use this tool versus alternatives like branch_add or branch_checkout. It implies usage for creating branches with seeds, but lacks exclusion or alternative guidance, which is needed given 27 sibling tools.

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

branch_currentA

Get the name and details of the currently active branch.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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

The verb 'Get' suggests a read-only operation, but without annotations or explicit statement, the description does not fully disclose behavioral traits like side effects or return format. It lacks explicit read-only confirmation.

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 with no wasted words, perfectly sized for its simple 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?

For a zero-parameter tool with no output schema, the description is adequate but lacks specifics on what 'details' are returned (e.g., commit SHA, author). Some additional context would improve completeness.

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

Parameters4/5

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

With zero parameters, the description has no need to add parameter semantics beyond the schema. It correctly omits any parameter details.

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 'Get' and the resource 'currently active branch', distinguishing it from sibling tools like branch_list (list all branches) and branch_checkout (switch branches).

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 retrieving current branch info but offers no explicit guidance on when to use this tool versus alternatives like branch_list or branch_diff.

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

branch_diffA

Show differences between two branches. Returns entities and relations that are only in one branch vs the other, plus what's common to both.

ParametersJSON Schema
NameRequiredDescriptionDefault
branch_aNoFirst branch (default: current branch)
branch_bYesSecond branch to compare

TDQS

A3.6/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It describes the output but lacks disclosure of behavioral traits such as read-only nature, error conditions, or permissions required. Does not mention if it has side effects or what happens with non-existent branches.

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 filler. Purpose stated first, followed by output details. 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?

For a simple two-parameter tool with no output schema, description covers the main output categories. However, it could be more explicit about the return structure or error handling, but is adequate given low complexity and high schema coverage.

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 100%, so description adds minimal extra meaning. It does not clarify defaults or valid values beyond the schema's description of branch_a defaulting to current branch. Baseline 3 appropriate as description does not enhance 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?

Description clearly states the tool shows differences between two branches, specifying output includes entities and relations unique or common to both. This distinguishes it from sibling tools like branch_list or diff_timerange.

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?

Description implies use for comparing branches but does not explicitly state when to use or not use this tool versus alternatives. No exclusions or context provided for when diff_timerange might be more appropriate.

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

branch_listA

List all memory branches. Branches are filtered views of the knowledge graph. Main branch sees everything; other branches see filtered subsets.

ParametersJSON Schema
NameRequiredDescriptionDefault
include_archivedNoInclude archived branches

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description fully carries the transparency burden. It explains that branches are filtered views, which adds behavioral context beyond the input schema. However, it does not explicitly state that the operation is read-only or safe, nor does it disclose any side effects or permissions needed.

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

Conciseness5/5

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

The description is extremely concise with two short sentences. The first sentence states the primary purpose, and the second adds essential context about branches. No unnecessary words or repetition.

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 (one optional boolean parameter, no output schema), the description is largely complete. It explains the concept of branches, which is critical context. It could optionally mention what the list returns (e.g., branch names), but this is not a major gap.

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 100% (the one parameter 'include_archived' is described in the schema). The tool description adds no additional meaning about parameters beyond what the schema already provides. Baseline score of 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 lists all memory branches, defines what branches are (filtered views), and distinguishes the main branch from others. This provides a specific verb ('list') and resource ('branches') with sufficient explanatory context to differentiate 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 does not provide any guidance on when to use this tool versus alternatives (e.g., branch_current, branch_create). There are no explicit when-to-use or when-not-to-use instructions, leaving the agent without context for selection.

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

clear_graphA

Clear ALL entities and relations from the graph. Use sparingly! For graphs with >10 entities: requires reason AND confirm_token. Event-sourced: can rewind to before clear with get_state_at(timestamp).

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoReason for clearing (required for graphs >10 entities)
confirm_tokenNoConfirmation token for large graphs (format: CLEAR_<count>)

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, description carries full burden. It discloses destructive nature ('Clear ALL...'), rewindability via event-sourcing, and prerequisites for large graphs. However, does not explicitly state irreversibility without rewind or impact on branches.

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 sentences with no fluff. First sentence states primary action, second gives warning, third provides behavioral trait and alternative. Information is front-loaded and 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 core action, usage caveats, rewind capability. Lacks details on return value, effect on other branches, or whether the operation is atomic. But sufficient for a destructive tool with rewind option.

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

Parameters4/5

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

Schema coverage is 100% but description adds context: reason is required for >10 entities, confirm_token format is 'CLEAR_<count>', and ties parameters to usage condition. Adds 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?

The description clearly states 'Clear ALL entities and relations from the graph' with specific verb and resource. It distinguishes from sibling tools like delete_entities and delete_relations by emphasizing the global scope.

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 warns 'Use sparingly!' and specifies condition for large graphs requiring reason and confirm_token. Also provides alternative using get_state_at(timestamp) for rewind, guiding when to use this tool versus recovery.

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

create_relationsA

Create relations (edges) between entities. Every entity should have at least one relation. Use specific types: uses, implements, part_of, depends_on, alternative_to, decided_by, affects. Avoid generic 'related_to' when a specific type fits.

ParametersJSON Schema
NameRequiredDescriptionDefault
relationsYes

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It states that relations are created, but does not mention side effects (e.g., overwriting existing relations), permissions, error handling, or the fact that the schema lists 10 relation types while the description only lists 7, creating inconsistency.

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 very concise at two sentences, with no wasted words. It is front-loaded with the primary action and provides key guidance immediately.

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 absence of annotations and output schema, and the complexity of nested objects, the description is incomplete. It fails to clarify return behavior, duplicate handling, or the full list of valid relation types. The mismatch between description and schema 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% for the top-level parameter, requiring the description to compensate. The description adds a list of recommended relation types, but it is incomplete (missing enables, replaced_by, learned_from) and does not explain the structure or constraints of the 'relations' array beyond what the schema already provides.

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

Purpose5/5

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

The description clearly states the tool creates relations (edges) between entities, using a specific verb and resource. It distinguishes itself from sibling tools like delete_relations or suggest_relations by focusing on creation and providing guidance on relation 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 advises that every entity should have at least one relation and to use specific types, avoiding generic alternatives. It implicitly guides when to use this tool, but does not explicitly state when not to use it or mention exclusions.

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

delete_entitiesA

Delete entities by name (cascades to relations)

ParametersJSON Schema
NameRequiredDescriptionDefault
entityNamesYesNames of entities to delete

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It discloses cascading to relations, which is important, but misses other behavioral details such as irreversibility, permission requirements, or impact on observations. Some key traits 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 a single sentence with no extraneous information. It is efficiently front-loaded with the core action and key behavioral note.

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 action with no output schema and no annotations, the description is adequate but incomplete. It mentions cascading to relations, but lacks safety warnings (e.g., irreversibility, affected data types) that would help an agent assess risk.

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 100%, so baseline is 3. The description adds no additional parameter semantics beyond what the schema already provides. It merely restates that deletion is by name.

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 (delete), resource (entities), and a key behavioral trait (cascades to relations). This distinguishes it from sibling tools like delete_observations and delete_relations.

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?

While the description indicates cascading behavior, it does not provide explicit guidance on when to use this tool versus alternatives like find_orphans or merge_entities. Usage context is implied but not detailed.

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

delete_observationsC

Delete specific observations from entities

ParametersJSON Schema
NameRequiredDescriptionDefault
deletionsYes

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries full burden for behavioral disclosure. It states 'delete' implying destructiveness, but does not clarify permanence, reversibility, side effects, or required permissions. This is insufficient for a deletion operation.

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 likely too brief. It could be structured to include a brief parameter explanation or usage context. Overall, it is acceptable but not exemplary.

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 simplicity (1 parameter but nested), the description should at least mention return values, error conditions, or constraints. It fails to provide any such context, leaving the agent with significant gaps in 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% per context signals. The tool description adds no information about the 'deletions' parameter structure beyond what the schema shows. It does not explain that each deletion requires an entity name and observation texts, nor how to navigate the nested array.

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?

Description clearly states the action 'Delete' and resource 'observations from entities', making the tool's purpose immediately understandable. However, it does not differentiate itself from sibling tools like 'delete_entities' or 'add_observations', so a perfect score is not warranted.

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. The description lacks any conditions, prerequisites, or scenarios for appropriate use, leaving the agent without decision-support information.

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

delete_relationsC

Delete specific relations

ParametersJSON Schema
NameRequiredDescriptionDefault
relationsYes

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries full burden for behavioral disclosure. It only states the action without mentioning side effects, reversibility, permissions, or error handling, which is insufficient for a destructive operation.

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 extremely concise (3 words), but it may be too brief to be helpful. It front-loads the purpose but omits necessary details, balancing conciseness against 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?

Given no output schema and a single parameter with nested structure, the description fails to explain return values, error behaviors, or any side effects. It is incomplete for a tool that performs deletions.

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 adds no explanation of the 'relations' parameter's fields (from, to, relationType). The schema defines structure but the description offers no semantic value beyond what is already present.

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 (delete) and resource (relations), distinguishing it from sibling tools like create_relations or delete_entities. However, it does not elaborate on what 'specific' means beyond the schema.

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 delete_entities or clearing the graph. The description lacks any usage context or prerequisites.

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

diff_timerangeC

Show what changed between two points in time

ParametersJSON Schema
NameRequiredDescriptionDefault
endNoEnd time (default: now)
startYesStart time (ISO, relative, or named)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full disclosure burden. It only implies a read operation ('Show'), but provides no details on what exactly constitutes 'changed', output format, or required permissions.

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 concise sentence that conveys the core idea without extraneous text. It could benefit from slightly more detail without becoming verbose.

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 100% parameter documentation and no output schema, the description is minimally adequate but lacks important context such as output format, whether it shows incremental changes or full states, and the scope of comparison.

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 100% with descriptions for both parameters (start and end). The tool description does not add additional semantics beyond the schema, so baseline of 3 is appropriate.

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 'Show what changed between two points in time' clearly expresses the tool's function of comparing states across time. It uses a specific verb+resource pattern, but does not differentiate from similar sibling tools like get_entity_history or branch_diff.

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 branch_diff or get_entity_history. The description does not specify scope (e.g., entire graph vs. specific entities) or conditions for use.

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

find_orphansA

Find entities with no relations (likely incomplete). Orphans should be connected, merged into another entity, or deleted.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. It states the tool finds orphans but does not specify whether it is read-only or modifies data, nor does it mention any side effects or permissions needed. This is insufficient transparency.

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

Conciseness5/5

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

The description is two sentences, directly stating purpose and recommended actions. No extraneous text; every 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 no output schema, the description should explain the return value (e.g., list of entity IDs). It does not. The tool is simple but the output format is ambiguous, reducing completeness.

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

Parameters4/5

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

The tool has zero parameters, so by instruction baseline is 4. The description does not need to add parameter information, and it does not hinder 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 finds entities with no relations, using a specific verb ('Find') and resource ('entities with no relations'). It distinguishes from sibling tools like 'get_weak_relations' or 'suggest_relations' which deal with relations but not specifically orphans.

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 finding incomplete entities and suggests actions (connect, merge, delete), but it does not explicitly state when to use this tool or when to use alternatives. Minimal guidance is provided.

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

find_similarA

Find entities with similar names (potential duplicates). Use before creating to check for existing entities. Returns similarity scores — consider merging if >0.85.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesEntity name to check for similar existing entities
thresholdNoSimilarity threshold 0-1 (default 0.7)

TDQS

A4.3/5.0
Behavior3/5

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

With no annotations, description must cover behavioral traits. It mentions returns similarity scores but does not disclose potential side effects, authorization needs, or rate limits. Adequate for a simple query tool.

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

Conciseness5/5

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

Two succinct sentences that front-load the purpose and immediately follow with usage guidance. No filler.

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 tool with 2 parameters and no output schema, the description fully explains what the tool does, when to use it, and how to interpret results.

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

Parameters4/5

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

Schema coverage is 100% with descriptions. Description adds value by explaining threshold use in determining similarity and merging suggestion, going beyond schema basics.

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 'entities with similar names (potential duplicates)', uses a specific verb 'find' and resource 'similar names', and distinguishes from sibling tools like 'merge_entities' or 'find_orphans' by focusing on similarity checking.

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 'Use before creating to check for existing entities' and provides actionable guidance on interpretation ('consider merging if >0.85'). Does not mention when not to use, but context is clear.

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

get_entity_historyB

Get the history of all changes to an entity

ParametersJSON Schema
NameRequiredDescriptionDefault
entity_nameYesEntity name to get history for

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided. Description only states the action, lacking disclosure of whether the operation is read-only, what the response format is, 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?

Single sentence, front-loaded with key action. Efficient but somewhat terse; could include more detail without significant bloat.

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?

The tool returns history but no output schema exists. Description does not hint at return format (e.g., list of changes, timestamps, ordering), leaving the agent underinformed.

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 100% with entity_name described. The description adds no additional meaning beyond the schema, meeting baseline for full schema coverage.

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 'Get' and resource 'history of all changes to an entity', clearly distinguishing it from sibling tools like get_state_at or diff_timerange.

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., get_state_at for point-in-time state, diff_timerange for diffs). No exclusions or prerequisites mentioned.

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

get_graph_healthA

Assess knowledge graph quality. Returns: orphan count, potential duplicates, overloaded entities, weak relations. Run periodically to maintain graph hygiene. Use full=true for deep duplicate detection (slower).

ParametersJSON Schema
NameRequiredDescriptionDefault
fullNoIf true, include expensive duplicate detection. Default false for fast checks.

TDQS

A4.2/5.0
Behavior3/5

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

No annotations provided, so description carries the burden. It mentions that full=true is slower, but does not explicitly state read-only nature or side effects. For a health check tool, this is adequate but could be more explicit.

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 sentences, front-loaded with purpose. No wasted words. Every sentence adds 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?

Explains return values (orphan count, etc.) and parameter behavior. For a simple tool with one optional parameter and no output schema, it is mostly complete. Could mention if it is a read operation, but not required.

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

Parameters4/5

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

Schema coverage is 100%, baseline 3. Description adds value by explaining that full=true triggers 'deep duplicate detection (slower)', which goes beyond the schema's description of 'expensive duplicate detection'.

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

Purpose5/5

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

Description clearly states the tool's purpose: 'Assess knowledge graph quality' and lists specific outputs (orphan count, potential duplicates, overloaded entities, weak relations). This distinguishes it from sibling tools like find_orphans, find_similar, and get_weak_relations.

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 guidance to 'Run periodically to maintain graph hygiene' and explains the full parameter tradeoff. Lacks explicit alternatives or exclusions, but context is clear.

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

get_primerA

Get oriented with this knowledge graph. Call at session start.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose side effects, read-only status, or return behavior. It only states the tool's purpose without transparency on its operational impact.

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, no unnecessary words, and important usage instruction front-loaded. 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?

The description covers purpose and timing but lacks details on return value or what 'oriented' entails. Given no output schema and no annotations, more context would be beneficial, but the minimal scope may suffice for a simple init tool.

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

Parameters4/5

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

With zero parameters and 100% schema coverage, the description adds no parameter-specific details, which is acceptable. The baseline score of 4 for zero-parameter tools applies.

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 identifies the tool as an orientation mechanism for the knowledge graph, with a specific verb ('get oriented') and resource ('knowledge graph'). It distinguishes from sibling tools which are more focused on specific 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?

The description provides explicit guidance to 'call at session start', indicating optimal timing. No alternatives or when-not scenarios are needed due to zero parameters and clear intent.

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

get_state_atA

Get graph state at a specific point in time (event rewind)

ParametersJSON Schema
NameRequiredDescriptionDefault
timestampYesTime reference: ISO datetime (2025-01-15), relative (7 days ago), or named (yesterday, last week)

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description bears full burden. It implies a read-only operation but does not explicitly state safety, side effects, or permissions beyond the verb 'get'.

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, front-loaded with verb and resource, 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 one parameter and no output schema, the description is sufficient for a simple tool. It could mention the return format but is not necessary.

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

Parameters4/5

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

Schema coverage is 100% and the description adds valuable examples ('ISO datetime, relative, or named') that clarify the timestamp format beyond the schema's description.

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 'Get' and the resource 'graph state', and adds context with 'event rewind', distinguishing it from sibling tools like 'rewind' which likely modify state.

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 viewing state at a point in time but lacks explicit guidance on when to use this versus alternatives like 'restore_state_at' or 'rewind', and no exclusions are provided.

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

get_strongest_connectionsB

Get an entity's strongest connections by edge weight

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax connections to return
entity_nameYesEntity name to get connections for

TDQS

B3/5.0
Behavior2/5

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

No annotations provided, so the description must disclose behavioral traits. It does not explain what 'strongest' means, how edge weight sorting works, or edge cases. Minimal disclosure.

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?

Single sentence with no fluff, but it is too concise and lacks important details. It earns its place but is incomplete.

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?

No output schema and no annotations, so description should be more complete. It omits output format, behavior details, and guidance among siblings. Insufficient for a 2-parameter 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 100% with parameter descriptions. The tool description adds no extra meaning beyond what the schema provides, so baseline of 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 verb 'Get', the resource 'entity's strongest connections', and the method 'by edge weight'. It distinguishes from sibling tools like 'get_weak_relations'.

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 'find_similar' or 'get_weak_relations'. The description lacks context for appropriate usage.

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

get_weak_relationsA

Get relations below a weight threshold (pruning candidates)

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax relations to return
max_weightNoOnly include relations with weight <= this value

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It explains the core behavior (filtering by weight) but lacks details on side effects, performance, or data mutability, leaving gaps in transparency.

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

Conciseness5/5

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

The description is a single sentence that is concise, front-loaded, and contains no unnecessary words, earning its place efficiently.

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 simplicity of the tool (two parameters, no output schema), the description is adequate but does not cover return format, pagination, or edge cases, leaving some context incomplete.

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 100%, so baseline is 3. The description does not add meaning beyond what the parameter descriptions already provide, failing to enhance understanding of the 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 retrieves relations below a weight threshold, with the added context 'pruning candidates,' making the purpose specific and distinguishing it from siblings like 'get_strongest_connections'.

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 finding weak relations to prune, but it does not explicitly state when to use it versus alternatives like 'get_strongest_connections' or provide exclusions.

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

merge_entitiesA

Merge source entity into target. Source's observations and relations move to target, then source is deleted. Use to consolidate duplicates (e.g., merge 'ReactJS' into 'React').

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYesEntity to merge FROM (will be deleted)
targetYesEntity to merge INTO (will gain observations/relations)
delete_sourceNoWhether to delete source after merge (default true)

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It discloses key behaviors: observations and relations move to target, source is deleted, and delete_source parameter can be set to false. This adequately informs the agent of 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?

Two sentences with no redundancy. The first sentence states the core action and its effects; the second gives usage context with a concrete example. Every word is informative.

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 3 parameters and no output schema, the description adequately covers the operation's purpose, behavior, and typical use case. Minor omission: no mention of return value, but not critical for tool selection.

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

Parameters4/5

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

Schema covers 100% of parameters, but description adds value by explaining the effect ('observations/relations move to target') beyond parameter names. The example clarifies that source is the duplicate, target is the canonical entity.

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 'Merge source entity into target' with specific actions: observations/relations move, source deleted. Example with 'ReactJS' and 'React' clarifies consolidation of duplicates, distinguishing it from siblings like delete_entities or create_relations.

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

Usage Guidelines4/5

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

Description explicitly says 'Use to consolidate duplicates' with an example, providing clear guidance on when to use. It does not mention when not to use or alternatives, but the context is sufficient for correct selection.

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

recallA

PRIMARY RETRIEVAL TOOL. Get relevant context with automatic token management. Use focus=['EntityName'] to get full details on specific entities. shallow=quick summary, medium=semantic search+neighbors, deep=full exploration.

ParametersJSON Schema
NameRequiredDescriptionDefault
depthYesshallow=summary (~500 tokens), medium=search+1-hop (~2000), deep=2-hop traverse (~5000)medium
focusNoEntity names to retrieve in full detail (replaces open_nodes). Use this to expand specific entities.
queryNoWhat you're looking for (used for medium/deep semantic search)
formatNoOutput format: prose (human-readable) or graph (JSON structure)prose
max_tokensNoOverride default token budget

TDQS

A4.2/5.0
Behavior4/5

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

Discloses token management, depth behaviors with token budgets, and focus usage. No annotations provided, so description carries full burden; it adequately describes the read-only retrieval behavior.

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

Conciseness5/5

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

Two sentences, no wasted words. Key information is front-loaded. Perfectly 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?

Explains core retrieval purpose, token management, and depth semantics. Does not cover output format or max_tokens override, but those are in schema. Adequate for a retrieval tool without output schema.

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 100% with detailed parameter descriptions. The description adds some additional context (e.g., automatic token management, focus usage) but largely overlaps with schema content.

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 is the PRIMARY RETRIEVAL TOOL for getting relevant context with automatic token management. Distinct from sibling write or analysis tools.

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

Usage Guidelines4/5

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

Explicitly labeled as primary retrieval tool, guiding usage. Lacks explicit when-not-to-use or comparison with similar tools like find_similar, but context is clear.

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

reloadA

Reload graph state from mnemograph.db on disk. Use after: git operations (checkout, restore), external edits to mnemograph.db, or any time MCP server seems out of sync.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description bears the full burden. It discloses that the tool reloads state from disk, implying potential overwrite of in-memory state, but does not explicitly state data loss implications or other behavioral traits like if it is safe or destructive.

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

Conciseness5/5

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

Two sentences, with the action front-loaded. Every sentence adds essential information: what the tool does and when to use it. 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 zero parameters, no output schema, and no annotations, the description provides sufficient context for a simple reload action. It covers purpose and usage, though a brief note on potential side effects would enhance completeness.

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

Parameters4/5

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

The tool has zero parameters and schema coverage is 100%. The description does not need to add parameter details, and it correctly omits them.

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 ('Reload graph state') and the resource ('mnemograph.db on disk'). It distinguishes itself from sibling tools by focusing on reloading from disk, but does not explicitly contrast with similar tools like clear_graph or restore_state_at.

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 lists appropriate contexts: after git operations, external edits, or when server is out of sync. This provides clear guidance on when to use, though it does not specify when not to use or mention alternatives.

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

rememberA

Store knowledge atomically — entity + observations + relations in ONE call. PRIMARY TOOL for storing new knowledge. Prevents orphan entities. AUTO-BLOCKS if similar entity exists (>80% match). Use force=True to override.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesEntity name (canonical form: 'FastAPI' not 'fastapi framework')
forceNoBypass duplicate check
relationsNoRelations FROM this entity to others
entity_typeYesconcept=ideas/tech, decision=choices, project=repos, pattern=solutions, question=unknowns, learning=discoveries
observationsNoAtomic facts about this entity

TDQS

A4.4/5.0
Behavior4/5

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

No annotations provided, so description must carry behavioral disclosure. It explains atomic storage, orphan prevention, duplicate detection (>80% match), and force override. Does not detail conflict handling beyond rejection.

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?

Extremely concise: three sentences covering purpose, primary role, and key behavior. Front-loaded with action verb and resource. 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 5 parameters, 2 required, no output schema, and many sibling tools, the description adequately covers core creation behavior and duplication guard. Could mention partial update alternatives, but sufficient for selection.

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

Parameters4/5

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

Schema description coverage is 100%, so baseline is 3. Description adds context about force override and mentions 'PRIMARY TOOL' and duplicate detection, reinforcing parameter meaning 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?

The description clearly states the tool stores knowledge atomically (entity + observations + relations in one call) and designates it as the primary tool for storing new knowledge, distinguishing it 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 Guidelines4/5

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

Explicitly states it's the primary tool for new knowledge, prevents orphan entities, and auto-blocks on similar entity with force override. Does not explicitly mention when to use alternatives like add_observations, but context is clear.

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

restore_state_atA

Restore graph to state at a specific timestamp. Emits clear + recreate events — full audit trail preserved. Use get_state_at() first to preview what will be restored.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoWhy restoring (recorded in events)
timestampYesISO datetime or relative ('2 hours ago', 'yesterday')

TDQS

A4.4/5.0
Behavior4/5

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

No annotations provided, but the description discloses that the tool 'Emits clear + recreate events' and mentions 'full audit trail preserved,' giving insight into side effects and logging behavior.

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

Conciseness5/5

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

Two concise sentences covering purpose, behavior, and guidance; no extraneous content.

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

Completeness4/5

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

Given no output schema, the description sufficiently explains the tool's behavior and audit trail preservation. Could mention return value or error cases, but overall complete enough for an agent.

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 100% (both parameters described in schema). The description echoes schema info without adding new meaning; 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?

Description clearly states the action: 'Restore graph to state at a specific timestamp.' It also distinguishes from sibling tools like 'get_state_at' by recommending previewing first, and from 'rewind' by specifying events emitted.

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 advises using 'get_state_at() first to preview what will be restored,' providing clear guidance on when to use this tool vs. an alternative.

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

rewindA

Rewind graph to a previous state using git. Fast undo, audit trail in git only. For audit-preserving restore, use restore_state_at() instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
stepsNoGo back N commits that touched mnemograph.db
to_commitNoOr specify exact commit hash

TDQS

A4.2/5.0
Behavior3/5

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

No annotations provided; description adds that it's a 'fast undo' using git, implying destructive behavior, but does not detail side effects or reversibility beyond 'audit trail in git only'. Adequate but could be more explicit.

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, zero wasted words. Front-loaded with purpose, followed by usage guidance and alternative. 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?

Given no output schema and simple parameters, description adequately covers purpose, usage, and alternative. Could mention return value or confirmation, but overall complete for a rewind action.

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 100%, with clear parameter descriptions for 'steps' and 'to_commit'. Description adds no further semantics beyond schema, so baseline score of 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?

Description clearly states 'Rewind graph to a previous state using git', specifying verb (rewind) and resource (graph). Distinguishes from sibling tool restore_state_at, making purpose unambiguous.

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 when to use ('Fast undo') and when not to use ('For audit-preserving restore, use restore_state_at() instead'), providing clear alternatives.

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

session_endB

Signal session end, optionally save summary

ParametersJSON Schema
NameRequiredDescriptionDefault
summaryNoOptional session summary to store as observation

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description must fully disclose behavioral traits. It only says 'Signal session end' without explaining side effects (e.g., committing state, clearing data) or whether it is reversible.

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 (5 words) and front-loads the core purpose. Every word earns its place 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?

The tool is simple with only one optional parameter and no output schema. However, the description lacks context on side effects and prerequisites, which would help an agent use it correctly.

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

Parameters3/5

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

The schema already covers the parameter fully with a clear description. The description adds minimal extra value by mentioning 'optionally' and 'save summary', but no new semantic details 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 tool's primary action ('Signal session end') and the optional feature ('optionally save summary'). It effectively uses a verb+resource format and is distinct from its sibling 'session_start'.

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, such as prerequisites or contexts that require session termination. No alternatives or conditions are mentioned.

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

session_startB

Signal session start and get initial context. Returns quick_start guide with tool usage. IMPORTANT: If memory is empty, ask user whether to use project-local or global memory scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_hintNoOptional project name or path for context

TDQS

B3.3/5.0
Behavior2/5

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

Without annotations, the description must cover behavioral traits. It mentions returning a quick_start guide and the memory scope decision, but does not disclose side effects (e.g., session creation state), authorization needs, or idempotency. The behavioral disclosure is minimal.

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

Conciseness4/5

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

The description is concise with two short sentences plus an emphasized note. It front-loads the core action. Minor fragmentation but overall efficient.

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

Completeness2/5

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

Given the lack of output schema, the description should elaborate on return value and side effects. It only vaguely mentions 'Returns quick_start guide' and fails to explain session lifecycle implications, making it incomplete for a session start tool.

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

Parameters3/5

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

The schema coverage is 100%, and the description adds no extra meaning to the parameter beyond the schema's own description. Baseline score of 3 is appropriate as the description does not compensate further.

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: 'Signal session start and get initial context.' It uniquely identifies the action among siblings like 'session_end' and memory operations. The additional note about memory scope further specifies behavior.

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 gives a conditional instruction for when memory is empty, which helps in usage. However, it lacks explicit guidance on when not to use this tool or mention of alternatives. The context is generally clear for a session start tool.

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

set_relation_importanceB

Set explicit importance weight for a relation

ParametersJSON Schema
NameRequiredDescriptionDefault
importanceYesImportance from 0.0 (unimportant) to 1.0 (critical)
relation_idYesRelation ID (full or prefix)

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility. It does not disclose any behavioral traits such as idempotency, permissions required, side effects on existing relations, or whether the importance weight persists across sessions.

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, correct sentence with no extraneous words. It is appropriately concise, though it could potentially include additional context without becoming verbose.

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 low complexity (2 required parameters, no output schema, no nested objects), the description is complete enough. It tells what the tool does and the schema covers parameter details. No critical gaps are apparent.

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 100% and both parameters have clear descriptions in the input schema. The tool description adds no additional meaning beyond what the schema already provides, so 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 'Set explicit importance weight for a relation' clearly states the action (set) and the resource (importance weight for a relation). It distinguishes from sibling tools like 'suggest_relations' which imply inference rather than explicit setting.

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. There is no mention of prerequisites, when settings are appropriate, or why one would choose explicit setting over other relation-modifying tools like 'create_relations' or 'suggest_relations'.

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

suggest_relationsA

Suggest potential relations for an entity based on semantic similarity and co-occurrence. Useful for connecting newly created entities or discovering missing links.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax suggestions to return
entityYesEntity name to get relation suggestions for

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It mentions semantic similarity and co-occurrence but does not state whether the tool is read-only, if it modifies state, or any auth requirements.

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 superfluous words, front-loaded with purpose. 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?

Adequate for a simple suggestion tool with two parameters. No output schema is provided, but the description implies the return type. Could be more complete regarding output format.

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 100%, both parameters have clear descriptions. The tool description adds no additional meaning beyond what the schema already provides, so 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 verb ('suggest') and resource ('potential relations for an entity'), and distinguishes it from siblings like create_relations (which creates) and find_similar (which finds similar entities).

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 gives a use case ('connecting newly created entities or discovering missing links') but does not explicitly state when not to use it or name alternatives among the many sibling tools.

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. 31 tool updatesv0.5.1
    • First observedadd_observations
    • First observedbranch_add
    • First observedbranch_checkout
    • First observedbranch_create
    • First observedbranch_current
    • First observedbranch_diff
    • First observedbranch_list
    • First observedclear_graph
    • First observedcreate_relations
    • First observeddelete_entities
    • First observeddelete_observations
    • First observeddelete_relations
    • First observeddiff_timerange
    • First observedfind_orphans
    • First observedfind_similar
    • First observedget_entity_history
    • First observedget_graph_health
    • First observedget_primer
    • First observedget_state_at
    • First observedget_strongest_connections
    • First observedget_weak_relations
    • First observedmerge_entities
    • First observedrecall
    • First observedreload
    • First observedremember
    • First observedrestore_state_at
    • First observedrewind
    • First observedsession_end
    • First observedsession_start
    • First observedset_relation_importance
    • First observedsuggest_relations

TDQS

A3.6/5.0
Disambiguation4/5

Each tool has a distinct purpose, but the high number (31) may cause some confusion for agents, especially with multiple state-manipulation tools (e.g., rewind, restore_state_at, clear_graph). However, descriptions are clear enough to differentiate them.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in lowercase with underscores (e.g., add_observations, branch_create, get_state_at). No mixing of styles or vague verbs.

Tool Count3/5

31 tools is above the typical well-scoped range (3-15). While the knowledge graph domain is complex, the count feels slightly heavy, potentially overwhelming for agents.

Completeness5/5

The tool set covers the full lifecycle: entity CRUD, relations, branching, time-travel, maintenance (orphans, duplicates, health), sessions, and retrieval. No obvious gaps for the stated purpose.

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
    Not graded
    quality
    A
    maintenance
    A graph-based MCP server that provides AI coding agents with persistent memory to store patterns, track complex relationships, and retrieve knowledge across sessions. It leverages graph structures to handle temporal queries and relational paths that traditional vector stores often miss.
    244
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    An MCP server that lets coding agents build and query a persistent knowledge graph of concepts, architecture, and decisions, enabling them to remember across sessions.
    340
    513
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    A universal MCP server providing persistent, structured memory through a knowledge graph with graph storage, semantic vector search, and multi-hop traversal for AI agents and IDEs.
    1
    MIT

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/tm42/mnemograph'

If you have feedback or need assistance with the MCP directory API, please join our Discord server