Persistent, plain-text memory for Claude over MCP — Markdown files you own, hybrid search, OAuth 2.1 remote transport, agentic self-maintenance
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · streamable-http · http counts 17 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
memory_compact
-
memory_compile
-
memory_daily
-
memory_entities
-
memory_fuse
-
memory_index
-
memory_ingest
-
memory_lint
-
memory_list
-
memory_optimize
-
memory_priority
-
memory_read
-
memory_reflect
-
memory_search
-
memory_sources
-
memory_stats
-
memory_write
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit a066a11 · analyzer v33 · 2d ago
danger signals1
- dynamic code execution new Function() Agripp87-memoria_mcp-a066a11/mcp-server/src/__tests__/dashboard.test.ts :83
expect(() => new Function(scriptBody)).not.toThrow();
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 77
filesystem 40
- fs Agripp87-memoria_mcp-a066a11/mcp-server/eval/run.mjs :32
import fs from "node:fs"; - fs (weak) Agripp87-memoria_mcp-a066a11/mcp-server/scripts/demo.mjs :10
import fs from "node:fs"; - fs (weak) Agripp87-memoria_mcp-a066a11/mcp-server/scripts/generate-demo-data.mjs :15
import fs from "node:fs"; - fs (weak) Agripp87-memoria_mcp-a066a11/mcp-server/scripts/mcp-start.mjs :22
import { existsSync, mkdirSync, rmSync, statSync, writeFileSync } from "node:fs"; - fs (weak) Agripp87-memoria_mcp-a066a11/mcp-server/scripts/plugin-start.mjs :23
import { existsSync } from "node:fs"; - fs (weak) Agripp87-memoria_mcp-a066a11/mcp-server/scripts/verify-vector-space.mjs :31
import { readFileSync } from "node:fs"; - fs (weak) Agripp87-memoria_mcp-a066a11/mcp-server/src/__tests__/buffer.test.ts :4
import fs from "fs"; - fs (weak) Agripp87-memoria_mcp-a066a11/mcp-server/src/__tests__/compile_queue.test.ts :4
import fs from "fs"; - fs (weak) Agripp87-memoria_mcp-a066a11/mcp-server/src/__tests__/crypto.test.ts :4
import fs from "fs"; - fs (weak) Agripp87-memoria_mcp-a066a11/mcp-server/src/__tests__/dashboard.test.ts :4
import fs from "fs"; - fs (weak) Agripp87-memoria_mcp-a066a11/mcp-server/src/__tests__/dataloss.test.ts :14
import fs from "fs"; - fs (weak) Agripp87-memoria_mcp-a066a11/mcp-server/src/__tests__/entities.test.ts :4
import fs from "fs";
show 28 more
- fs (weak) Agripp87-memoria_mcp-a066a11/mcp-server/src/__tests__/filewatcher.test.ts :2
import fs from "fs"; - fs (weak) Agripp87-memoria_mcp-a066a11/mcp-server/src/__tests__/http.integration.test.ts :4
import fs from "fs"; - fs (weak) Agripp87-memoria_mcp-a066a11/mcp-server/src/__tests__/index_rebuild.test.ts :4
import fs from "fs"; - fs (weak) Agripp87-memoria_mcp-a066a11/mcp-server/src/__tests__/ingestion.test.ts :4
import fs from "fs"; - fs (weak) Agripp87-memoria_mcp-a066a11/mcp-server/src/__tests__/lint_checks.test.ts :4
import fs from "fs"; - fs (weak) Agripp87-memoria_mcp-a066a11/mcp-server/src/__tests__/optimize.test.ts :7
import fs from "fs"; - fs (weak) Agripp87-memoria_mcp-a066a11/mcp-server/src/__tests__/pathsafety.test.ts :2
import fs from "fs"; - fs (weak) Agripp87-memoria_mcp-a066a11/mcp-server/src/__tests__/phase5.test.ts :12
import fs from "fs"; - fs (weak) Agripp87-memoria_mcp-a066a11/mcp-server/src/__tests__/privacy.test.ts :4
import fs from "fs"; - fs (weak) Agripp87-memoria_mcp-a066a11/mcp-server/src/__tests__/provenance.test.ts :4
import fs from "fs"; - fs (weak) Agripp87-memoria_mcp-a066a11/mcp-server/src/__tests__/registry.test.ts :4
import fs from "fs"; - fs (weak) Agripp87-memoria_mcp-a066a11/mcp-server/src/__tests__/relevance_fixture.test.ts :16
import fs from "fs"; - fs (weak) Agripp87-memoria_mcp-a066a11/mcp-server/src/__tests__/scheduler.test.ts :4
import fs from "fs"; - fs (weak) Agripp87-memoria_mcp-a066a11/mcp-server/src/__tests__/store.test.ts :6
import fs from "fs"; - fs (weak) Agripp87-memoria_mcp-a066a11/mcp-server/src/__tests__/tools.test.ts :16
import fs from "fs"; - fs (weak) Agripp87-memoria_mcp-a066a11/mcp-server/src/__tests__/vector_sampling.test.ts :4
import fs from "fs"; - fs Agripp87-memoria_mcp-a066a11/mcp-server/src/collector/adapters/calendar.ts :11
import * as fs from "node:fs"; - fs Agripp87-memoria_mcp-a066a11/mcp-server/src/collector/adapters/custom.ts :16
import * as fs from "node:fs"; - fs Agripp87-memoria_mcp-a066a11/mcp-server/src/collector/buffer.ts :15
import * as fs from "node:fs"; - fs Agripp87-memoria_mcp-a066a11/mcp-server/src/collector/crypto.ts :16
import * as fs from "node:fs"; - fs Agripp87-memoria_mcp-a066a11/mcp-server/src/collector/ingestion.ts :13
import * as fs from "node:fs"; - fs Agripp87-memoria_mcp-a066a11/mcp-server/src/collector/provenance.ts :21
import * as fs from "node:fs"; - fs Agripp87-memoria_mcp-a066a11/mcp-server/src/collector/registry.ts :12
import * as fs from "node:fs"; - fs Agripp87-memoria_mcp-a066a11/mcp-server/src/dashboard.ts :17
import fs from "fs"; - fs Agripp87-memoria_mcp-a066a11/mcp-server/src/entities.ts :20
import fs from "fs"; - fs Agripp87-memoria_mcp-a066a11/mcp-server/src/http.ts :21
import * as fs from "node:fs"; - fs Agripp87-memoria_mcp-a066a11/mcp-server/src/lint.ts :12
import fs from "fs"; - fs Agripp87-memoria_mcp-a066a11/mcp-server/src/tools.ts :7
import fs from "fs";
shell / exec 5
- shell (weak) Agripp87-memoria_mcp-a066a11/mcp-server/scripts/demo.mjs :9
import { spawn, spawnSync } from "node:child_process"; - shell (weak) Agripp87-memoria_mcp-a066a11/mcp-server/scripts/mcp-start.mjs :21
import { spawnSync } from "node:child_process"; - shell (weak) Agripp87-memoria_mcp-a066a11/mcp-server/scripts/plugin-start.mjs :22
import { spawnSync } from "node:child_process"; - shell Agripp87-memoria_mcp-a066a11/mcp-server/src/collector/adapters/custom.ts :18
import { execFileSync } from "node:child_process"; - shell Agripp87-memoria_mcp-a066a11/mcp-server/src/collector/registry.ts :14
import { execFileSync } from "node:child_process";
network 3
- net Agripp87-memoria_mcp-a066a11/mcp-server/src/collector/adapters/email.ts :84
for await (const message of this.client.fetch(query, { - net Agripp87-memoria_mcp-a066a11/mcp-server/src/dashboard.ts :1046
const res = await fetch('/dashboard/login', { - net Agripp87-memoria_mcp-a066a11/mcp-server/src/embeddings.ts :89
const res = await fetch("https://api.openai.com/v1/embeddings", {
secrets 6
- secrets (weak) Agripp87-memoria_mcp-a066a11/mcp-server/scripts/demo.mjs :20
const KEY = process.env.MEMORIA_API_KEY || "demo-key-123"; - secrets (weak) Agripp87-memoria_mcp-a066a11/mcp-server/src/__tests__/crypto.test.ts :78
require: process.env.MEMORIA_REQUIRE_ENCRYPTION_KEY, - secrets (weak) Agripp87-memoria_mcp-a066a11/mcp-server/src/__tests__/http.integration.test.ts :16
process.env.MEMORIA_API_KEY = KEY; - secrets Agripp87-memoria_mcp-a066a11/mcp-server/src/collector/crypto.ts :57
const requireEnvKey = process.env.MEMORIA_REQUIRE_ENCRYPTION_KEY === "true"; - secrets Agripp87-memoria_mcp-a066a11/mcp-server/src/embeddings.ts :41
const hasOpenAI = !!process.env.OPENAI_API_KEY; - secrets Agripp87-memoria_mcp-a066a11/mcp-server/src/http.ts :54
const API_KEY = process.env.MEMORIA_API_KEY;
database 2
- db Agripp87-memoria_mcp-a066a11/mcp-server/src/http.ts :172
import DatabaseConstructor from "better-sqlite3"; - db Agripp87-memoria_mcp-a066a11/mcp-server/src/store.ts :14
import Database from "better-sqlite3";
tool registrations 17
- memory_search Agripp87-memoria_mcp-a066a11/mcp-server/src/tools.ts :410
- memory_read Agripp87-memoria_mcp-a066a11/mcp-server/src/tools.ts :469
- memory_write Agripp87-memoria_mcp-a066a11/mcp-server/src/tools.ts :523
- memory_list Agripp87-memoria_mcp-a066a11/mcp-server/src/tools.ts :604
- memory_index Agripp87-memoria_mcp-a066a11/mcp-server/src/tools.ts :668
- memory_daily Agripp87-memoria_mcp-a066a11/mcp-server/src/tools.ts :694
- memory_optimize Agripp87-memoria_mcp-a066a11/mcp-server/src/tools.ts :736
- memory_reflect Agripp87-memoria_mcp-a066a11/mcp-server/src/tools.ts :758
- memory_stats Agripp87-memoria_mcp-a066a11/mcp-server/src/tools.ts :801
- memory_lint Agripp87-memoria_mcp-a066a11/mcp-server/src/tools.ts :919
- memory_compile Agripp87-memoria_mcp-a066a11/mcp-server/src/tools.ts :931
- memory_compact Agripp87-memoria_mcp-a066a11/mcp-server/src/tools.ts :1109
show 5 more
- memory_entities Agripp87-memoria_mcp-a066a11/mcp-server/src/tools.ts :1247
- memory_sources Agripp87-memoria_mcp-a066a11/mcp-server/src/tools.ts :1632
- memory_ingest Agripp87-memoria_mcp-a066a11/mcp-server/src/tools.ts :1760
- memory_fuse Agripp87-memoria_mcp-a066a11/mcp-server/src/tools.ts :1824
- memory_priority Agripp87-memoria_mcp-a066a11/mcp-server/src/tools.ts :1897
install hooks 1
- prepublishOnly Agripp87-memoria_mcp-a066a11/mcp-server/package.json :44
npm run build
declared dependencies 23
- @modelcontextprotocol/sdk@^1.30.0
- @types/js-yaml@^4.0.9
- @types/markdown-it@^14.1.2
- better-sqlite3@^12.11.1
- express@^5.2.1
- express-rate-limit@^8.7.0
- js-yaml@^4.3.2
- markdown-it@^15.0.2
- zod@^4.5.4
- @eslint/js@^10.0.1
- @types/better-sqlite3@^7.6.13
- @types/express@^5.0.6
show 11 more
- @types/node@^26.4.1
- @types/supertest@^7.2.1
- @vitest/coverage-v8@^4.1.11
- eslint@^10.9.1
- eslint-config-prettier@^10.1.8
- prettier@^3.9.6
- supertest@^7.2.2
- typescript@^6.0.2
- typescript-eslint@^8.69.0
- vitest@^4.1.11
- @huggingface/transformers@^3.8.1