Using the BOM for Dependency Management

The Quarkus MCP Server provides a Bill of Materials (BOM) to simplify dependency management and ensure version consistency across all MCP Server artifacts.

What is a BOM?

A BOM (Bill of Materials) is a special Maven POM file that centralizes dependency version management. When you import a BOM in your project’s dependencyManagement section, you can omit version numbers from individual dependencies, and Maven will automatically use the versions defined in the BOM.

Adding the BOM to Your Project

To use the BOM, add it to the dependencyManagement section of your pom.xml:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>io.quarkiverse.mcp</groupId>
            <artifactId>quarkus-mcp-server-bom</artifactId>
            <version>1.9.0</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

Once the BOM is imported, you can add MCP Server dependencies without specifying their versions:

<dependencies>
    <dependency>
        <groupId>io.quarkiverse.mcp</groupId>
        <artifactId>quarkus-mcp-server-http</artifactId>
        <!-- No version needed, managed by BOM -->
    </dependency>
</dependencies>

Using Multiple MCP Server Dependencies

When your project uses multiple MCP Server artifacts (such as multiple transports or additional modules like Hibernate Validator), the BOM ensures they all use compatible versions:

<dependencies>
    <dependency>
        <groupId>io.quarkiverse.mcp</groupId>
        <artifactId>quarkus-mcp-server-http</artifactId>
    </dependency>
    <dependency>
        <groupId>io.quarkiverse.mcp</groupId>
        <artifactId>quarkus-mcp-server-stdio</artifactId>
    </dependency>
    <dependency>
        <groupId>io.quarkiverse.mcp</groupId>
        <artifactId>quarkus-mcp-server-hibernate-validator</artifactId>
    </dependency>
    <!-- All versions managed by the BOM -->
</dependencies>

Creating a New Project with the BOM

If you prefer to use the BOM from the start, create a new Quarkus project without specifying extensions:

mvn io.quarkus:quarkus-maven-plugin:3.27.2:create \
    -DprojectGroupId=org.acme \
    -DprojectArtifactId=my-mcp-server
cd my-mcp-server

Then add the BOM to your pom.xml as shown above, followed by the MCP Server dependencies you need (without versions).