javats-impact-mcp
This is a read-only MCP server for cross-stack impact analysis, tracing how changes in a Java (Spring Boot) backend ripple through an OpenAPI contract into a TypeScript frontend.
Index your project (
index_project): Build or refresh a SQLite-backed index by parsing Java, TypeScript, and OpenAPI artifacts into a unified symbol graph.Find symbols (
find_symbol): Locate any class, method, field, enum, or endpoint by name and optionally kind, returning file and line information.Find references (
find_references): Retrieve intra-language references to a given symbol, showing where it is used within a single language layer.Get endpoint details (
get_endpoint): Look up an API endpoint to see how it maps across the Java controller, OpenAPI operation, and related DTO schema.Analyze cross-stack impact (
analyze_impact): Compute the full blast radius of a symbol — tracing it from Java through OpenAPI into TypeScript call sites, with confidence flags (highfor type-resolved hits,heuristicfor URL-matched calls) and a migration checklist.Get Git context (
get_git_context): Fetch recent commit history, authors, and blame summaries for a file or symbol to understand ownership and change history.Explain a symbol (
explain_symbol): Get an aggregated summary combining a symbol's definition, references, endpoint mapping, and Git context in one unified view.
Analyzes Java Spring Boot backend code, including enums, DTOs, JPA entities, and endpoints, to trace impact across the stack.
Parses OpenAPI/Swagger specifications to link Java DTO fields to API schemas, enabling impact propagation from backend to frontend.
Analyzes TypeScript frontend code to identify callers and heuristically match fetch/axios calls for cross-stack impact analysis.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@javats-impact-mcp What would break if I rename OrderStatus.PENDING?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
javats-impact-mcp

Read-only MCP server for cross-stack impact analysis across a Java (Spring Boot) backend and a TypeScript frontend, linked through OpenAPI.
The one-question demo: "If I rename an enum value, what breaks?"
OrderStatus.PENDING is a Java enum value. It is stored in the DB (orders.status,
@Enumerated(STRING)), exposed on OrderDto.status in the OpenAPI spec, returned by
GET /api/orders, and consumed by the frontend two ways.
find_symbol { name: "OrderStatus", kind: "enum" } -> symbol_id
analyze_impact { symbol_id }Returns (abridged):
{
"endpoints": [{ "path": "/api/orders", "method": "GET" }],
"tsCallers": [
{ "kind": "client_call", "file": ".../OrdersPage.tsx", "confidence": "high" },
{ "kind": "fetch_call", "file": ".../rawFetchOrders.ts", "confidence": "heuristic" }
],
"jpa": { "table": "orders", "column": "status", "enumerated": "EnumType.STRING" },
"migration_checklist": [ "...", "Review 1 heuristic TS site (raw fetch URL match — verify manually)." ]
}Related MCP server: RepoMind-MCP
How it works
index_projectbuilds a SQLite index with three indexers:Java (tree-sitter): classes, enums, fields, methods, annotations, scoped references.
TypeScript (ts-morph): type-aware symbols, property accesses, fetch/axios call sites.
OpenAPI (swagger-parser): endpoints, schemas, and
maps_toedges bridging Java DTO fields to schema fields.
The 7 read-only tools query that index.
analyze_impactwalks Java → OpenAPI → TypeScript.
Tools (exactly 7, all read-only)
index_project, find_symbol, find_references, get_endpoint,
analyze_impact, get_git_context, explain_symbol.
Configuration
javats-mcp.config.json (paths resolve relative to the file):
{ "backendPath": "...", "frontendPath": "...", "openApiSource": "./openapi.json",
"generatedClientPath": "...", "indexPath": ".javats-mcp/index.db", "allowNetwork": false }Register in Claude Desktop / Cursor
{
"mcpServers": {
"javats-impact": {
"command": "node",
"args": ["/absolute/path/to/dist/index.js"],
"env": { "JAVATS_CONFIG": "/absolute/path/to/javats-mcp.config.json" }
}
}
}Run npm run build first. For development, use command: "npx", args: ["tsx", "/abs/src/index.ts"].
Limitations / confidence model
high— resolved through the TypeScript type system (ts-morph) or a generated-client method reference. Renames provably affect these sites.heuristic— matched by URL/path string againstfetch/axios. Can miss dynamic URLs (template concatenation) and can over-match similar paths. Always verify these manually.Java analysis is syntactic (tree-sitter), scoped by simple type name — it does not do full type resolution, so same-named types in different packages may conflate.
OpenAPI linking assumes springdoc-style schema names match Java DTO class names.
Read-only: no writes, no shell exec except
git log/blame. Network off unlessallowNetwork.
Requirements & no native builds
Requires Node 22+ (the index store uses the built-in node:sqlite). There are no
native modules: Java parsing uses web-tree-sitter (WASM runtime) with prebuilt grammars
from tree-sitter-wasms, and storage uses node:sqlite. npm install needs no C++
compiler on any platform. (node:sqlite is currently a stable-but-experimental Node API and
prints a one-time notice on stderr at startup; it does not affect the MCP stdio protocol.)
Available Tools
7 toolsanalyze_impactC
Cross-stack blast radius for a symbol, with confidence flags.
Inputs: symbol_id (required).
explain_symbolC
Aggregate definition + refs + endpoint + git into one summary.
Inputs: symbol_id (required).
find_referencesC
Intra-language references to a symbol.
Inputs: symbol_id (required).
find_symbolA
Locate a class/method/field/enum/endpoint by name (file:line).
Inputs: name (required), kind.
get_endpointD
Java endpoint <-> OpenAPI operation <-> DTO schema.
Inputs: pathOrMethod (required).
get_git_contextC
Recent authors, commits, and blame summary for a file or symbol.
Inputs: fileOrSymbol (required).
index_projectC
Build/refresh the cross-stack index. Returns counts.
Inputs: paths.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 7 tools
Each tool targets a distinct aspect: indexing, symbol lookup, reference finding, endpoint details, cross-stack impact, git context, and summary aggregation. No overlap in purpose.
All tools follow a consistent verb_noun pattern in snake_case (e.g., find_symbol, get_endpoint), making them predictable and easy to differentiate.
With 7 tools, the set is well-scoped for a code impact analysis domain. Each tool serves a clear role without being too many or too few.
The tools cover core workflows: indexing, searching, referencing, endpoint mapping, impact analysis, and git context. Minor gaps exist like direct file content retrieval, but the set is sufficient for its stated purpose.
Maintenance
Related MCP Connectors
Repository knowledge graph MCP server for codebase understanding and debugging.
One MCP server for all your MCP servers: code mode, per-tool permissions, approvals and audit.
1Permission-aware onboarding MCP server: answers about a codebase, filtered by the caller's role.
MCP server for Product Management
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceMCP server that exposes code tracing capabilities including journey flows, HTTP seams, and findings from indexed projects, allowing AI assistants to query software architecture.-
- FlicenseAqualityDmaintenanceMCP server for repository mapping, dependency analysis, and architecture diagram generation for JavaScript, TypeScript, and Python projects.412 npm-
- AlicenseNot gradedqualityBmaintenanceLocal-first MCP server that scans a repository once and answers architecture questions from an evidence-backed graph, enabling dependency analysis, impact analysis, and codebase exploration without re-reading the source tree.8MIT
- AlicenseNot gradedqualityDmaintenanceMulti-language code intelligence MCP server providing structured code analysis including symbol search, references, hierarchies, and change impact. Supports 25 languages with persistent indexing and LSP integration.51 npmMIT