Skip to main content
Glama
bcornish1797

MCP-Memory-LanceDB-Pro

by bcornish1797

🧠 MCP-Memory-LanceDB-Pro

Give your AI coding assistant a brain that actually remembers.

Full-featured long-term memory system for Claude Code via the Model Context Protocol (MCP).

MCP Server LanceDB License: MIT Node.js


The Problem

Every time you start a new Claude Code session, your AI assistant forgets everything — your preferences, past decisions, project context, lessons learned. You end up repeating yourself, wasting time, and losing momentum.

Related MCP server: MemoVault

The Solution

MCP-Memory-LanceDB-Pro is a standalone MCP server that gives Claude Code persistent, intelligent long-term memory. It runs alongside Claude Code as an independent process, automatically capturing important information and recalling it when needed — across sessions, across projects, across time.

Before & After

Without memory — every session starts from zero:

You: "Use tabs for indentation, always add error handling."
(next session)
You: "I already told you — tabs, not spaces!"
(next session)
You: "...seriously, tabs. And error handling. Again."

With MCP-Memory-LanceDB-Pro — your assistant learns and remembers:

You: "Use tabs for indentation, always add error handling."
(next session — assistant auto-recalls your preferences)
Assistant: (silently applies tabs + error handling)
You: "Why did we pick PostgreSQL over MongoDB last month?"
Assistant: "Based on our discussion on Feb 12, the main reasons were..."

Features

Feature

Description

Hybrid Retrieval

Vector similarity + BM25 full-text search with RRF fusion

Cross-Encoder Reranking

Jina / SiliconFlow / Voyage / Pinecone rerankers

Smart Extraction

LLM-powered 6-category classification: preferences, decisions, facts, entities, events, patterns

Intelligent Forgetting

Weibull decay model — important memories stay, noise naturally fades

Auto-Capture

Claude Code hooks automatically store important info after each response

Auto-Recall

SessionStart hook automatically injects relevant context

Multi-Scope Isolation

Agent-private, global shared, and project-scoped boundaries

Noise Filtering

Embedding-based noise prototype bank + regex filters

Reflection Pipeline

Extract invariant rules and derived knowledge

Self-Improvement

Structured learning/error logging with skill extraction

14 MCP Tools

Complete memory management API


Quick Start

1. Clone & Install

git clone https://github.com/bcornish1797/MCP-Memory-LanceDB-Pro.git \
  ~/.claude/mcp-servers/memory
cd ~/.claude/mcp-servers/memory
npm install

2. Configure Claude Code

Add to ~/.claude.json under projects.<your-project>.mcpServers:

{
  "memory": {
    "command": "node",
    "args": ["~/.claude/mcp-servers/memory/server-full.mjs"],
    "env": {
      "JINA_API_KEY": "your-jina-api-key",
      "LLM_API_KEY": "your-llm-api-key",
      "LLM_BASE_URL": "https://api.openai.com/v1",
      "LLM_MODEL": "gpt-4o-mini",
      "RERANK_API_KEY": "your-reranker-key",
      "RERANK_PROVIDER": "jina",
      "RERANK_MODEL": "jina-reranker-v3",
      "RERANK_ENDPOINT": "https://api.jina.ai/v1/rerank"
    }
  }
}

3. Set Up Automation Hooks (Optional)

Add to ~/.claude/settings.json for fully automatic memory capture:

{
  "hooks": {
    "SessionStart": [{
      "matcher": "",
      "hooks": [{"type": "command", "command": "path/to/hooks/session-start.sh"}]
    }],
    "Stop": [{
      "matcher": "",
      "hooks": [{"type": "command", "command": "path/to/hooks/auto-capture.sh"}]
    }],
    "PostCompact": [{
      "matcher": "",
      "hooks": [{"type": "command", "command": "path/to/hooks/post-compact.sh"}]
    }],
    "SessionEnd": [{
      "matcher": "",
      "hooks": [{"type": "command", "command": "path/to/hooks/session-end.sh"}]
    }]
  }
}

4. Restart Claude Code

The memory server loads automatically on next session.


MCP Tools

Core Memory

Tool

Description

memory_recall

Hybrid search with vector + BM25 + cross-encoder reranking

memory_store

Store with auto-chunking, smart metadata, and auto-categorization

