
JVM Source Lens
Connects Claude and other MCP hosts to your Gradle project's actual resolved classpath, so your agent stops guessing which JAR version you're really using. Exposes six tools: search_classes for FQN lookup, get_class_structure for method lists and signatures, get_method_signature for overload details with generics, find_in_class_source for regex search, get_class_source for implementation snippets, and resolve_dependencies for the full dependency graph. Returns real source when available (with Javadoc and parameter names), falls back to CFR decompilation otherwise. Built for Java and Spring Boot projects where agents waste dozens of turns walking ~/.gradle/caches by hand. Requires Node 20+ and Java on PATH. Gradle only for now, Maven and Bazel planned.
- GitHub stars
- 4
- tools
- 7
- transport
- STDIO
- env vars
- 6
- last updated
- Sep 8, 2026
Tools
7 toolsPublic tool metadata for what this MCP can expose to an agent.
search_classesFind a class by simple name or glob; returns compact FQN + lib name lists
Find a class by simple name or glob; returns compact FQN + lib name lists
No parameter schema in public metadata yet.
get_class_structureRetrieves class overview (purpose + method names) or declared signatures
Retrieves class overview (purpose + method names) or declared signatures
No parameter schema in public metadata yet.
get_method_signatureFetches real overloads for a method, with parameter names and generics
Fetches real overloads for a method, with parameter names and generics
No parameter schema in public metadata yet.
find_in_class_sourcePerforms regex or substring searches inside a resolved class
Performs regex or substring searches inside a resolved class
No parameter schema in public metadata yet.
get_class_sourceRetrieves method bodies or line ranges (used as a last resort)
Retrieves method bodies or line ranges (used as a last resort)
No parameter schema in public metadata yet.
search_in_artifactGreps text across all classes in one resolved dependency JAR
Greps text across all classes in one resolved dependency JAR
No parameter schema in public metadata yet.
resolve_dependenciesAnalyzes the actual dependency graph this project uses
Analyzes the actual dependency graph this project uses
No parameter schema in public metadata yet.
Sponsors
Configuration
JVMSRC_ALLOWED_ROOTSOptional comma-separated absolute paths; only these project roots are allowed.
JVMSRC_CACHE_ROOTOptional absolute path for resolution and decompile caches (default: OS cache dir).
JVMSRC_LOG_DIROptional absolute path for failure diagnostic logs.
JVMSRC_MAX_SOURCE_OUTPUT_CHARSMax characters returned for full-file source (default 524288).
JVMSRC_GRADLE_TIMEOUT_MSGradle resolution subprocess timeout in milliseconds.
JVMSRC_CFR_PATHOptional path to a custom CFR JAR for decompilation.
Readme
jvmsrc — Give your coding agent a Java IDE
An MCP server and CLI that gives your coding agent the one thing it is missing on JVM codebases: the actual classpath.
Your IDE knows which library version your build uses. Your coding agent does not. It guesses from ~/.gradle/caches and often reads the wrong JAR.
jvmsrc asks your build tool (Gradle) for the resolved classpath. Then it gives the agent real source, real signatures and real structure for the exact version in use.
Quick Start
Requires Node ≥ 20 and Java on PATH (for the CFR decompiler and javap).
1. Add the MCP server — run in your terminal
Details
- Repository
- github.com/sintexer/jvm-source-lens
- Website
- github.com/Sintexer/jvm-source-lens#readme
- Category
- Search & Web Crawling
- Package
jvmsrc- Transport
- STDIO
- Registry
- MCP registry, active