Labsco
David-Parry logo

Build-Scout

โ˜… 3

from David-Parry

Interact with various build systems including Gradle, Maven, NPM/Yarn, Cargo, Python, Makefile, and CMake.

๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅโœ“ VerifiedFreeAdvanced setup

Build-Scout MCP Server

A comprehensive Model Context Protocol (MCP) server that enables LLM clients to interact with various build systems including Gradle, Maven, NPM/Yarn, Cargo, Python, Makefile, and CMake.

Overview

Build-scout provides a standardized interface for build tool operations through the Model Context Protocol, allowing AI assistants to understand, analyze, and manipulate software projects across multiple build technologies.

Supported Build Systems

  • Gradle (Groovy and Kotlin DSL) - build.gradle, build.gradle.kts

  • Maven - pom.xml

  • NPM/Yarn - package.json

  • Cargo (Rust) - Cargo.toml

  • Python - requirements.txt, setup.py

  • Makefile - Makefile

  • CMake - CMakeLists.txt

Available Tools

Build System Discovery

  • find_build_system - Discovers build systems in project directories

  • build_system_file_paths - Returns paths to build system files

Gradle Operations

  • build_gradle_project - Executes Gradle builds with optional checks

  • gradle_tester - Runs Gradle build and test tasks

Dependency Management

  • dependencies_list - Lists all top-level dependencies with versions

  • update_dependency_version - Updates dependency versions in build files

  • latest_dependency_version - Fetches latest versions from repositories

Code Analysis

  • find_class_usage - Finds class usage across the codebase

  • jar_diff_reporter - Compares JAR files for differences

File Operations

  • get_file_info - Retrieves file metadata and information

  • get_resource_info - Gets resource information

  • replace_source_code_complete - Performs source code replacements

Source Management

  • download_current_latest_source - Downloads latest source versions

Building the Server

This will increment the version number and build the JAR:

./gradlew clean prebuild updateConfigJson

Native Image Build (Experimental)

Completed and tested all the tools, prompt and root to see the native image working. Still need to review more for edge cases but try it out.

./gradlew clean prebuild nativeCompile

To run the server locally and get out put for native image class discovery.

"scout-server": { "command": "java", "args": [ "-agentlib:native-image-agent=config-output-dir=/Users/davidparry/code/github/mcp-servers/build-scout/tmp/META-INF/native-image", "-Dorg.gradle.native=false", "-Djava.awt.headless=true", "-jar /Users/davidparry/code/github/mcp-servers/build-scout/build/libs/scout-1.0.105.jar" ], "env": { "BUILD_SCOUT_LOGGING": "DEBUG" } }

After running the server, you can generate the native image configuration files will append to the files already in the src/main/resources/META-INF/native-image directory.:

$GRAALVM_HOME/bin/native-image-configure generate --input-dir=tmp/META-INF/native-image --output-dir=src/main/resources/META-INF/native-image

Architecture

Core Components

  • Main.java - Entry point and server initialization

  • RequestController - Routes JSON-RPC requests to appropriate handlers

  • SchemaInitializer - Registers tools and handlers using annotations

  • IOHandler - Manages input/output communication

  • BuildSystem - Core interface for build system operations

Key Features

  • Annotation-based tool registration using @Schema annotations

  • Virtual thread processing for concurrent request handling

  • Gradle Tooling API integration for direct Gradle operations

  • Native image support with GraalVM configuration

  • Automatic version management and JAR updates

Development

Requirements

  • Java 21+

  • Gradle 8.14+

Project Structure

src/
โ”œโ”€โ”€ main/
โ”‚ โ”œโ”€โ”€ java/
โ”‚ โ”‚ โ””โ”€โ”€ com/davidparry/scout/
โ”‚ โ”‚ โ”œโ”€โ”€ Main.java
โ”‚ โ”‚ โ”œโ”€โ”€ Router.java
โ”‚ โ”‚ โ”œโ”€โ”€ tools/ # MCP tools implementation
โ”‚ โ”‚ โ”œโ”€โ”€ common/ # Build system implementations
โ”‚ โ”‚ โ”œโ”€โ”€ spec/ # MCP protocol specifications
โ”‚ โ””โ”€โ”€ resources/
โ”‚ โ””โ”€โ”€ META-INF/native-image/ # GraalVM configuration
โ””โ”€โ”€ test/
 โ””โ”€โ”€ java/ # Unit tests

Testing

Run the test suite:

./gradlew test

Version Management

The build system automatically:

  • Increments patch version numbers

  • Updates JAR references in MCP client configurations

  • Generates version metadata for runtime access