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.

remem-mcp — Local-first MCP Memory + CodeGraph + Wiki

NPM · REMEM-MCP · SCANNED AUG 20

Local-first memory for AI coding agents. Memory + CodeGraph + Wiki in one SQLite file.

Available components

66 Trust /100
Trust breakdown (6 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 →

Supply Chain Security84
  • No malware found by supply-chain analysis.Pass
  • CVE check failed: a known high-severity CVE affects adm-zip 0.5.18, reached via @huggingface/transformers > onnxruntime-node > adm-zip. A fixed version is available. View diagnostics → Fail
  • Runs a script at install time (postinstall) that we could not recognise. It may be perfectly ordinary, but we do not read the published tarball, so we cannot say what it does. View diagnostics → Partial
  • Dependency health was assessed across the 185 of 187 dependencies we could resolve, so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability84
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 3707 tokens (~123/item across 30 items; 28 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 Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
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
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.

Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · remem-mcp

# add to Claude Code
claude mcp add tinhien11-remem-mcp -- npx -y remem-mcp
# add to Codex CLI
codex mcp add tinhien11-remem-mcp -- npx -y remem-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "tinhien11-remem-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "remem-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add tinhien11-remem-mcp --command npx --arg -y --arg remem-mcp
# ~/.hermes/config.yaml
mcp_servers:
  tinhien11-remem-mcp:
    command: "npx"
    args: ["-y", "remem-mcp"]
// mcp.json
{
  "mcpServers": {
    "tinhien11-remem-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "remem-mcp"
      ]
    }
  }
}
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.

  • 15 Aug 26 66

    First indexed and scored.

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 20 Aug 2026 · Analysed npm/remem-mcp@0.5.17

Provenance No attestation

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

Result No attestation
Ecosystem npm
Install scripts 1 script
Hook Tier Command
postinstall unreviewed node scripts/postinstall.js
Vulnerabilities 2 findings
ID CVE Severity Vector Fix available
GHSA-xcpc-8h2w-3j85 CVE-2026-39244 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yes
GHSA-f88m-g3jw-g9cj high yes
Dependencies 185 packages
Packages resolved 185
Deprecated 1
Stale 49
Tree resolution Partial

The dependency tree was only partially resolved, so these counts may be incomplete.

MCP tools · 28 exposed · ~3,682 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.

Tool Tokens
adr ~313

Record an Architecture Decision Record (ADR). Use this tool when you make a technical decision that future agents should know about. The ADR is stored as a structured capture and can be recalled by any agent working on the same project.

NameTypeReqDescription
agent_idstringThe agent ID. Use this to isolate memory by agent role within a team. Defaults to the detected agent.
alternativesarrayOther options that were considered but rejected. Include why each was rejected.
consequencesstringThe consequences of this decision. What are the trade-offs, risks, and benefits?
contextstringyesThe problem or situation that requires a decision. Why is this decision needed?
decisionstringyesThe decision that was made. What was chosen?
session_keystringThe session key. The default is hash(cwd).
tagsarrayOptional tags for filtering. Example: ['arch', 'storage'].
task_idstringThe task ID. Use this to isolate memory by a specific task. Link captures to a task for finer isolation.
team_idstringThe team ID. Use this to isolate memory by team. When set, all queries filter by this value.
titlestringyesA short title for the decision. Example: 'Use SQLite for local storage'.
user_idstringThe user ID. Use this to isolate memory by user within a team. When set with team_id, queries filter by both.

No output schema declared.

No examples provided.

capture ~442

Save a decision, a learning, or a task outcome to memory. Call this tool after you complete a non-trivial task, make a decision, or fix a bug with a known root cause. You can capture a single text string, or a list of role-based conversation messages.

