Supabase
MCP server for interacting with the Supabase platform
作者による説明(英語の原文)
Durable memory for AI agents: fact extraction, hybrid retrieval, temporal graph. SQLite/Postgres.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
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/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"engram": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/jamjet-labs/engram-server:0.5.0"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .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アプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント jamjet-labs で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック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
MCP server for interacting with the Supabase platform
MongoDB Model Context Protocol Server
MCP server for interacting with Elasticsearch
作者のリポジトリから書かれたとおりにコピーしたものです。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:
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-compatible | Any endpoint that speaks OpenAI's chat-completions protocol — see the long list below. |
anthropic | Anthropic Claude via the Messages API. |
google | Google Gemini via generateContent with native JSON mode. |
command | Shell out to a user-supplied script. Infinite extensibility, zero recompile. |
mock | Deterministic 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.
| Problem | Engram's answer |
|---|---|
| Every agent memory library is Python-first | Rust core with native Python, Java, and MCP clients — no sidecar required |
| Needs Postgres + Qdrant + Neo4j just to try | Single SQLite file (zero infra) or Postgres when you need it |
| Conversation history is not knowledge memory | Fact extraction pipeline — pulls structured facts out of messages |
| Old facts drift and contradict each other | Conflict detection + consolidation — decay, promote, dedup, summarize, reflect |
| Memory recall is either semantic OR keyword | Hybrid retrieval — vector search + SQLite FTS5 in one query |
| Agents lose memory across processes | Durable by default — SQLite or Postgres, crash-safe, portable |
| MCP support is an afterthought | MCP-native — 7 tools exposed by a single binary |
| No time-travel over what the agent knew | Temporal knowledge graph — every fact is scoped and timestamped |
| Can't isolate memory per user or tenant | First-class scopes — org / user / session built into every query |
Engram speaks to four LLM providers out of the box: Ollama (default — free, local), OpenAI, Anthropic Claude, and Google Gemini. Pick one.
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.
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_payloadhelper strips markdown fences that Claude occasionally emits.
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.
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:
| Provider | ENGRAM_OPENAI_BASE_URL= | Note |
|---|---|---|
| OpenAI | https://api.openai.com/v1 | default |
| Azure OpenAI | https:// .openai.azure.com/openai/deployments/ | |
| Groq | https://api.groq.com/openai/v1 | very fast inference |
| Together.ai | https://api.together.xyz/v1 | |
| Mistral | https://api.mistral.ai/v1 | |
| DeepSeek | https://api.deepseek.com/v1 | |
| Perplexity | https://api.perplexity.ai | |
| OpenRouter | https://openrouter.ai/api/v1 | one key, many models |
| Fireworks | https://api.fireworks.ai/inference/v1 | |
| vLLM (self-hosted) | http://your-host:8000/v1 | |
| LM Studio | http://localhost:1234/v1 | local desktop app |
| LocalAI | http://localhost:8080/v1 | self-hosted |
Ollama /v1 compat layer | http://localhost:11434/v1 | alternate path for Ollama |
| Your corporate LLM gateway | whatever URL your infra team exposes |
openai is accepted as a backwards-compatible alias for openai-compatible.
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
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
commandprovider runs arbitrary commands as the Engram process user. Never use it in a multi-tenant deployment where untrusted users can setENGRAM_LLM_COMMAND. It is a local and single-tenant feature.
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
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.
~/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" ] } } }
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_*).
| Tool | What it does |
|---|---|
memory_add | Extract and store facts from conversation messages (calls the LLM for extraction) |
memory_recall | Semantic search over stored facts, scoped by user_id / org_id |
memory_context | Assemble a token-budgeted context block for an LLM prompt, with tier-aware selection |
memory_search | Keyword search over facts (SQLite FTS5 / Postgres full-text) |
memory_forget | Soft-delete a fact by ID with an optional reason |
memory_stats | Aggregate counts: total facts, valid facts, entities, relationships |
memory_consolidate | Run 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.
| Tool | What it does |
|---|---|
messages_save | Save chat messages for a conversation (optionally triggers fact extraction) |
messages_get | Get all messages for a conversation by ID |
messages_list | List all conversation IDs |
messages_delete | Delete all messages for a conversation |
Thirteen endpoints, rooted at /v1/memory. Full OpenAPI-style surface:
| Method | Path | Handler |
|---|---|---|
| GET | /health | Liveness probe |
| POST | /v1/memory | Add messages (fact extraction) |
| GET | /v1/memory/recall?q=…&user_id=… | Semantic recall |
| POST | /v1/memory/context | Token-budgeted context assembly |
| GET | /v1/memory/search?q=…&user_id=… | Keyword search |
| GET | /v1/memory/stats | Aggregate statistics |
| POST | /v1/memory/consolidate | Trigger consolidation |
| DELETE | /v1/memory/facts/:id | Forget a fact |
| DELETE |
冒頭だけを表示しています。続きはリポジトリで読めます