# Athena: A Local-First Git & AST Change-Intelligence Engine and MCP Server

> Source: <https://dev.to/aaryanrwt/athena-a-local-first-git-ast-change-intelligence-engine-and-mcp-server-eok>
> Published: 2026-10-18 15:05:37+00:00

*This is a submission for the [Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle](https://dev.to/challenges/hacktoberfest-week2-2026-10-12)*

Most release-note generators and PR review bots do the same thing: they dump `git log --oneline` into a cloud LLM and hope for the best.

That fails in real engineering teams for two reasons:

`fix(api): minor cleanup in parameter defaults` might actually insert an optional parameter before an existing one (`def compute(a, b=2)` -> `def compute(a, inserted=0, b=2)`), silently shifting positional arguments for every caller in production.
**Athena (`athena-mcp`)** is an open-source, local-first **Git & AST Change-Intelligence Engine, CLI, and Model Context Protocol (MCP) server**. Instead of guessing from commit titles, Athena parses the actual Python Abstract Syntax Tree (`ast`) and TypeScript/JavaScript structural contracts across any Git revision range (`base_ref..target_ref`), traces downstream caller blast radius across the repository, flags stale Markdown documentation, and binds every single finding to a verified `EvidenceRecord` (40-character commit SHA, file path, exact base/target line spans, and diff hunk excerpt).

Because this challenge celebrates **Open-Source AI**, Athena is built 100% on open-weights models and open protocols that run locally on consumer hardware (tested on an NVIDIA RTX 4050 Laptop GPU with 6 GB VRAM and 16 GB RAM):

`gemma:latest` (Gemma 7B — Open Weights via Ollama, `~5.0 GB`):` qwen2.5-coder:7b` (Qwen 2.5 Coder 7B — Open Weights via Ollama, `~4.7 GB`):` src/athena/ollama_engine.py`):`/api/ps` endpoint before inference and automatically evicts any competing loaded model (`keep_alive: 0`) before loading `src/athena/verifier.py`):` gemma:7b` or `EvidenceRecord` table. If the model invents a commit SHA, fabricates a file path, or times out, Athena strips the unverified claim or gracefully falls back to deterministic `mcp` Python SDK):`stdio` MCP tools (`inspect_revision_range`, `analyze_code_changes`, `detect_potential_breaking_changes`, and `generate_release_notes`) so any MCP-compatible agent or IDE can query ground-truth Git + AST diffs locally.`None`-fallback body guards (` griffe#469`), `(str, Enum)` <-> `StrEnum` breaking migrations (`griffe#501`), and newly raised exceptions (` griffe#498`).` BUG-030`):` old_pos_idx[n] != new_pos_idx[n]`), verified against a 66-case parametrized binding-relation matrix across positional-only (`/`), standard positional, trailing appends, and keyword-only (`*`) controls.` BUG-021`..` BUG-029`):` NameError`s.`__all__`, `__init__.py` re-exports, and TypeScript `export` symbols (`is_public_api_export=True`) from internal `_private` modules.`getattr`, `globals()`, `eval`, `importlib.import_module`, TS bracket dispatch `obj[key]()`) and outputs an explicit `AnalysisCoverageReport`.`.github/workflows/athena-audit.yml`) or your IDE (` Claude Desktop`, `Cursor`, `VS Code`) via MCP.` Python 3.12+`)

```
bash
git clone https://github.com/aaryanrwt/athena.git
cd athena
pip install -e ".[dev]"
```