NameTypeReqDescription
agent_idstringThe agent ID. Use this to isolate memory by agent role within a team. Defaults to the detected agent.
contentstringThe text to remember. The tool redacts secrets before it stores the text. Use this for a single message. Use 'messages' instead for a multi-turn conversation.
formatstringThe response format. Use 'json' for structured data (e.g. benchmarks). Defaults to 'text'.
messagesarrayA list of role-based conversation messages to capture. When set, 'content' is ignored. The tool flattens the messages into a single text for search, and stores the original messages for retrieval.
metadataobjectOptional metadata.
override_rejectionbooleanSet this to true to force capture even if the content was previously rejected. Use this only when the rejection reason no longer applies.
session_keystringThe session key. The default is hash(cwd).
supersedesstringThe ID of a capture that this one replaces. The old capture is marked as stale and ranks lower.
tagsarrayOptional tags.
task_idstringThe task ID. Use this to isolate memory by a specific task. Link captures to a task for finer isolation.
team_idstringThe team ID. Use this to isolate memory by team. When set, all queries filter by this value.
typestringThe type of the memory. Defaults to 'conversation' if omitted.
user_idstringThe user ID. Use this to isolate memory by user within a team. When set with team_id, queries filter by both.
verifiedbooleanSet this to true to mark the capture as verified. Verified captures rank higher in recall.

No output schema declared.

No examples provided.

codegraph_callees ~68

Find all callees of a symbol — what does this function call? Returns the called functions with file paths and line numbers. Requires the symbol ID from codegraph_search.

NameTypeReqDescription
limitinteger
symbol_idstringyesThe symbol ID (from codegraph_search).

No output schema declared.

No examples provided.

codegraph_callers ~65

Find all callers of a symbol — who calls this function? Returns the calling functions with file paths and line numbers. Requires the symbol ID from codegraph_search.

NameTypeReqDescription
limitinteger
symbol_idstringyesThe symbol ID (from codegraph_search).

No output schema declared.

No examples provided.

codegraph_impact ~85

Perform impact analysis: if I change this symbol, what else might be affected? Traverses the call graph upward (callers of callers) to find all potentially impacted code. Requires the symbol ID from codegraph_search.

NameTypeReqDescription
max_depthintegerMaximum traversal depth in the call graph.
symbol_idstringyesThe symbol ID (from codegraph_search).

No output schema declared.

No examples provided.

codegraph_index ~163

Index a file or directory into the code graph. Extracts symbols (functions, classes, methods), call relationships, and imports. Supports TypeScript, JavaScript, Python, Go, Rust, Java, C, C++, C#. Run this before using codegraph_search, codegraph_callers, codegraph_callees, or codegraph_impact.

NameTypeReqDescription
max_filesintegerMaximum number of files to index (for directory mode).
pathstringyesThe file or directory path to index. For directories, all supported files are indexed recursively.
repo_pathstringThe root path of the repository. Used to compute relative file paths. Defaults to the path argument.
team_idstringThe team ID for isolation.

No output schema declared.

No examples provided.

codegraph_list ~97

List all symbols in a file or directory. Returns symbols sorted by line number. Use this to get an overview of what a file contains.

NameTypeReqDescription
file_pathstringyesThe file path (relative to repo root) to list symbols for.
kindstringFilter by symbol kind (Function, Class, Method, etc.).
limitinteger
team_idstringThe team ID for isolation.

No output schema declared.

No examples provided.

codegraph_search ~130

Search for code symbols by name. Returns matching functions, classes, methods, etc. with file paths and line numbers. Use this to find where a function or class is defined.

NameTypeReqDescription
kindstringFilter by symbol kind (Function, Class, Method, Struct, etc.).
languagestringFilter by language (typescript, javascript, python, go, rust, java, c, cpp, csharp).
limitinteger
querystringyesThe symbol name or pattern to search for.
team_idstringThe team ID for isolation.

No output schema declared.

No examples provided.

consolidate ~119

Find and merge duplicate or near-duplicate memories. Use this when you suspect redundant captures (e.g. same decision captured twice). Returns groups of similar captures. Set confirm=true to merge them.

NameTypeReqDescription
confirmbooleanSet to true to merge duplicates. Without confirm, returns candidates only.
session_keystringThe session key to consolidate. Default is hash(cwd). Use 'all' for all projects.
thresholdnumberSimilarity threshold (0-1). Higher = stricter matching. Default 0.75.

No output schema declared.

No examples provided.

explain_recall ~293

Explain WHY a memory was recalled for a given query. Shows the BM25 score, vector score, RRF fused score, rank, and matching keywords for each result. Use this to debug unexpected recall results or to understand the retrieval pipeline. If you provide a capture_id, the tool explains why that specific capture was or was not retrieved.

