Java Project Runner MCP
Builds and manages registered Spring Boot + Maven projects on macOS, including project listing/inspection, Maven packaging, starting JARs via java -jar, stopping/restarting, status checks, log tailing, and registry management.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Java Project Runner MCPstart order-service and show its recent logs"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Java Project Runner MCP (v1.1)
Single-process MCP server (stdio) that builds and manages registered Spring Boot + Maven projects on macOS: list / inspect / build / start / stop / restart / status / logs / registry CRUD / reclaim.
Locked behavior
Start runs the configured JAR via
java -jar— notspring-boot:runBefore start: Maven
package(default) unless the JAR is fresher thanpom.xml+src/**sources, orskipBuildis set; userebuild: trueto force packagePrefer
./mvnwwhen executable; otherwise systemmvn-DskipTestsdefault on (configurable per call / registry)Stop signals the managed process group only (never by port / main-class)
Registry: hand-edit
~/.java-project-runner/projects.jsonor useproject_register/project_update/project_unregisterDo not run multiple servers against the same registry concurrently
Requirements
Node.js 20+ (LTS)
macOS (v1)
JDK + Maven (or project
mvnw) for the projects you register
Related MCP server: erbina
Install
git clone https://github.com/vinsmoke-sanji59/java-project-runner-mcp.git
cd java-project-runner-mcp
nvm use 20 # if you use nvm
npm install
npm run build
npm testDev (TypeScript directly):
npm run devProduction entry after build:
node dist/index.jsRegistry
Create or edit ~/.java-project-runner/projects.json by hand, or use the register/update tools:
{
"projects": [
{
"id": "order-service",
"name": "Order Service",
"path": "/Users/you/ws/order-service",
"jarPath": "target/order-service-0.0.1-SNAPSHOT.jar",
"javaHome": "/Library/Java/JavaVirtualMachines/temurin-21.jdk/Contents/Home",
"skipTests": true,
"defaultProfile": "local",
"profiles": ["local", "dev"],
"jvmArgs": ["-Xmx512m"],
"healthCheckUrl": "http://127.0.0.1:8080/actuator/health",
"stopTimeoutSeconds": 15,
"enabled": true
}
]
}Notes:
idmust be a single safe path segment: 1–64 chars, start/end alphanumeric; middle may include._-; no..or path separators.pathmust exist and containpom.xml(enforced on register/update).jarPathmay be a concrete relative path or a single-glob filename such astarget/*.jar(exactly one non-sources/javadocmatch).healthCheckUrlmust be loopback (127.0.0.1/localhost/::1).State + logs live under
~/.java-project-runner/state/and~/.java-project-runner/logs/<id>/.
MCP tools
Tool | Purpose |
| List registered projects |
| pom / wrapper / jar resolvability / config |
| Add a project to the registry |
| Patch an existing project (id immutable) |
| Remove a project (refuses if running/unknown) |
| Maven build |
| Smart package → |
| SIGTERM → wait → SIGKILL on managed pgid |
| Fingerprint-gated stop; requires |
| Re-verify PID fingerprint after MCP restart |
| stop then start under one lock |
| One or all runtime states |
| Tail stdout/stderr (max 200 lines) |
Start build flags
Flag | Effect |
(none) | Skip Maven if resolved JAR mtime ≥ newest of |
| Always Maven before start |
| Never Maven; JAR must already resolve |
both true |
|
Response includes buildSkipped and buildSkipReason (jar_fresh | skipBuild_flag | null).
Cursor stdio config
Add to Cursor MCP settings (path may be ~/.cursor/mcp.json or the IDE MCP UI). Replace the paths with your Node binary and clone location:
{
"mcpServers": {
"java-project-runner": {
"command": "/absolute/path/to/node",
"args": [
"/absolute/path/to/java-project-runner-mcp/dist/index.js"
]
}
}
}Use an absolute Node 20+ binary. After npm run build, point args at dist/index.js.
Claude Code stdio config
In Claude Code MCP settings / .mcp.json:
{
"mcpServers": {
"java-project-runner": {
"command": "/absolute/path/to/node",
"args": [
"/absolute/path/to/java-project-runner-mcp/dist/index.js"
]
}
}
}Or with npx tsx for local iteration (Node 20+ on PATH):
{
"mcpServers": {
"java-project-runner": {
"command": "npx",
"args": [
"tsx",
"/absolute/path/to/java-project-runner-mcp/src/index.ts"
],
"cwd": "/absolute/path/to/java-project-runner-mcp"
}
}
}Safety
Only
enabledregistry projects can be built/started/stopped.Paths are realpath-checked against the project root.
spawn(..., { shell: false })only; goals / profiles /jvmArgsare whitelisted.After MCP server restart, unverified PIDs become
unknown(pid retained for reclaim/force_stop) — the server will not blind-kill them.project_force_stoprequiresconfirm: trueand a matchingjava -jarcmdline fingerprint.Do not run more than one MCP server process against the same
~/.java-project-runnerhome at once (e.g. Cursor and Claude Code concurrently).
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Create, deploy, and operate MCP servers directly from your GitHub repositories.
A MCP server built for developers enabling Git based project management with project and personal…
Access all your MCPBundles tools in one place. Unified hub for all enabled bundles.
Read and write Mission Control state via MCP — projects, tasks, subtasks, templates, status updates.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables management of long-running development processes (such as dev servers, compilers, and watchers) from MCP hosts. Provides tools to start, stop, restart, check status, view logs, and send input to managed processes.MIT
- AlicenseNot gradedqualityCmaintenanceBootstraps dev environments by installing, wiring, and verifying CLI tools and MCP servers from curated recipes, and provides scope-aware audit of MCP configurations.MIT
- AlicenseNot gradedqualityCmaintenanceFirst-party MCP server and CLI for Xcode and iOS Simulator automation. Enables control of Xcode and iOS Simulator via MCP tools for tasks like building, testing, and automation.6 npm1MIT
- FlicenseNot gradedqualityDmaintenanceEnables managing a local Minecraft hosting service through MCP, including server creation, start/stop, mod installation, and log retrieval.-