Atlas / MCP servers / buzzni / claude-memory-layer

claude-memory-layerBLOCK

mcp/buzzni/claude-memory-layer
Verdict
BLOCK
Grade
F
Trust score
48 /100
Exposed tools
48 31r · 15w · 2d
Transport
stdio
License
—
Stars
2
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

Claude Code, Codex, Hermes, MCP 클라이언트가 함께 쓰는 프로젝트 스코프 메모리 레이어입니다. 대화/세션 기록을 SQLite 이벤트 저장소와 LanceDB 벡터 인덱스로 관리하고, 작업 시작 시 필요한 기억·타임라인·액션 프런티어를 privacy-safe 컨텍스트로 제공합니다.

개요

Claude Memory Layer는 AI 에이전트의 대화와 작업 이벤트를 프로젝트별로 저장하고, 새로운 작업을 시작할 때 관련 기억을 자동 검색해 컨텍스트로 제공합니다. 최신 npm 패키지는 단순 Claude Code hook을 넘어 다음 용도로 사용할 수 있습니다:

  • 연속성 있는 대화: 이전 세션에서 논의한 결정, 오류, 검증 결과를 검색
  • 프로젝트 맥락 이해: 프로젝트별 isolated store와 projectPath 기반 MCP/CLI 조회
  • 다중 에이전트 호환: Claude Code hooks + Codex/Hermes session import + MCP stdio server
  • 운영형 메모리: actions/frontier/checkpoints/facets/lessons/retention audit로 다음 작업을 이어받기
  • Perspective Memory: 사용자/어시스턴트/서브에이전트 관점의 actor card와 observation 관리
  • 신뢰 가능한 벡터 동기화: Vector Outbox V2, worker lock, dashboard/vector-status health로 누락 복구

최신 릴리스 하이라이트

  • MCP Context Navigator: mem-context-pack, mem-project-timeline, mem-source-ref, mem-import-latest로 Hermes/Codex/Claude Desktop이 같은 프로젝트 기억을 안전하게 조회합니다.
  • Memory Operations Layer: facet/action/frontier/checkpoint/retention/graph/lesson 도구와 CLI가 추가되어 “무엇을 다음에 해야 하는가”를 메모리에서 바로 복원합니다.
  • Honcho-inspired Perspective Memory: actor/session membership, actor cards, perspective observations, contradiction/derived observation, perspective context/query 도구를 제공합니다.
  • Vector Outbox V2: SQLite source write와 vector enqueue를 같은 트랜잭션으로 묶고, versioned LanceDB upsert와 stuck-job recovery를 지원합니다.
  • Dashboard 운영성 강화: local-only 기본 bind, 선택적 password gate, Vector Health 카드, Perspective Memory aggregate 카드, retrieval trace/score breakdown과 aggregate-only strategy/context-pack telemetry를 제공합니다.
  • Codex/Hermes history ingest: 원본 세션은 read-only validate/replay로 먼저 확인하고, 명시적 import로만 프로젝트 메모리에 반영합니다.
  • Hermes/CML/Headroom 운영 모델: Hermes built-in memory, session_search, CML context-pack, read-only Hermes provider, Headroom reference stance는 docs/HERMES_CML_HEADROOM_OPERATING_MODEL.md에 정리되어 있습니다.
  • **n
Read from source at commit 5d9fc3e13673OBSERVED · 2026-10-12
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code
claude mcp add claude-memory-layer --env ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} --env DART_API_KEY=${DART_API_KEY} --env FINNHUB_API_KEY=${FINNHUB_API_KEY} --env FRED_API_KEY=${FRED_API_KEY} -- npx -y [email protected]
claude-desktop
{
  "mcpServers": {
    "claude-memory-layer": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ],
      "env": {
        "ANTHROPIC_API_KEY": "${ANTHROPIC_API_KEY}",
        "DART_API_KEY": "${DART_API_KEY}",
        "FINNHUB_API_KEY": "${FINNHUB_API_KEY}",
        "FRED_API_KEY": "${FRED_API_KEY}"
      }
    }
  }
}
03

