Generated banner for Memorizer
Generated logo for Memorizer

Memorizer

Memory serverOfficial Petabridge project

Created by Dario Griffo

Published in petabridge/memorizer. Publisher page

221 GitHub stars

What it is

Vector-search powered agent memory MCP server
— the description by Dario Griffo

AutoGineer overview, from the brain’s own files

Memorizer is a dedicated memory service designed to give AI agents persistent, long-term storage capabilities. It functions as an MCP server, allowing agents to store, retrieve, and semantically search through structured memories. Built on .NET and PostgreSQL with the pgvector extension, it supports advanced features like versioning, audit trails, relationship mapping for knowledge graphs, and workspace-based organization. It includes a web-based UI for manual management and provides a robust framework for agents to proactively manage their own knowledge base, ensuring that insights and context are preserved across sessions.

How it works

Memory model: Hybrid

AutoGineer overview, from the brain’s own files

Memorizer runs as a service that connects to an AI agent via the Model Context Protocol. It stores data in a PostgreSQL database, utilizing vector embeddings for semantic similarity searches. The system organizes information into workspaces and projects, supports metadata tagging, and tracks version history for all memory entries. Agents interact with the service through a set of defined tools for CRUD operations, metadata updates, and relationship creation, enabling the construction of an interconnected knowledge graph.

Folders
FolderRoleFiles
.githubagent-config4
docsdocs37
scriptsscripts3
srcsource-code195
.configfolder1

The agent writes

Requirements

Databases: PostgreSQL

Works with: Claude Code, OpenCode, Devin (ex-Windsurf)

Set it up

  1. Not scanned by AutoGineerThe author’s README also describes installing it with Docker Compose. Read its install section: AutoGineer did not scan that path. https://github.com/petabridge/memorizer/blob/d3e90fa8d6b50254d65a3ffa3acc35e0204c5c90/README.md#-quick-start-public-image
  2. Created by Dario Griffo. Published in petabridge/memorizer. Licence: MIT License.

Usage

AutoGineer overview, from the brain’s own files

  • Connects to AI agents via the Model Context Protocol (MCP) to provide persistent memory.
  • Enables semantic search to retrieve relevant context based on task descriptions.
  • Supports proactive memory management where agents store, update, and relate information autonomously.
  • Provides a web interface for human users to manage, audit, and organize memory entries.
  • Facilitates knowledge graph construction by creating explicit relationships between memory nodes.
“Search for previous instructions on how to configure the build pipeline.”
The agent queries the memory server using semantic similarity to find relevant 'how-to' notes and returns the specific configuration steps.
“Store this new insight about the project architecture as a reference.”
The agent saves the markdown content to the memory server with appropriate tags and metadata for future retrieval.
“Link this new task to the related project requirements memory.”
The agent creates a relationship edge between the new memory ID and the existing requirements memory ID.

Documentation by Dario Griffo

Memorizer

Image: Docker Pulls Image: GitHub License Image: GitHub Actions Workflow Status Image: GitHub Release

Memorizer is a .NET-based service that allows AI agents to store, retrieve, and search through memories using vector embeddings. It leverages PostgreSQL with the pgvector extension to provide efficient similarity search capabilities.

Image: Memorizer - Memory List

Key features:

  • Workspaces & Projects - Organize memories into hierarchical workspaces and projects with status tracking

  • Store structured memories with vector embeddings

  • Retrieve memories by ID

  • Semantic search through memories using vector similarity

  • Filter search results using tags

  • Edit memory content with automatic versioning and change tracking

  • Update memory metadata (title, type, tags, confidence) independently

  • Revert memories to previous versions with full audit trail

  • Create relationships between memories to form knowledge graphs

  • Web UI for manually adding, editing, deleting, viewing memories, and managing versions

  • Provider Settings - Configure embedding and LLM providers through the UI (Ollama, OpenAI, and compatible APIs)

  • MCP (Model Context Protocol) integration for easy use with AI agents

  • Light & Dark theme support

Image: Memorizer - Workspace Detail

Technologies

  • .NET 10.0

  • PostgreSQL with pgvector extension

  • Model Context Protocol (MCP)

  • ASP.NET Core

  • Akka.NET for background jobs, such as re-embedding memories if you change algorithms

  • Npgsql for PostgreSQL connectivity


📖 Documentation


Installation with Docker

🐳 Quick Start (Public Image)

The easiest way to get started is using the pre-built Docker image and our docker-compose.yml file:

docker-compose up -d

This will:

View the Memorizer Web UI on http://localhost:5000.

🚀 Local Development Builds

If you want to build and run from source:

Prerequisites
  • Docker and Docker Compose

  • .NET 10.0 SDK

1. Build and Publish Local Container
# From solution root directory
# Build and publish the .NET container
dotnet publish -c Release /t:PublishContainer

This creates a container image named memorizer:latest.

2. Start Infrastructure and Application
docker-compose -f docker-compose.local.yml up -d

This starts the same services but uses your locally built image.


Upgrading to Memorizer 2.0

NOTE
The upgrade from Memorizer 1.x to 2.0 is designed to work automatically. All schema migrations run on startup and have been thoroughly tested. Your existing memories will be preserved and continue to work as expected.

CAUTION
We recommend backing up your database before upgrading, as a standard best practice. Memorizer 2.0 runs automatic schema migrations on startup that alter tables and add new columns. While we've tested these migrations extensively, having a backup ensures you can recover in the unlikely event that something goes wrong.

Backup Instructions

NOTE
The container names below (e.g., memorizer-postgres) are based on the default docker-compose.yml. If you've customized your Docker Compose file, adjust the container name accordingly.

Before pulling the new Memorizer 2.0 image, create a PostgreSQL dump of your existing database:

# Create a full database backup
docker exec postgmem-postgres pg_dump -U postgres postgmem > memorizer-backup-$(date +%Y%m%d).sql

# Or use pg_dump with compression
docker exec postgmem-postgres pg_dump -U postgres -Fc postgmem > memorizer-backup-$(date +%Y%m%d).dump

To restore from a backup if needed:

# Restore from SQL dump
docker exec -i postgmem-postgres psql -U postgres postgmem < memorizer-backup-20250207.sql

# Or restore from compressed dump
docker exec -i postgmem-postgres pg_restore -U postgres -d postgmem memorizer-backup-20250207.dump
Updating
# make sure you have created a backup before starting here
git pull
docker-compose down
docker-compose pull memorizer
docker-compose up -d
Breaking Changes in 2.0
  • MCP endpoint moved from / to /mcp. Update your MCP client configurations from http://localhost:5000 to http://localhost:5000/mcp.

  • Web UI moved from /ui to /. The Web UI is now at the root path.

  • New database tables: Workspaces, projects, provider settings, data migrations, and archetype tracking are added automatically on first startup.

  • Existing memories are preserved: All your V1 memories will continue to work. They will appear as "Unfiled" until you organize them into workspaces and projects.

After Upgrading

TIP
Once the upgrade is complete, ask your AI agent to suggest workspaces and projects to organize your existing memories into. Memorizer 2.0's workspace and project system helps you keep memories structured and easy to find - and your agent can analyze your existing memories to recommend a good organizational scheme.


🔌 MCP Configuration Example

To use Memorizer with any MCP-compatible client, add the following to your configuration (e.g., mcp.json):

{
  "memorizer": {
    "url": "http://localhost:5000/mcp"
  }
}

This uses the modern Streamable HTTP transport (MCP spec 2025-03-26+). Note that the MCP endpoint is at /mcp (changed from / in 2.0).


🖥️ Web UI

Memorizer includes a web-based user interface for managing memories through your browser.

Access the Web UI

Once the application is running (via docker-compose up -d), you can access the Web UI at:

http://localhost:5000/

Features
  • Memory Management: Create, view, edit, and delete memories with full CRUD operations

  • Version Control: View version history, compare versions with visual diffs, and revert to previous versions

  • Search & Filter: Search memories using semantic similarity and filter by tags

  • Statistics Dashboard: View memory counts, tag distributions, and system statistics

  • MCP Configuration: Get the MCP configuration JSON for connecting clients at /mcp-config

The Web UI provides a user-friendly interface for all Memorizer functionality, making it easy to manage your AI agent's memory without needing to use the MCP tools directly.


🧠 Example System Prompt for LLMs

IMPORTANT
⚡ Pro Tip: Add this system prompt to your AGENT.md, Cursor Rules files, or any AI agent configuration! This will dramatically improve how often and effectively your LLM uses the Memorizer service for persistent memory management.

You have access to a long-term memory system via the Model Context Protocol (MCP) at the endpoint memorizer. Use the following tools:

Storage & Retrieval:

  • store: Store a new memory. Parameters: type, text (markdown), source, title, tags, confidence, relatedTo (optional, memory ID), relationshipType (optional).

  • searchMemories: Search for similar memories using semantic similarity. Parameters: query, limit, minSimilarity, filterTags.

  • get: Retrieve a memory by ID. Parameters: id, includeVersionHistory, versionNumber.

  • getMany: Retrieve multiple memories by their IDs. Parameter: ids (list of IDs).

  • delete: Delete a memory by ID. Parameter: id.

