{"id":"stephanj-lsp4j-mcp","name":"LSP4J-MCP","homepage":null,"repo_url":"https://github.com/stephanj/LSP4J-MCP","category":"devtools","subcategories":[],"tags":["mcp","lsp","java","jdtls","lsp4j","code-intelligence","agent-tools"],"what_it_does":"LSP4J-MCP is a Java MCP (Model Context Protocol) server that launches the Eclipse JDT Language Server (JDTLS) as a subprocess and exposes selected Java IDE/LSP capabilities as MCP tools (e.g., symbol search, references, definitions, and symbol listing).","use_cases":["Answering code navigation questions with AI assistants (definitions, references, symbol lookup)","Generating codebase summaries by extracting document symbols","Refactoring assistance by finding usages of methods/types","Discovering interface contracts by searching for interfaces with a given method name"],"not_for":["Production-grade hosted multi-tenant API services (it appears intended for local/subprocess usage)","Environments where JDTLS cannot be installed or where running IDE language servers is disallowed","High-concurrency server workloads requiring strict rate-limit/service-level guarantees"],"best_when":"You want an agent to perform Java code understanding/navigational tasks locally on a project workspace via MCP tools backed by JDTLS.","avoid_when":"You need a public network API with managed authentication/rate limits, or you cannot run Java 21+ and JDTLS.","alternatives":["Use an LSP client directly (without MCP) to call JDTLS/LSP4J from an agent framework","Other MCP language-server wrappers (e.g., for TypeScript/TS server) if available","Cloning symbol/reference functionality via static analysis tools (e.g., JavaParser) where LSP fidelity is not required"],"af_score":54.0,"security_score":25.2,"reliability_score":21.2,"package_type":"mcp_server","discovery_source":["github"],"priority":"high","status":"evaluated","version_evaluated":null,"last_evaluated":"2026-03-30T15:35:01.772532+00:00","interface":{"has_rest_api":false,"has_graphql":false,"has_grpc":false,"has_mcp_server":true,"mcp_server_url":null,"has_sdk":true,"sdk_languages":["Java"],"openapi_spec_url":null,"webhooks":false},"auth":{"methods":[],"oauth":false,"scopes":false,"notes":"No authentication mechanism is described for the MCP server itself. Usage appears local/stdin-stdout based (invoked by the host tool), implying trust is typically assumed at the process boundary."},"pricing":{"model":null,"free_tier_exists":false,"free_tier_limits":null,"paid_tiers":[],"requires_credit_card":false,"estimated_workload_costs":null,"notes":"Open-source (MIT license stated). No hosted pricing indicated."},"requirements":{"requires_signup":false,"requires_credit_card":false,"domain_verification":false,"data_residency":[],"compliance":[],"min_contract":null},"agent_readiness":{"af_score":54.0,"security_score":25.2,"reliability_score":21.2,"mcp_server_quality":70.0,"documentation_accuracy":65.0,"error_message_quality":0.0,"error_message_notes":null,"auth_complexity":95.0,"rate_limit_clarity":5.0,"tls_enforcement":0.0,"auth_strength":20.0,"scope_granularity":0.0,"dependency_hygiene":55.0,"secret_handling":60.0,"security_notes":"Communication appears to be local (std i/o MCP via a launched process), and no auth is described. That can be acceptable for trusted local use but is risky if exposed beyond the intended host. Logging to a file is configured via LOG_FILE; README does not describe redaction or handling of sensitive workspace contents in logs. Dependency hygiene cannot be verified from the provided content.","uptime_documented":0.0,"version_stability":35.0,"breaking_changes_history":20.0,"error_recovery":30.0,"idempotency_support":"false","idempotency_notes":"Operations are read-only from an LSP perspective, but the README does not explicitly state idempotency guarantees for the MCP tool calls.","pagination_style":"none","retry_guidance_documented":false,"known_agent_gotchas":["The server starts JDTLS as a subprocess; failures due to missing/incorrect JDTLS install or command may occur before tool calls work.","Large workspaces may increase response time since it relies on a full language server index.","Logging is redirected to a file; agent troubleshooting may require checking LOG_FILE when stdout is reserved for protocol communication."]}}