Prototyp · Vorschau: alle Server aus der offiziellen Registry, alle 30 Minuten synchronisiert. Bewertungen und Benutzerkonten folgen in einem späteren Schritt.
PopNx MCPMCP-Server für alle, die KI nutzen · in einfachen Worten erklärt

Postgram

von ivo-tobyVersion 0.1.3i★ –iLäuft auf deinem Computer
Name in der Registryio.github.ivo-toby/postgram

Installieren

Überblick

Beschreibung vom Entwickler (englisches Original)

Self-hosted memory for AI agents with hybrid search, knowledge graphs, tasks, and document sync.

Die drei Säulen von PopNx MCP

Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.

Was du damit machen kannst

Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.

  • Verbindung: Läuft auf deinem Computer
  • Transport: Streamable HTTP
  • Kategorie: Suche & KI-Gedächtnis
  • Das musst du eintragen: DATABASE_URL, OPENAI_API_KEY, ADMIN_MFA_SECRET_KEY, ADMIN_SETTINGS_ENCRYPTION_KEY

Installation

Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.

Bevor du installierst

  • Basischecks: 1 von 1 bestanden
  • Läuft auf deinem Computer mit den Rechten deines Benutzerkontos (Dateien, Netzwerk, Apps).
  • Das trägst du selbst ein: DATABASE_URL, OPENAI_API_KEY, EMBEDDING_PROVIDER, EMBEDDING_BASE_URL, ADMIN_MFA_SECRET_KEY, ADMIN_SETTINGS_ENCRYPTION_KEY

Als geheim markierte Werte sind Schlüssel zu deinem Konto. Gib sie nie weiter und füge sie nie in einen Chat ein.

Du brauchst

Welche App nutzt du?

Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.

Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein

{
  "mcpServers": {
    "postgram": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "DATABASE_URL",
        "-e",
        "OPENAI_API_KEY",
        "-e",
        "EMBEDDING_PROVIDER",
        "-e",
        "EMBEDDING_BASE_URL",
        "-e",
        "ADMIN_MFA_SECRET_KEY",
        "-e",
        "ADMIN_SETTINGS_ENCRYPTION_KEY",
        "ghcr.io/ivo-toby/postgram@sha256:29b61fb302bd52862b8eba43305ee2aa4fc072d5f9188652f1fe6324f49d5391"
      ],
      "env": {
        "DATABASE_URL": "your-value",
        "OPENAI_API_KEY": "your-value",
        "EMBEDDING_PROVIDER": "your-value",
        "EMBEDDING_BASE_URL": "your-value",
        "ADMIN_MFA_SECRET_KEY": "your-value",
        "ADMIN_SETTINGS_ENCRYPTION_KEY": "your-value"
      }
    }
  }
}

Führe das in deinem Terminal aus

claude mcp add postgram --env DATABASE_URL=your-value --env OPENAI_API_KEY=your-value --env EMBEDDING_PROVIDER=your-value --env EMBEDDING_BASE_URL=your-value --env ADMIN_MFA_SECRET_KEY=your-value --env ADMIN_SETTINGS_ENCRYPTION_KEY=your-value -- docker run -i --rm -e DATABASE_URL -e OPENAI_API_KEY -e EMBEDDING_PROVIDER -e EMBEDDING_BASE_URL -e ADMIN_MFA_SECRET_KEY -e ADMIN_SETTINGS_ENCRYPTION_KEY ghcr.io/ivo-toby/postgram@sha256:29b61fb302bd52862b8eba43305ee2aa4fc072d5f9188652f1fe6324f49d5391

Trag die leeren Werte ein, bevor du ihn startest.

In Cursor öffnen

Oder kopier die Einstellungen selbst

In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen

{
  "mcpServers": {
    "postgram": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "DATABASE_URL",
        "-e",
        "OPENAI_API_KEY",
        "-e",
        "EMBEDDING_PROVIDER",
        "-e",
        "EMBEDDING_BASE_URL",
        "-e",
        "ADMIN_MFA_SECRET_KEY",
        "-e",
        "ADMIN_SETTINGS_ENCRYPTION_KEY",
        "ghcr.io/ivo-toby/postgram@sha256:29b61fb302bd52862b8eba43305ee2aa4fc072d5f9188652f1fe6324f49d5391"
      ],
      "env": {
        "DATABASE_URL": "your-value",
        "OPENAI_API_KEY": "your-value",
        "EMBEDDING_PROVIDER": "your-value",
        "EMBEDDING_BASE_URL": "your-value",
        "ADMIN_MFA_SECRET_KEY": "your-value",
        "ADMIN_SETTINGS_ENCRYPTION_KEY": "your-value"
      }
    }
  }
}

Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.