Editing & Updates:

  • edit: Edit memory content using find-and-replace (ideal for checking off to-do items, updating sections). Parameters: id, old_text, new_text, replace_all.

  • updateMetadata: Update memory metadata (title, type, tags, confidence) without changing content. Parameters: id, title, type, tags, confidence.

Relationships & Versioning:

  • createRelationship: Create a relationship between two memories. Parameters: fromId, toId, type (e.g., 'example-of', 'explains', 'related-to').

  • revertToVersion: Revert a memory to a previous version. Parameters: id, versionNumber, changedBy.

All edits and updates are automatically versioned, allowing you to track changes and revert if needed. Use these tools to remember, recall, edit, relate, and manage information as needed to assist the user.


License

MIT


💖 Attribution

Made with ❤️ by Petabridge

Originally forked from Dario Griffo's postg-mem server

RELEASE_NOTES.md

2.3.3 November 2nd 2026

Bug Fixes

  • Disable search evaluation endpoints unless explicitly enabled - The internal /api/search-eval endpoints are now off by default

    • Previously all six evaluation routes were reachable in every environment without authentication: they could seed or delete a synthetic corpus and trigger compute-heavy embedding work

    • A new SearchEval:Enabled setting defaults to false; while disabled the endpoints return 404 so they are not advertised

    • The gate runs as a resource filter, before model binding and controller activation, so malformed requests cannot reach storage or start embeddings

    • Enable locally with MEMORIZER_SearchEval__Enabled=true; keep it disabled in production

2.3.2 October 21st 2026

Bug Fixes

  • Use Ollama's /api/embed with truncate so long memories can be stored - Memories longer than the embedding model's context window now store instead of failing

    • Previously any memory whose title plus text exceeded the context window failed with "the input length exceeds the context length" — with the default all-minilm model (256 tokens), that is anything over roughly 700 characters

    • The Ollama client now calls /api/embed with truncate: true in place of the legacy /api/embeddings endpoint, so the text is stored in full and its embedding is computed from the part that fits

    • Existing embeddings stay valid: /api/embed returns L2-normalised vectors and search ranks by cosine distance

    • Search can still only match the text that fits the context window — widening that needs a larger-context model

  • Return an honest error when a write can't generate its embedding - A failed write says what went wrong and states that nothing was saved

    • The previous generic "check the arguments against the tool's schema and retry" reply was misleading, since the arguments were not the problem

    • The message now names the model, reports the input length, distinguishes text-too-long from backend-unavailable, and passes the backend's own error through

2.3.1 August 21st 2026

Features

  • Agent-friendly tool ergonomics: defaults and loose id parsing - Fewer well-intentioned tool calls fail

    • store now requires only text and title; type defaults to reference and source to LLM (title stays required — it is the primary text indexed for search)

    • Memory id parameters across get, get_many, delete, edit, update_metadata, revert_to_version, archive, restore, create_reference, and move_memory now accept ids as returned by store or search — tolerating doc-/memory- prefixes, the 32-hex form, and pasted /view/{id} URLs

Bug Fixes

  • Own the MCP tool-argument error surface - MCP tools now return a correctable message when a required argument is missing or malformed, instead of the opaque "An error occurred invoking '<tool>'" produced by the 2.2.0 SDK marshaller

    • A CallTool validation boundary checks arguments against each tool's advertised schema before the SDK marshaller runs, so no opaque error reaches the client

    • Restores the resilience intent of #166 and #184 that the 2.3.0 SDK upgrade had bypassed

2.3.0 August 17th 2026

Features

Security

Bug Fixes

2.2.0 July 3rd 2026

Features

  • Support get_workspace by slug - The GetWorkspace MCP tool now accepts workspace slugs in addition to IDs

    • Enables workspace lookup without needing to know the workspace ID in advance

    • Slug matching is case-insensitive

Bug Fixes

  • Make MCP tools resilient to missing required parameters - MCP tools now return descriptive error messages when required parameters are missing or malformed, instead of throwing unhandled exceptions

    • Fixes compatibility with MCP clients (Claude Code, opencode) that may omit required parameters

    • Affected tools: Store, Edit, CreateReference, MoveMemory

2.2.0-beta2 July 1st 2026

Features

  • Add workspace scope to memory tools - Memory search and storage now support workspace-level scoping

    • SearchMemories can filter by workspace ID to query all memories in a workspace in a single call

    • Store supports assigning memories directly to workspaces (not just projects)

    • Closes scoping gaps for agents operating at the workspace level

