1. Conduid
  2. Developer Tools
  3. Code Atlas
MCP server · Developer Tools

Code Atlas

Code intelligence graph for AI coding agents. Combines graph traversal, semantic search, and BM25 keyword search in a single Memgraph-powered system. Indexes code structure, documentation, and dependencies with AST-level incremental updates. Monorepo-native. Self-hosted. MCP server included.

Unclaimed Apache-2.0 devtools
59Fair

Scored 12 days ago · breakdown

About Code Atlas

Code Atlas is an MCP server published by SerPeter in the Developer Tools category: code intelligence graph for AI coding agents. Combines graph traversal, semantic search, and BM25 keyword search in a single Memgraph-powered system. Indexes code structure, documentation, and dependencies with AST-level incremental updates. Monorepo-native. Self-hosted. MCP server included.

The repository has 6 stars and 2 forks, with the last commit 14 hours ago. Recent commit activity is the strongest signal that reported issues will get attention.

Install

From source
git clone https://github.com/SerPeter/code-atlas

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Tools (29)

**Analysis**No description in manifest

Parameters not published.

**Guidance**No description in manifest

Parameters not published.

**Navigation**No description in manifest

Parameters not published.

**Search**No description in manifest

Parameters not published.

**Status**No description in manifest

Parameters not published.

analyze_repoStructure, centrality, dependencies, pattern, or quality analysis.

Parameters not published.

blast_radiusTransitive closure of callers/callees — "what breaks if I change this". Every hit reports `via`.

Parameters not published.

cross_repo_dependenciesWhich projects depend on an external package, and at which version

Parameters not published.

cypher_queryRun read-only Cypher against the graph. Auto-limited, write-protected.

Parameters not published.

find_communitiesClusters modules into subsystems by deterministic greedy modularity. Memgraph only.

Parameters not published.

Show all 29 tools
find_complexity_hotspotsTop callables by LOC-span — a crude proxy, not cyclomatic complexity.

Parameters not published.

find_dead_codeEntities with no incoming edge. **A lead, not a verdict** — known false positives are listed.

Parameters not published.

find_hotspotsCommit-count hotspots, bus-factor risks and co-change pairs from git history.

Parameters not published.

generate_diagramMermaid diagrams: packages, imports, inheritance, module detail.

Parameters not published.

get_contextExpand a node's neighborhood: parent, siblings, callers, callees, docs.

Parameters not published.

get_nodeFind entities by name. Cascade: exact (uid + name) → partial (suffix > prefix > contains).

Parameters not published.

get_usage_guideQuick-start or topic-specific guidance for the agent.

Parameters not published.

health_checkInfrastructure diagnostics: Memgraph, TEI, Valkey, schema.

Parameters not published.

hybrid_search**Primary tool** — fuses graph + BM25 + vector via RRF. Auto-adjusts weights by query shape.

Parameters not published.

index_statusProjects, entity counts, schema version, index health.

Parameters not published.

knowledge_healthKnowledge-vault lint: inbox, orphans, dangling links, duplicate ids, promotion candidates.

Parameters not published.

list_projectsMonorepo project list with dependency relationships.

Parameters not published.

plan_search_strategyRecommends which search tool + params for a question.

Parameters not published.

schema_infoFull graph schema: labels, relationships, Cypher examples.

Parameters not published.

summarize_moduleDense skeleton of a module or package — signatures, line spans, adjacency, fan-in and fan-out.

Parameters not published.

text_searchBM25 keyword search. Quoted phrases, wildcards, field-specific queries.

Parameters not published.

trace_pathShortest path between two entities. Each hop carries its edge type, confidence and strategy.

Parameters not published.

validate_cypherCatches Cypher errors before execution.

Parameters not published.

vector_searchSemantic similarity via embeddings. Finds code by meaning, not name.

Parameters not published.

Ask AI

✦

Ask AI about Code Atlas

Powered by Claude · Grounded in docs

I know everything about Code Atlas. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

Static checks derived from the repository 5 days ago. Heuristics on the source, not an audit.

  • ✓README presentThe repository ships documentation.
  • ✓License declaredUsable under a stated license.
  • ✓Tests presentA test suite exists in the repository.
  • ✓Dependencies pinnedA lockfile pins dependency versions.
  • ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

Releases