NameTypeReqDescription
agent_idstringThe agent ID. Use this to isolate memory by agent role within a team. Defaults to the detected agent.
capture_idstringOptional. The ID of a specific capture to explain. If set, the tool shows why this capture was or was not in the results.
limitintegerThe maximum number of results to explain.
modestringThe search mode to explain.
querystringyesThe same query you used with recall or search.
session_keystringThe session key. The default is hash(cwd).
task_idstringThe task ID. Use this to isolate memory by a specific task. Link captures to a task for finer isolation.
team_idstringThe team ID. Use this to isolate memory by team. When set, all queries filter by this value.
user_idstringThe user ID. Use this to isolate memory by user within a team. When set with team_id, queries filter by both.

No output schema declared.

No examples provided.

forget ~169

Delete specific memory entries. Use this tool only when the user requests a deletion. Do not auto-forget.

NameTypeReqDescription
confirmbooleanSet this to true to execute the deletion.
filterobject
formatstringThe response format. Use 'json' for structured data (e.g. benchmarks). Defaults to 'text'.
idstringThe ID of the capture to delete.
reasonstringThe reason for rejection. Required when reject is true. The agent stores this with the tombstone.
rejectbooleanSet this to true to reject the capture instead of deleting it. The capture is marked as rejected with a reason, and the same content cannot be captured again. Use this when the memory is wrong, not j…

No output schema declared.

No examples provided.

handoff ~334

Write a structured handoff packet for the next agent session. Call this tool at the end of a session, or before you switch to a different agent. The next agent calls recall to load this packet and continue without re-reading files. This saves 60-85% of tokens compared to re-discovering context.

NameTypeReqDescription
agent_idstringThe agent ID. Use this to isolate memory by agent role within a team. Defaults to the detected agent.
decisionsarrayA list of decisions made during this session. Include what was chosen and why.
filesarrayA list of files that matter for this task. Use the format: path:lines - reason.
next_stepsarrayA list of next steps for the next agent. Order by priority.
progressstringyesA summary of what has been done so far. Include the root cause if this is a bug fix.
session_keystringThe session key. The default is hash(cwd).
statusstringyesThe current status of the task.
taskstringyesA one-line description of the task.
task_idstringThe task ID. Use this to isolate memory by a specific task. Link captures to a task for finer isolation.
team_idstringThe team ID. Use this to isolate memory by team. When set, all queries filter by this value.
user_idstringThe user ID. Use this to isolate memory by user within a team. When set with team_id, queries filter by both.

No output schema declared.

No examples provided.

knowledge_create ~139

Register a knowledge asset (wiki or code-graph) for the team. The asset metadata is stored locally. The actual content is processed by an external knowledge service.

