Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

codeagent-memory

OCI · GHCR.IO/HANOCHZHU/CODEAGENT-MEMORY

Local code graph and solution memory for coding agents via CLI and MCP.

+3 this week 50 Trust /100

Last scanned (23 hours ago)

Scores higher than 77% of OCI servers

Category Code Search and Documentation

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security0
  • No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.Unverified
  • Known CVEs could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.Unverified
  • Install-script risk not yet assessed.Unverified
  • Dependency health could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.Unverified
Provenance & Transparency45
Schema Quality & AI Usability73
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 2649 tokens (~240/item across 11 items; 9 tools + 2 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management70
  • Stability observed for 21 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage98
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 94% of tool parameters carry a description.Partial
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 9 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 11 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 4 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 67 to 70. That category is still filling its 30-day observation window: 20 days of observed history at the previous scan, 21 at this one. The score rises as the window fills, whether or not the server changes.

  • 2 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 60 to 63. That category is still filling its 30-day observation window: 18 days of observed history at the previous scan, 19 at this one. The score rises as the window fills, whether or not the server changes.

  • 31 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 53 to 57. That category is still filling its 30-day observation window: 16 days of observed history at the previous scan, 17 at this one. The score rises as the window fills, whether or not the server changes.

  • 30 Oct 26 0
    • Schema quality: 203 → 240 ▼ functional
    • Package version: 0.1.5 → 0.1.6 functional
  • 28 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.

  • 26 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 37 to 40. That category is still filling its 30-day observation window: 11 days of observed history at the previous scan, 12 at this one. The score rises as the window fills, whether or not the server changes.

  • 24 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 30 to 33. That category is still filling its 30-day observation window: 9 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes.

  • 22 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 4 Nov 2026 · Analysed oci/ghcr.io/hanochzhu/codeagent-memory@0.1.6

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem oci
Reason No attestation published

Background: How many MCP packages publish verified provenance →

MCP tools · 9 exposed · ~1,866 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
cam_add ~466

Store one memory, or several memories from the same solution. Each memory is one fact, or the solution path for one problem (symptom, cause, change, and how to verify). If two pieces can be asked about separately, or can become outdated separately, store them as separate memories; a body holds only the detail one memory needs. Pass one memory as summary and body. Pass several as memories, and use #0, #1, ... inside that array for parent, supersedes, and links. Summary must be English; the body supports non-Latin characters. links connects related memories (recall does not walk them). parent is structural hierarchy. supersedes replaces an older revision. Equivalent CLI, one memory per invocation: cam add --summary "..." [--parent ID] [--supersedes ID] [--link ID]... --body "..." (or --file / stdin)

NameTypeReqDescription
bodystring–Detail this one fact or solution path needs, and nothing else. Supports non-Latin characters.
hash_embedboolean–Use the test hash embedder instead of model2vec.
linksarray–Related memory ids. Inside memories, #0, #1, ... refer to other items in that array.
memoriesarray–Several memories from the same solution, stored in one call. Each item is one fact or one solution path. parent, supersedes, and links on an item may use #0, #1, ... to refer to other items in this a…
parentstring–Structural parent memory id, or #0, #1, ... when this item is inside memories. This relation may branch and does not affect latest.
pathstring–Project root. Defaults to CAM_PROJECT, then the server --project, then .cam / .git walk-up from the server cwd, else the server cwd.
summarystring–One-line English title for this one fact or solution path. Must be written in English.
supersedesstring–Older revision replaced by this memory. An existing id, or #0, #1, ... inside memories. Omit for a structural child or independent memory.

No output schema declared.

No examples provided.

cam_find ~248

Find symbols whose name contains a substring (case-insensitive). Exact names rank first, then prefixes, then other matches. Each hit has a virtual `path` and an `id` to pass to cam_read or cam_ref. Matches names only, not text inside bodies. Needs an indexed graph; call cam_index first if it reports the graph is not indexed. Equivalent CLI: cam find <query> [--kind KIND] [--file SUBSTR] [--scope DIR] [--limit N]

NameTypeReqDescription
filestring–Keep only symbols whose file path contains this (case-insensitive).
kindstring–Keep only this node kind (function, method, struct, class, trait, enum, enum_variant, type_alias).
limitinteger––
pathstring–Project root. Defaults to CAM_PROJECT, then the server --project, then .cam / .git walk-up from the server cwd, else the server cwd.
querystringyesPart of a symbol name, e.g. recall or parse_ref.
scopestring–Keep only symbols under this sub-directory, typically a `project` entry from cam_ls.

No output schema declared.

No examples provided.

cam_index ~93

Parse the project with tree-sitter into .cam/cam.db. Nested directories with their own .git are indexed into that directory's .cam/cam.db; this database keeps a catalog of them. Equivalent CLI: cam index

NameTypeReqDescription
pathstring–Project root. Defaults to CAM_PROJECT, then the server --project, then .cam / .git walk-up from the server cwd, else the server cwd.

No output schema declared.

No examples provided.

cam_ls ~145

List indexed directories, files, or symbols as a virtual filesystem. Directories that are git checkouts of their own are listed with kind `project`; pass such a path as `scope` to cam_ref in multi-repo workspaces. Needs an indexed graph; call cam_index first if it reports the graph is not indexed. Equivalent CLI: cam ls [virt_path]

NameTypeReqDescription
pathstring–Project root. Defaults to CAM_PROJECT, then the server --project, then .cam / .git walk-up from the server cwd, else the server cwd.
virt_pathstring–Virtual path such as src/ or src/main.rs. Omit for repo root.

No output schema declared.

No examples provided.

cam_mem_show ~77

Show one memory by id. Equivalent CLI: cam mem show <id>

NameTypeReqDescription
idstringyesSolution id from recall or cam_mem_tree.
pathstring–Project root. Defaults to CAM_PROJECT, then the server --project, then .cam / .git walk-up from the server cwd, else the server cwd.

No output schema declared.

No examples provided.

cam_mem_tree ~59

Print the solution tree. Equivalent CLI: cam mem tree

NameTypeReqDescription
pathstring–Project root. Defaults to CAM_PROJECT, then the server --project, then .cam / .git walk-up from the server cwd, else the server cwd.

No output schema declared.

No examples provided.

cam_read ~178

Read a file outline or a symbol body. Prefer symbol paths (src/main.rs/main) over --full. If the name occurs more than once in the file the result has status `ambiguous` with `candidates`; re-call with a candidate `id` as virt_path. Needs an indexed graph; call cam_index first if it reports the graph is not indexed. Equivalent CLI: cam read <virt_path> [--full]

NameTypeReqDescription
fullboolean–Read the whole file instead of the outline.
pathstring–Project root. Defaults to CAM_PROJECT, then the server --project, then .cam / .git walk-up from the server cwd, else the server cwd.
virt_pathstringyesFile (src/main.rs), symbol (src/main.rs/main), or a node id from an ambiguous answer.

No output schema declared.

No examples provided.

cam_recall ~318

Hybrid recall (vector + BM25 fused with RRF), scaled slightly by Ebbinghaus retention. The query must be written in English. `score` near 2 means both paths matched, near 1 only one. Every hit carries its full body unless `snippets` is set; then long bodies below the top hit come back clipped with `body_truncated: true`, and cam_mem_show returns the full text. By default it pulls in the newest revision and hides superseded revisions. A successful returned match refreshes retention. Equivalent CLI: cam recall "<query>" [--limit N] [--no-expand] [--include-superseded] [--snippets]

NameTypeReqDescription
expandboolean–Pull in the newest revision of each match, even when it matches neither path. Set false to score the raw fused list.
hash_embedboolean–Use the test hash embedder instead of model2vec.
include_supersededboolean–Return older revisions as well as the latest one for history or comparison queries.
limitinteger––
pathstring–Project root. Defaults to CAM_PROJECT, then the server --project, then .cam / .git walk-up from the server cwd, else the server cwd.
querystringyesOne-sentence question written in English. Non-Latin scripts are rejected.
snippetsboolean–Clip long bodies below the top hit to snippets marked body_truncated; read one in full with cam_mem_show.

No output schema declared.

No examples provided.

cam_ref ~282

One-hop callers (in) or callees (out). A bare name that matches several definitions returns status `ambiguous` with ranked `candidates` instead of refs; re-call with a candidate `id` as symbol, or narrow with `file` / `kind` / `scope`. Needs an indexed graph; call cam_index first if it reports the graph is not indexed. Equivalent CLI: cam ref <symbol> --dir in|out [--file SUBSTR] [--kind KIND] [--scope DIR]

NameTypeReqDescription
dirstringyesin = callers, out = callees.
filestring–Disambiguate: case-insensitive substring of the defining file path, e.g. core/src/config.ts.
kindstring–Disambiguate: node kind (function, method, struct, class, trait, enum, enum_variant, type_alias).
pathstring–Project root. Defaults to CAM_PROJECT, then the server --project, then .cam / .git walk-up from the server cwd, else the server cwd.
scopestring–Restrict resolution and refs to this sub-directory, typically a `project` entry from cam_ls (e.g. codely-cli).
symbolstringyesSymbol name, node id, or virtual path like src/lib.rs/add.

No output schema declared.

No examples provided.

Install

How do I install the codeagent-memory MCP server?

codeagent-memory runs locally as a container image, launched with docker run --rm -i ghcr.io/hanochzhu/codeagent-memory:0.1.6. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.

oci · ghcr.io/hanochzhu/codeagent-memory

# add to Claude Code
claude mcp add hanochzhu-codeagent-memory -- docker run --rm -i ghcr.io/hanochzhu/codeagent-memory:0.1.6
Common questions

What is the codeagent-memory MCP server?

codeagent-memory is an MCP server listed in the public MCP registry as io.github.HanochZhu/codeagent-memory. Local code graph and solution memory for coding agents via CLI and MCP. This page covers its container image (ghcr.io/hanochzhu/codeagent-memory).

Is the codeagent-memory MCP server safe to use?

codeagent-memory scores 50 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the codeagent-memory MCP server expose?

codeagent-memory exposes 9 tools: cam_index, cam_ls, cam_read, cam_ref, cam_find, and 4 more. Their descriptions and schemas cost roughly 1,866 tokens of context every time the server is loaded.

Is the codeagent-memory MCP server still maintained?

codeagent-memory is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the codeagent-memory MCP server under?

codeagent-memory declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.