javats-impact-mcp
Provides git context such as commit history and blame information for files impacted by changes.
Analyzes Java Spring Boot backend code, including classes, enums, fields, methods, and annotations, to identify impacted endpoints, DTOs, and JPA entities.
Parses OpenAPI specifications to link Java DTO fields to schema definitions and endpoints, enabling cross-stack impact analysis.
Analyzes TypeScript frontend code to find symbol references, property accesses, and fetch/axios call sites that depend on backend endpoints.
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-mcpShow impact of renaming 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: Refactor 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/javats-impact-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server