Exposed tools (48)

31 read · 15 write · 2 destructive. Blast radius: 2 tools can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.

ToolRiskDescription
external-market-contextreadRead-only external market/company context from DART, FRED, and Finnhub with structured MarketContextSnapshot bull/bear/risk/catalyst analysis.
golden-memory-usefulness-v1readprivacy-safe fixture
longmemeval-turn-retrieval-smoke-hybrid-sourcereadTurn-level LongMemEval fixture used internally for hybrid session retrieval.
mem-action-listreadList project-scoped memory actions with compact status/frontier metadata and no raw transcript disclosure.
mem-action-updatewriteUpdate a project-scoped memory action status through an audited, state-changing operation.
mem-actor-card-getreadRead the compact actor card for one observer -> observed perspective without raw transcript disclosure.
mem-actor-card-upsertwriteCreate or replace a compact actor card through an audited state-changing perspective operation.
mem-actor-listreadList project-scoped or global memory actors with compact privacy-safe identity metadata.
mem-asset-bindwriteCreate, update, or disable an actor-to-asset injection binding after a bind permission check.
mem-asset-catalog-syncwritePreview or apply idempotent registration of canonical project lessons and core-memory blocks as private memory assets. Preview is the default and never changes canonical content.
mem-asset-checkreadExplain whether the requester has a specific memory asset permission and which policy rule decided it.
mem-asset-createwriteRegister a project-scoped memory asset. The requester becomes its owner; content stays in the referenced canonical subsystem.
mem-asset-getreadGet one memory asset only when the requester has read access; unauthorized and missing assets return the same not-found shape.
mem-asset-grant-setwriteReplace one actor\
mem-asset-listreadList only memory assets readable by the requester; inaccessible private assets are omitted.
mem-asset-updatewriteUpdate memory asset metadata after an owner or explicit write-grant check. Supports optimistic version checks.
mem-checkpoint-createwriteCreate an audited project-scoped checkpoint for a resumable operation target without exposing raw local paths or transcript content.
mem-checkpoint-listreadList project-scoped checkpoints with bounded metadata for safe task resumption.
mem-context-packreadBuild a compact, agent-ready project context pack from relevant memories plus recent project timeline. Use at the start of Hermes/Codex work to recover the important project state without reading raw transcripts.
mem-core-block-getreadRead this project\
mem-core-block-updatewriteReplace one core memory block through an audited write. Registered blocks require write access when server enforcement is enabled.
mem-detailsreadGet full content of specific memories. Use after mem-search to get complete information. Conditional mutation: each successfully resolved reference records privacy-safe navigation telemetry.
mem-entity-supersedereadMark one entity (task/condition/artifact/source_file) as superseded by another through an audited fact-reconciliation write. The old entity stops being traversed/surfaced by graph-based retrieval (mem-graph-query and related retrieval lanes); it is not deleted, just excluded from
mem-facet-queryreadQuery project-scoped memory facets and return compact privacy-safe facet rows for filtering or inspection.
mem-facet-tagwriteAttach or update a project-scoped facet tag on a memory operations target with governance audit metadata.
mem-frontierreadReturn the project-scoped execution frontier: next actions, blocked work, checkpoints, and safe resume hints.
mem-graph-querywriteRun bounded project-scoped graph expansion/query diagnostics over active entities and edges with sanitized explanations.
mem-import-latestwriteExplicitly import the latest local Claude Code, Codex, and/or Hermes session history into project-scoped memory before retrieving context. This mutates memory; use for freshness jobs before mem-context-pack.
mem-lesson-candidatesreadDetect not-yet-saved reusable workflow patterns (rule-based, from repeated successful tool sequences across sessions) so they can be reviewed and promoted with mem-lesson-save. Read-only — does not write a lesson.
mem-lesson-getreadFetch one curated project lesson by lessonId or project-unique name — the body behind an entry in the session-start lesson index. Registered assets are permission-filtered when server enforcement is enabled.
mem-lesson-listreadList project-scoped procedural lessons as compact skill/runbook candidates. Registered assets are permission-filtered when server enforcement is enabled.
mem-lesson-savewriteSave a reviewed project-scoped lesson or rule as a curated memory. Updates to registered lessons require write access when server enforcement is enabled.
mem-perspective-contextreadBuild a compact actor-card plus perspective-observation context bundle for one observer -> target actor pair.
mem-perspective-observation-createwriteCreate an audited observer -> observed perspective observation with bounded evidence references.
mem-perspective-observation-deletedestructiveSoft-delete an audited perspective observation by id; hard deletion is not exposed.
mem-perspective-queryreadQuery observer -> observed perspective observations as a separate retrieval lane with source-reference hints.
mem-project-timelinereadSummarize recent project memory by session, source agent, event counts, and safe previews. Useful for understanding what happened recently before continuing work.
mem-retention-auditwriteRun a dry-run retention governance audit for project-scoped memories and return policy explanations without hard deletion.
mem-searchreadSearch claude-memory-layer for relevant past conversations and insights. Returns a compact index of results - use mem-details to get full content.
mem-shared-actor-linkreadExplicitly link this project-local actor to a shared principal before using actor-scoped cross-project troubleshooting search. This is a global shared-store mutation; it does not grant canonical memory-asset permissions.
mem-shared-actor-statusreadInspect whether this project-local actor has an explicit shared principal link. No shared troubleshooting content is returned.
mem-shared-actor-unlinkdestructiveRemove this project-local actor\
mem-shared-asset-getreadRead one active canonical lesson or core-memory block from another project only after both named actors are explicitly linked to the same shared principal. The source asset must be registered, active, visibility=shared, and readable under the source project policy. This never auto-injects content.
mem-shared-searchreadSearch verified shared troubleshooting entries only from projects explicitly linked to requesterActorId through the same shared principal. An unlinked actor receives an empty result.
mem-statsreadRead-only: get statistics about an existing memory store without creating or migrating it.
mem-timelinereadGet chronological context around specific memories. Useful for understanding the conversation flow.
private-real-session-qrelsreadcontains raw real session text that reports must not leak
retrieval-review-golden-promotion-candidatesreadPrivacy-safe candidate plan for manually promoting bad retrieval review queue items into the golden replay fixture.
04

