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 "Install 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-mcpWhat 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: code-context-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.)
Maintenance
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/thanhphuong080199/blast-radius-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server