ChangeAtlas
Provides tools to analyze a local Git repository, identifying files and tests that may be affected by a Git change by following static imports and returning evidence paths.
ChangeAtlas
ChangeAtlas shows which local files and tests may be affected by a Git change. It follows static imports and returns the file path behind every link, so you can inspect the evidence yourself. It runs on your machine, reads your repository, and does not send its contents to a service.
It is useful when you have changed a module and want a short, grounded list of places to check before committing. It does not decide whether a change is safe or whether a test covers a behavior.
Install
Requires Python 3.11 or newer and Git.
pip install mcp-changeatlasPoint it at the exact root of a Git repository:
mcp-changeatlas --root /path/to/repo overview
mcp-changeatlas --root /path/to/repo changes --base HEAD
mcp-changeatlas --root /path/to/repo trace src/app/core.py
mcp-changeatlas --root /path/to/repo tests src/app/core.pyFor an MCP client, configure a stdio server with command mcp-changeatlas and arguments --root, the repository path, and serve. For example:
{
"mcpServers": {
"changeatlas": {
"command": "mcp-changeatlas",
"args": ["--root", "/path/to/repo", "serve"]
}
}
}The four tools are repository_overview, analyze_changes, trace_file, and find_tests. The root is set by the person running the server and cannot be changed by a tool call.
The Docker image is for directory build checks and a self-contained demo. It analyzes the repository snapshot inside the image. To analyze your own work, install the package locally and set --root to your repository.
Related MCP server: code-dna-tracker
How it works
ChangeAtlas reads tracked Python, JavaScript, and TypeScript files and builds a local import graph. Python imports are parsed with the standard library AST. JS/TS relative import, export, and require links are found statically. It follows reverse links from a changed file to nearby modules and tests, up to a chosen depth. Results include the file chain that led to each suggestion.
analyze_changes compares the working tree, including staged changes, with a Git commit. include_untracked adds untracked file names. It never runs project code, test commands, package managers, or Git hooks. It resolves paths and rejects files that point outside the configured repository. File and result counts have fixed limits.
This first release resolves local Python imports and relative JS/TS imports. It cannot follow runtime imports, package aliases, monorepo path mappings, or non-code dependencies. Deleted and unsupported files are shown under unindexed_changes; an incomplete result is marked as such. A suggested test is a path through imports, not a coverage claim.
Development
python -m venv .venv
python -m pip install -e ".[dev]"
pytest
ruff check .
mypy
python -m buildPublishing
The package name and MCP Registry name are set in pyproject.toml, README.md, and server.json. Before the first PyPI release, create a pending trusted publisher for robyroro/mcp-changeatlas, workflow release.yml, environment pypi. Then publish a GitHub release tagged with the matching package version. The release workflow runs tests and publishes the wheel and source archive through PyPI's trusted publishing flow.
Once the exact version is visible on PyPI, run the Publish to MCP Registry GitHub Actions workflow. It validates server.json and publishes it with GitHub OIDC, following the Registry publisher guide. The registry is a separate publication step. A repository or PyPI release alone does not create a registry listing.
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Deterministic context layer for your codebase: change impact, blast radius, answers with receipts.
Change-impact intelligence for tracing dependencies, stale references and required updates.
Search indexed code, trace dependencies, assess change impact, and recall repository memory.
Ask a codebase what calls what: search, blast radius, paths between symbols, and diffs.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables querying and analyzing code relationships by building a lightweight graph of TypeScript and Python symbols. Supports symbol lookup, reference tracking, impact analysis from diffs, and code snippet retrieval through natural language.-
- AlicenseNot gradedqualityDmaintenanceTracks the complete lineage and DNA of every line of code, enabling impact analysis, bug risk prediction, and code archaeology through deterministic analysis of git history and AST.MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI coding agents to analyze git diffs for behavior-aware change reports, map downstream blast radius, and enforce deterministic risk gates through the Model Context Protocol.26 npm4MIT
- AlicenseAqualityBmaintenanceAnalyzes code changes using static code-graph and git co-change history to identify likely affected files, returning tiered confidence reports with evidence. Exposes tools for AI assistants to inspect current changes, static impact, historical co-change patterns, and detailed explanations.5MIT