Archy
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| archy_scoreA | Compute the composite quality score (modularity, acyclicity, depth, equality - geometric mean) for a Python project. Optionally append the result to .archy/history.jsonl and/or compare against the most recent recorded run as a regression gate. |
| archy_cyclesB | Find import cycles (Tarjan SCCs of size >= min_size, plus self-loops) in a Python project. Returns cycles sorted largest-first. |
| archy_checkA | Call after any Python edit that adds, removes, or changes an import statement. Returns forbidden direct edges between layers declared in archy.yaml under |
| archy_contractsA | Call after any Python edit that adds, removes, or changes an import statement, especially across package boundaries. A failed contract means the new import violates the architecture - revert or restructure before continuing. Runs import-linter contracts (transitive Layers, Forbidden, Independence, Protected, AcyclicSiblings); stricter than archy_check, which only catches direct edges between layers in archy.yaml. Reads .importlinter (or pyproject.toml). Requires |
| archy_trendA | Read the recent score history (.archy/history.jsonl) for a Python project. Returns up to last_n rows ordered oldest-first so an agent can compare deltas. |
| archy_impactA | Given a list of changed file paths, return the internal modules that transitively import any of them (the blast radius). Use before refactoring or removing a module to see what would break. Files that don't resolve to any module in the graph are returned in |
| archy_snapshotA | Capture score, cycles, and layer violations to .archy/baseline.json as a baseline that archy_diff will compare against. Call at the start of an editing session. See the |
| archy_diffA | Compare the current project state to the last snapshot. Returns per-component score deltas plus the cycles and layer violations that have been added or resolved since the baseline. Use after edits to localize regressions; see the |
| archy_record_baselineA | Compute the score for a Python project AND append it to .archy/history.jsonl. Convenience wrapper for archy_score(record=True). Use at the start of an agent session so a later archy_score(strict=True) can detect degradation. |
| archy_graph_focusA | Return a subgraph centered on one or more modules. Pass qualnames (e.g. 'archy.parser') or file paths. |
| archy_graph_summaryA | Whole-project structural overview sized for LLM context. Returns top-N modules by fan-in, fan-out, and PageRank (importance weighted by importance of dependents), plus the top external dependencies. Cheaper than dumping the full graph; use for 'where is the gravity in this codebase' questions. Call archy_cycles separately for cycle detail. |
| archy_graphA | Full dependency-graph dump matching |
| archy_high_risk_modulesA | Return the top-N internal modules ranked by edit-risk: the geometric mean of MacCormack propagation cost, normalized fan-in, and Martin's instability. High score means editing is both expensive (wide blast radius, many direct importers) and likely to need iteration (the module itself depends on many things). Call before a non-trivial edit to decide whether to scope down, snapshot more aggressively, or pause for human review. Each entry breaks the composite back out into its components so you can see why a module ranks high. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| loop | How to use archy as an architectural feedback loop while editing code. Read this at session start so subsequent tool calls follow the right snapshot -> edit -> diff cadence. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/hslee16/archy'
If you have feedback or need assistance with the MCP directory API, please join our Discord server