memory_forget

Delete by ID or search query

memory_update

Update text, importance, or category (triggers re-embedding)

memory_stats

Usage statistics by scope and category

memory_list

List recent memories with scope/category filters

Intelligent Processing

Tool

Description

memory_extract

LLM-powered smart extraction from conversation text

memory_decay

Weibull intelligent forgetting — clean stale memories

memory_reflect

Reflection pipeline — extract invariant rules and derived knowledge

memory_bulk_delete

Bulk delete by scope, category, or age

memory_migrate

Legacy database migration

Self-Improvement

Tool

Description

self_improvement_log

Log structured learnings or errors

self_improvement_review

Governance backlog summary

self_improvement_extract_skill

Transform learning entries into skill scaffolds


Architecture

ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
│              MCP Server (server-full.mjs)            │
│         stdio JSON-RPC  <-->  Claude Code            │
ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”¬ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”¬ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”¬ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”¬ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜
         |          |          |          |
    ā”Œā”€ā”€ā”€ā”€v───┐ ā”Œā”€ā”€ā”€ā”€v───┐ ā”Œā”€ā”€ā”€v────┐ ā”Œā”€ā”€v──────────┐
    | Store  | |Embedder| |Retriever| |   Scopes    |
    |LanceDB | | Jina   | |Hybrid  | | Isolation   |
    ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜ ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜ ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜ ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜
         |          |          |
    ā”Œā”€ā”€ā”€ā”€v───┐ ā”Œā”€ā”€ā”€ā”€v────┐ ā”Œā”€ā”€v──────────┐
    | Smart  | | Decay   | |  Noise      |
    |Extract | | Engine  | |  Filter     |
    | (LLM)  | |(Weibull)| |(Prototypes) |
    ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜ ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜ ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜

    ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
    |        Claude Code Hooks            |
    | SessionStart | Stop | PostCompact   |
    | (auto-recall)|(auto-|(re-inject)    |
    |              |capture)              |
    ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜

Key Components

Module

Files

Purpose

Storage

store.ts

LanceDB vector storage with FTS/BM25 indexing

Embedding

embedder.ts

Jina/OpenAI-compatible embeddings with task-aware API

Retrieval

retriever.ts

Hybrid vector+BM25 with RRF fusion and 6-stage scoring pipeline

Smart Extraction

smart-extractor.ts

LLM-powered 6-category memory classification

Decay

decay-engine.ts

Weibull stretched-exponential decay with tier-based lifecycle

Scopes

scopes.ts

Multi-scope access control and isolation

Noise Filter

noise-filter.ts, noise-prototypes.ts

Regex + embedding-based noise rejection

Reflection

reflection-*.ts (8 modules)

Session reflection and knowledge distillation

Self-Improvement

self-improvement-files.ts

Structured learning/error governance


Configuration

Environment Variables

Variable

Required

Default

Description

JINA_API_KEY

Yes

—

Jina AI API key for embeddings

LLM_API_KEY

No

—

LLM API key for smart extraction

LLM_MODEL

No

gpt-4o-mini

LLM model for extraction

LLM_BASE_URL

No

https://api.openai.com/v1

LLM API endpoint

RERANK_API_KEY

No

—

Reranker API key

RERANK_PROVIDER

No

jina

jina / siliconflow / voyage / pinecone

RERANK_MODEL

No

jina-reranker-v3

Reranker model name

RERANK_ENDPOINT

No

https://api.jina.ai/v1/rerank

Reranker API endpoint

MEMORY_DB_PATH

No

~/.claude/memory-lancedb

LanceDB database path

MEMORY_DEFAULT_SCOPE

No

agent:primary

Default memory scope

Supported Providers

Embedding:

Provider

Model

Notes

Jina AI

jina-embeddings-v3

Recommended, task-aware

OpenAI

text-embedding-3-small

Widely available

Ollama

nomic-embed-text

Free, local

Reranking:

Provider

Model

Notes

Jina AI

jina-reranker-v3

High quality

SiliconFlow

Qwen/Qwen3-Reranker-0.6B

Free tier available

Voyage AI

rerank-2

Alternative

LLM (for smart extraction):

Any OpenAI-compatible API — OpenAI, Anthropic, z.ai, MiniMax, Ollama, etc.


Memory Scopes

Scope

Purpose

agent:primary

