This document contains detailed configuration, setup, and advanced usage instructions for Memorizer.
- Create a PostgreSQL database for the application
- Install the pgvector extension in your database:
CREATE EXTENSION vector;
- Create the memories table:
CREATE TABLE memories ( id UUID PRIMARY KEY, type TEXT NOT NULL, content JSONB NOT NULL, source TEXT NOT NULL, embedding VECTOR(384) NOT NULL, tags TEXT[] NOT NULL, confidence DOUBLE PRECISION NOT NULL, created_at TIMESTAMP WITH TIME ZONE NOT NULL, updated_at TIMESTAMP WITH TIME ZONE NOT NULL );
Note: When setting configuration via environment variables (such as in Docker or cloud environments), you must prefix all variable names with
MEMORIZER_. This is required for the application to recognize the settings. For example, useMEMORIZER_Server__CanonicalUrlinstead ofServer__CanonicalUrl.
Configure the application settings in the .env file or as environment variables:
MEMORIZER_ConnectionStrings__Storage=Host=localhost;Port=5432;Database=memorizer;Username=postgres;Password=postgres
MEMORIZER_Embeddings__ApiUrl=http://localhost:11434
MEMORIZER_Embeddings__Model=all-minilm:33m-l12-v2-fp16
MEMORIZER_Server__CanonicalUrl=example.com:8080MEMORIZER_ConnectionStrings__Storage: PostgreSQL connection stringMEMORIZER_Embeddings__ApiUrl: URL of your embedding API (defaults to Ollama)MEMORIZER_Embeddings__Model: The embedding model to useMEMORIZER_Server__CanonicalUrl: (Optional) The canonical URL/hostname for this server. Used for generating MCP configuration. Defaults tolocalhost:{port}where port is extracted fromASPNETCORE_URLS
The server now provides an endpoint to get the MCP configuration JSON at /ui/mcp-config. This endpoint uses the MEMORIZER_Server__CanonicalUrl setting to generate the proper transport URL for MCP clients.
The Memorizer application is containerized with the following settings:
- Repository:
memorizer - Tags:
latest(and version when specified) - OS: Linux
- Supported architectures:
linux-x64,linux-arm64,linux-arm
PostgreSQL is configured with the following credentials:
- Host: localhost
- Port: 5432
- Database: memorizer
- Username: postgres
- Password: postgres
You can also use PgAdmin to manage the database at http://localhost:5050.
The system uses the all-minilm:33m-l12-v2-fp16 model from Ollama for generating embeddings.
To stop the infrastructure services, run:
docker-compose downTo stop and remove all volumes (which will delete all data), run:
docker-compose down -vMemory.cs: Defines the data model for memoriesStorage.cs: Handles database operations for storing and retrieving memoriesEmbeddingService.cs: Generates vector embeddings for textMemoryTools.cs: Implements MCP tools for interacting with the memory storage
The following MCP tools are available:
Store a new memory in the database.
type(string): The type of memory (e.g., 'conversation', 'document', etc.)content(string): The content of the memory as a JSON objectsource(string): The source of the memory (e.g., 'user', 'system', etc.)tags(string[]): Optional tags to categorize the memoryconfidence(double): Confidence score for the memory (0.0 to 1.0)
Search for memories similar to the provided text.
query(string): The text to search for similar memorieslimit(int): Maximum number of results to return (default: 10)minSimilarity(double): Minimum similarity threshold (0.0 to 1.0) (default: 0.7)filterTags(string[]): Optional tags to filter memories
Retrieve a specific memory by ID.
id(Guid): The ID of the memory to retrieve
Delete a memory by ID.
id(Guid): The ID of the memory to delete
If you're running both your client application and Memorizer in Docker containers using Docker Compose, ensure they're on the same network. Use the service name as the hostname:
{
"memorizer": {
"url": "http://memorizer-api:5000/sse"
}
}To test if your MCP connection is working:
- Start the Memorizer server
- Send a simple curl request to verify the server is responding:
curl http://localhost:5000/sseYou should receive a response confirming the SSE endpoint is available.
The server provides an endpoint to get the MCP configuration JSON at /ui/mcp-config. This endpoint generates the proper configuration using the Server__CanonicalUrl setting:
curl http://localhost:5000/ui/mcp-configThis will return JSON suitable for configuring MCP clients with the correct server URL.
If you want to customize or extend the database schema, see docs/schema-migrations.md for details on how migrations work, how to add new migrations, and best practices for schema changes.