Trust audit

BLOCKgrade F · trust 48/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryWARN
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfaceWARN
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (11 observation(s))
Network
declared (7 observation(s))
Shell
declared (7 observation(s))
Dependencies
not all pinned
Secrets in source
found

Findings (25)

HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
scripts/evaluate-lesson-hybrid-heldout.ts:34
const dynamicImport = new Function('specifier', 'return import(specifier)') as (specifier: string) => Promise<unknown>;
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
scripts/evaluate-lesson-hybrid.ts:19
const dynamicImport = new Function('specifier', 'return import(specifier)') as (specifier: string) => Promise<unknown>;
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
src/apps/cli/index.ts:3950
exec(command, (error) => {
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
src/extensions/vector/embedder.ts:411
const dynamicImport = new Function('specifier', 'return import(specifier)') as (
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
MEDIUMInventory / provenance · inv.binary · CWE-1104
.DS_Store
.DS_Store
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
MEDIUMInformation disclosure · disclose.log_secret · CWE-209, CWE-532
src/apps/cli/index.ts:3911
console.log(`🔐 Password: ${password ? 'enabled' : 'disabled'}`);
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
scripts/dashboard-smoke.ts:63
const baseUrl = `http://127.0.0.1:${port}`;
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
src/apps/server/index.ts:425
const response = await fetch(`http://127.0.0.1:${port}/health`);
MEDIUMHard-coded secrets · secret.anthropic · CWE-798, CWE-321
tests/core/privacy-filter.test.ts:111
['anthropic', 'sk-ant-ABCDEFGHIJKLMNOPQRSTUVWXYZ01'],
MEDIUMHard-coded secrets · secret.aws · CWE-798, CWE-321
tests/core/privacy-filter.test.ts:114
['aws access key id', 'AKIAABCDEFGHIJKLMNOP']
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
tests/adapters/claude-hook-prompt-normalization.test.ts:37
const TOKEN = 'stg_secret0123456789abcdefghijklmnop';
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
tests/apps/memory-audit-lesson-usage.test.ts:21
const TOKEN = 'stg_auditsecret0123456789abcdefghij';
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
tests/core/privacy-filter.test.ts:211
const source = 'const apiKey = "sk_live_abcdef123456"';
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
tests/core/prompt-normalizer.test.ts:6
const TOKEN = 'stg_0123456789abcdefghijklmnopqrstuv';
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
tests/extensions/mcp-context-tools.test.ts:2051
secret: 'sensitive-fixture-value'
MEDIUMHard-coded secrets · secret.github · CWE-798, CWE-321
tests/core/privacy-filter.test.ts:109
['github oauth', 'gho_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'],
MEDIUMHard-coded secrets · secret.github · CWE-798, CWE-321
tests/core/privacy-filter.test.ts:110
['github fine-grained pat', 'github_pat_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnop'],
MEDIUMHard-coded secrets · secret.slack · CWE-798, CWE-321
tests/core/privacy-filter.test.ts:113
['slack', 'xoxb-ABCDEFGHIJKLMNOPQRSTUV'],
MEDIUMHard-coded secrets · secret.slack · CWE-798, CWE-321
tests/core/replay-promotion.test.ts:127
selectedEventIds: ['xoxb-fake-selected', 'xoxc-fake-selected'],
MEDIUMFilesystem / path · mcp.destructive_tools · CWE-22, CWE-59
mem-perspective-observation-delete, mem-shared-actor-unlink
Why it matters. 2 tool(s) can delete or overwrite
Fix. prefer a read-only mode or scoped tokens; the page states the blast radius
LOWInventory / provenance · inv.binary · CWE-1104
specs/.DS_Store
.DS_Store
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
LOWInventory / provenance · inv.hidden_file · CWE-1104
.DS_Store
.DS_Store
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
specs/.DS_Store
.DS_Store
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.no_license · CWE-1104
Why it matters. no LICENSE file and no repo licence
Fix. add a licence
LOWInsecure crypto · crypto.weak_hash · CWE-327, CWE-338
src/core/canonical-key.ts:45
const hashSuffix = createHash('md5').update(key).digest('hex').slice(0, 8);

Gates applied: no_behavioural_pass, no_license.

Audited 2026-10-12 · audit v0.4.1 · source sha 5d9fc3e13673full audit observations/trust-audit/mcp-server/buzzni__claude-memory-layer.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-125d9fc3e13673BLOCKF48first audit
06

Questions

What tools does claude-memory-layer expose?

48 in total: 31 read-only, 15 that write, and 2 that can delete or overwrite (mem-perspective-observation-delete, mem-shared-actor-unlink). Every one is listed on this page with its risk.

Is claude-memory-layer safe to connect to an agent?

No — not without reading the findings first. The audit graded it F (48/100) and found 4 critical or high issues in the source. Each one is listed on this page with the file and line it is on. Separately from the audit: 2 of its tools can destroy data, so scope the token you give it to what you actually need.

What credentials does claude-memory-layer need?

It reads ANTHROPIC_API_KEY, DART_API_KEY, FINNHUB_API_KEY, FRED_API_KEY, LONGMEMEVAL_READER_API_KEY, SECRET_SHOULD_NOT_LEAK and TOKEN from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does claude-memory-layer run?

It speaks stdio, so it runs as a local process your client starts. It is published on npm as claude-memory-layer at 2.4.11.

How current is this page?

The grade is for one exact copy of the source (5d9fc3e13673), read on 2026-10-12. The repository is watched and re-audited when it changes.

Advertisement