Other formats agents might prefer:
markdownjsonllms.txt

Agent? You probably want markdown or json, or Pod over MCP.

Reported issues for ast-impact-mapper-mcp

Pod holds 16 of 16 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.

Back to ast-impact-mapper-mcp.

Most discussed

feat: add analyze_api_surface_mutation tool

Problem

The current impact analysis treats all changes equally. A developer renaming a local variable (internal refactor) and a developer adding a required parameter to an exported function (breaking API change) both produce the same "affected" verdict. The agent cannot distinguish severity, prioritize test execution, or correctly label PRs.

What the agent gains

Classifies each change as internal_refactor or breaking_api_change. Enables the agent to:

  • Flag PRs that break downstream

Read the thread · 2026-05-18 · closed · 0 comments

feat: add differentiate_type_impact tool

Problem

If module B changes only a TypeAliasDeclaration or InterfaceDeclaration, module A's compiled JavaScript is unchanged — TypeScript types are erased at compile time. But the current BFS marks A as affected regardless, triggering redundant test runs.

In a large codebase with heavy type refactoring (e.g. migrating to stricter types, adding generics), this causes massive unnecessary CI execution.

What the agent gains

Prunes entire test branches when the change is type-only AND t

Read the thread · 2026-05-18 · closed · 0 comments

feat: surface circular dependency chains in get_dependency_graph

Problem

The BFS traversal already skips visited nodes to prevent infinite recursion on circular imports — but it silently discards the cycle information. The agent never learns that circular dependencies exist, even though the traversal data is right there.

Circular dependencies are a meaningful code quality signal:

  • Tight architectural coupling
  • Unpredictable module initialization order at runtime
  • Memory overhead during resolution
  • DI framework failures (Angular, NestJS, InversifyJS)

Read the thread · 2026-05-18 · closed · 0 comments

fix: get_affected_tests_by_branch misses renamed/moved files

Problem

get_affected_tests_by_branch uses plain git diff to find changed files. When a developer moves src/utils/helper.tssrc/shared/helper.ts, git reports it as a full delete + add. The dependency graph loses continuity — historical import connections to the old path are severed, and the mapper incorrectly concludes that all dependents are "no longer relevant."

Additionally, whitespace-only changes (linter auto-formatting, prettier --write) trigger unnecessary full test runs.

Read the thread · 2026-05-18 · closed · 0 comments

feat: add identify_unreachable_modules tool

Problem

Large codebases accumulate dead files — TypeScript sources that are never imported by anything. These are safe to delete but hard to find manually. The current server maps forward impact (what does this change affect?) but never maps isolation (what is never referenced by anything?).

What the agent gains

Safe dead code candidates with zero incoming import edges in the full project graph. Enables automated repository hygiene without manual auditing.

Implementation

  1. Bui

Read the thread · 2026-05-18 · closed · 0 comments

feat: add mermaid diagram output to get_dependency_graph

Problem

JSON import lists are hard to read for deeply nested dependency chains. A visual graph would make it immediately obvious which files are central to the architecture.

Solution

Add optional format: "json" | "mermaid" parameter to get_dependency_graph.

When format = "mermaid", return a Mermaid flowchart:

graph TD
  A[src/fixtures/base-fixture.ts] --> B[src/pages/google-home-page.ts]
  A --> C[src/pages/google-results-page.ts]
  D[tests/google-pom.spec.ts] --> A

Age

Read the thread · 2026-05-15 · closed · 0 comments

feat: add get_affected_tests_by_branch tool

Problem

get_affected_tests requires the caller to supply changed files manually. In practice, the agent needs to run git diff --name-only main first, parse the output, then call the tool. It would be cleaner if the server did this itself.

Solution

New tool get_affected_tests_by_branchproject_root, base_branch? (default main)

Internally runs git diff --name-only <base_branch>...HEAD via Node child_process.execSync, parses the output through parseGitDiff, and cal

Read the thread · 2026-05-15 · closed · 0 comments

feat: support tests directories as test file locations

Problem

isTestFile only matches *.spec.ts / *.test.ts patterns. Projects using Jest conventions store tests in __tests__/ directories with plain .ts filenames — these are completely invisible to the current graph.

Solution

Extend isTestFile to also match any file inside a __tests__ directory:

function isTestFile(filePath: string): boolean {
  return /\.(spec|test)\.(ts|tsx|js|jsx)$/.test(filePath)
    || /\/__tests__\//.test(filePath);
}

Read the thread · 2026-05-15 · closed · 0 comments

Most recent

perf: cache dependency graphs per project root

Problem

