Mnemograph
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Mnemographremember that we decided to use FastAPI for the backend"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 |
| Knowledge specific to this repo (architecture, decisions, patterns) |
Global |
| Cross-project knowledge (personal learnings, universal patterns, preferences) |
Custom | Any path via | 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 graphQuick 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/mnemographOr point Claude to the setup instructions directly:
Read https://raw.githubusercontent.com/tm42/mnemograph/main/SETUP_CLAUDE_CODE.md and follow themOption 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/memoryOption 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.jsonCodex CLI —
~/.codex/config.yamlZed —
~/.config/zed/settings.jsonContinue.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 mnemographUsage
MCP Tools (used by any agent)
Mnemograph exposes these tools via MCP:
Core Operations:
Tool | Description |
| Primary storage: Store knowledge atomically (entity + observations + relations in one call) |
| Primary retrieval: Get relevant context with auto token management. Use |
| Create entities (auto-blocks duplicates >80% match) |
| Link entities with typed edges (implements, uses, decided_for, etc.) |
| Add facts/notes to existing entities |
| Get the full knowledge graph (warning: may be large) |
| Remove entities (cascades to relations) |
| Remove specific relations |
| Remove specific observations |
Session Lifecycle:
Tool | Description |
| Signal session start, get initial context. Returns quick_start guide. |
| Signal session end, optionally save summary |
| Get oriented with the knowledge graph (call at session start) |
Branching (Parallel Workstreams):
Tool | Description |
| Create a named branch for isolated work (e.g., "feature/auth-refactor") |
| Switch to a different branch |
| List all branches |
| Merge a branch into main |
| Delete a branch |
| Get the current branch name |
Graph Maintenance:
Tool | Description |
| Find entities with similar names (duplicate detection) |
| Find entities with no relations |
| Merge duplicate entities (consolidates observations, redirects relations) |
| Assess graph quality: orphans, duplicates, overloaded entities |
| Suggest potential relations based on semantic similarity |
| Create entities bypassing duplicate check |
| Clear all entities/relations (event-sourced, can rewind) |
Time Travel:
Tool | Description |
| View graph state at any point in history |
| Show what changed between two points in time |
| Full changelog for a specific entity |
| Rewind graph to a previous state using git |
| Restore graph to state at timestamp (audit-preserving) |
| Reload graph state from disk (after git operations) |
Edge Weights:
Tool | Description |
| Get weight breakdown (recency, co-access, explicit) |
| Set explicit importance weight (0.0-1.0) |
| Find entity's most important connections |
| 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, gotchasmedium— 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 locationRunning 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 statusGraph 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:
--watchmode 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 historyEvent 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 eventsmnemograph 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 filtering —
recall,search, etc. only see current branch + mainMerge copies branch entities/relations into target branch
Delete cleans up after merge (or abandons exploratory work)
Branch Naming Conventions
Pattern | Use Case |
| Feature-specific knowledge |
| Exploratory/experimental work |
| Project-specific context |
| Personal workspace |
Entity Types
Type | Purpose | Example |
| Ideas, patterns, approaches | "Repository pattern", "Event sourcing" |
| Choices with rationale | "Chose SQLite over Postgres for simplicity" |
| Codebases, systems | "auth-service", "mnemograph" |
| Recurring code patterns | "Error handling with Result type" |
| Open unknowns | "Should we add real-time sync?" |
| Discoveries | "pytest fixtures simplify test setup" |
| 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 entitiestopic/decisions— Architectural decisionstopic/patterns— Patterns and practicestopic/learnings— Key discoveriestopic/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 directlyBased On
Mnemograph builds on MCP server-memory — Anthropic's official memory server
License
MIT
Available Tools
31 toolsadd_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.
| Name | Required | Description | Default |
|---|---|---|---|
| observations | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| entity_names | Yes | Entity names to add to current branch | |
| include_relations | No | Also include relations between added entities |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Branch name to switch to |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Branch name (e.g., 'project/auth-service', 'feature/jwt') | |
| depth | No | How many hops from seeds to include (default: 2) | |
| checkout | No | Switch to the new branch after creation | |
| description | No | Optional branch description | |
| seed_entities | No | Entity names to seed the branch from |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| branch_a | No | First branch (default: current branch) | |
| branch_b | Yes | Second branch to compare |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| include_archived | No | Include archived branches |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | Reason for clearing (required for graphs >10 entities) | |
| confirm_token | No | Confirmation token for large graphs (format: CLEAR_<count>) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| relations | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It states 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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| entityNames | Yes | Names of entities to delete |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| deletions | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| relations | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | End time (default: now) | |
| start | Yes | Start time (ISO, relative, or named) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Entity name to check for similar existing entities | |
| threshold | No | Similarity threshold 0-1 (default 0.7) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| entity_name | Yes | Entity name to get history for |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | If true, include expensive duplicate detection. Default false for fast checks. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| timestamp | Yes | Time reference: ISO datetime (2025-01-15), relative (7 days ago), or named (yesterday, last week) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max connections to return | |
| entity_name | Yes | Entity name to get connections for |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max relations to return | |
| max_weight | No | Only include relations with weight <= this value |
TDQS
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.
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.
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.
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.
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.
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').
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | Entity to merge FROM (will be deleted) | |
| target | Yes | Entity to merge INTO (will gain observations/relations) | |
| delete_source | No | Whether to delete source after merge (default true) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| depth | Yes | shallow=summary (~500 tokens), medium=search+1-hop (~2000), deep=2-hop traverse (~5000) | medium |
| focus | No | Entity names to retrieve in full detail (replaces open_nodes). Use this to expand specific entities. | |
| query | No | What you're looking for (used for medium/deep semantic search) | |
| format | No | Output format: prose (human-readable) or graph (JSON structure) | prose |
| max_tokens | No | Override default token budget |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Entity name (canonical form: 'FastAPI' not 'fastapi framework') | |
| force | No | Bypass duplicate check | |
| relations | No | Relations FROM this entity to others | |
| entity_type | Yes | concept=ideas/tech, decision=choices, project=repos, pattern=solutions, question=unknowns, learning=discoveries | |
| observations | No | Atomic facts about this entity |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | Why restoring (recorded in events) | |
| timestamp | Yes | ISO datetime or relative ('2 hours ago', 'yesterday') |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| steps | No | Go back N commits that touched mnemograph.db | |
| to_commit | No | Or specify exact commit hash |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| summary | No | Optional session summary to store as observation |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| project_hint | No | Optional project name or path for context |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| importance | Yes | Importance from 0.0 (unimportant) to 1.0 (critical) | |
| relation_id | Yes | Relation ID (full or prefix) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max suggestions to return | |
| entity | Yes | Entity name to get relation suggestions for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It 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.
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.
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.
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.
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.
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.
31 tool updates
v0.5.1- First observed
add_observations - First observed
branch_add - First observed
branch_checkout - First observed
branch_create - First observed
branch_current - First observed
branch_diff - First observed
branch_list - First observed
clear_graph - First observed
create_relations - First observed
delete_entities - First observed
delete_observations - First observed
delete_relations - First observed
diff_timerange - First observed
find_orphans - First observed
find_similar - First observed
get_entity_history - First observed
get_graph_health - First observed
get_primer - First observed
get_state_at - First observed
get_strongest_connections - First observed
get_weak_relations - First observed
merge_entities - First observed
recall - First observed
reload - First observed
remember - First observed
restore_state_at - First observed
rewind - First observed
session_end - First observed
session_start - First observed
set_relation_importance - First observed
suggest_relations
TDQS
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.
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.
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.
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
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
Persistent, portable memory for AI assistants — your private memory graph, from any MCP client.
- memnodeOAuthdev.memnode
Persistent, inspectable memory for AI agents with lineage, correction, and a hosted MCP endpoint.
Shared long-term memory for AI agents: save and recall context as a searchable knowledge graph.
Persistent memory and knowledge graphs for AI agents. Hybrid search, context checkpoints, and more.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceA 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.244MIT
- AlicenseNot gradedqualityBmaintenanceAn MCP server that lets coding agents build and query a persistent knowledge graph of concepts, architecture, and decisions, enabling them to remember across sessions.340513MIT
- AlicenseAqualityAmaintenanceA local knowledge graph MCP server that provides AI agents with permanent, structured memory about codebases, enabling semantic search, blast radius analysis, and convention enforcement.82MIT
- AlicenseNot gradedqualityAmaintenanceA 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.1MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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