Private to your primary agent

agent:secondary

Private to a secondary agent

global

Shared across all agents

project:<name>

Project-specific context


How Auto-Capture Works

The Stop hook runs after every Claude response:

  1. Reads last_assistant_message from hook stdin

  2. Filters through shouldCapture() (length, noise, CJK-aware)

  3. Auto-categorizes via detectCategory()

  4. Embeds via Jina API

  5. Stores in LanceDB with scope and metadata

This happens automatically — no manual tool calls needed.

Retrieval Pipeline

Query --> Embed --> Vector Search --+
                                    +--> RRF Fusion --> Rerank --> Recency
Query --> BM25 Full-Text Search ---+     --> Importance --> LengthNorm
                                         --> TimeDecay --> HardMin --> MMR
                                         --> Final Results

Based On

Built on memory-lancedb-pro by CortexReach — an enhanced LanceDB memory plugin for OpenClaw. All 29 source modules are included and loaded at runtime via jiti.

What this project adds:

  • Standalone MCP server (no OpenClaw dependency)

  • Claude Code hooks for true automation

  • 14 MCP tools (vs 9 in original)

  • Portable to any MCP-compatible AI client


License

MIT

Based on memory-lancedb-pro (MIT License, Copyright (c) 2026 win4r).

Available Tools

14 tools
memory_bulk_deleteB

Bulk delete memories by scope, category, or age.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNoDelete all memories in this scope
categoryNoDelete all memories of this category
olderThanDaysNoDelete memories older than N days
dryRunNoOnly report what would be deleted

TDQS

B3.3/5.0
Behavior2/5

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

No annotations exist. The description does not mention the dryRun default (true) nor the destructive nature when false, leaving behavioral risks undisclosed.

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

Conciseness4/5

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

Single sentence is concise and front-loaded, but could include key defaults without being verbose.

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

Completeness2/5

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

With 4 optional parameters and no output schema, the description fails to clarify parameter interaction (e.g., combining filters) or the safety net of dryRun, making it incomplete.

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

Parameters3/5

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

Schema coverage is 100%, so the description adds no extra meaning; baseline score 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 clearly states it bulk deletes memories by scope, category, or age, distinguishing it from sibling tools like memory_forget (single) or memory_decay (automatic).

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool vs alternatives; the purpose is implied but lacks context for selection among siblings.

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

memory_decayA

Run the intelligent forgetting engine — removes low-quality, outdated memories based on Weibull decay model. Call periodically (e.g., once per session) to keep memory clean.

ParametersJSON Schema
NameRequiredDescriptionDefault
dryRunNoIf true, only report what would be removed without deleting

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description fully discloses it removes memories based on a decay model and mentions the dryRun parameter for safe preview. It does not detail permanence of deletion or side effects, but the behavioral intent is clear.

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

Conciseness5/5

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

Two sentences: first defines the tool's function, second provides usage guidance. No redundant information, front-loaded, and efficient.

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

Completeness4/5

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

For a simple tool with one boolean param and no output schema, the description covers purpose and usage adequately. It could mention return format (e.g., count of removed items) but is complete enough for its complexity.

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

Parameters3/5

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

Schema coverage is 100% and the dryRun parameter is well-described in the schema. The description adds no extra meaning beyond the schema's 'report without deleting'.

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

Purpose5/5

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

The description clearly states it runs an intelligent forgetting engine that removes low-quality, outdated memories using a Weibull decay model. This distinguishes it from sibling tools like memory_delete (manual) and memory_forget (specific forgetting), as it automates cleanup based on a decay model.

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

Usage Guidelines4/5

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

The description explicitly advises calling periodically (e.g., once per session) to keep memory clean, providing clear timing guidance. However, it does not specify when not to use it or directly compare to alternatives like memory_bulk_delete.

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

memory_extractA

Smart extraction: use LLM to analyze conversation text and automatically extract important memories (preferences, decisions, facts, entities, events, patterns). This is the equivalent of autoCapture — call it at the end of important conversations.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesConversation text to extract memories from
scopeNoTarget scope for extracted memoriesagent:primary

TDQS

A4/5.0
Behavior3/5

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

No annotations provided, so description must bear the burden. Indicates LLM analysis and automatic extraction, implying memory writes, but does not explicitly confirm side effects, permissions, or potential for hallucination. The comparison to 'autoCapture' adds some context.

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