In VS Code öffnen

Oder kopier die Einstellungen selbst

In .vscode/mcp.json in deinem Projekt einfügen

{
  "servers": {
    "postgram": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "DATABASE_URL",
        "-e",
        "OPENAI_API_KEY",
        "-e",
        "EMBEDDING_PROVIDER",
        "-e",
        "EMBEDDING_BASE_URL",
        "-e",
        "ADMIN_MFA_SECRET_KEY",
        "-e",
        "ADMIN_SETTINGS_ENCRYPTION_KEY",
        "ghcr.io/ivo-toby/postgram@sha256:29b61fb302bd52862b8eba43305ee2aa4fc072d5f9188652f1fe6324f49d5391"
      ],
      "env": {
        "DATABASE_URL": "your-value",
        "OPENAI_API_KEY": "your-value",
        "EMBEDDING_PROVIDER": "your-value",
        "EMBEDDING_BASE_URL": "your-value",
        "ADMIN_MFA_SECRET_KEY": "your-value",
        "ADMIN_SETTINGS_ENCRYPTION_KEY": "your-value"
      }
    }
  }
}

Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.

Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.

Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.

Werte, die du selbst einträgst

  • DATABASE_URL geheim erforderlich env
    PostgreSQL connection URL for a database with the pgvector extension enabled.
  • OPENAI_API_KEY geheim env
    Required only when OpenAI is selected for embeddings or extraction.
  • EMBEDDING_PROVIDER env
    Embedding provider: openai or ollama.
  • EMBEDDING_BASE_URL env
    Ollama embedding endpoint when EMBEDDING_PROVIDER is ollama.
  • ADMIN_MFA_SECRET_KEY geheim erforderlich env
    Stable random value of at least 32 characters used to protect admin MFA seeds.
  • ADMIN_SETTINGS_ENCRYPTION_KEY geheim erforderlich env
    Stable 32-byte base64url key used to encrypt provider secrets saved in the admin UI.

Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.

Was er kann

Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.

Basischecksi

Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 7. Nov. 2026

  • ✓ Bestanden

    Entwickler passt zum Repo

    Der Registry-Name wurde mit dem GitHub-Konto ivo-toby bestätigt, dem das Repo gehört

  • … Noch nicht geprüft

    Wird noch gepflegt

    Dieses Repo haben wir noch nicht von GitHub gelesen

  • … Noch nicht geprüft

    Hat eine Lizenz

    Dieses Repo haben wir noch nicht von GitHub gelesen

  • – Nicht zutreffend

    Endpunkt antwortet

    Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet

  • – Nicht zutreffend

    Anmeldung mit OAuth

    Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen

  • … Noch nicht geprüft

    Keine versteckten Anweisungen in Tool-Beschreibungen

    Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen

Im Vergleich mit anderen in Suche & KI-Gedächtnisi

  • Mehr Sterne als 0 % der anderen 7249 Server in dieser Kategorie
  • Neuer in der Registry veröffentlicht als 21 % der anderen 7249 Server in dieser Kategorie
  • Basischecks gleich gut wie oder besser als bei 100 % der anderen 7249 Server in dieser Kategorie

Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.

Häufige Fragen

Ist Postgram sicher?

Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.

Welche Schlüssel oder Codes braucht er?

Das musst du eintragen: DATABASE_URL, OPENAI_API_KEY, ADMIN_MFA_SECRET_KEY, ADMIN_SETTINGS_ENCRYPTION_KEY

Läuft er auf meinem Computer oder in der Cloud?

Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).

Wird er noch gepflegt?

Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (0.1.3) kam vor 4 Monaten in die Registry.

Welche Apps können ihn nutzen?

Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Docker auf deinem Computer.

Was kann ich stattdessen nutzen?

In derselben Kategorie: Context7, Codebase Memory, Exa

Alternativen

Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.

So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti

Context7

von upstash

Up-to-date docs for AI agents

Computer oder Cloud★ 64.224MITAktualisiert heute
Installieren

Codebase Memory

von DeusData

Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.

Läuft auf deinem Computer★ 48.148MITAktualisiert vor 20 Tagen
Installieren

Exa

von exa-labs

Connect AI agents to Exa for web search, content fetching, and multi-step research.

Läuft in der Cloud★ 5.213MITAktualisiert letzten Monat
Installieren

README vom Entwickler

README öffnen

Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.

Postgram

A self-hosted productivity and knowledge backend for humans and AI agents.