2.2.0-beta1 June 26th 2026

Features

  • Add cross-project tag filtering with multi-tag selection and dynamic filter panel - Filter memories across projects and workspaces by tags, type, and location from a persistent filter panel

    • Multi-tag selection with searchable suggestions and removable filter badges

    • Tag suggestions and location filters update dynamically based on the current filter context

    • Memory cards show owner badges when filtering across locations, and tag badges link directly to filtered results

    • MCP GetByFilter supports filtering by type, location, and tags

  • Harden OpenAI-compatible embedding provider support - Improves OpenAI-compatible embedding provider configuration, migration behavior, and credential safety

    • Embedding API keys are read from runtime configuration instead of persisted provider settings

    • Sensitive provider configuration values are stripped before API display or database storage

    • Adds a database migration to remove previously persisted provider API keys from provider_settings.config

    • Makes fallback embedding dimensions safer during dimension migrations

Bug Fixes

Updates

2.1.0 March 4th 2026

Features

  • Add move-project-to-workspace and workspace reparenting - Move projects between workspaces and reparent workspaces in the hierarchy

    • MoveProjectToWorkspaceAsync atomically moves a project and all its descendants to a target workspace

    • Workspace reparenting with circular-reference guard to prevent invalid hierarchies

    • Full support across REST API, MCP tools, and Web UI with modal dialogs

  • Add canonical URL support to MCP tool responses - MCP tool responses now include clickable URLs to the web UI for memories, workspaces, and projects

    • Configure via Server:CanonicalUrl setting to enable links in MCP responses

    • URLs included in Store, Get, SearchMemories, GetMany, CreateWorkspace, CreateProject, GetWorkspace, and GetProjectContext responses

Bug Fixes

2.1.0-beta1 February 15th 2026

Features

  • Improve search quality with hybrid text + vector search - Combines PostgreSQL full-text search with vector similarity search using Reciprocal Rank Fusion (RRF) to dramatically improve search relevance

    • Queries like "race condition", "phobos", and "dependency injection" that previously returned zero results now surface relevant matches

    • AND-prefix FTS matching handles stemming mismatches (e.g., "postgres" matches "postgresql")

    • Adaptive weighting favors text matching for short queries, both methods equally for longer queries

    • Workspace and project search also use hybrid approach for better name matching

    • New database migration adds search_vector tsvector column with GIN index

Bug Fixes

Updates

2.0.1 February 12th 2026

Improvements

Bug Fixes

Documentation

2.0.0 February 7th 2026

Major Release - Memorizer V2 Merge

This release merges all Memorizer V2 features into the open-source repository, bringing significant new capabilities for organizing and managing AI agent memories.

CAUTION
Back up your database before upgrading. Memorizer 2.0 runs automatic schema migrations on startup that alter tables and add new columns. These migrations are not reversible. Create a pg_dump of your database before pulling the new image. See the Upgrading to Memorizer 2.0 section in the README for backup instructions.

Breaking Changes

  • MCP endpoint moved from / to /mcp. Update client configs from http://localhost:5000 to http://localhost:5000/mcp

  • Web UI moved from /ui to /. The Web UI is now at the root path.

New Features

  • Workspaces: Organize memories into isolated workspaces with independent configurations

  • Projects: Group related memories within workspaces for better organization

  • Provider Settings: Configure AI providers (embedding models, LLM endpoints) per-workspace

  • Structured Memory Types: Support for documents, records, and references with distinct behaviors

  • Memory Archiving: Archive memories instead of deleting them, with restore capability

  • System Memories: Hidden system index memories for semantic project/workspace search

  • Unit Tests: New unit test project for core domain logic

Database Migrations

  • Migrations 011-019 run automatically on startup

  • Existing V1 databases will be upgraded seamlessly with new tables for workspaces, projects, provider settings, and structured memory types

V2 Release History (from private development)

  • 2.0.9: Fix broken navigation links, add Archetype field to MemorySummaryDto

  • 2.0.8: Fix archived memories filtering, add archetype visibility to MCP tools

  • 2.0.7: Add system memories for semantic project/workspace search

1.9.0 November 29th 2025

