memex MCP server
io.github.ayushagrawal288/memex·v0.1.0·1 starsPersistent memory for AI agents — semantic + recency search, ONNX embeddings, Docker Compose.
1 stars
Reviews
Write oneNobody has reviewed memex yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
memex tools
No tool declarations could be read from the package source. They show once the server is installed.
Public scan report
scanner v0.1.9 · 2026-09-27 · same rubric, same numbers if you re-run it
- –Code scanpackage could not be scannedn/a
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 115 days ago8/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
How memex compares
Against every graded Developer tools MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 70/100
- higher than 30% of 1,119 Developer tools servers
- GitHub stars
- 1
- more than 50% of 855 Developer tools servers
Install memex in Claude Code, Cursor or VS Code
claude mcp add memex -- docker run -i --rm ghcr.io/ayushagrawal288/memex:v0.1.0
What the publisher says
From the memex repository's README, as published. We do not edit it. Read it on GitHub
memex
A production-grade persistent memory service for AI agents. Agents forget everything between sessions by default — memex fixes that. It stores, retrieves, and ranks conversation memory using semantic search with recency decay, so agents surface what's relevant and recent, not just what's semantically closest.
POST /v1/memories → store a memory, embed it, persist to Postgres
POST /v1/memories/search → retrieve top-k memories ranked by similarity + recency
DELETE /v1/memories/{id} → forget a specific memory
GET /v1/memories/count → how many memories does this agent/user have
GET /health → liveness + DB connectivity check
GET /metrics → Prometheus metricsArchitecture
caller (agent / app)
│
▼
FastAPI (async)
│
┌────┴────┐
│ │
embeddings asyncpg pool (min=5, max=20)
(fastembed │
ONNX, ▼
local) PostgreSQL 16
pgvector extension
ivfflat index (cosine)Write path: content → fastembed ONNX inference (local, ~12 ms CPU, BAAI/bge-small-en-v1.5) → INSERT with 384-dim vector → return memory ID.
Read path: query → embed → pgvector cosine search (topk × 3 candidates) → re-rank with recency decay in Python → return topk results with scores.
Design decisions
1. Recency decay on top of semantic search
Pure vector similarity returns the most semantically similar memories, not the most useful ones. A fact from 90 days ago that's a 0.95 similarity match is often less useful than a 0.80 match from yesterday.
Score formula:
score = α × cosine_similarity + (1 − α) × exp(−λ × age_days)Where λ = ln(2) / halflifedays (default: 30 days, so a 30-day-old memory has 50% recency weight).
α is configurable per request (default 0.7). Task-focused agents use higher α (semantic dominates). Conversational agents use lower α (recency matters more).
2. Fetch 3× candidates, re-rank in Python
The pgvector query returns topk × 3 candidates sorted by pure similarity. Python re-ranks with the decay formula and slices to topk. This prevents recency decay from starving high-similarity older memories — they're still in the candidate pool.
At 10× scale (>1M memories per agent): push the scoring into a Postgres function using pg_proc to eliminate the Python re-ranking round-trip.
3. asyncpg + explicit pool sizing over SQLAlchemy async
SQLAlchemy adds ORM overhead on every query. The hot retrieval path — embed, query, re-rank — needs to be tight. asyncpg gives direct control over pool min/max (same instinct as tuning HikariCP in Java). pgvector queries require raw SQL for the <=> operator anyway.
Pool defaults: min=5, max=20. Right-size for a single-instance deployment. Override via DBMAXPOOL_SIZE env var.
4. Rate limiting in Postgres, not Redis
Sliding window counter via upsert. One fewer dependency. Correct under concurrent requests (transactional upsert). At 10× scale with distributed deployments: replace with Redis INCR + EXPIRE — atomic operations, no lock contention.
5. ivfflat index, not HNSW
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
memex: common questions
- Is memex MCP server safe?
- Mostly: it is graded B (70/100). Read the memex safety report
- How do I install memex?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does memex need an API key?
- Not as far as the registry entry and our scan can tell: no credentials are declared or required.
- Is memex maintained?
- The last commit was 153 days ago (2026-06-04). The latest release is v0.1.0.
- What can I use instead of memex?
- Servers from other publishers that do the same job: Docker MCP Server, Pare Docker MCP server and Homebutler MCP server.
- How does memex compare with other Developer tools MCP servers?
- safety score 70/100 (higher than 30% of 1,119 Developer tools servers); github stars 1 (more than 50% of 855 Developer tools servers). Full comparison.
Alternatives to memex
Same job from other publishers: the closest match first, then the best rated.
- Docker MCP ServerManage Docker (containers, images, Compose, Swarm, registries) via the Docker SDK and CLI.not reviewedGrowingA
- Pare DockerPare Docker ג€” Structured Docker operations (ps, images, logs, build, compose) as typed JSON.not reviewedGrowingA
- HomebutlerTells an agent what changed on a server since it last looked - status, Docker, backups, Proxmox.not reviewedEstablishedC
- maintenantDocker monitoring for AI agents: logs, history, alerts. Can ack alerts; never touches containers.not reviewedEstablishedC
- PalinodeInspectable, correctable project memory in git-versioned Markdown for AI agents.not reviewedEstablishedC