Skip to main content
Glama
noualit

llama-memory

by noualit

llama-memory

MCP Memory Service for llama-server with persistent history and semantic memory via Postgres + PGVector.

Note: This project is intended for local/demo use only. Do not expose it directly to the internet without additional hardening (HTTPS, proper auth, backups).

What it does

  • Semantic memory: save and retrieve memories by meaning, not just keywords.

  • Conversation bridge: LLM creates conversations automatically; memories are linked.

  • Cross-session recall: ask "what did we talk about before?" and get accurate answers.

  • MCP protocol: works directly with llama-server's built-in MCP support.

Related MCP server: engram

Requirements

  • Python 3.11 (Miniconda recommended)

  • PostgreSQL 16+ with PGVector extension

  • llama-server with --jinja flag (required for tool calling)

  • nomic-embed-text running on llama-server (port 8081 by default)

Installation

# Clone the repo
git clone https://github.com/noualit/llama-memory-local.git
cd llama-memory-local

# Create environment
conda create -n llama-memory python=3.11
conda activate llama-memory

# Install dependencies
pip install -e .

Configuration

Copy .env.example to .env and edit:

cp .env.example .env

Example:

# Database
DATABASE_URL="postgresql://postgres:yourpassword@localhost:5432/llamamem"

# Llama-server (LLM)
LLAMA_SERVER_BASE_URL="http://localhost:8080"

# Embedding model (nomic-embed-text via llama-server)
EMBEDDING_MODEL_URL="http://localhost:8081"

# Embedding model name (default: nomic-embed-text)
EMBEDDING_MODEL_NAME="nomic-embed-text"

# Service port
SERVICE_PORT=9001

Setup database

Create the database and run migrations:

psql -U postgres -c "CREATE DATABASE llamamem;"
alembic upgrade head

The application also ensures basic schema on startup for convenience.

Run the service

# Using the script
.\scripts\run_server.ps1

# Or directly
python -m uvicorn app.main:app --host 0.0.0.0 --port 9001

Connect to llama-server

Add to your llama-server MCP configuration:

{
  "mcpServers": {
    "llama-memory": {
      "url": "http://YOUR_SERVER_IP:9001/mcp"
    }
  }
}

The service must be reachable from llama-server. Use the actual IP, not localhost if they run on different machines.

MCP Tools

Tool

Description

create_conversation

Create a new conversation session

list_conversations

List conversations with memory count

get_conversation_history

Get all memories in a conversation

search_memories

Semantic search across all memories

save_memory

Store an important fact or decision

System prompt

You can:

  • Fetch the recommended system prompt from the service:

    • GET /system-prompt → returns plain text.

  • Or paste this minimal version into llama-server:

MEMORY WORKFLOW:
- At the start of each new conversation, call create_conversation with a short title.
- Use the conversation_id from create_conversation when calling save_memory.
- Before answering questions about past topics, call search_memories FIRST.
- When the user shares important information, save it with save_memory.
- If list_conversations has previous chats, check get_conversation_history for context.

Health check

curl http://localhost:9001/health

Returns DB status, embedding service status, and tool count.

Architecture

High-level structure:

  • app/main.py — FastAPI app, lifespan, /system-prompt

  • app/settings.py — Pydantic settings from .env

  • app/clients/embeddings.py — Calls nomic-embed-text for vectors

  • app/db/engine.py — asyncpg connection pool (singleton)

  • app/db/schema.py — Auto-creates tables on startup

  • app/mcp/endpoint.py — MCP protocol handlers, rate limiter

  • app/mcp/tools/ — Individual tool implementations

  • migrations/ — Alembic database migrations

Development

# Run tests
pytest tests/ -v

# Run with auto-reload
python -m uvicorn app.main:app --host 0.0.0.0 --port 9001 --reload

See CONTRIBUTING.md for contribution guidelines.

License

MIT (see LICENSE file).

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Persistent semantic memory server for AI assistants via MCP, enabling long-term context retention and semantic search across conversations.
    11
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides persistent, local-first AI memory across sessions via MCP tools for storing, searching, and retrieving context from past interactions.
    1
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Provides persistent memory for AI assistants via MCP, enabling them to store and recall facts, preferences, and tasks across conversations using either local file storage or a cloud backend with semantic search.
    5
    14
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Provides persistent memory with semantic search for MCP-based AI agents, enabling them to store and recall information across sessions using vector embeddings.
    4
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • Shared, governed long-term memory for AI agents across tools and sessions via MCP and REST.

  • Persistent memory for AI agents. Search, store, and recall across sessions.

  • Cross-AI personal memory. Save once in ChatGPT, recall in Claude, Mistral, Grok, or any MCP client.

View all MCP Connectors

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/noualit/llama-memory-local'

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