Website · Quick start · MCP guide · REST API · Demo

Postgram keeps the data you and your agents work from in one inspectable place: notes, documents, tasks, people, projects, interactions, decisions, and agent memory. Humans use the browser UI and CLI; agents use the same corpus over MCP, REST, or the CLI.

It is more than an agent-memory layer. Postgram preserves typed source objects, supports GTD-style task management and Markdown folder sync, combines full-text and vector retrieval with a knowledge graph, and separates short-lived agent working context from durable memory.

Watch the demo

Search across memories, documents, people, projects, and tasks

Why Postgram

  • One private corpus across tools. Give different agents and devices access to the same data without tying it to one editor or hosted memory provider.
  • Inspectable source data. Store typed entities instead of opaque chat summaries, then search, edit, link, archive, or delete them yourself.
  • Search before graph expansion. Hybrid retrieval finds relevant entities; edge summaries tell an agent when related graph context is worth following.
  • Working context is not durable memory. Session context has its own scope and lifecycle; grooming can archive it or distill selected context into durable memory.
  • Operator control. Choose where PostgreSQL runs, which embedding and extraction providers are allowed, who receives API keys, and what is kept.

Postgram is built for one person or a small trusted team running a local or single-VM deployment. It is not a hosted service or a multi-tenant SaaS platform. Knowledge extraction is optional, and the provided Docker Compose setup binds the raw API and UI ports to loopback by default.

Quick Start (Docker Compose)

You need Git, Docker, and Docker Compose. Node.js 22+ is needed only for local development or for installing the pgm CLI; gpg is needed only for encrypted CLI backups.

  1. Clone Postgram:
   git clone https://github.com/ivo-toby/postgram.git

cd postgram

  1. Choose an embedding path before the first start. For the local default, install and start Ollama on the Docker host, then pull Postgram's default embedding model:
   ollama pull bge-m3

For hosted OpenAI embeddings instead, create a .env file containing a real key before starting Compose:

   OPENAI_API_KEY=<your-openai-key>
  1. Start the stack:
   docker compose up -d --build

The first run creates persistent Docker volumes for PostgreSQL and installation secrets. No .env file is required for the default Compose path.

  1. Read the one-time bootstrap token:
   docker compose logs mcp-server \

| grep 'Bootstrap token:' \ | tail -n 1

The plaintext appears only in the original first-start logs. Capture it before recreating the API container or discarding those logs.

  1. Open http://127.0.0.1:3000/admin, paste the token, create the first admin, enroll MFA, and follow the onboarding flow.
  1. Confirm the selected provider in the Admin Config tab. If you add or change staged settings, save, validate, and apply them, then restart mcp-server when Admin marks a restart as required:
   docker compose restart mcp-server

When Ollama runs on the Docker host, its base URL is http://host.docker.internal:11434. Optional LLM relationship extraction is disabled by default and can use OpenAI, Anthropic, Ollama, or an OpenAI-compatible endpoint. Changing the embedding provider, model, or dimensions after the first start is migration work and is blocked from a simple config apply.

  1. Check health, then create an API key in the Admin Overview tab. For the smoke test below, allow read and write, the memory entity type, and personal visibility:
   curl -fsS http://127.0.0.1:3100/health

The response should include "status":"ok" and "postgres":"connected".

  1. Install the CLI and verify an authenticated write and search. Enrichment is asynchronous, so wait for pgm queue to report no pending work before the search:
   npm install -g @ivotoby/postgram-cli

export PGM_API_URL=http://127.0.0.1:3100 export PGM_API_KEY=' '

pgm store "Postgram quick start is working" \ --type memory \ --visibility personal \ --tags quickstart pgm queue pgm search "quick start"

If embeddings are unreachable, Postgram still starts and accepts writes, but enrichment and search will fail until the provider is available. See the full quick start and troubleshooting guide for the longer path.

For access from ChatGPT, Claude, or another remote MCP client, put Postgram behind HTTPS, enable OAuth, and follow the MCP integration guide. Do not publish the loopback development ports directly to the internet.

What It Does

Postgram provides:

  • durable storage for typed entities: memory, person, project, task, interaction, document
  • hybrid keyword + vector search with asynchronous enrichment
  • knowledge graph with typed directional edges between entities
  • LLM-powered relationship extraction (OpenAI, Anthropic, or Ollama)
  • document sync from local markdown repos via manifest comparison
  • browser interfaces for knowledge work and guarded administration
  • UMAP and PCA projections of embedded entities
  • GTD-style capture, task organization, and Kanban views
  • scoped API-key authentication and visibility restrictions
  • a REST API for application and automation access
  • a Streamable HTTP MCP endpoint for agent-native tool access
  • a CLI (pgm) for humans and agents
  • a container-local admin CLI (pgm-admin)
  • Talon SQLite migration tooling
  • encrypted backup support
  • audit logging for mutating and privileged operations

