# codeagent-memory (oci · ghcr.io/hanochzhu/codeagent-memory)

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

- Trust score: 50/100 (low)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- oci · `ghcr.io/hanochzhu/codeagent-memory`: 50/100 (this document), [markdown](https://verifymcp.io/servers/hanochzhu-codeagent-memory/ghcr-io-hanochzhu-codeagent-memory.md), [page](https://verifymcp.io/servers/hanochzhu-codeagent-memory/ghcr-io-hanochzhu-codeagent-memory)

## Channel facts

- Registry: `oci`
- Package: `ghcr.io/hanochzhu/codeagent-memory`
- Version: `0.1.6`
- Transport: `stdio`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Supply Chain Security**: 0/100
  - 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.
  - Known CVEs could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.
  - Install-script risk not yet assessed.
  - Dependency health could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 5 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 73/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - 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.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 73/100
  - Stability observed for 22 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 98/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 94% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 9 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 11 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**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.

## 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.

### Claude

```bash
claude mcp add hanochzhu-codeagent-memory -- docker run --rm -i ghcr.io/hanochzhu/codeagent-memory:0.1.6
```

### Cursor

```json
{
  "mcpServers": {
    "hanochzhu-codeagent-memory": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/hanochzhu/codeagent-memory:0.1.6"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "hanochzhu-codeagent-memory": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/hanochzhu/codeagent-memory:0.1.6"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add hanochzhu-codeagent-memory -- docker run --rm -i ghcr.io/hanochzhu/codeagent-memory:0.1.6
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "hanochzhu-codeagent-memory": {
      "type": "local",
      "command": [
        "docker",
        "run",
        "--rm",
        "-i",
        "ghcr.io/hanochzhu/codeagent-memory:0.1.6"
      ],
      "enabled": true
    }
  }
}
```

### Hermes

```yaml
mcp_servers:
  hanochzhu-codeagent-memory:
    command: "docker"
    args: ["run", "--rm", "-i", "ghcr.io/hanochzhu/codeagent-memory:0.1.6"]
```

### Netclaw

```json
{
  "McpServers": {
    "hanochzhu-codeagent-memory": {
      "Transport": "stdio",
      "Command": "docker",
      "Arguments": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/hanochzhu/codeagent-memory:0.1.6"
      ]
    }
  }
}
```

### Other

```json
{
  "mcpServers": {
    "hanochzhu-codeagent-memory": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/hanochzhu/codeagent-memory:0.1.6"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-04 (score 50, +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.

### 2026-11-02 (score 49, +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.

### 2026-10-31 (score 48, +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.

### 2026-10-30 (score 47, 0)

- [functional regression] Schema quality: 203 → 240
- [functional] Package version: 0.1.5 → 0.1.6

### 2026-10-28 (score 47, +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.

### 2026-10-26 (score 46, +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.

### 2026-10-24 (score 45, +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.

### 2026-10-22 (score 44, +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.

## MCP tools (9)

### `cam_index` (~93 tokens)

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

Input parameters:

- `path` (string): Project root. Defaults to CAM_PROJECT, then the server --project, then .cam / .git walk-up from the server cwd, else the server cwd.

### `cam_ls` (~145 tokens)

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]

Input parameters:

- `path` (string): Project root. Defaults to CAM_PROJECT, then the server --project, then .cam / .git walk-up from the server cwd, else the server cwd.
- `virt_path` (string): Virtual path such as src/ or src/main.rs. Omit for repo root.

### `cam_read` (~178 tokens)

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]

Input parameters:

- `full` (boolean): Read the whole file instead of the outline.
- `path` (string): Project root. Defaults to CAM_PROJECT, then the server --project, then .cam / .git walk-up from the server cwd, else the server cwd.
- `virt_path` (string, required): File (src/main.rs), symbol (src/main.rs/main), or a node id from an ambiguous answer.

### `cam_ref` (~282 tokens)

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]

Input parameters:

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

### `cam_find` (~248 tokens)

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]

Input parameters:

- `file` (string): Keep only symbols whose file path contains this (case-insensitive).
- `kind` (string): Keep only this node kind (function, method, struct, class, trait, enum, enum_variant, type_alias).
- `limit` (integer)
- `path` (string): Project root. Defaults to CAM_PROJECT, then the server --project, then .cam / .git walk-up from the server cwd, else the server cwd.
- `query` (string, required): Part of a symbol name, e.g. recall or parse_ref.
- `scope` (string): Keep only symbols under this sub-directory, typically a `project` entry from cam_ls.

### `cam_recall` (~318 tokens)

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]

Input parameters:

- `expand` (boolean): Pull in the newest revision of each match, even when it matches neither path. Set false to score the raw fused list.
- `hash_embed` (boolean): Use the test hash embedder instead of model2vec.
- `include_superseded` (boolean): Return older revisions as well as the latest one for history or comparison queries.
- `limit` (integer)
- `path` (string): Project root. Defaults to CAM_PROJECT, then the server --project, then .cam / .git walk-up from the server cwd, else the server cwd.
- `query` (string, required): One-sentence question written in English. Non-Latin scripts are rejected.
- `snippets` (boolean): Clip long bodies below the top hit to snippets marked body_truncated; read one in full with cam_mem_show.

### `cam_add` (~466 tokens)

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)

Input parameters:

- `body` (string): Detail this one fact or solution path needs, and nothing else. Supports non-Latin characters.
- `hash_embed` (boolean): Use the test hash embedder instead of model2vec.
- `links` (array): Related memory ids. Inside memories, #0, #1, ... refer to other items in that array.
- `memories` (array): 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…
- `parent` (string): Structural parent memory id, or #0, #1, ... when this item is inside memories. This relation may branch and does not affect latest.
- `path` (string): Project root. Defaults to CAM_PROJECT, then the server --project, then .cam / .git walk-up from the server cwd, else the server cwd.
- `summary` (string): One-line English title for this one fact or solution path. Must be written in English.
- `supersedes` (string): Older revision replaced by this memory. An existing id, or #0, #1, ... inside memories. Omit for a structural child or independent memory.

### `cam_mem_tree` (~59 tokens)

Print the solution tree. Equivalent CLI: cam mem tree

Input parameters:

- `path` (string): Project root. Defaults to CAM_PROJECT, then the server --project, then .cam / .git walk-up from the server cwd, else the server cwd.

### `cam_mem_show` (~77 tokens)

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

Input parameters:

- `id` (string, required): Solution id from recall or cam_mem_tree.
- `path` (string): Project root. Defaults to CAM_PROJECT, then the server --project, then .cam / .git walk-up from the server cwd, else the server cwd.

## Diagnostics

Captured diagnostic sections: Provenance. The full working is on the page: https://verifymcp.io/servers/hanochzhu-codeagent-memory/ghcr-io-hanochzhu-codeagent-memory#diagnostics

## Score history

- 2026-11-05: 50
- 2026-11-04: 50
- 2026-11-03: 49
- 2026-11-02: 49
- 2026-11-01: 48
- 2026-10-31: 48
- 2026-10-30: 47
- 2026-10-29: 47
- 2026-10-28: 47
- 2026-10-27: 46
- 2026-10-26: 46
- 2026-10-25: 45
- 2026-10-24: 45
- 2026-10-23: 44
- 2026-10-22: 44
- 2026-10-21: 43
- 2026-10-20: 43
- 2026-10-19: 43
- 2026-10-18: 42
- 2026-10-17: 42
- 2026-10-16: 41
- 2026-10-15: 40
- 2026-10-14: 40
- 2026-10-13: 9

## 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 5 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.

## Links

- GitHub Container Registry: https://ghcr.io/hanochzhu/codeagent-memory
- Repository: https://github.com/HanochZhu/codeagent_memory
- Changelog RSS feed: https://verifymcp.io/servers/hanochzhu-codeagent-memory/ghcr-io-hanochzhu-codeagent-memory.xml
- Changelog JSON feed: https://verifymcp.io/servers/hanochzhu-codeagent-memory/ghcr-io-hanochzhu-codeagent-memory.json
- HTML version of this page: https://verifymcp.io/servers/hanochzhu-codeagent-memory/ghcr-io-hanochzhu-codeagent-memory
