MCP-Memory-LanceDB-Pro
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., "@MCP-Memory-LanceDB-ProWhat did I decide about logging last time?"
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.
š§ 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).
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 install2. 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 |
| Hybrid search with vector + BM25 + cross-encoder reranking |
| Store with auto-chunking, smart metadata, and auto-categorization |
| Delete by ID or search query |
| Update text, importance, or category (triggers re-embedding) |
| Usage statistics by scope and category |
| List recent memories with scope/category filters |
Intelligent Processing
Tool | Description |
| LLM-powered smart extraction from conversation text |
| Weibull intelligent forgetting ā clean stale memories |
| Reflection pipeline ā extract invariant rules and derived knowledge |
| Bulk delete by scope, category, or age |
| Legacy database migration |
Self-Improvement
Tool | Description |
| Log structured learnings or errors |
| Governance backlog summary |
| 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 |
| LanceDB vector storage with FTS/BM25 indexing |
Embedding |
| Jina/OpenAI-compatible embeddings with task-aware API |
Retrieval |
| Hybrid vector+BM25 with RRF fusion and 6-stage scoring pipeline |
Smart Extraction |
| LLM-powered 6-category memory classification |
Decay |
| Weibull stretched-exponential decay with tier-based lifecycle |
Scopes |
| Multi-scope access control and isolation |
Noise Filter |
| Regex + embedding-based noise rejection |
Reflection |
| Session reflection and knowledge distillation |
Self-Improvement |
| Structured learning/error governance |
Configuration
Environment Variables
Variable | Required | Default | Description |
| Yes | ā | Jina AI API key for embeddings |
| No | ā | LLM API key for smart extraction |
| No |
| LLM model for extraction |
| No |
| LLM API endpoint |
| No | ā | Reranker API key |
| No |
|
|
| No |
| Reranker model name |
| No |
| Reranker API endpoint |
| No |
| LanceDB database path |
| No |
| Default memory scope |
Supported Providers
Embedding:
Provider | Model | Notes |
Jina AI |
| Recommended, task-aware |
OpenAI |
| Widely available |
Ollama |
| Free, local |
Reranking:
Provider | Model | Notes |
Jina AI |
| High quality |
SiliconFlow |
| Free tier available |
Voyage AI |
| Alternative |
LLM (for smart extraction):
Any OpenAI-compatible API ā OpenAI, Anthropic, z.ai, MiniMax, Ollama, etc.
Memory Scopes
Scope | Purpose |
| Private to your primary agent |
| Private to a secondary agent |
| Shared across all agents |
| Project-specific context |
How Auto-Capture Works
The Stop hook runs after every Claude response:
Reads
last_assistant_messagefrom hook stdinFilters through
shouldCapture()(length, noise, CJK-aware)Auto-categorizes via
detectCategory()Embeds via Jina API
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 ResultsBased 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
Based on memory-lancedb-pro (MIT License, Copyright (c) 2026 win4r).
Available Tools
14 toolsmemory_bulk_deleteB
Bulk delete memories by scope, category, or age.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | Delete all memories in this scope | |
| category | No | Delete all memories of this category | |
| olderThanDays | No | Delete memories older than N days | |
| dryRun | No | Only report what would be deleted |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| dryRun | No | If true, only report what would be removed without deleting |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Conversation text to extract memories from | |
| scope | No | Target scope for extracted memories | agent:primary |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| memoryId | No | Memory ID (full UUID or 8+ char prefix) | |
| query | No | Search query to find and delete best match |
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 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | ||
| category | No | ||
| limit | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| sourcePath | Yes | Path to legacy LanceDB database |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | What you want to remember ā natural language | |
| limit | No | Max results (default: 5) | |
| scope | No | Filter: agent:primary, agent:secondary, global, project:alpha, project:beta | |
| category | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Conversation or session text to reflect on | |
| scope | No | Target scope for reflection memories | agent:primary |
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 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.
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.
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.
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.
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.
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.
| 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 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Information to remember ā be specific | |
| scope | No | agent:primary (private), global (shared), project:alpha, project:beta | agent:primary |
| category | No | other | |
| importance | No | 0-1 (default: 0.7) |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| memoryId | Yes | Memory ID | |
| text | No | New text (triggers re-embedding) | |
| importance | No | ||
| category | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| learningId | Yes | Learning ID like LRN-YYYYMMDD-001 | |
| skillName | Yes | Skill folder name, lowercase with hyphens | |
| sourceFile | No | LEARNINGS.md |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Entry type | |
| summary | Yes | One-line summary | |
| details | No | Detailed context or error output | |
| suggestedAction | No | Action to prevent recurrence | |
| category | No | correction/best_practice/knowledge_gap | |
| area | No | frontend/backend/infra/tests/docs/config | |
| priority | No |
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 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
14 tool updates
v2.6.0- First observed
memory_bulk_delete - First observed
memory_decay - First observed
memory_extract - First observed
memory_forget - First observed
memory_list - First observed
memory_migrate - First observed
memory_recall - First observed
memory_reflect - First observed
memory_stats - First observed
memory_store - First observed
memory_update - First observed
self_improvement_extract_skill - First observed
self_improvement_log - First observed
self_improvement_review
TDQS
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.
All tools follow a consistent snake_case pattern with `memory_` or `self_improvement_` prefix, making predictable verb/noun structure throughout.
14 tools is well-scoped for a memory management server, covering core operations and advanced features like decay and reflection without being excessive.
CRUD operations are fully covered, plus advanced features (decay, reflection, migration, statistics) and self-improvement logging. No obvious gaps for the domain.
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 memory for Claude Code and Cursor. Stop re-explaining your project every session.
Persistent cross-session memory shared by Codex, Claude Code, ChatGPT, and other AI agents.
Long-term memory for AI assistants. Hybrid retrieval, query expansion, auto-topics.
Memory system for AI agents with semantic search. Store and recall memories with ease.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceA 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.10253ISC
- AlicenseAqualityDmaintenanceA 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.8MIT
- AlicenseNot gradedqualityCmaintenanceGives Claude Code long-term memory that persists across sessions via hybrid BM25 and vector semantic search, with multi-project isolation.118MIT
- AlicenseNot gradedqualityBmaintenancePersistent 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
- 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/bcornish1797/MCP-Memory-LanceDB-Pro'
If you have feedback or need assistance with the MCP directory API, please join our Discord server