Conciseness5/5

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

Two sentences, no fluff. Front-loaded with 'Smart extraction'. Every word adds value.

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

Completeness4/5

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

Given no annotations and no output schema, the description adequately covers purpose and usage. It does not explain return values or confirm that memories are stored, but the sibling list and tool intent make this somewhat implicit. A bit more detail on output would improve completeness.

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

Parameters3/5

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

Schema already describes both parameters fully (100% coverage). The description adds only minor context: 'conversation text' for text and 'Target scope' for scope, but does not elaborate on scope values or format.

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

Purpose5/5

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

Description clearly states the tool uses LLM to extract important memories (preferences, decisions, facts, etc.) and distinguishes it from other memory tools like memory_store or memory_recall. The phrase 'Smart extraction' and comparison to 'autoCapture' make the purpose unambiguous.

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

Usage Guidelines4/5

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

Explicitly advises to call at the end of important conversations, providing clear context. However, it does not explicitly state when not to use it or mention alternatives, though the sibling list implies differentiation.

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

memory_forgetB

Delete a memory by ID or search query.

ParametersJSON Schema
NameRequiredDescriptionDefault
memoryIdNoMemory ID (full UUID or 8+ char prefix)
queryNoSearch query to find and delete best match

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It only states the basic mutation action ('delete') without disclosing whether deletion is irreversible, if both parameters can be provided simultaneously, error behavior, or 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 a single sentence that conveys the core functionality without any superfluous words. It is front-loaded and concise.

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

Completeness2/5

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

Lacks important contextual details such as error handling when both parameters are missing, irreversibility of the action, and distinction from bulk deletion sibling. Given the simplicity of the tool, more completeness would be expected.

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

Parameters3/5

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

Schema coverage is 100% and both parameters already have clear descriptions in the input schema. The description merely reiterates the two modes, adding no additional semantic value beyond what the schema provides.

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

Purpose5/5

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

The description clearly states the action 'Delete' and the resource 'memory', and specifies two distinct modes (by ID or by search query), which differentiates it from bulk deletion tools like memory_bulk_delete.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., memory_bulk_delete for multiple memories), nor when to use ID versus search query. The description does not provide context on prerequisites or preferred conditions.

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

memory_listC

List recent memories, optionally filtered.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNo
categoryNo
limitNo

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description must fully disclose behavior. It mentions 'recent' but does not define recency or ordering. It omits any side effects, pagination, or result format. For a listing tool, 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.

Conciseness3/5

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

The description is very short and front-loaded, but the brevity sacrifices necessary detail. It is concise but under-specified, delivering only minimal information.

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

Completeness2/5

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

Given the complexity (3 parameters, many sibling tools, no output schema), the description lacks essential details like result ordering, definition of 'recent', and pagination behavior. It is not sufficiently complete for an agent to use correctly.

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

Parameters1/5

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

Schema description coverage is 0%, so the description must explain parameters. It only says 'optionally filtered' without describing what 'scope' and 'category' mean or how 'limit' affects results. This adds no value beyond the schema itself.

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 the verb 'list' and resource 'memories', clearly indicating the action and target. It adds 'recent' and 'optionally filtered' which give specific scope, but does not differentiate from sibling tools like memory_recall, which may also retrieve memories.

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 says 'optionally filtered' implying flexibility, but provides no explicit guidance on when to use this tool versus alternatives like memory_recall or memory_stats. No when-not or exclusion criteria are given.

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

memory_migrateB

Migrate memories from legacy memory-lancedb format to current format.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourcePathYesPath to legacy LanceDB database

TDQS

B3.1/5.0
Behavior2/5

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

No annotations exist, so the description carries full burden. It only says 'migrate' but does not disclose side effects, destruciveness, or whether the legacy database is modified.

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

Conciseness4/5

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

The description is a single concise sentence, front-loading the action. However, it omits necessary context that could be added without sacrificing conciseness.

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

Completeness2/5

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

For a migration tool with no output schema and one required parameter, the description fails to explain the process, side effects, or prerequisites, leaving the agent underinformed.

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

Parameters3/5

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

Schema coverage is 100%, and the parameter description in the schema is clear. The tool description adds no new semantic value beyond what the schema provides.

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

