プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

Engram Server

作者:jamjet-labsバージョン 0.5.0i★ –iパソコンで動く
レジストリ名io.github.jamjet-labs/engram-server

インストール

概要

作者による説明(英語の原文)

Durable memory for AI agents: fact extraction, hybrid retrieval, temporal graph. SQLite/Postgres.

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: パソコンで動く
  • トランスポート: stdio
  • カテゴリ: データベース・データセット

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

  • 基本チェック:1項目中1項目に合格
  • あなたのパソコンで、あなたのユーザーと同じ権限(ファイル、ネットワーク、アプリ)で動きます。
  • レジストリには、入力が必要なキーは載っていません。

必要なもの

  • DockerDockerのインストール

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます

{
  "mcpServers": {
    "engram": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/jamjet-labs/engram-server:0.5.0"
      ]
    }
  }
}

ターミナルでこれを実行します

claude mcp add engram -- docker run -i --rm ghcr.io/jamjet-labs/engram-server:0.5.0

Cursorで開く

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

{
  "mcpServers": {
    "engram": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/jamjet-labs/engram-server:0.5.0"
      ]
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

VS Codeで開く

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

{
  "servers": {
    "engram": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/jamjet-labs/engram-server:0.5.0"
      ]
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。

選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

できること

パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント jamjet-labs で確認済みです

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • – 対象外

    エンドポイントが応答する

    これはパソコンで動くため、インターネット上のエンドポイントはありません

  • – 対象外

    OAuthでサインイン

    パソコンで動き、代わりにローカルの設定を使います

  • … 未チェック

    ツールの説明に隠れた指示がない

    パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです

データベース・データセットのほかのサーバーとの比較i

  • このカテゴリのほかの953件のうち0%よりスターが多い
  • このカテゴリのほかの953件のうち9%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの953件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

Engram Serverは安全ですか?

当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。

パソコンで動きますか、それともクラウドですか?

あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(0.5.0)がレジストリに届いたのは7 か月前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにDockerも必要です。

代わりに使えるものは?

同じカテゴリには:Supabase, MongoDB MCP Server, Elasticsearch MCP Server

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

Supabase

作者:supabase

MCP server for interacting with the Supabase platform

パソコンでもクラウドでも★ 2,993Apache-2.0今日更新
インストール

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

⚡ Engram

Durable memory for AI agents — temporal knowledge graph, hybrid retrieval, SQLite or PostgreSQL.

java-ai-memory.dev · Main repo · JamJet docs · Discord


Engram is a durable memory layer for AI agents. It extracts facts from conversations, stores them in a temporal knowledge graph, and retrieves them with hybrid semantic + keyword search — backed by a single SQLite file or a PostgreSQL database.

It ships in two shapes:

  • `jamjet-engram` — a Rust library you embed in your own application.
  • `jamjet-engram-server` (this crate) — a standalone binary that speaks MCP over stdio and REST over HTTP, so Claude Desktop, Cursor, and any HTTP client can use it with no code.

Engram is provider-agnostic. Five LLM backends are wired in out of the box, and a sixth — command — lets you shell out to any external script, so you can plug in a provider Engram does not ship natively without touching Rust code:

ENGRAM_LLM_PROVIDER=What it does
ollama (default)Local Ollama via /api/chat. Free, no API keys, runs on your laptop.
openai-compatibleAny endpoint that speaks OpenAI's chat-completions protocol — see the long list below.
anthropicAnthropic Claude via the Messages API.
googleGoogle Gemini via generateContent with native JSON mode.
commandShell out to a user-supplied script. Infinite extensibility, zero recompile.
mockDeterministic tests-only backend — returns empty facts.

Pick one with ENGRAM_LLM_PROVIDER=… — the same binary handles all of them.

State of the project, April 2026. Engram is new — v0.3.2, small community, no public LongMemEval / DMR numbers yet. The architecture below works, the tests pass, the Docker image runs. If you need production-scale memory today, Mem0 Cloud and Zep Cloud are more mature. If you need a tryable, self-hostable, single-binary memory layer that doesn't require Python, Postgres, Qdrant, or Neo4j, Engram is built for you.

Why Engram?

ProblemEngram's answer
Every agent memory library is Python-firstRust core with native Python, Java, and MCP clients — no sidecar required
Needs Postgres + Qdrant + Neo4j just to trySingle SQLite file (zero infra) or Postgres when you need it
Conversation history is not knowledge memoryFact extraction pipeline — pulls structured facts out of messages
Old facts drift and contradict each otherConflict detection + consolidation — decay, promote, dedup, summarize, reflect
Memory recall is either semantic OR keywordHybrid retrieval — vector search + SQLite FTS5 in one query
Agents lose memory across processesDurable by default — SQLite or Postgres, crash-safe, portable
MCP support is an afterthoughtMCP-native — 7 tools exposed by a single binary
No time-travel over what the agent knewTemporal knowledge graph — every fact is scoped and timestamped
Can't isolate memory per user or tenantFirst-class scopes — org / user / session built into every query

Quickstart — 30 seconds

Engram speaks to four LLM providers out of the box: Ollama (default — free, local), OpenAI, Anthropic Claude, and Google Gemini. Pick one.

Option A — Ollama (free, local, zero API keys)

Requirements: Ollama with llama3.2 and nomic-embed-text pulled:

ollama pull llama3.2

ollama pull nomic-embed-text

Docker (easiest):

docker run --rm -i \

-v engram-data:/data \ ghcr.io/jamjet-labs/engram-server:0.3.2

The container defaults to Ollama at host.docker.internal:11434 — works out of the box on Docker Desktop for Mac and Windows. Linux users need --add-host=host.docker.internal:host-gateway.

Option B — Anthropic Claude (hosted, highest quality)
docker run --rm -i \

-e ENGRAM_LLM_PROVIDER=anthropic \ -e ANTHROPIC_API_KEY=sk-ant-... \ -v engram-data:/data \ ghcr.io/jamjet-labs/engram-server:0.3.2

Defaults to claude-haiku-4-5-20251001. Override with -e ENGRAM_ANTHROPIC_MODEL=claude-sonnet-4-6.

Note: Anthropic has no native JSON mode, so Engram parses JSON from text responses. The llm_util::extract_json_payload helper strips markdown fences that Claude occasionally emits.

Option C — Google Gemini
docker run --rm -i \

-e ENGRAM_LLM_PROVIDER=google \ -e GOOGLE_API_KEY=AIza... \ -v engram-data:/data \ ghcr.io/jamjet-labs/engram-server:0.3.2

Defaults to gemini-flash-latest. Override with -e ENGRAM_GOOGLE_MODEL=gemini-2.5-flash.

Option D — Any OpenAI-compatible endpoint
docker run --rm -i \

-e ENGRAM_LLM_PROVIDER=openai-compatible \ -e OPENAI_API_KEY=sk-... \ -v engram-data:/data \ ghcr.io/jamjet-labs/engram-server:0.3.2

Defaults to OpenAI itself (https://api.openai.com/v1, gpt-4o-mini). Change one env var to point at any of these providers without recompiling:

ProviderENGRAM_OPENAI_BASE_URL=Note
OpenAIhttps://api.openai.com/v1default
Azure OpenAIhttps:// .openai.azure.com/openai/deployments/
Groqhttps://api.groq.com/openai/v1very fast inference
Together.aihttps://api.together.xyz/v1
Mistralhttps://api.mistral.ai/v1
DeepSeekhttps://api.deepseek.com/v1
Perplexityhttps://api.perplexity.ai
OpenRouterhttps://openrouter.ai/api/v1one key, many models
Fireworkshttps://api.fireworks.ai/inference/v1
vLLM (self-hosted)http://your-host:8000/v1
LM Studiohttp://localhost:1234/v1local desktop app
LocalAIhttp://localhost:8080/v1self-hosted
Ollama /v1 compat layerhttp://localhost:11434/v1alternate path for Ollama
Your corporate LLM gatewaywhatever URL your infra team exposes

openai is accepted as a backwards-compatible alias for openai-compatible.

Option E — command (shell out to anything)

For providers Engram does not ship natively — an internal model behind a custom RPC, a raw SOAP endpoint, a local inference binary, a quick wrapper over a Python SDK, or tomorrow's new provider — use the command backend. Engram will spawn your script per extraction call, pipe a JSON request to its stdin, and read a JSON response from its stdout.

The contract. Your script reads one JSON object from stdin:

{"system": "<extraction prompt>", "user": "<conversation text>", "structured": true}

Then writes one JSON value to stdout. Either a bare value:

{"facts": [{"text": "...", "entities": [...], "confidence": 0.95, "category": "..."}]}

Or an envelope (useful for surfacing errors):

{"content": {"facts": [...]}}

{"error": "rate limited, try again"}

Exit 0 on success, non-zero (with stderr) on failure.

Example Python wrapper (~15 lines):

#!/usr/bin/env python3

my-llm.py — wraps any Python SDK for Engram.

import json, sys from my_llm_sdk import chat # your SDK

req = json.loads(sys.stdin.read()) resp = chat( system=req["system"], user=req["user"], json_mode=req.get("structured", False), ) sys.stdout.write(json.dumps(resp))

Point Engram at it:

docker run --rm -i \

-e ENGRAM_LLM_PROVIDER=command \ -e ENGRAM_LLM_COMMAND="python /scripts/my-llm.py" \ -v $(pwd)/scripts:/scripts \ -v engram-data:/data \ ghcr.io/jamjet-labs/engram-server:0.3.2

Timeout is 120 seconds by default — override with ENGRAM_LLM_COMMAND_TIMEOUT=30.

Security: the command provider runs arbitrary commands as the Engram process user. Never use it in a multi-tenant deployment where untrusted users can set ENGRAM_LLM_COMMAND. It is a local and single-tenant feature.

Option F — cargo install (all providers same binary)
cargo install jamjet-engram-server

engram serve # ollama (default) ENGRAM_LLM_PROVIDER=anthropic ANTHROPIC_API_KEY=... engram serve ENGRAM_LLM_PROVIDER=command ENGRAM_LLM_COMMAND="python /path/to/wrapper.py" engram serve

Option G — REST mode for testing
engram serve --mode rest --port 9090
curl -X POST http://localhost:9090/v1/memory \

-H 'content-type: application/json' \ -d '{ "user_id": "alice", "messages": [ {"role": "user", "content": "I am allergic to peanuts and I love sourdough."} ] }'

curl 'http://localhost:9090/v1/memory/recall?q=food%20allergies&user_id=alice'

No server. No config. No Python sidecar. One binary.


MCP client configuration

Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json)
{

"mcpServers": { "engram": { "command": "docker", "args": [ "run", "--rm", "-i", "-v", "engram-data:/data", "ghcr.io/jamjet-labs/engram-server:0.3.2" ] } } }

Cursor / any MCP-aware IDE

Point it at the same docker run command, or at a locally-installed engram serve binary. After restart, eleven tools are available to the model (seven memory_* + four messages_*).


MCP tools

Memory tools (7)
ToolWhat it does
memory_addExtract and store facts from conversation messages (calls the LLM for extraction)
memory_recallSemantic search over stored facts, scoped by user_id / org_id
memory_contextAssemble a token-budgeted context block for an LLM prompt, with tier-aware selection
memory_searchKeyword search over facts (SQLite FTS5 / Postgres full-text)
memory_forgetSoft-delete a fact by ID with an optional reason
memory_statsAggregate counts: total facts, valid facts, entities, relationships
memory_consolidateRun a consolidation cycle — decay stale facts, promote high-value ones, dedup near-duplicates

All scoped by (org_id, user_id, session_id) — org is the coarsest, session the finest.

Message store tools (4)
ToolWhat it does
messages_saveSave chat messages for a conversation (optionally triggers fact extraction)
messages_getGet all messages for a conversation by ID
messages_listList all conversation IDs
messages_deleteDelete all messages for a conversation

REST API

Thirteen endpoints, rooted at /v1/memory. Full OpenAPI-style surface:

MethodPathHandler
GET/healthLiveness probe
POST/v1/memoryAdd messages (fact extraction)
GET/v1/memory/recall?q=…&user_id=…Semantic recall
POST/v1/memory/contextToken-budgeted context assembly
GET/v1/memory/search?q=…&user_id=…Keyword search
GET/v1/memory/statsAggregate statistics
POST/v1/memory/consolidateTrigger consolidation
DELETE/v1/memory/facts/:idForget a fact
DELETE

冒頭だけを表示しています。続きはリポジトリで読めます

PopNxに聞く