MCP Maven Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_JAVA_HOME | No | Override JDK path | |
| MCP_MAVEN_TIMEOUT_MS | No | Build timeout in milliseconds | 300000 |
| MCP_MAVEN_CACHE_ENABLED | No | Enable/disable build caching | true |
| MCP_MAVEN_MAX_LOG_LINES | No | Max stdout lines to keep | 500 |
| MCP_MAVEN_DEFAULT_PROFILE | No | Default Maven profile | |
| MCP_MAVEN_SPRING_RING_BUFFER | No | Spring Boot log ring buffer size | 500 |
| MCP_MAVEN_SPRING_STARTUP_TIMEOUT | No | Max wait for Spring Boot startup | 120000 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| compileProjectB | Compile the Maven project and return structured compilation errors |
| getCompilationErrorsC | Run compile and return only the structured error list (no success noise) |
| runTestsA | Run all tests (mvn test) and return structured results |
| runSingleTestB | Run a single test class and return structured results |
| runSingleMethodB | Run a single test method and return structured results |
| getFailedTestsA | Read test reports and return only failed/errored tests without re-running |
| getTestReportsA | Read test reports from disk without running tests again |
| verifyProjectB | Run mvn verify — compile, test, and integration-check the project |
| packageProjectC | Package the project as JAR/WAR (skip tests by default) |
| cleanProjectC | Clean the project (mvn clean) |
| executeMavenCommandB | Execute an arbitrary Maven command with custom arguments. Output is parsed for errors. |
| getProjectInfoA | Detect the current Maven project structure: root, modules, Java version |
| getJavaInfoA | Detect which JDK is being used — from JAVA_HOME, mvn --version, or PATH |
| getMavenInfoA | Get Maven version and path from mvn --version |
| pingA | Health check — verify the MCP server is alive and responding |
| springBootRunB | Start the Spring Boot application. Captures logs and detects port/startup. |
| springBootStopA | Stop the Spring Boot application gracefully (actuator shutdown first, SIGTERM fallback) |
| springBootStatusB | Get the current status of the Spring Boot application (port, PID, uptime, health) |
| springBootRestartC | Restart the Spring Boot application (stop then start) |
| springBootLogsC | Get the most recent log lines from the running Spring Boot application |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 20 tools
Each tool targets a specific task without overlap. Maven build, test, and Spring Boot operations are clearly separated, and tools like getCompilationErrors and getFailedTests have distinct purposes from their run counterparts.
Most tools follow a verb+noun pattern (e.g., cleanProject, compileProject), but springBootLogs, springBootStatus, and springBootStop lack verbs, deviating slightly. Overall, the pattern is predictable and readable.
20 tools cover Maven build lifecycle, test reporting, project info, and Spring Boot management. While slightly numerous, each tool serves a distinct purpose and the scope is well-defined.
The tool set provides comprehensive coverage for Maven development workflows: clean, compile, test (single/class/all), package, verify, plus error retrieval and test report reading. Spring Boot lifecycle (start, stop, restart, status, logs) is fully covered. Missing deploy or install, but these are less common in typical development cycles.