Purpose5/5

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

The description clearly states the verb 'Migrate' and the resource 'memories' with a specific transformation from legacy to current format, distinguishing it from sibling tools.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or potential exclusions.

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

memory_recallA

Search long-term memories using hybrid retrieval (vector similarity + BM25 full-text + cross-encoder reranking). Returns semantically relevant memories ranked by quality.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesWhat you want to remember — natural language
limitNoMax results (default: 5)
scopeNoFilter: agent:primary, agent:secondary, global, project:alpha, project:beta
categoryNo

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description discloses the hybrid retrieval approach and quality ranking, indicating a read-only operation. It does not cover performance or error conditions, but the main behavior is transparent.

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: the first defines the verb and resource, the second explains the return value. Every word earns its place, with no redundancy.

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

Completeness4/5

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

The description covers the core function and output quality, and the schema handles parameters. It could briefly mention output format or examples, but for a search tool with 4 well-described parameters, it is sufficiently complete.

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

Parameters3/5

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

The schema already documents all parameters with descriptions (75% coverage). The tool description adds no per-parameter details beyond the schema's own descriptions, so it meets the baseline but does not add extra semantics.

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

Purpose5/5

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

The description clearly states it searches long-term memories using a specific hybrid retrieval method, distinguishing it from sibling tools like memory_list (simple listing) and memory_extract (extraction).

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

Usage Guidelines3/5

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

The description implies usage for semantic search but provides no explicit guidance on when to use this tool over alternatives like memory_list or memory_extract.

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

memory_reflectB

Run the reflection pipeline — analyze conversation text, extract invariant rules and derived knowledge, store as reflection memories. This is the equivalent of the memory-lancedb-pro reflection system.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesConversation or session text to reflect on
scopeNoTarget scope for reflection memoriesagent:primary

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It indicates the tool writes reflection memories, but lacks details on side effects (e.g., overwrite behavior), permissions needed, rate limits, or whether the operation is reversible. The vague 'run the reflection pipeline' does not convey the full impact.

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

Conciseness5/5

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

The description is concise, consisting of two sentences that front-load the core action and provide a clarifying comparison. No redundant or extraneous information is present.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete. It omits details about return values, error conditions, performance implications for large text, and how the reflection memories interact with existing memory stores. The high-level overview is insufficient for agents to invoke the tool correctly without ambiguity.

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

Parameters3/5

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

Schema description coverage is 100%, and the description largely repeats the schema's parameter descriptions ('Conversation or session text to reflect on' and 'Target scope for reflection memories'). No additional semantic value is added, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly defines the tool's purpose: running a reflection pipeline to analyze conversation text, extract invariant rules and derived knowledge, and store as reflection memories. It uses specific verbs and resources, and distinguishes itself from sibling tools like memory_store or memory_extract.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It mentions an equivalence to another system but does not specify use cases, prerequisites, or contraindications. Siblings like memory_extract, memory_forget, etc., are not contrasted.

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

memory_statsB

Memory usage statistics — total count, by scope, by category.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3/5.0
Behavior1/5

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

No annotations are provided, and the description does not disclose any behavioral traits beyond the basic function. It does not state that the tool is read-only or has no side effects, leaving the agent to infer from the word 'statistics'.

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

Conciseness4/5

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

The description is a single sentence that front-loads the core purpose. It is concise and contains no extraneous information, though it lacks structural elements like bullet points.

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

Completeness4/5

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

For a simple tool with no parameters and no output schema, the description adequately explains what the tool returns (total count, by scope, by category). It covers the essential information, though it could mention whether data is live or cached.

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?

There are no parameters, and the schema coverage is 100%. The description adds no parameter meaning, but baseline for 0 parameters is 4.

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

Purpose4/5

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

The description clearly states it provides memory usage statistics including total count, by scope, and by category. It implicitly differentiates from siblings like memory_list (which lists entries) and memory_recall (which retrieves specific memories), but does not explicitly distinguish.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as memory_list or memory_recall. No context for when statistics are appropriate vs. other operations.

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

memory_storeA

Save important information to long-term vector memory. Auto-deduplicates and filters noise. Use for decisions, preferences, facts, project context — anything worth remembering across sessions.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesInformation to remember — be specific
scopeNoagent:primary (private), global (shared), project:alpha, project:betaagent:primary
categoryNoother
importanceNo0-1 (default: 0.7)