Features

  • Add memory versioning with full audit trail and diff support - Comprehensive version tracking system that records all changes to memories with complete history

    • Edit Tool: Targeted text replacements with automatic version snapshots

    • UpdateMetadata Tool: Update memory metadata (type, tags, confidence, title) without changing content

    • RevertToVersion Tool: Restore previous versions of memories

    • Visual Diffs: Line-by-line comparison between versions in Web UI

    • Event Audit Log: Complete operation history for compliance and debugging

  • Add memory similarity discovery feature - Surface related memories using vector similarity search with optional relationship persistence

    • On-demand similarity queries with configurable threshold (50-95%)

    • UI slider to adjust similarity sensitivity

    • Create bidirectional similar-to relationships with scores

    • Helps evaluate embedding model quality and build knowledge graphs

  • Add automatic embedding dimension detection and migration - Automatically detect and migrate embeddings when switching between models with different dimensions

    • Detects dimension mismatches at startup

    • Provides UI warnings and migration tools

    • Preserves existing data during model transitions

Improvements

  • Switch search and similarity to use metadata embeddings - MCP search and similarity discovery now use metadata embeddings (title + tags) instead of full content embeddings for significantly better keyword query results

    • Treats metadata as higher weight than body content for similarity matching

    • Aligns MCP tool behavior with web UI search

  • Add lightweight search results to optimize context window usage - MCP search returns lightweight results by default to prevent swamping agent context windows

    • Returns ID, title, type, tags, similarity score, and creation date

    • Agents use Get or GetMany tools to retrieve full content as needed

    • Configurable via Search:ReturnFullContent setting (default: false)

Bug Fixes

Documentation

Updates

1.9.0-beta3 November 28th 2025

Improvements

  • Switch search and similarity to use metadata embeddings - MCP search and similarity discovery now use metadata embeddings (title + tags) instead of full content embeddings for significantly better keyword query results

    • Treats metadata as higher weight than body content for similarity matching

    • Aligns MCP tool behavior with web UI search

  • Add lightweight search results to optimize context window usage - MCP search returns lightweight results by default to prevent swamping agent context windows

    • Returns ID, title, type, tags, similarity score, and creation date

    • Agents use Get or GetMany tools to retrieve full content as needed

    • Configurable via Search:ReturnFullContent setting (default: false)

Bug Fixes

Updates

1.9.0-beta2 November 28th 2025

Features

  • Add memory similarity discovery feature - Surface related memories using vector similarity search with optional relationship persistence

    • On-demand similarity queries with configurable threshold (50-95%)

    • UI slider to adjust similarity sensitivity

    • Create bidirectional similar-to relationships with scores

    • Helps evaluate embedding model quality and build knowledge graphs

  • Add automatic embedding dimension detection and migration - Automatically detect and migrate embeddings when switching between models with different dimensions

    • Detects dimension mismatches at startup

    • Provides UI warnings and migration tools

    • Preserves existing data during model transitions

Bug Fixes

Documentation

1.9.0-beta1 November 27th 2025

Features

  • Add memory versioning with full audit trail and diff support - Comprehensive version tracking system that records all changes to memories with complete history

    • Edit Tool: Targeted text replacements with automatic version snapshots

    • UpdateMetadata Tool: Update memory metadata (type, tags, confidence, title) without changing content

    • RevertToVersion Tool: Restore previous versions of memories

    • Visual Diffs: Line-by-line comparison between versions in Web UI

    • Event Audit Log: Complete operation history for compliance and debugging

Bug Fixes

Updates

1.8.0 November 25th 2025

Features

Updates

Bug Fixes

1.7.1 October 10th 2025

Breaking Changes

  • MCP Endpoint Configuration Updated: The recommended MCP endpoint has changed from /sse to the root path / to use modern Streamable HTTP transport (MCP spec 2025-03-26+)

Bug Fixes

Updates

1.7.0 October 9th 2025

Features

Updates

1.6.1 July 24th 2025
260 files · 244 not served here

Advantages

  • Provides persistent, long-term memory that survives agent session resets. evidence: README.md
  • Supports semantic search through vector embeddings, allowing for context-aware retrieval. evidence: README.md
  • Includes full versioning and audit trails for all memory modifications. evidence: README.md
  • Allows for the creation of knowledge graphs by linking related memories. evidence: README.md

Limitations

  • Requires external infrastructure including PostgreSQL with pgvector and an embedding provider. evidence: README.md
  • Requires manual configuration of MCP clients to point to the correct endpoint. evidence: README.md
  • Upgrades may require database backups and potential schema migrations. evidence: README.md

Security

Risk level: No risk found

This brain runs

This brain runs nothing: AutoGineer found no hooks, scripts, plugin code or MCP servers in its files.

Attribution and licence

Created by
Dario Griffo
Publisher
Petabridge (Official Petabridge project)
Source
petabridge/memorizer · commit d3e90fa
Licence
MIT License (files served here)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by Dario Griffo or Petabridge.

Install from source

244 of its files are not served here, so there is no ZIP. petabridge/memorizer at d3e90fa