- Home
- MCP servers
- Jons MCP Java Server
Jons MCP Java Server
- other
0
GitHub Stars
other
Language
4 months ago
First Indexed
3 weeks ago
Catalog Refreshed
Documentation & install
Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.
Installation
Add the following to your MCP client configuration file.
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.
How to use
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.
How to install
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 sync
Additional sections
Configuration 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.
Available tools
definition
Go to symbol definition
references
Find all references to a symbol
implementation
Find implementations of interfaces or abstract methods
type_definition
Go to type definition
document_symbols
List all symbols in a file
workspace_symbols
Search for symbols across the workspace
diagnostics
Get errors and warnings
hover
Get Javadoc and type information