TDQS

A4.2/5.0
Behavior4/5

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

Since no annotations are provided, the description carries the burden of behavioral disclosure. It adds useful behavior like auto-deduplication and noise filtering. However, it does not describe side effects (e.g., overwriting behavior), authorization needs, or return value, leaving some gaps.

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 concise, with three sentences that front-load the core action ('Save important information'), then add behavioral notes and usage guidance. Every sentence adds value without redundancy.

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

Completeness4/5

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

For a tool with no output schema and no annotations, the description covers purpose, usage context, and key behavioral traits (dedup, noise filtering). It could mention the return value or persistence guarantees, but overall it is sufficiently complete for typical use cases.

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

Parameters3/5

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

Schema description coverage is 75%, so the schema already documents most parameters. The description does not add additional parameter-level semantics beyond what is in the schema. Thus, the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool saves information to long-term vector memory, which distinguishes it from retrieval, deletion, and other memory operations. Examples of what to store (decisions, preferences, facts) further clarify the purpose.

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

Usage Guidelines4/5

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

The description explicitly says 'Use for decisions, preferences, facts, project context — anything worth remembering across sessions,' providing clear usage context. However, it does not mention when not to use this tool or suggest 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.

memory_updateA

Update an existing memory (text, importance, or category).

ParametersJSON Schema
NameRequiredDescriptionDefault
memoryIdYesMemory ID
textNoNew text (triggers re-embedding)
importanceNo
categoryNo

TDQS

A3.5/5.0
Behavior3/5

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

The description discloses that updating text triggers re-embedding, which is a key behavioral trait. However, it does not discuss side effects of updating importance or category, error conditions, or idempotency. With no annotations, this is a partial disclosure.

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 8-word sentence that is front-loaded with the action and resource. Every word adds value, with no superfluous content.

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

Completeness3/5

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

The description is adequate for a simple update tool but lacks information on return values, error handling, and constraints (e.g., memoryId must exist). Given no output schema and moderate schema coverage, more context would be beneficial.

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

Parameters3/5

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

Schema coverage is 50%, and the description adds value by noting that text triggers re-embedding. However, importance and category lack schema descriptions, and the description does not clarify their semantics or constraints beyond listing them.

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

Purpose5/5

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

The description clearly states the action (Update) and resource (existing memory) and lists the specific updatable fields (text, importance, or category). It distinguishes from sibling tools like memory_store (create) and memory_forget (delete).

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives, prerequisites (e.g., memory must exist), or when not to use it. The description is purely functional without contextual usage advice.

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

self_improvement_extract_skillB

Create a new skill scaffold from a learning entry and mark it as promoted.

ParametersJSON Schema
NameRequiredDescriptionDefault
learningIdYesLearning ID like LRN-YYYYMMDD-001
skillNameYesSkill folder name, lowercase with hyphens
sourceFileNoLEARNINGS.md

TDQS

B3.2/5.0
Behavior2/5

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

The description implies a write operation (creating and promoting) but does not disclose side effects, such as whether files are created, how the skill scaffold is stored, or if it affects other data. With no annotations, the description bears the full burden and falls short.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that conveys the core action with no redundant words. It is appropriately brief.

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

Completeness2/5

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

Given the lack of output schema and annotations, the description should explain what 'skill scaffold' means, what the return value is, and any implications. The current description leaves the agent guessing about the tool's full behavior.

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

Parameters3/5

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

Schema description coverage is 67%, and the schema already provides decent descriptions for learningId and skillName. The description adds no additional meaning for parameters, so it meets the baseline but does not exceed.

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

Purpose5/5

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

The description clearly states the action ('Create') and the specific resource ('new skill scaffold from a learning entry') and includes an additional effect ('mark it as promoted'). It distinguishes from sibling tools that handle memory operations or general logging, as this tool focuses on extracting skills.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool vs. alternatives like self_improvement_log or memory_extract. There is no mention of prerequisites (e.g., the learning entry must exist) or when not to use it.

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

self_improvement_logA

