{"name":"io.github.tinhien11/remem-mcp","slug":"tinhien11-remem-mcp","title":"remem-mcp — Local-first MCP Memory + CodeGraph + Wiki","description":"Local-first memory for AI coding agents. Memory + CodeGraph + Wiki in one SQLite file.","url":"https://mcp.market/server/tinhien11-remem-mcp","rating":null,"grade":"B","score":77,"certified":false,"status":"active","category":"data","tags":["data"],"presence":{"score":40,"stars":8,"forks":1,"downloads_week":299,"last_push_at":"2026-09-18T02:08:29.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/tinhien11/remem-mcp","website":"https://github.com/tinhien11/remem-mcp#readme","version":"0.5.18","remotes":[],"packages":[{"registryType":"npm","identifier":"remem-mcp","version":"0.5.17","transport":{"type":"stdio"}}],"tools":[{"name":"adr","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"capture","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"codegraph_callees","description":"Find all callees of a symbol \\u2014 what does this function call? Returns the called functions with file paths and line numbers. Requires the symbol ID from codegraph_search.","write_action":false,"price_micros":0,"input_schema":null},{"name":"codegraph_callers","description":"Find all callers of a symbol \\u2014 who calls this function? Returns the calling functions with file paths and line numbers. Requires the symbol ID from codegraph_search.","write_action":false,"price_micros":0,"input_schema":null},{"name":"codegraph_impact","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"codegraph_index","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"codegraph_list","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"codegraph_search","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"consolidate","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"explain_recall","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"forget","description":"Delete specific memory entries. Use this tool only when the user requests a deletion. Do not auto-forget.","write_action":true,"price_micros":0,"input_schema":null},{"name":"handoff","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"knowledge_create","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"knowledge_delete","description":"Delete one or more knowledge assets by ID.","write_action":true,"price_micros":0,"input_schema":null},{"name":"knowledge_get","description":"Get a single knowledge asset by ID.","write_action":false,"price_micros":0,"input_schema":null},{"name":"knowledge_list","description":"List knowledge assets for a team. Optionally filter by type.","write_action":false,"price_micros":0,"input_schema":null},{"name":"recall","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"related","description":"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).","write_action":false,"price_micros":0,"input_schema":null},{"name":"resolve","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"search","description":"Search memory by keyword or by semantic similarity. Use this tool when recall is too broad and you need specific facts.","write_action":false,"price_micros":0,"input_schema":null},{"name":"skill_get","description":"Get a single skill by ID, including its full content and version.","write_action":false,"price_micros":0,"input_schema":null},{"name":"skill_list","description":"List skills bound to a team. Optionally filter by agent.","write_action":false,"price_micros":0,"input_schema":null},{"name":"skill_search","description":"Search skills by keyword. Returns matching skills with descriptions.","write_action":false,"price_micros":0,"input_schema":null},{"name":"update","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"wiki_get","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"wiki_ingest","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"wiki_outdated","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"wiki_search","description":"Search wiki pages by content. Returns matching pages with title, file path, and a snippet. Use this to find documentation relevant to a topic.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":77,"grade":"B","scanned_at":"2026-09-23T11:51:19.438Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-23T11:51:19.432Z","components":{"code":{"score":15,"max":25,"notes":["6 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 5 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[{"id":"install.script","severity":"medium","component":"code","title":"npm install lifecycle script present"},{"id":"install.script","severity":"medium","component":"code","title":"npm install lifecycle script present","evidence":"package.json: … \"start\": \"node dist/index.js\", \"postinstall\": \"node scripts/postinstall.js\", \"pre…"}],"inputs":{"packages":[{"registryType":"npm","identifier":"remem-mcp","version":"0.5.17","found":true,"license":"MIT","hasInstallScripts":true,"dependencyCount":8,"publishedAt":"2026-08-14T12:08:52.891Z","repositoryUrl":"git+https://github.com/tinhien11/remem-mcp.git","weeklyDownloads":299}],"repo":{"found":true,"owner":"tinhien11","repo":"remem-mcp","archived":false,"pushedAt":"2026-09-18T02:08:29Z","stars":8,"forks":1,"openIssues":3,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/8637738?v=4","ownerCreatedAt":"2014-09-03T05:12:44Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/8637738?v=4&s=128","source":"github"},"presence":{"stars":8,"forks":1,"downloadsWeek":299,"license":"MIT","lastPushAt":"2026-09-18T02:08:29.000Z","score":40}}}},"grade_history":[],"reviews":[]}