Local-first MCP server that scans a repository once and answers architecture questions from an evidence-backed graph, so agents stop re-reading the source tree. Impact analysis, dependency cycles, boundary policies and diagram export.
Drift inferred · capture-to-capture
tool count over time
tools
-
annotate_component
annotate-component
-
architecture_context
architecture-context
-
architecture_health
architecture-health
-
architecture_summary
architecture-summary
-
architecture_trends
architecture-trends
-
change_impact
change-impact
-
changed_files_impact
changed-files-impact
-
check_architecture
check-architecture
-
cleanup_stale_scans
cleanup-stale-scans
-
dependency_cycles
dependency-cycles
-
diagnose_runtime
doctor
-
explain_flow
explain-flow
-
export_agent_brief
export-agent-brief
-
export_diagram
export-diagram
-
file_metrics
file-metrics
-
find_component
find-component
-
impact_analysis
impact-analysis
-
inspect_component
inspect-component
-
list_annotations
list-annotations
-
list_boundaries
list-boundaries
-
list_projects
list-projects
-
list_snapshots
list-snapshots
-
list_usages
list-usages
-
maintain_database
maintain-database
-
quality_gate
quality-gate
-
remove_project
remove-project
-
review_diff
review-diff
-
scan_project
scan
-
search_architecture
search-architecture
-
server_info
–
-
snapshot_diff
snapshot-diff
-
suggest_location
suggest-location
-
test_impact
test-impact
analyzed commit 54481c5 · analyzer v33 · 2d ago
skills & prompt files 1
code files: 494
filesystem 8
- fs (weak) AraneaDev-Knossos-MCP-54481c5/tests/Fixtures/typescript-scanner/packages/app/src/noexecute.cjs :1
require('node:fs').writeFileSync(__dirname + '/EXECUTED', 'Scanner executed project code.'); - fs AraneaDev-Knossos-MCP-54481c5/tools/coverage-badge.mjs :24
import { readFileSync } from 'node:fs'; - fs (weak) AraneaDev-Knossos-MCP-54481c5/workers/typescript/src/__tests__/framework-roles.test.js :2
import { mkdtempSync, mkdirSync, writeFileSync, rmSync } from "node:fs"; - fs (weak) AraneaDev-Knossos-MCP-54481c5/workers/typescript/src/__tests__/scanner.test.js :2
import fs, { mkdtempSync, mkdirSync, writeFileSync, rmSync } from "node:fs"; - fs (weak) AraneaDev-Knossos-MCP-54481c5/workers/typescript/src/__tests__/shebang-and-rejection.test.js :8
} from "node:fs"; - fs (weak) AraneaDev-Knossos-MCP-54481c5/workers/typescript/src/__tests__/support/record-typescript-load.mjs :16
import { appendFileSync } from "node:fs"; - fs (weak) AraneaDev-Knossos-MCP-54481c5/workers/typescript/src/__tests__/worker-startup.test.js :2
import fs from "node:fs"; - fs AraneaDev-Knossos-MCP-54481c5/workers/typescript/src/scanner.js :1
import fs from "node:fs";
shell / exec 1
- shell (weak) AraneaDev-Knossos-MCP-54481c5/workers/typescript/src/__tests__/worker-startup.test.js :1
import { spawn } from "node:child_process";
network 1
- net (weak) AraneaDev-Knossos-MCP-54481c5/tests/Fixtures/typescript-app/src/client.ts :2
await fetch("/api/orders");
install hooks 1
- postinstall AraneaDev-Knossos-MCP-54481c5/tests/Fixtures/mixed/package.json :6
touch SHOULD_NOT_EXIST
declared dependencies 13
- @eslint/js@latest
- c8@11.0.0
- eslint@latest
- markdownlint-cli2@0.23.0
- prettier@latest
- proc-macro2@1
- serde@1
- serde_json@1
- syn@2
- friendsofphp/php-cs-fixer@3.95.12
- infection/infection@^0.34
- phpstan/phpstan@2.2.5
show 1 more
- phpunit/phpunit@^12.0
obfuscation 1
- dynamic require()/import() AraneaDev-Knossos-MCP-54481c5/tools/chaos-loop.mjs :69
Client = (await import(`${sdkBase}/index.js`)).Client;