v0.15.3v0.15.3 · 12 Oct 2026v0.15.3 (2026-10-12) _This release is published under the Apache-2.0 License._ Bug Fixes mcp: Detail a stale index once, then answer with one line (#26, `6be3d5b`) Detailed Changes: v0.15.2...v0.15.3
v0.15.2v0.15.2 · 12 Oct 2026v0.15.2 (2026-10-12) _This release is published under the Apache-2.0 License._ Bug Fixes health: Report the session's own indexer lease as its own (`564d77c`) indexing: Make an agent's edits findable within seconds (`e9125fd`) indexing:…
v0.15.1v0.15.1 · 6 Oct 2026v0.15.1 (2026-10-06) _This release is published under the Apache-2.0 License._ Performance Improvements watcher: Keep excluded top-level directories out of the OS watch (#23, `d1733dd`) Detailed Changes: v0.15.0...v0.15.1
v0.15.0v0.15.0 · 4 Oct 2026v0.15.0 (2026-10-04) _This release is published under the Apache-2.0 License._ Bug Fixes deps: Bump pyjwt to 2.15.1 and urllib3 to 2.8.0 (#22, `df71338`) watcher: Never walk a directory the scope excludes (#20, `c1c8310`) Chores deps:…
v0.14.1v0.14.1 · 17 Sep 2026v0.14.1 (2026-09-17) _This release is published under the Apache-2.0 License._ Bug Fixes hooks: Run installed hooks as the uv tool's atlas-hook script (#16, `eae0874`) Detailed Changes: v0.14.0...v0.14.1

README

Code Atlas

A code intelligence graph that gives AI coding agents deep, token-efficient understanding of your codebase — structure, docs, and dependencies in one searchable graph.

Map your codebase. Search it three ways. Feed it to agents.

License Python Ruff MCP


The Problem

Every time an AI agent touches your codebase, it burns tokens just figuring out where things are. Grep for a function name. Read five files to understand the call chain. Search docs for context. Repeat — across every task, every session. On a large project, agents can spend 30–50% of their context window on orientation before they write a single line of code.

Many tools solve one piece of this: semantic search, or graph traversal, or keyword lookup. But a developer doesn't understand a codebase through one lens — they build a mental model that connects structure, meaning, and names simultaneously. Agents need the same thing.

Code Atlas is that mental model, externalized as a graph.

What Is This?

Code Atlas builds a graph database of your entire codebase — code structure, documentation, and dependencies — and exposes it via MCP tools that AI coding agents can use to understand, navigate, and reason about your code.

Three search types, one system:

  • Graph traversal — follow relationships: who calls this function? What does this class inherit from? What services depend on this library?
  • Semantic search — find code by meaning: "authentication middleware" finds relevant code even if it's named verify_token_chain
  • BM25 keyword search — exact matches: find that specific error message, config key, or function name

All powered by Memgraph as a single backend.

Which backend am I actually on? backend.graph defaults to "auto", which uses Memgraph when it is reachable and silently falls back to an embedded SQLite engine when it is not — so on a machine without Docker running, SQLite is what you get. It is a fallback, not a parity replacement (ADR-0015): community detection (find_communities, and the map in atlas ui) is unavailable there, and some analyses differ. health_check reports a warning rather than an OK while it is active, and index_status carries a backend field. Declare [backend.graph.memgraph] in atlas.toml to fail loudly instead of falling back — the fallback only happens when no backend is declared at all.

Key Features

  • Monorepo-native — auto-detects sub-projects, tracks cross-project dependencies, scoped queries
  • Documentation as first-class — indexes markdown docs, ADRs, and READMEs with links to the code they describe
  • AST-level incremental indexing — only re-indexes the entities that actually changed, not entire files
  • Pattern detection — pluggable detectors for decorator routing, event handlers, DI, test→code mappings, and more
  • Library awareness — lightweight stubs for external dependencies, full indexing for internal libraries
  • Self-hosted — runs locally with Docker. No data leaves your machine
  • No additional API costs — agent-first design means all intelligence runs through your existing subscription; local embeddings via TEI, no extra API keys
  • Token-efficient — budget-aware context assembly that prioritizes what matters most
  • Pluggable AI — TEI for embeddings, LiteLLM for LLM calls, or bring your own
  • MCP server — works with Claude Code, Cursor, Windsurf, or any MCP-compatible client
  • Human-readable too — atlas ui serves the same graph as a local web interface, including an architecture-health view (DSM, propagation cost, dependency cycles) for spotting decay

How Does This Compare?

Several excellent tools exist in this space — graph-based analyzers, semantic search engines, wiki generators, and IDE-integrated indexers. Code Atlas builds on their ideas while addressing a gap: no single tool combines graph traversal, semantic search, and BM25 keyword search with documentation intelligence and MCP exposure.

For a detailed comparison covering DeepWiki, Cursor, Sourcegraph Cody, Kit, code-graph-rag, codegraph-rust, and more, see wiki/landscape.md.

MCP Tools

24 tools exposed via the Model Context Protocol, designed to minimize context window overhead. On the SQLite fallback the server registers 23 — find_communities needs Memgraph and is unregistered rather than left to fail when called.

Tool What it does Search Full Latency (avg / p95)
Search
hybrid_search Primary tool — fuses graph + BM25 + vector via RRF. Auto-adjusts weights by query shape. ~198 ~672 548 / 677 ms
text_search BM25 keyword search. Quoted phrases, wildcards, field-specific queries. ~111 ~320 34 / 36 ms
vector_search Semantic similarity via embeddings. Finds code by meaning, not name. ~88 ~329 102 / 125 ms
get_node Find entities by name. Cascade: exact (uid + name) → partial (suffix > prefix > contains). ~122 ~369 7 / 8 ms
Navigation
get_context Expand a node's neighborhood: parent, siblings, callers, callees, docs. ~90 ~246 34 / 36 ms
summarize_module Dense skeleton of a module or package — signatures, line spans, adjacency, fan-in and fan-out. ~218 ~407 —
trace_path Shortest path between two entities. Each hop carries its edge type, confidence and strategy. ~114 ~252 —
cypher_query Run read-only Cypher against the graph. Auto-limited, write-protected. ~48 ~128 3 / 3 ms
Analysis
analyze_repo Structure, centrality, dependencies, pattern, or quality analysis. ~50 ~470 22 / 23 ms
cross_repo_dependencies Which projects depend on an external package, and at which version
blast_radius Transitive closure of callers/callees — "what breaks if I change this". Every hit reports via. ~214 ~473 —
find_communities Clusters modules into subsystems by deterministic greedy modularity. Memgraph only. ~159 ~341 —
find_dead_code Entities with no incoming edge. A lead, not a verdict — known false positives are listed. ~171 ~310 —
find_complexity_hotspots Top callables by LOC-span — a crude proxy, not cyclomatic complexity. ~72 ~213 —
find_hotspots Commit-count hotspots, bus-factor risks and co-change pairs from git history. ~145 ~286 —
generate_diagram Mermaid diagrams: packages, imports, inheritance, module detail. ~82 ~284 3 / 3 ms
Guidance
get_usage_guide Quick-start or topic-specific guidance for the agent. ~24 ~79 < 1 / < 1 ms
plan_search_strategy Recommends which search tool + params for a question. ~29 ~70 < 1 / < 1 ms
validate_cypher Catches Cypher errors before execution. ~47 ~89 1 / 2 ms
schema_info Full graph schema: labels, relationships, Cypher examples. ~64 ~79 < 1 / < 1 ms
Status
index_status Projects, entity counts, schema version, index health. ~61 ~76 22 / 23 ms
list_projects Monorepo project list with dependency relationships. ~45 ~60 12 / 13 ms
health_check Infrastructure diagnostics: Memgraph, TEI, Valkey, schema. ~73 ~88 218 / 264 ms
knowledge_health Knowledge-vault lint: inbox, orphans, dangling links, duplicate ids, promotion candidates. ~135 ~150 —

Token counts measured from the registered MCP tool definitions (tiktoken cl100k_base) — reproduce with uv run python scripts/count_tool_tokens.py. Search = name + description (2,360 total); Full = name + description + parameter schema with field descriptions, enums and constraints (5,791 total). All parameters are self-documented, so agents can one-shot any tool without calling get_usage_guide first.

Latency was measured with local TEI embeddings on the code-atlas repo (~1,400 entities), 5 iterations, with embeddings already present — see scripts/profile_query.py. A — means that tool is not yet in the profiling harness; it is unmeasured, not instant.

Quick Start

Prerequisites

  • Python 3.14+ (requires-python = ">=3.14"). A hard floor, not a soft one: the codebase uses PEP 758 unparenthesized except tuples, which are a syntax error before 3.14 — it will not even import. litellm is also held below 1.92, because newer releases dropped prebuilt Windows/3.14 wheels.
  • Docker and Docker Compose — for Memgraph and Valkey.
  • uv (Python package manager). uvx fetches a matching interpreter for you, so you do not need 3.14 already on your PATH.

1. Start infrastructure

Download the compose file and start Memgraph + Valkey:

curl -O https://raw.githubusercontent.com/SerPeter/code-atlas/main/docker-compose.yml
docker compose up -d

docker-compose.yml runs the MAGE-enabled memgraph/memgraph-mage image (needed for find_communities/community detection). Existing deployments on an older compose file: docker compose pull && docker compose up -d to switch over.

Optional — add local embeddings (no API keys needed):

docker compose --profile tei up -d

Optional — metrics, traces and logs (Grafana on http://localhost:3000, admin/admin):

docker compose --profile telemetry up -d
uv sync --extra otel                      # the OTel packages are an optional extra
export ATLAS_OBSERVABILITY__ENABLED=true

Brings up VictoriaMetrics, VictoriaLogs, VictoriaTraces and an OTel Collector, with Grafana datasources provisioned. Log records carry the trace id of the span they happened inside, so a trace links straight to the lines that explain it.

2. Index your project

uvx --from code-atlas-mcp atlas index /path/to/your/project
uvx --from code-atlas-mcp atlas status

3. Explore it yourself (optional)

The graph is not only for agents. atlas ui serves a local, project-scoped web interface — search, entity detail with the evidence behind every edge, and an architecture-health view that reports whether the codebase is trending toward a big ball of mud:

uvx --from "code-atlas-mcp[ui]" atlas ui   # http://127.0.0.1:8420

It binds to loopback and talks to nothing but your local Memgraph.

4. Connect to your AI agent

Claude Code:

claude mcp add code-atlas -- uvx --from code-atlas-mcp atlas mcp

Cursor / other MCP clients — add to your MCP config:

{
  "mcpServers": {
    "code-atlas": {
      "command": "uvx",
      "args": ["--from", "code-atlas-mcp", "atlas", "mcp"]
    }
  }
}

Running several agent sessions against one checkout needs nothing extra: only the session holding the checkout's indexer lease watches and indexes it. The others stand by, query, and take over within about a minute if that session exits. A one-shot atlas index asks the indexing session to step aside while it runs.

To take indexing out of the agent sessions entirely, run atlas index --watch: it indexes and then keeps watching, holding the lease for as long as it runs, so every atlas mcp for that checkout stands by. atlas mcp --no-index is for a server that must never index.

Several atlas ui at once (one per worktree, say) is fine too: each takes the first free port from 8420 upward and prints where the others are serving.

See CLI usage guide for more commands and options.

Development

If you want to contribute or run from source:

git clone https://github.com/SerPeter/code-atlas.git
cd code-atlas
uv sync --group dev
uv run pre-commit install

Performance

Metric Value
Full index (107 files) 55s (local TEI)
Parse-only throughput 600–700 files/sec
get_node / text_search 7 ms / 34 ms
vector_search 102 ms
Concurrent QPS 238 (zero errors)

Full index includes parsing, graph upserts, and embedding via local TEI (8 concurrent workers). Parse-only is raw tree-sitter CPU time without I/O. Query latencies are averages from scripts/profile_query.py. Full benchmark tables: wiki/benchmarks.md

Documentation

Supporting Code Atlas

I built Code Atlas because my AI agents kept burning half their context just figuring out where things are in larger codebases. Nothing combined the search types I needed in one place, so I built it and open-sourced it so you can benefit as well.

If Code Atlas saves you time, tokens, or makes your agents noticeably better — consider sponsoring the project.

Sponsor

License

Apache License 2.0

Third-party components. The web UI ships two vendored browser bundles, both MIT, each with its upstream licence text alongside it: sigma.js 3.0.3 and graphology 0.26.0, under src/code_atlas/server/web/static/vendor/. Versions, sources and file hashes are recorded in PROVENANCE.md. They are committed rather than fetched, so atlas ui needs no network beyond your local Memgraph.

README fetched from the repository 5 days ago. The original is authoritative.

Questions

About Code Atlas

How do I install Code Atlas?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is Code Atlas safe to use with an AI agent?

Its trust score is 59 out of 100 (fair). It passes 5 of the 6 static security checks run so far; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Code Atlas still maintained?

Yes — the latest release is v0.15.3 (12 Oct 2026), and the last commit was 14 hours ago. The repository has 6 stars and 1 open issues.