@renzynx/memory-mcp
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., "@@renzynx/memory-mcpsave that I prefer Python over JavaScript"
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.
@renzynx/memory-mcp
A persistent memory MCP server with FTS5 fuzzy search. Compatible with Bun and Node.js.
Features
Persistent Storage: Data stored in
~/.mcp-memory/memory.dbsurvives npx/bunx cache clearsFuzzy Search: FTS5 with trigram tokenization for substring matching (
pyth→python)Token Efficient: Results in TOON format for minimal token usage
Auto Maintenance: Prunes entries older than 30 days, creates backups on startup
Cross Runtime: Works with both Bun and Node.js
Related MCP server: agent-memory
Installation
npx @renzynx/memory-mcp
# or
bunx @renzynx/memory-mcpConfiguration
OpenCode
Add to ~/.config/opencode/opencode.jsonc:
{
"mcp": {
"memory": {
"type": "local",
"command": ["bunx", "@renzynx/memory-mcp"]
}
}
}Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"memory": {
"command": "npx",
"args": ["@renzynx/memory-mcp"]
}
}
}Tools
save_memory
Store information with a category.
save_memory(content: string, category: string)Categories: preferences, facts, context, projects, conventions
search_memories
Fuzzy search stored memories. Returns TOON format or Ø if empty.
search_memories(query: string)list_categories
List all unique categories. Returns TOON format or Ø if empty.
list_categories()Agent Instructions
Add to your agent system prompt:
## Memory System
You have access to a persistent memory system via MCP tools. Use it proactively to remember important information across sessions.
### Tools Available
- `save_memory(content, category)` - Store information with a category
- `search_memories(query)` - Fuzzy search (supports partial matches like "pyth" → "python")
- `list_categories()` - View all memory categories
### When to Save Memories
- User preferences (coding style, tools, frameworks, communication preferences)
- Project context (architecture decisions, file structures, conventions)
- Facts about the user (name, role, team, timezone)
- Recurring tasks or workflows
- Corrections or clarifications the user provides
- Important decisions and their rationale
### Categories to Use
- `preferences` - User preferences and settings
- `facts` - Information about the user or their environment
- `projects` - Project-specific context and decisions
- `conventions` - Coding standards and patterns
- `context` - Session or task context worth preserving
### When to Search Memories
- At the start of conversations to recall user context
- Before making assumptions about preferences
- When the user references something previously discussed
- Before suggesting tools, patterns, or approaches
### Output Format
Results return in TOON format for token efficiency. "Ø" means no results found.
### Best Practices
- Save incrementally, not everything at once
- Use specific, searchable content
- Search before asking the user to repeat themselves
- Update memories when information changes (save new version)License
MIT
Available Tools
3 toolslist_categoriesA
List all unique memory categories. Returns TOON-formatted list or 'Ø' if empty.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the burden of disclosing behavior. It explicitly states the return format ('TOON-formatted list') and the empty-case sentinel ('Ø'), which is useful behavioral context. The verb 'List' also implies a read-only operation, though it does not elaborate on authentication, side effects, or error conditions.
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, tightly written sentence that states the action, the resource scope, and the return behavior with no wasted words. Every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter list tool with no output schema, the description is complete: it names what is returned and the special empty result. The sibling tools are sufficiently different that no additional routing or prerequisite information is necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so no parameter documentation is needed. The description does not need to add parameter semantics, and the baseline of 4 for a tool with no parameters 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 uses the specific verb 'List' with the resource 'all unique memory categories', making the tool's purpose immediately clear. It is distinguishable from siblings save_memory and search_memories because it targets categories rather than individual memories or memory search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for retrieving all unique categories, so an agent can infer when to use it. However, it does not explicitly state when to use it versus search_memories or save_memory, nor does it provide any exclusion criteria or alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_memoryA
Persist a memory with categorization. Use for storing facts, preferences, context, or any information that should be recalled later.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | The memory content to store | |
| category | Yes | Category for organization (e.g., 'preferences', 'facts', 'context', 'projects') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of behavioral disclosure. It only restates the persist action and mentions categorization; it does not disclose whether saving overwrites or duplicates existing memories, whether categories must pre-exist, or what response/confirmation is returned. This adds little beyond what the schema already communicates.
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 and front-loaded: the action is stated in the first sentence, followed by concrete use cases in the second. There is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a low-complexity tool: two scalar required parameters, no nested objects, no output schema. The description plus schema are sufficient for an agent to understand what to pass and why. The main missing context is behavior around duplicates or overwrites, but for selecting and invoking the tool, the information is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both content and category adequately described and category examples provided. The description adds no new parameter-level meaning beyond the schema, so the baseline 3 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 uses a specific verb ('persist') and resource ('a memory') and clarifies the kinds of information to store (facts, preferences, context). It does not explicitly contrast with sibling tools, but 'search' and 'list' are clearly different operations, so differentiation is implicit.
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?
It gives clear usage context: use for storing facts, preferences, context, or any information that should be recalled later. It doesn't explicitly say when not to use it or direct users to search_memories for retrieval, but the storing-vs-searching relationship is implied clearly enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_memoriesA
Search stored memories using fuzzy substring matching. Supports partial words and phrases. Returns results in TOON format for token efficiency. Returns 'Ø' if no matches.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query - supports substring matching (e.g., 'pyth' matches 'python') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden and does it well: it discloses the matching algorithm, partial-word support, the TOON return format, and the 'Ø' no-match sentinel. It does not discuss side effects, but as a search operation the read-only nature is reasonably implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences that front-load the operation, then add matching semantics, return format, and no-match behavior. Every sentence carries useful, non-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?
For a single-parameter search with no output schema, this definition is complete: it states what to pass, how matching works, what the response format is, and the sentinel for no matches. No critical operational gap remains.
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 query parameter already includes a substring-matching example. The description reinforces fuzzy matching but adds little parameter-specific meaning beyond the schema, so the baseline of 3 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 the tool searches stored memories using fuzzy substring matching, with support for partial words and phrases. This distinguishes it from siblings save_memory and list_categories, which are write and list operations respectively.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use this tool when needing to retrieve memories by text query with fuzzy/partial matching. It does not explicitly name alternatives, but the search semantics are self-evident and do not conflict with the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
3 tool updates
v1.1.0- First observed
list_categories - First observed
save_memory - First observed
search_memories
TDQS
Each tool has a clearly distinct purpose: storing memories, searching them, and listing categories. There is no functional overlap between the three operations.
All tool names follow a predictable verb_noun snake_case pattern: save_memory, search_memories, list_categories. The singular/plural noun variation is natural and does not create confusion.
Three tools is a minimal but well-scoped set for a focused memory server. Each tool covers a distinct core operation without unnecessary bloat.
The server supports saving, searching, and listing categories, but lacks update and delete operations for memories. This creates a notable lifecycle gap where incorrect or obsolete memories cannot be corrected or removed.
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
Cloud-hosted MCP server for durable AI memory
Hosted MCP memory: save sessions/decisions once, search from Claude, Cursor, ChatGPT. EU-hosted FTS.
Token-efficient MCP memory for Markdown vaults. Tiered search, GraphRAG, AI memories.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenancePersistent memory MCP server for AI coding agents. Stores, searches, and retrieves context across sessions using SQLite and FTS5.-
- AlicenseNot gradedqualityDmaintenanceMCP server providing persistent memory management for AI agents using SQLite and FTS5, enabling storage, full-text search, and recall of memories with namespace isolation.1MIT
- AlicenseAqualityCmaintenancePersistent memory MCP server for AI agents, using SQLite with hybrid keyword and semantic search for long-term memory storage.5Do What The F*ck You Want To Public

hive-memoryofficial
AlicenseNot gradedqualityBmaintenanceMCP server for personal and shared memory with full-text search (SQLite FTS5) and outcome tracking, compatible with any MCP agent like Claude Code, Cursor, and Codex CLI.15MIT
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/renzynx/memory-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server