How It Works

Postgram is a TypeScript Node.js application built around a service layer.

Main components:

  • PostgreSQL + pgvector for persistence and vector search
  • Hono for the HTTP server
  • MCP over Streamable HTTP for agent-facing tool access
  • CLI/admin CLIs built with Commander
  • background enrichment worker for chunking, embeddings, and LLM extraction

High-level flow:

  1. a client stores or updates an entity
  2. the entity is written immediately
  3. enrichment runs asynchronously: chunking, embedding, and optionally LLM extraction
  4. chunks and embeddings are produced in the background
  5. edges are created from extracted relationships (if extraction is enabled)
  6. search queries use hybrid keyword + vector retrieval and reciprocal-rank fusion, with optional graph expansion

Main Features

1. Typed Knowledge Storage

Store structured knowledge objects with:

  • type (memory, person, project, task, interaction, document)
  • content
  • tags
  • visibility (personal, work, shared)
  • status
  • arbitrary JSON metadata
Memory Roles

Postgram supports two roles for memory entities:

  • durable_memory: long-term memory future agents should trust, such as decisions, preferences, constraints, root causes, and completed-work summaries.
  • session_context: working context for resuming recent conversations. Session context is scoped to the calling client, embedded for semantic recall, and skipped by graph extraction.

Use session context for "where were we in this thread?" Use durable memory for "what should future agents remember as true?"

CLI users can write session context with pgm memory session-context and search it with pgm search --memory-role session_context.

Operators can groom stale session context with pgm-admin memory groom. Use --client-id for one client or --all-clients to batch over every session-context scope. --all-clients keeps each client scope separate; it is operational batching, not cross-client consolidation. --older-than defaults to 7d and accepts values like 30m, 4h, 7d, or 0d. --dry-run previews eligible memories without calling the LLM. Grooming has no default candidate cap; pass --limit when you want to process a bounded batch. --mode archive --yes archives eligible working context directly. --mode promote --yes uses the configured extraction LLM to decide whether each session-context memory should be promoted; promoted memories are distilled into new durable_memory entities, the source context is archived, and provenance is recorded with metadata.promoted_to plus a promoted_to edge.

Authenticated users and agents can self-groom only their own client-scoped session context:

pgm memory groom --dry-run --older-than 7d

pgm memory groom --older-than 14d --topic postgram --tag session-context --yes

The normal CLI derives scope from PGM_API_KEY; it does not accept --client-id, --all-clients, or promotion mode. Archive requires --yes. Optional filters are --topic, --session-id, and repeatable --tag.

MCP clients can use the groom_session_context tool with the same self scope:

{

"mode": "dry_run", "older_than": "7d", "topic": "postgram", "session_id": "optional-session-id", "tags": ["session-context"] }

MCP mode is dry_run or archive; promotion remains admin-only.

For scheduled maintenance, run grooming from the host that has access to the Postgram container. This cron example assesses eligible session context for all client scopes every three days at 03:17 and appends JSON output to a log. The wrapper detects that cron does not provide a TTY and runs non-interactively:

17 3 */3 * * cd /path/to/postgram && ./bin/pgm-admin --json memory groom --all-clients --older-than 7d --mode promote --yes >> /var/log/postgram-memory-groom.log 2>&1

Use --mode archive --yes instead if you want to archive eligible working context without LLM-assisted promotion. Run the same command with --dry-run first to verify the eligible set.

Operators can also review durable memory quality without mutating the durable claim itself:

./bin/pgm-admin memory groom-durable --dry-run --older-than 30d

./bin/pgm-admin memory groom-durable --mode mark --yes --older-than 30d

Durable grooming selects active durable_memory rows, including legacy memory rows with no metadata.memory_role, and classifies them as keep, needs_grooming, archive, or superseded. Mark mode writes metadata.durable_grooming with the outcome, reason, review timestamp, and any LLM suggestions. It does not rewrite content, change status, archive rows, or merge duplicates.

To actually clean the marked rows, apply the grooming labels:

./bin/pgm-admin memory apply-durable-grooming --dry-run

./bin/pgm-admin memory apply-durable-grooming --yes

Apply mode defaults to auto: `n

Nur der Anfang wird gezeigt; den Rest findest du im Repo

PopNx fragen