Skip to main content
Glama
vib28

AI Memory Hub

by vib28

AI Memory Hub

Shared, local-first memory for AI tools. Store preferences, decisions, and project notes as readable Markdown — then retrieve them through one MCP server.

CI Tests Python License Clients Rust


What It Does

AI Memory Hub gives your AI tools a shared memory. Instead of each tool starting from scratch, they read and write to one local Markdown vault. That vault is just a folder — you can open it in Obsidian, back it up, or edit it by hand.

How it works in practice:

  1. Search first — A connected AI checks existing memory before asking you something it should already know.

  2. Propose — When it learns something worth keeping, it proposes a new memory.

  3. Review or auto-accept — Depending on your settings, proposals are either queued for your review or written automatically.

  4. Store — Accepted memories become plain Markdown files that are searchable and rebuildable.

  5. Inject context — At startup, the latest relevant checkpoint is handed to your AI so it remembers where you left off.


Related MCP server: second-brain-mcp

✨ Key Features

Feature

Description

Shared Memory

Preferences, decisions, project facts, people, topics, and session summaries stored as Markdown

Review Dashboard

Local web UI (http://127.0.0.1:8765) for approving, rejecting, and organizing proposed memories

Semantic Search

Keyword (FTS) + optional vector search with local embeddings

Session Continuity

Capture, checkpoint, and inject context across AI sessions

Browser Tool Normalizer

Automatically parses Hermes browser tool payloads into human-readable summaries

Auto-Fix System

Detects and repairs malformed memory lines, orphan session blocks, duplicate IDs

Encryption at Rest

AES-256-GCM vault encryption via VAULT_ENCRYPTION_KEY

GitHub Export

Optional sanitized session summaries pushed to a repository

Git History

Optional local version control for your vault

Full Transcripts

Optional raw session capture for local auditing

Native Acceleration

Rust extensions for hot-path operations (tokenization, embeddings, SQLite)

Privacy-First

All data stays local unless you explicitly enable export


🚀 Quick Start

You need Python 3.10+, Git, and uv installed.

# 1. Clone and enter the repository
git clone https://github.com/vib28/ai-memory-hub.git
cd ai-memory-hub

# 2. Set up the environment and vault
.\setup.ps1 -VaultPath "C:\Users\vibm\OneDrive\Documents\Memory"

# 3. Connect your AI tools (auto-detects installed clients)
.\connect-ai-tools.ps1 -VaultPath "C:\Users\vibm\OneDrive\Documents\Memory" -WriteMode review

# 4. Start the dashboard
.\start-memory-hub.ps1 -VaultPath "C:\Users\vibm\OneDrive\Documents\Memory"

Then open http://127.0.0.1:8765 in your browser.


🔌 Supported Clients

Client

Version

Capture

Handoff

MCP

Claude Code

2.1.276

✅

✅

✅

Codex CLI

0.155.0

✅

✅

✅

Gemini CLI

0.58.0

✅

✅

✅

Qwen Code

0.22.0

✅

✅

✅

Kimi Code

2.0.1

✅

✅

✅

Hermes Agent

current

✅

✅

✅

Other stdio MCP clients can use the manual hook system.


📋 Opt-In Permissions

Permission

Flag

Effect

Default

Client connection

connect-ai-tools.ps1

Lets a client call the memory server

Not connected

Lifecycle capture

-InstallHooks

Buffers session events locally

Off

Full transcript

MEMORY_TRANSCRIPT_ENABLED=true

Keeps raw events for auditing

Off

Session worker

-EnableSessionAuto

Auto-processes captured sessions

Off

Startup handoff

-InstallHandoff

Injects context at session start

Off

GitHub export

-EnableGitHubExport

Publishes sanitized summaries

Off

Encryption

VAULT_ENCRYPTION_KEY

Encrypts vault files at rest

Off

Manual hooks

-InstallManualHook <name>

Adds hooks for any stdio client

Off

Each has a matching removal flag (-RemoveHooks, -DisableSessionAuto, etc.) that does not touch your vault.


🛡️ Security

  • Path traversal protection via safe_join

  • Parameterized SQL throughout

  • Atomic writes with PID-based lock stealing

  • Timing-safe comparison via secrets.compare_digest

  • SHA-256 for all hashing

  • DNS rebinding protection via Host-header validation

  • Luhn-validated card detection

  • Multi-pattern secret detection

  • CSP + X-Frame-Options on dashboard


📊 Current State

Metric

Value

Tests

445+ passing

GitHub Issues

0 open (all 16 closed)

Rust Extensions

Built and loaded

Clients Supported

6 (5 with hooks installed)

Documentation

Complete with diagrams


📚 Documentation

Document

When to Read

Installation

First-time setup and environment

Client Connections

Connecting AI tools and limitations

Configuration

Write modes, endpoints, environment variables

Usage

Review, search, sessions, imports, undo

Dashboard

UI walkthrough, tags, links, color modes

Architecture

Deep dive into modules and data flow

Troubleshooting

Symptoms, checks, and recovery

FAQ

Short answers and known limits

FIXLOG

Complete fix history

Release Notes

Feature list


🏗️ Architecture

flowchart TB
    subgraph Clients["AI Clients"]
        C1[Claude Code]
        C2[Codex CLI]
        C3[Gemini CLI]
        C4[Qwen Code]
        C5[Kimi Code]
        C6[Hermes Agent]
    end
    
    subgraph Capture["Capture Layer"]
        H[ai-memory-hook.exe]
        B[Observation Buffer]
        N[Browser Normalizer]
    end
    
    subgraph Core["Core"]
        W[Worker]
        CO[Consolidator]
        CT[Categorizer]
        M[Memory Manager]
    end
    
    subgraph Storage["Storage"]
        V[(Markdown Vault)]
        I[(SQLite Index)]
        E[(Encrypted .enc files)]
    end
    
    subgraph Output["Output"]
        CP[Context Packets]
        HF[Handoff]
        EX[GitHub Export]
    end
    
    C1 & C2 & C3 & C4 & C5 & C6 --> H
    H --> N
    N --> B
    B --> W
    W --> CO
    CO --> CT
    CT --> M
    M --> V
    M --> I
    M --> E
    M --> CP
    CP --> HF
    M --> EX

📄 License

Apache License 2.0

Available Tools

8 tools
memory_auditA

Check file/index integrity without modifying memory.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are present, so the description carries the full burden of disclosing behavioral traits. It explicitly discloses non-modification and specifies the scope as file/index integrity, which is valuable safety-relevant context. It does not describe output format or error behavior, but for a zero-parameter audit the core behavioral trait is adequately disclosed.

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

Conciseness5/5

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

The description is a single compact sentence that front-loads the action and includes the key non-modification caveat. Every word earns its place, with no filler, redundancy, or unnecessary elaboration.

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

Completeness4/5

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

For a tool with no parameters, the description is nearly complete for invocation: it states what the tool checks and its side-effect profile. The main gap is the lack of detail about return values or behavior when integrity issues are found, but that is not essential for an agent to select and invoke a zero-argument audit.

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

Parameters4/5

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

The input schema has zero properties, so there are no parameter semantics to document. Per the zero-parameter baseline, the description need not add parameter detail, and the schema description coverage is effectively complete. The description also confirms the tool requires no configuration.

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

Purpose5/5

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

The description uses a specific verb ('Check') and resource ('file/index integrity'), and explicitly frames the operation as non-modifying. This clearly distinguishes it from sibling tools that mutate memory, such as memory_forget and memory_supersede, and from memory_read which would retrieve content rather than audit integrity. The purpose is immediately apparent.

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

Usage Guidelines3/5

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

The description implies use when a read-only integrity check is needed and the 'without modifying memory' qualifier suggests it is safe to run. However, it does not explicitly state when not to use it or name alternatives such as memory_reindex for repairing integrity issues or memory_read for retrieving memory content. Usage routing is left mostly to inference.

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

memory_forgetA

Delete one persistent memory by its stable memory ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
memory_idYes

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral disclosure burden. It clearly states the destructive action and the target ('one persistent memory'), which is essential. But it does not disclose whether the deletion is permanent/irreversible, whether related references are affected, or any confirmation/auth requirements 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.

Conciseness5/5

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

The description is a single front-loaded sentence with no filler. Every word earns its place: verb, resource, scope, and identifier type are all present and immediately readable.

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

Completeness3/5

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

The tool is simple (one parameter, no output schema, no annotations) and the description covers the essential call. However, it leaves gaps around the outcome/return value, irreversibility, and how this deletion relates to sibling operations like memory_supersede or memory_policy. A brief note on permanence would make it fully complete.

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

Parameters4/5

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

The schema only provides the parameter name and type for memory_id with 0% description coverage. The description adds meaningful semantics by specifying it is a 'stable memory ID' for a persistent memory, helping the agent understand what value to supply. It omits format/examples, but for a single string parameter this is sufficient.

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

Purpose5/5

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

The description uses a specific verb ('Delete'), names the resource ('persistent memory'), and identifies the exact selection criterion ('stable memory ID'). This makes the tool's purpose unmistakable and distinguishes it from sibling tools like memory_search, memory_read, and memory_supersede, which are not destructive deletion operations.

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

Usage Guidelines3/5

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

The usage context is implied: call this tool when you have a stable memory ID and want to delete that memory. However, the description does not explicitly say when not to use it or provide alternatives, such as memory_supersede for updating/replacing a memory rather than deleting it.

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

memory_policyA

Return the automatic persistent-memory retention policy and active write mode.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries the behavioral transparency burden. It clearly signals a read-only introspection operation via 'Return' rather than 'set', 'update', or 'create', and it specifies the two pieces of state returned: retention policy and active write mode. This is sufficient for a zero-parameter getter.

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

Conciseness5/5

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

A single, front-loaded sentence contains exactly the necessary information: the action and the returned data. There is no filler, no redundancy, and no buried context.

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

Completeness4/5

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

For a no-argument, read-only policy tool with an output schema, the description is nearly complete. It could briefly explain what 'active write mode' means or note when to prefer this over memory_audit, but nothing required to invoke the tool correctly is missing.

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

Parameters4/5

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

The tool has no parameters and schema coverage is trivially complete, so there are no argument semantics for the description to add. The baseline of 4 for a zero-parameter tool applies.

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

Purpose5/5

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

The description opens with a specific verb ('Return') and names a precise resource: the automatic persistent-memory retention policy and active write mode. This is distinct from the sibling memory_read, memory_search, memory_propose, and memory_audit tools, so an agent can identify what this tool is for.

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

Usage Guidelines2/5

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

No guidance is given about when to call this tool instead of memory_read, memory_search, or memory_audit. There are no exclusions, prerequisites, or routing hints, so the intended usage context must be inferred from the tool name and description.

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

memory_proposeC

Validate a durable memory candidate. Auto mode stores it; review mode queues it.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagYes
kindYes
textYes
subjectNogeneral
target_pathNo

TDQS

C2.7/5.0
Behavior3/5

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

With no annotations at all, the description carries the full burden. It does disclose the important side effects: auto mode persists the memory, review mode queues it. However, it omits details such as what validation means, what happens on invalid input, and whether the operation is idempotent or reversible.

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

Conciseness4/5

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

The description is very short and front-loaded, with both sentences contributing unique information. It is concise, though the extreme brevity comes at the cost of necessary behavioral and parameter context.

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

Completeness2/5

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

For a tool with five parameters, no output schema, and no annotations, this description is not complete enough. It leaves mode selection, parameter meaning, validation behavior, and return values entirely unaddressed, requiring the agent to rely on guesses.

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

Parameters1/5

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

Schema description coverage is 0%, and the description itself does not explain any of the five parameters. The agent is left to guess what 'text', 'kind', 'tag', 'subject', and 'target_path' represent, with no schema descriptions to compensate.

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

Purpose4/5

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

The description uses a specific verb ('Validate') with a clear resource ('durable memory candidate') and adds tangible behavior: auto mode stores, review mode queues. This makes the tool's core function clear even though it does not directly contrast with sibling tools like memory_policy or memory_supersede.

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

Usage Guidelines2/5

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

The description mentions two modes but does not explain when either mode applies, how mode is chosen, or when an agent should use this tool instead of siblings like memory_read, memory_forget, or memory_supersede. There is no when-to-use guidance or exclusionary context.

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

memory_readA

Read exactly one memory Markdown file. Path must be inside the vault.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description carries the behavioral transparency burden. 'Read' clearly communicates a non-mutating operation, 'exactly one ... Markdown file' scopes the side-effect surface, and 'Path must be inside the vault' adds an important security boundary. It does not detail error behavior for missing or out-of-vault paths, but the output schema covers the return shape.

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

Conciseness5/5

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

Two short sentences carry the entire definition with no filler. The main action is front-loaded, and the critical constraint follows immediately.

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

Completeness4/5

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

For a one-parameter read tool with an output schema, the description covers the purpose, the target resource, and the critical path-boundary rule. The only visible gap is explicit sibling differentiation, which is more of a usage-guidelines issue than a completeness failure.

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

Parameters4/5

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

The schema only provides a 'path' string with no description, so the description supplies the key semantic constraint: the path must be inside the vault and point to a memory Markdown file. It does not specify relative versus absolute path format or explicitly require a .md extension, but for a single simple parameter this is adequate compensation for the 0% schema coverage.

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

Purpose5/5

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

The description states a specific verb and resource: 'Read exactly one memory Markdown file.' It also adds a clear scope qualifier ('exactly one') and a boundary ('Path must be inside the vault'), which distinguishes it from broader search or batch operations among the sibling tools.

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

Usage Guidelines3/5

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

The description implies usage: when you know a path and need to read a single memory file, use this tool. However, it does not explicitly mention alternatives such as memory_search for finding memories when the path is unknown, so the routing guidance is left to inference.

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

memory_reindexA

Rebuild the disposable SQLite search index from the Markdown vault.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden. 'Disposable' and 'from the Markdown vault' add useful context that the index is derived and reconstructable. However, it does not disclose whether the rebuild is destructive to the current index, whether it blocks, or any time/resource implications.

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

Conciseness5/5

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

The description is a single sentence that front-loads the action ('Rebuild') and includes the key object and source. There is no wasted wording; every phrase earns its place.

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

Completeness4/5

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

For a zero-parameter maintenance tool, the description states the core purpose and data source, which is likely sufficient for selection. It omits explicit when-to-use guidance and side-effect details, though the 'disposable' qualifier partially compensates. The lack of an output schema means return values need not be described.

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

Parameters4/5

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

The tool has zero parameters, so the description is not required to explain parameter behavior. It does add context about the index being disposable and derived from the vault, which helps an agent understand what the tool affects. This meets the baseline for a zero-parameter tool.

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

Purpose4/5

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

The description states a specific verb ('Rebuild') acting on a well-defined resource ('disposable SQLite search index') with a clear source ('from the Markdown vault'). It is clearly distinct from sibling tools like memory_search or memory_read, though it does not explicitly name any alternative or differentiator.

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

Usage Guidelines3/5

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

The description implies the tool is for rebuilding the search index, but does not explicitly state when to use it (e.g., when the index is stale or after vault changes) or when to prefer an alternative. No exclusions or alternative tool references are given, leaving the 'when' to inference.

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

memory_supersedeB

Supersede an old memory. In review mode the replacement is queued for approval.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagYes
kindYes
textYes
subjectNogeneral
target_pathNo
old_memory_idYes

TDQS

B3/5.0
Behavior3/5

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

The description discloses an important behavioral trait: in review mode the replacement is queued for approval. With no annotations, this is valuable. However, it does not explain what happens outside review mode, whether the old memory is deleted or archived, or any permission requirements.

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

Conciseness5/5

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

The description is two short sentences with no filler. The key behavioral note about review mode is included without unnecessary elaboration.

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

Completeness2/5

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

This is a mutation tool with no annotations, no output schema, and six parameters at zero schema coverage. The description is too sparse to guide correct invocation, especially regarding what the parameters mean and what happens outside review mode.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not compensate. It hints that old_memory_id refers to an old memory and text is the replacement content, but it leaves kind, tag, subject, and target_path semantically undefined. Required parameters are not explained beyond the overall operation.

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

Purpose4/5

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

The description uses a specific verb and resource: 'supersede an old memory'. This clearly indicates a replacement operation, which is semantically distinct from siblings like memory_forget or memory_propose. However, it does not explicitly name or contrast the sibling tools, so it lacks some differentiation.

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

Usage Guidelines2/5

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

The description provides no guidance on when to choose this tool over the other memory tools. It mentions review-mode behavior but does not state when superseding is appropriate versus proposing or forgetting. No alternatives or exclusions are given.

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.

  1. 8 tool updatesv0.2.0
    • First observedmemory_audit
    • First observedmemory_forget
    • First observedmemory_policy
    • First observedmemory_propose
    • First observedmemory_read
    • First observedmemory_reindex
    • First observedmemory_search
    • First observedmemory_supersede

TDQS

A3.7/5.0

Scored across 8 tools

Disambiguation5/5

Each tool targets a distinct operation: policy introspection, search, file read, write/propose, update/supersede, delete, integrity audit, and index rebuild. Memory_search vs memory_read and propose vs supersede are related but clearly separated by descriptions.

Naming Consistency5/5

All tools share a consistent memory_ prefix and use clear snake_case action suffixes such as search, read, propose, supersede, forget, audit, and reindex. The pattern is predictable and uniform.

Tool Count5/5

Eight tools is well within the ideal range and appropriate for a persistent memory hub. Each tool covers a distinct lifecycle or maintenance need without unnecessary bloat.

Completeness4/5

The core memory lifecycle is well covered: policy, search, read, create/propose, update/supersede, delete, audit, and reindex. The only minor gap is that review-mode approvals/rejections have no dedicated tool, though this is likely handled outside the agent workflow.

Maintenance

ActivityMaintained
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers