Build Runner MCP Server
Provides structured compilation, build, and test execution for Gradle-based Java projects, including error and test result parsing.
Executes Jest test suites and returns parsed test results (passed, failed, skipped) with failure details.
Executes Mocha test suites and returns parsed test results with failure details.
Supports building, testing, and type-checking Node.js projects, leveraging npm, pnpm, or yarn as package managers.
Allows building and testing Node.js/TypeScript projects using npm as the package manager.
Allows building and testing Node.js/TypeScript projects using pnpm as the package manager.
Performs type checking via tsc --noEmit on TypeScript projects.
Executes Vitest test suites and returns parsed test results with failure details.
Allows building and testing Node.js/TypeScript projects using Yarn as the package manager.
Click on "Install 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., "@Build Runner MCP Serverrun tests for UserServiceTest and show failures"
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.
Build Runner MCP Server
A Model Context Protocol (MCP) server that provides structured build, compile, and test operations with parsed output to reduce token usage and improve readability.
Features
Java version switching via SDKMAN (
sdk use java <version>)Compilation with structured error output
Build/Package with success/failure summary
Test execution with parsed test results (passed, failed, skipped)
Multi-build-system support: Maven, Gradle, npm/pnpm/yarn
Related MCP server: MCP Build Environment Service
Installation
# Clone the repository
git clone <repository-url>
cd build-runner-mcp
# Install dependencies
npm install
# Build the project
npm run buildConfiguration
Add to your Claude Code settings (~/.claude.json):
{
"mcpServers": {
"build-runner": {
"command": "node",
"args": ["/path/to/build-runner-mcp/build/index.js"]
}
}
}Available Tools
detect_project
Detect project type, build system, test framework, and configuration.
{
"projectPath": "/path/to/project"
}Returns: Project info including languages, build system, package manager, and test framework.
set_java_version
Switch Java version using SDKMAN before running commands.
Available versions: 17.0.16-amzn, 21.0.8-tem, 21.0.9-amzn, 25.0.1-tem
{
"version": "17.0.16-amzn"
}compile_project
Compile a Java project using Maven or Gradle.
{
"projectPath": "/path/to/project",
"javaVersion": "17.0.16-amzn",
"clean": false,
"module": "core"
}Returns: Structured compile errors and warnings with file, line, column, and message.
build_project
Build/package a Java project.
{
"projectPath": "/path/to/project",
"javaVersion": "21.0.8-tem",
"skipTests": true,
"clean": true
}Returns: Build artifacts with paths and sizes, duration, and any errors.
run_tests
Run tests for a Java project with structured results.
{
"projectPath": "/path/to/project",
"javaVersion": "17.0.16-amzn",
"testPattern": "UserServiceTest",
"module": "api",
"failFast": true
}Returns:
{
"success": false,
"summary": { "total": 50, "passed": 47, "failed": 2, "skipped": 1, "duration": "12.5s" },
"failures": [
{
"testClass": "UserServiceTest",
"testMethod": "testLogin",
"message": "Expected 200 but got 401",
"stackTrace": "...",
"file": "UserServiceTest.java",
"line": 42
}
]
}node_build
Build a Node.js/TypeScript project.
{
"projectPath": "/path/to/project",
"script": "build",
"packageManager": "pnpm"
}node_typecheck
Type check a TypeScript project using tsc --noEmit.
{
"projectPath": "/path/to/project"
}node_test
Run tests for a Node.js/TypeScript project (Jest, Vitest, or Mocha).
{
"projectPath": "/path/to/project",
"testPattern": "user.test.ts",
"failFast": true,
"coverage": true
}Token Savings
Before (raw Maven test output): ~500 lines
[INFO] Scanning for projects...
[INFO] --- maven-surefire-plugin:3.0.0:test ---
... (hundreds of lines)
[ERROR] Tests run: 50, Failures: 2, Errors: 0, Skipped: 1After (structured): ~20 lines
{
"success": false,
"summary": { "total": 50, "passed": 47, "failed": 2, "skipped": 1 },
"failures": [
{ "testClass": "UserServiceTest", "testMethod": "testLogin", "message": "Expected 200 but got 401" }
]
}SDKMAN Integration
The server automatically sources SDKMAN and switches Java versions when specified:
source "$HOME/.sdkman/bin/sdkman-init.sh" && sdk use java 17.0.16-amzn && mvn compileDevelopment
# Run in development mode
npm run dev
# Build
npm run build
# Clean build artifacts
npm run cleanLicense
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/egn88/build-runner-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server