Log structured learning or error entries into .learnings/ directory for governance and later distillation. Use when: (1) a command/tool fails, (2) user corrects you, (3) you discover a knowledge gap, (4) you find a better approach.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesEntry type
summaryYesOne-line summary
detailsNoDetailed context or error output
suggestedActionNoAction to prevent recurrence
categoryNocorrection/best_practice/knowledge_gap
areaNofrontend/backend/infra/tests/docs/config
priorityNo

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It explains the logging action and directory but does not disclose details like whether entries are appended or overwritten, permissions required, or any side effects. Adequate but could be more transparent.

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

Conciseness5/5

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

Two sentences: first explains what and where, second lists use cases. Highly concise and well-structured, no wasted words.

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

Completeness4/5

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

The description covers purpose and triggers adequately for a logging tool. It does not explain return values or error handling, but given the tool's simplicity and the presence of a detailed schema, it is reasonably complete.

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

Parameters3/5

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

Schema description coverage is 86%, so the schema already documents most parameters. The description does not add extra parameter-specific meaning beyond mentioning the directory. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Log', the resource 'structured learning or error entries into .learnings/ directory', and the purpose for governance and distillation. It distinguishes from sibling tools which focus on memory operations or extracting skills.

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

Usage Guidelines5/5

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

The description explicitly lists four concrete scenarios when to use the tool: command/tool failure, user correction, knowledge gap discovery, and finding better approaches. This provides clear usage guidelines.

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

self_improvement_reviewA

Summarize governance backlog from .learnings/ files — pending, high-priority, and promoted counts.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It only states what the tool does (summarize) and its inputs (from .learnings/ files), but does not disclose side effects, read-only nature, performance characteristics, or whether it requires any prerequisites. 'Summarize' implies read-only but is not explicit.

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

Conciseness5/5

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

Single sentence that is concise and front-loaded with the core action and outputs. No redundant information.

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

Completeness4/5

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

Given no parameters, no output schema, and no annotations, the description adequately covers the tool's purpose and output. It is complete enough for a simple read-only summary tool, though it could mention whether results are live or cached.

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?

No parameters exist, so schema coverage is 100%. The description adds no parameter information but none is needed. Baseline 4 applies as the description adds value by clarifying the tool's output without needing to explain parameters.

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

Purpose5/5

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

The description clearly states the tool summarizes governance backlog from .learnings/ files, listing specific outputs (pending, high-priority, promoted counts). It uses a specific verb+resource and is distinct from sibling tools like memory operations and self_improvement log/extract.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. It does not mention when not to use it or provide context for selection, leaving the agent without decision support.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 14 tool updatesv2.6.0
    • First observedmemory_bulk_delete
    • First observedmemory_decay
    • First observedmemory_extract
    • First observedmemory_forget
    • First observedmemory_list
    • First observedmemory_migrate
    • First observedmemory_recall
    • First observedmemory_reflect
    • First observedmemory_stats
    • First observedmemory_store
    • First observedmemory_update
    • First observedself_improvement_extract_skill
    • First observedself_improvement_log
    • First observedself_improvement_review

TDQS

A3.7/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: memory operations (store, list, recall, update, forget, etc.) and self-improvement logging are separate concerns. No ambiguity between tools.

Naming Consistency5/5

All tools follow a consistent snake_case pattern with `memory_` or `self_improvement_` prefix, making predictable verb/noun structure throughout.

Tool Count5/5

14 tools is well-scoped for a memory management server, covering core operations and advanced features like decay and reflection without being excessive.

Completeness5/5

CRUD operations are fully covered, plus advanced features (decay, reflection, migration, statistics) and self-improvement logging. No obvious gaps for the domain.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    A persistent memory server for Claude Code that captures session context and tool outputs to inject relevant history into future sessions. It enables long-term recall through semantic search and automatic context management, allowing for more consistent and context-aware coding interactions.
    10
    253
    ISC
  • A
    license
    A
    quality
    D
    maintenance
    A personal memory system that provides AI assistants with long-term memory capabilities through semantic search and vector storage. It enables Claude Code to store, retrieve, and manage personal context and project preferences using flexible LLM backends.
    8
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Persistent memory for AI coding agents that stores and recalls preferences, decisions, and conventions via semantic similarity, with zero cloud dependencies and plug-and-play MCP integration for Claude Code.
    Apache 2.0

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/bcornish1797/MCP-Memory-LanceDB-Pro'

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