buildForwardGraph and buildReverseGraph traverse all source files on every tool call. On projects with 1000+ files this adds significant latency — the graphs are rebuilt even when nothing has changed.

Solution

Cache forwardGraph and reverseGraph alongside the Project in memory. Invalidate both when refresh_project is called.

const graphCache = new Map<string, { forward: Map<...>, reverse: Map<...> }>();

First call builds and caches; subsequent calls reuse

Read the thread · 2026-05-15 · closed · 0 comments

docs: add README worked example with real JSON output

Problem

The README describes the tools but shows no actual output. New users can't tell if the tool is working correctly or what to expect.

Task

Add a "Example output" section to the README showing:

  1. A sample project structure (5-6 files, 2 tests)
  2. get_affected_tests call + real JSON response
  3. explain_impact call + import chain output

Keep it minimal — enough to understand the format without reading the code.

Read the thread · 2026-05-15 · closed · 0 comments

feat: add get_test_summary tool — project-wide test coverage overview

Problem

There's no way to get a bird's-eye view of the project's test structure. An agent has to call multiple tools to understand the overall state.

Tool design

get_test_summaryproject_root

{
  "total_source_files": 48,
  "total_test_files": 23,
  "covered_source_files": 36,
  "coverage_rate": 0.75,
  "most_imported_files": [
    { "file": "src/utils/auth.ts", "imported_by_count": 14 },
    { "file": "src/api/client.ts", "imported_by_count": 11 }
  ],
  "deepest_imp

[Read the thread](https://github.com/vola-trebla/ast-impact-mapper-mcp/issues/6) · 2026-05-15 · closed · 0 comments

### feat: JavaScript and JSX support

## Problem

The current implementation only resolves `.ts` and `.tsx` imports. Projects with mixed JS/TS codebases (common in repos migrating to TypeScript) will have broken dependency graphs — JS files won't appear as nodes and their test files will be missed.

## Task

- Add `.js` and `.jsx` to the file glob when no tsconfig is found
- Ensure ts-morph resolves `.js` imports correctly (requires `allowJs: true` in the Project config)
- Test against a mixed JS/TS project
- Document the limitation

[Read the thread](https://github.com/vola-trebla/ast-impact-mapper-mcp/issues/5) · 2026-05-15 · closed · 0 comments

### feat: add refresh_project tool for cache invalidation

## Problem

The project AST is cached in memory per `project_root` on first call and never invalidated. If source files change while the MCP server is running, the graph becomes stale and returns wrong results.

## Proposed change

Add a **`refresh_project`** tool — `project_root`

Drops the cached `Project` instance for that root so the next call re-parses from disk.

```json
{ "project_root": "/my-project", "message": "Cache cleared. Next call will re-parse the project." }

Also consider:

Read the thread · 2026-05-15 · closed · 0 comments

feat: accept raw git diff output in get_affected_tests

Problem

Right now get_affected_tests requires changed_files[] — a clean array of file paths. But in practice the agent gets git diff --name-only output: a raw newline-separated string with relative paths, sometimes including deleted files or renamed files.

Proposed change

Add an optional git_diff string input to get_affected_tests:

{
  "project_root": "/my-project",
  "git_diff": "src/utils/auth.ts\nsrc/api/userService.ts\nREADME.md"
}

The tool parses the string,

Read the thread · 2026-05-15 · closed · 0 comments

feat: add get_coverage_gaps tool — find source files with no test coverage

Problem

You can't improve test coverage if you don't know where the gaps are. Right now there's no way to ask "which source files have zero tests that import them?"

Tool design

get_coverage_gapsproject_root, source_dirs?, limit?

Returns source files that are not reachable from any test file through the import graph.

{
  "uncovered_files": [
    "src/utils/formatDate.ts",
    "src/api/paymentService.ts"
  ],
  "total_source_files": 48,
  "total_uncovered": 12,
  

[Read the thread](https://github.com/vola-trebla/ast-impact-mapper-mcp/issues/2) · 2026-05-15 · closed · 0 comments

### smoke test: verify all 3 tools against a real Playwright project

## Problem

The tools are implemented but never validated against a real TypeScript/Playwright project. We need to confirm the AST graph is built correctly and results are accurate before expanding further.

## Task

- Point the MCP server at `sample-playwright-project` (or any real TS project)
- Call all 3 tools manually and verify output makes sense
- Fix any resolution bugs (path aliases, index files, node_modules leaking into graph)
- Document any edge cases found

[Read the thread](https://github.com/vola-trebla/ast-impact-mapper-mcp/issues/1) · 2026-05-15 · closed · 0 comments

The remaining reports are on [the project's issue tracker](https://github.com/vola-trebla/ast-impact-mapper-mcp/issues).