home / mcp / jons mcp java server
Provides Java development capabilities through Eclipse JDT.LS, enabling multi-project workspaces, symbol navigation, and diagnostics.
Configuration
View docs{
"mcpServers": {
"jonmmease-jons-mcp-java": {
"command": "uv",
"args": [
"run",
"--project",
"/path/to/jons-mcp-java",
"jons-mcp-java"
],
"env": {
"JAVA_HOME": "PATH_TO_JAVA_HOME",
"JDTLS_HOME": "/path/to/jdtls",
"JONS_MCP_JAVA_WORKSPACE": "YOUR_WORKSPACE_PATH"
}
}
}
}You run a Java-focused MCP server that leverages Eclipse JDT.LS to provide development capabilities such as symbol navigation, type information, and diagnostics. It supports multi-project Java workspaces, lazy initialization per project, and safe concurrent access for multiple requests.
Use this MCP server with an MCP client to enable Java language features in your editor or IDE. You run the server locally or connect to it through your MCP client, then load your Java projects. The server will automatically discover relevant Gradle/Multi-project setups and provide on-demand language services per project.
To start using it from Claude Code or a similar MCP client, add the MCP server using the following command pattern. This registers the server and tells the client how to launch it in stdio mode when needed.
Prerequisites you must have installed before setting up this MCP server:
- Python 3.10 or newer
- Java 21 or newer (installation note: on macOS you can install via Homebrew with openjdk@21)
- Eclipse JDT.LS (Java language server) installed on your system (example: brew install jdtls on macOS)
Step-by-step installation flow
cd /path/to/jons-mcp-java
uv syncConfiguration and runtime behavior for this MCP server focus on local, on-demand operation and workspace-based discovery. The server starts JDT.LS instances per project as needed and uses an LRU strategy to manage memory when multiple projects are active. It is designed to be safe for concurrent requests.
Go to symbol definition
Find all references to a symbol
Find implementations of interfaces or abstract methods
Go to type definition
List all symbols in a file
Search for symbols across the workspace
Get errors and warnings
Get Javadoc and type information