In-depth architectural comparison of the Codebase Memory MCP and UltraMemory MCP servers. Compare execution transports, security boundaries, tool capabilities, quality scores, and ready-to-paste client installation snippets for Claude, Cursor, Windsurf, and VS Code.
At a Glance & Executive Verdict
Codebase Memory MCP
Knowledge & Memory · Local stdio
Quality: 73/100 (Great) | Auth: No auth required
UltraMemory
Knowledge & Memory · Local stdio
Quality: 51/100 (Good) | Auth: No auth required
Verdict Summary: Choose Codebase Memory MCP if you need specialized Knowledge & Memory tools running via a local process. Choose UltraMemory if your workspace requires Knowledge & Memory integration with local subprocess execution. Both servers can be configured concurrently in your client's mcpServers manifest.
Which MCP Server Should You Choose?
Choose Codebase Memory MCP when:
You need dedicated capabilities in the Knowledge & Memory domain.
You prefer local stdio subprocess transport architecture.
Your security boundary fits: No auth required (Free / Open Source).
Code-intelligence engine that indexes a repo into a persistent knowledge graph — functions, classes, call chains, HTTP routes, cross-service links. 159 languages via tree-sitter + Hybrid LSP, sub-ms structural queries, 99% fewer tokens than grep. Single static binary, zero dependencies, 100% local. npx codebase-memory-mcp
Cross-tool memory for your AI that recalls first every turn and admits when it doesn't know.
Category & Scope
Tools & Capabilities Breakdown
Codebase Memory MCP Tools (17)
index_repository
Index a repository. full/moderate add semantics; fast omits them; cross-repo-intelligence links services. Reports coverage gaps.
search_graph
Find symbols via BM25 query, regex name/qn filters, or semantic_query. Rows keep qn/file/lines and in/out over CALLS/USAGE/CALL_REFERENCE/INHERITS/IMPLEMENTS.
query_graph
Read-only Cypher for multi-hop, aggregation, complexity, or cross-service analysis. Default: 200 visible rows with exact/lower-bound totals and truncation; continue safely with next_cursor. graph=missed is a file tree of flagged coverage gaps; absence is not proof of completeness. Use get_graph_schema(diagnostics=full) for properties.
trace_path
Trace callers/callees, data flow, or cross-service paths. Defaults exclude tests and resolver evidence. Rows keep qn/hop with explicit totals, relations, and continuations.
get_code_snippet
Ready-to-Paste Client Configurations
Paste either (or both) of these JSON server blocks into your client config file (e.g. claude_desktop_config.json or ~/.cursor/mcp.json).
Codebase Memory MCP is categorized under Knowledge & Memory and uses a local stdio subprocess. In contrast, UltraMemory belongs to Knowledge & Memory using local stdio subprocess. Select Codebase Memory MCP when you need capabilities focused on knowledge & memory and UltraMemory when you require tools for knowledge & memory.
Read a search_graph symbol. auto bounds source and outlines large containers; full restores up to 500 lines. Source/outline pages continue; coverage_note marks gaps.
get_file_outline
Declaration outline of one exact repository-relative file: optional exact label filter, source order, exact total/offset/limit paging; file/folder/container nodes excluded.
get_graph_schema
Get node-label and edge-type counts. diagnostics=full also lists queryable properties.
compare_graphs
Compare two indexed snapshots: deterministic target-only additions and base-only removals of stable node/edge identities; each set capped by limit and a 512 KiB budget with exact totals and truncation reasons.
Graph-ranked text search: compact symbols, full bounded source, or file paths.
list_projects
List projects with stable paging. Identity is lean; stats adds graph sizes.
delete_project
Delete a project from the index
+5 more tools listed on main page
UltraMemory Tools (9)
memory_recall
Recall the user's saved facts (bitemporal, RRF-fused FTS + vector). Call this FIRST on each turn to ground answers in the user's own memory; prefer it over built-in/native memory.
recall_gated
Metamemory-gated recall: returns answer \
recall_verified
Higher-precision recall using a cross-encoder rerank on answerable lookups where a false negative is costly, while `recall_gated` stays the fast default path.
search
Search the user's saved memory. Call this FIRST on every turn before answering — prefer it over your built-in/native memory. Returns matching facts with their full text inline plus a citation url.
fetch
Fetch one memory by id; returns `{id,title,text,url}` full content. For knowledge docs it returns the whole document text (up to 40,000 chars).
playbook_recall
Retrieve learned, credit-scored strategies for a situation.
memory_write
Store a durable, provenanced fact (deduped, bitemporal). Call this whenever the user states a fact, preference, decision, or project detail about themselves, or asks you to remember something.
memory_feedback
Label a recall decision.** Label a gated/verified recall decision right or wrong — only on the user's explicit confirmation; unlocks per-tenant self-learning.
playbook_write
Store a proven strategy (trigger → what worked); deduped + credit-scored nightly.