# archy

Python architecture sensor that tracks import graphs, catches cycles, and pinpoints tests affected before making code edits.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 7
- Author: hslee16
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/hslee16/Archy
- Updated: 2026-10-23
- HTML: https://affpapa.org/en/nevibecode/mcp/archy

## What it does

The server builds and caches an internal graph of Python imports and call paths. It resolves architectural questions an ordinary file tree obscures. Before applying changes, it maps the transitive reach of an edit, spots cycle traps between modules, and pinpoints relevant test suites.

Beyond impact analysis, archy verifies directional layer constraints. When an import flows the wrong way, such as core entities importing data access layers directly, checks fail immediately. The tool targets Python codebases specifically and expects `uvx` in the environment to launch.

## Requirements
- Needs: Python and uv (commands run via uvx)

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add archy -- uvx archy
```
uvx runs the command named after the package; if the README names another one, use uvx --from archy <command>

### Codex

**Platform CLI**
```bash
codex mcp add archy -- uvx archy
```
uvx runs the command named after the package; if the README names another one, use uvx --from archy <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "archy": {
            "command": "uvx",
            "args": [
                "archy"
            ]
        }
    }
}
```
uvx runs the command named after the package; if the README names another one, use uvx --from archy <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "archy": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "archy"
            ]
        }
    }
}
```
uvx runs the command named after the package; if the README names another one, use uvx --from archy <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add archy uvx archy
```
uvx runs the command named after the package; if the README names another one, use uvx --from archy <command>

## When to use it
- map blast radius across Python modules before editing
- identify which test suites touch changed code
- detect import cycles across the repository
- enforce directional architectural boundaries between layers

## Example prompts
- Check which tests I should run after modifying `core/models.py`
- Find any circular imports across the project before we commit
- Map out which modules are affected if I edit the data access layer

## Similar
- [Front-End Checklist](https://affpapa.org/en/nevibecode/mcp/front-end-checklist.md) — MCP server · ★ 74569
- [Codebase Memory](https://affpapa.org/en/nevibecode/mcp/codebase-memory.md) — MCP server · ★ 47577
- [Serena MCP: the IDE for your agent](https://affpapa.org/en/nevibecode/mcp/serena-mcp-the-ide-for-your-agent.md) — MCP server · ★ 30739
- [Repomix](https://affpapa.org/en/nevibecode/mcp/repomix.md) — MCP server · ★ 29037
- [Repowise](https://affpapa.org/en/nevibecode/mcp/repowise.md) — MCP server · ★ 7925
- [sem](https://affpapa.org/en/nevibecode/mcp/sem.md) — MCP server · ★ 3427

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
