An MCP server giving AI agents associative memory, modelled on the human mind. The name comes from engraphy, the old memory-science term for laying down an engram, the trace a memory leaves in the brain. Self-hosted: typed graph on Postgres and pgvector. Source-available under BSL 1.1.
Drift inferred · capture-to-capture
- HIGH code analysis flagged dynamic code execution in devon-clarkk/engraphy
- HIGH code analysis flagged dynamic code execution in devon-clarkk/engraphy
- HIGH code analysis flagged dynamic code execution in devon-clarkk/engraphy
- HIGH code analysis flagged dynamic code execution in devon-clarkk/engraphy
- HIGH code analysis flagged dynamic code execution in devon-clarkk/engraphy
- HIGH code analysis flagged dynamic code execution in devon-clarkk/engraphy
- HIGH code analysis flagged dynamic code execution in devon-clarkk/engraphy
- HIGH code analysis flagged dynamic code execution in devon-clarkk/engraphy
transport stdio · streamable-http · http counts 0 tools · 0 res
· 0 prompts
permission surface via code analysis
No tools enumerated yet for this server.
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit c05bbac · analyzer v33 · 58m ago
skills & prompt files 4
danger signals2
- dynamic code execution __import__() devon-clarkk-engraphy-c05bbac/deploy/windows/engraphy_win.py :816
probe("the MCP server builds", lambda: __import__( - dynamic code execution __import__ sink devon-clarkk-engraphy-c05bbac/scripts/check_windows_event_loop.py :71
env={**__import__("os").environ, "ENGRAPHY_DATABASE_URL": DEAD_DSN}, check=False,
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 190
filesystem 61
- fs devon-clarkk-engraphy-c05bbac/bench/adapters/locomo.py :39
from pathlib import Path - fs devon-clarkk-engraphy-c05bbac/bench/adapters/longmemeval.py :38
from pathlib import Path - fs devon-clarkk-engraphy-c05bbac/bench/core/answer.py :53
import pathlib - fs devon-clarkk-engraphy-c05bbac/bench/core/corpus.py :29
from pathlib import Path - fs devon-clarkk-engraphy-c05bbac/bench/core/llm.py :43
import pathlib - fs devon-clarkk-engraphy-c05bbac/bench/core/providers.py :33
import pathlib - fs devon-clarkk-engraphy-c05bbac/bench/core/report.py :29
import pathlib - fs devon-clarkk-engraphy-c05bbac/bench/core/run.py :57
import pathlib - fs devon-clarkk-engraphy-c05bbac/bench/core/space.py :21
import pathlib - fs devon-clarkk-engraphy-c05bbac/bench/dupstream/__main__.py :17
import pathlib - fs devon-clarkk-engraphy-c05bbac/bench/dupstream/generate.py :34
import pathlib - fs devon-clarkk-engraphy-c05bbac/bench/retrieval_recall.py :47
import pathlib
show 28 more
- fs devon-clarkk-engraphy-c05bbac/bench/supervise.py :34
import pathlib - fs (weak) devon-clarkk-engraphy-c05bbac/bench/tests/test_corpus.py :13
from pathlib import Path - fs (weak) devon-clarkk-engraphy-c05bbac/bench/tests/test_llm_roles.py :79
import pathlib - fs devon-clarkk-engraphy-c05bbac/deploy/windows/engraphy_win.py :57
import pathlib - fs devon-clarkk-engraphy-c05bbac/engraphy/admin/cli.py :30
import pathlib - fs devon-clarkk-engraphy-c05bbac/engraphy/admin/doctor.py :13
import pathlib - fs devon-clarkk-engraphy-c05bbac/engraphy/admin/import_.py :55
import pathlib - fs devon-clarkk-engraphy-c05bbac/engraphy/admin/migrate.py :15
import pathlib - fs devon-clarkk-engraphy-c05bbac/engraphy/admin/packs.py :15
import pathlib - fs devon-clarkk-engraphy-c05bbac/engraphy/admin/verify_restore.py :11
import pathlib - fs devon-clarkk-engraphy-c05bbac/engraphy/core/embedding.py :103
import pathlib - fs devon-clarkk-engraphy-c05bbac/engraphy/server/app.py :51
import pathlib - fs devon-clarkk-engraphy-c05bbac/engraphy/server/db.py :18
"""Process-wide pool, lazily created. Callers open() it once at startup.""" - fs (weak) devon-clarkk-engraphy-c05bbac/engraphy/tests/bench.py :240
await pool.open() - fs (weak) devon-clarkk-engraphy-c05bbac/engraphy/tests/conftest.py :108
await p.open() - fs (weak) devon-clarkk-engraphy-c05bbac/engraphy/tests/test_admin_cli_e3.py :8
import pathlib - fs (weak) devon-clarkk-engraphy-c05bbac/engraphy/tests/test_aliases.py :10
import pathlib - fs (weak) devon-clarkk-engraphy-c05bbac/engraphy/tests/test_attr_spec_pg.py :11
import pathlib - fs (weak) devon-clarkk-engraphy-c05bbac/engraphy/tests/test_attr_spec_py.py :9
import pathlib - fs (weak) devon-clarkk-engraphy-c05bbac/engraphy/tests/test_briefing.py :21
import pathlib - fs (weak) devon-clarkk-engraphy-c05bbac/engraphy/tests/test_db_guc_protocol.py :14
import pathlib - fs (weak) devon-clarkk-engraphy-c05bbac/engraphy/tests/test_dbmate_pin.py :9
import pathlib - fs (weak) devon-clarkk-engraphy-c05bbac/engraphy/tests/test_dedup_fixture_bands.py :22
from pathlib import Path - fs (weak) devon-clarkk-engraphy-c05bbac/engraphy/tests/test_doctor.py :6
import pathlib - fs (weak) devon-clarkk-engraphy-c05bbac/engraphy/tests/test_inbox.py :11
import pathlib - fs (weak) devon-clarkk-engraphy-c05bbac/engraphy/tests/test_jaccard.py :4
import pathlib - fs (weak) devon-clarkk-engraphy-c05bbac/engraphy/tests/test_migrate.py :11
import pathlib - fs (weak) devon-clarkk-engraphy-c05bbac/engraphy/tests/test_migrate_in_process.py :14
import shutil
21 more not shown — this panel samples each group; the count above is the real total.
shell / exec 13
- shell devon-clarkk-engraphy-c05bbac/bench/core/providers.py :36
import subprocess - shell devon-clarkk-engraphy-c05bbac/bench/core/run.py :58
import subprocess - shell devon-clarkk-engraphy-c05bbac/bench/dupstream/__main__.py :18
import subprocess - shell devon-clarkk-engraphy-c05bbac/bench/supervise.py :36
import subprocess - shell (weak) devon-clarkk-engraphy-c05bbac/bench/tests/test_providers_transient.py :16
import subprocess - shell devon-clarkk-engraphy-c05bbac/deploy/windows/engraphy_win.py :60
import subprocess - shell devon-clarkk-engraphy-c05bbac/engraphy/admin/migrate.py :17
import subprocess - shell devon-clarkk-engraphy-c05bbac/engraphy/admin/verify_restore.py :13
import subprocess - shell (weak) devon-clarkk-engraphy-c05bbac/engraphy/tests/test_embedding_profiles.py :205
import subprocess - shell (weak) devon-clarkk-engraphy-c05bbac/engraphy/tests/test_migrate_in_process.py :15
import subprocess - shell (weak) devon-clarkk-engraphy-c05bbac/engraphy/tests/test_verify_restore.py :20
import subprocess - shell (weak) devon-clarkk-engraphy-c05bbac/scripts/check_windows_event_loop.py :32
import subprocess
show 1 more
- shell (weak) devon-clarkk-engraphy-c05bbac/scripts/footprint.py :32
import subprocess
network 5
- net devon-clarkk-engraphy-c05bbac/bench/core/providers.py :38
import urllib.error - net devon-clarkk-engraphy-c05bbac/deploy/windows/engraphy_win.py :59
import socket - net devon-clarkk-engraphy-c05bbac/engraphy/admin/migrate.py :18
import urllib.error - net (weak) devon-clarkk-engraphy-c05bbac/engraphy/tests/test_app.py :18
import httpx - net (weak) devon-clarkk-engraphy-c05bbac/scripts/deploy_smoke_mcp.py :26
import httpx
secrets 1
- secrets (weak) devon-clarkk-engraphy-c05bbac/scripts/deploy_smoke_mcp.py :34
TOKEN = os.environ["ENGRAPHY_TOKEN"]
declared dependencies 19
- mcp@>=1.9,<2
- psycopg@>=3.2
- pydantic@>=2.7
- onnxruntime@>=1.17,<2
- tokenizers@>=0.15,<1
- huggingface-hub@>=0.23,<1
- pyyaml@>=6.0
- jsonschema@>=4.22
- typer@>=0.12
- pytest@>=8,<9
- pytest-asyncio@>=0.23,<2
- hypothesis@>=6.100,<7
show 7 more
- ruff@==0.16.4
- pytest-cov@>=5,<7
- pytest-timeout@>=2.3,<3
- engraphy@*
- anthropic@>=0.40
- sentence-transformers@>=3.0
- einops@>=0.7