NameTypeReqDescription
branchstringThe repository branch (for code-graph).
namestringyesThe asset name.
repo_urlstringThe repository URL (for code-graph).
service_urlstringThe URL of the knowledge service (for example: http://localhost:8424/v3).
summarystringA short description.
team_idstringyesThe team ID.
typestringyesThe asset type.

No output schema declared.

No examples provided.

knowledge_delete ~31

Delete one or more knowledge assets by ID.

NameTypeReqDescription
knowledge_idsarrayyesThe knowledge asset IDs to delete.

No output schema declared.

No examples provided.

knowledge_get ~28

Get a single knowledge asset by ID.

NameTypeReqDescription
knowledge_idstringyesThe knowledge asset ID.

No output schema declared.

No examples provided.

knowledge_list ~42

List knowledge assets for a team. Optionally filter by type.

NameTypeReqDescription
team_idstringyesThe team ID.
typestringFilter by type.

No output schema declared.

No examples provided.

recall ~284

Retrieve relevant past memory. Call this tool before you answer the user. Use it when the user references past work or when the task needs project context.

NameTypeReqDescription
agent_idstringThe agent ID. Use this to isolate memory by agent role within a team. Defaults to the detected agent.
limitintegerThe maximum number of results.
max_tokensintegerThe maximum number of tokens in the response. If the result exceeds this value, the tool truncates the text.
modestringThe search mode.
offsetintegerThe pagination offset. Use this to get the next page of results.
querystringyesA natural language query. The tool uses this text for the BM25 search and the vector search.
session_keystringThe session key. The default is hash(cwd). Use this to recall memory from a different project.
task_idstringThe task ID. Use this to isolate memory by a specific task. Link captures to a task for finer isolation.
team_idstringThe team ID. Use this to isolate memory by team. When set, all queries filter by this value.
user_idstringThe user ID. Use this to isolate memory by user within a team. When set with team_id, queries filter by both.

No output schema declared.

No examples provided.

related ~87

Find memories connected to a given memory by shared tags, project, or co-occurrence. Use this after recall or search to discover related context you might have missed. Inspired by graph spreading-activation (Mnema pattern).

NameTypeReqDescription
idstringyesThe ID of the capture to find related memories for.
limitnumberMaximum number of related memories to return (default: 10).

No output schema declared.

No examples provided.

resolve ~102

Resolve a conflict between two captures. Mark one as the winner and the other as stale. Call this tool when capture reports a conflict between two memories.

NameTypeReqDescription
loserstringyesThe ID of the capture that is wrong or outdated. This capture is marked as stale.
reasonstringThe reason for the resolution. The agent stores this in the audit log.
winnerstringyesThe ID of the capture that is correct. This capture stays active.

No output schema declared.

No examples provided.

search ~92

Search memory by keyword or by semantic similarity. Use this tool when recall is too broad and you need specific facts.

NameTypeReqDescription
filtersobject
formatstringThe response format. Use 'json' for structured data (e.g. benchmarks). Defaults to 'text'.
limitinteger
modestringThe search mode.
querystringyesThe search text.

No output schema declared.

No examples provided.

skill_get ~33

Get a single skill by ID, including its full content and version.

NameTypeReqDescription
skill_idstringyesThe skill ID.

No output schema declared.

No examples provided.

skill_list ~55

List skills bound to a team. Optionally filter by agent.

NameTypeReqDescription
agent_idstringFilter by agent ID. When set, returns agent-specific and team-global skills.
team_idstringyesThe team ID.

No output schema declared.

No examples provided.

skill_search ~64

Search skills by keyword. Returns matching skills with descriptions.

NameTypeReqDescription
agent_idstringyesThe agent ID.
querystringyesThe search query.
team_idstringyesThe team ID.
topKintegerThe maximum number of results.

No output schema declared.

No examples provided.

update ~123

Update an existing memory entry. Use this when a capture needs corrections (wrong info, missing tags, needs rewording). Preserves the original ID and created_at.

NameTypeReqDescription
contentstringThe new content. If omitted, the original content is kept.
idstringyesThe ID of the capture to update.
tagsarrayThe new tags. Replaces existing tags entirely.
typestringThe new type. If omitted, the original type is kept.
verifiedbooleanSet to true to mark as verified.

No output schema declared.

No examples provided.

wiki_get ~55

Get a wiki page by ID, including its links and backlinks. Use this to read a specific page and see what it links to and what links to it.

NameTypeReqDescription
page_idstringyesThe page ID (from wiki_search).

No output schema declared.

No examples provided.

wiki_ingest ~129

Ingest markdown documentation files into the wiki. Parses frontmatter, headings, [[wikilinks]], and [text](url) links to build a structured page graph. Supports .md and .markdown files.

NameTypeReqDescription
max_filesintegerMaximum number of files to ingest (for directory mode).
pathstringyesThe file or directory path to ingest. For directories, all .md files are indexed recursively.
repo_pathstringThe root path for computing relative file paths. Defaults to the path argument.
team_idstringThe team ID for isolation.

No output schema declared.

No examples provided.

wiki_outdated ~67

Find wiki pages whose source file has changed since the last ingest. Returns pages that need re-ingesting because the source markdown was modified or deleted.

NameTypeReqDescription
repo_pathstringyesThe root path to check for source files.
team_idstringThe team ID for isolation.

No output schema declared.

No examples provided.

wiki_search ~73

Search wiki pages by content. Returns matching pages with title, file path, and a snippet. Use this to find documentation relevant to a topic.

NameTypeReqDescription
limitinteger
querystringyesThe search query (FTS5 syntax supported).
team_idstringThe team ID for isolation.

No output schema declared.

No examples provided.