Quarkus MCP Server

June 11, 2026 ยท View on GitHub

All Contributors

Version

This Quarkus extension provides both declarative and programmatic APIs that enable developers to easily implement MCP1 server features.

Note


The LangChain4j project provides the MCP client functionality, either as a low-level programmatic API or as a full-fledged integration into AI-infused applications.

Get Started

Step #1

Add the following dependency to your POM file:

<dependency>
    <groupId>io.quarkiverse.mcp</groupId>
    <artifactId>quarkus-mcp-server-http</artifactId>
    <version>${quarkus-mcp-server-version}</version>
</dependency>

Note


This dependency includes both the legacy "HTTP/SSE" and the "Streamable HTTP" transport. Use the quarkus-mcp-server-stdio artifactId if you want to use the STDIO transport instead. See also the Transports section in the docs for more information.

Step #2

Add server features (prompts, resources and tools) represented by annotated business methods of CDI beans.

import jakarta.inject.Inject;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;

import io.quarkiverse.mcp.server.BlobResourceContents;
import io.quarkiverse.mcp.server.Prompt;
import io.quarkiverse.mcp.server.PromptArg;
import io.quarkiverse.mcp.server.PromptMessage;
import io.quarkiverse.mcp.server.Resource;
import io.quarkiverse.mcp.server.TextContent;
import io.quarkiverse.mcp.server.Tool;

// This class is automatically registered as a @Singleton CDI bean
public class MyFeatures {

    @Inject
    CodeService codeService;

    @Tool(description = "Converts the string value to lower case")
    String toLowerCase(String value) {
        return value.toLowerCase();
    }

    @Prompt(name = "code_assist")
    PromptMessage codeAssist(@PromptArg(name = "lang") String language) {
        return PromptMessage.withUserRole(new TextContent(codeService.assist(language)));
    }

    @Resource(uri = "file:///project/alpha.txt")
    byte[] alpha() throws IOException{
        return Files.readAllBytes(Path.of("alpha.txt"));
    }

}

Step #3

Run your Quarkus app and have fun!

Documentation

The full documentation is available at https://quarkiverse.github.io/quarkiverse-docs/quarkus-mcp-server/dev/index.html.

Contributors โœจ

Thanks goes to these wonderful people (emoji key):

Martin Kouba
Martin Kouba

๐Ÿ’ป ๐Ÿšง
Georgios Andrianakis
Georgios Andrianakis

๐Ÿ’ป
Max Rydahl Andersen
Max Rydahl Andersen

๐Ÿ’ก
Rostislav Svoboda
Rostislav Svoboda

๐Ÿ’ป
George Gastaldi
George Gastaldi

๐Ÿš‡
Jan Martiska
Jan Martiska

๐Ÿ“–
Ioannis Canellos
Ioannis Canellos

๐Ÿ’ป
Sergey Beryozkin
Sergey Beryozkin

๐Ÿ’ก
Konstantin Pavlov
Konstantin Pavlov

โš ๏ธ ๐Ÿš‡
Martijn van Duijnhoven
Martijn van Duijnhoven

๐Ÿ’ป โš ๏ธ ๐Ÿ“–
Pierre Beitz
Pierre Beitz

๐Ÿ’ป โš ๏ธ
Matthieu Recouly
Matthieu Recouly

๐Ÿ“–
Willem Jan Glerum
Willem Jan Glerum

๐Ÿš‡
Sascha Steffen
Sascha Steffen

๐Ÿ’ป โš ๏ธ
Clement Escoffier
Clement Escoffier

๐Ÿ“–
Rolfe Dlugy-Hegwer
Rolfe Dlugy-Hegwer

๐Ÿ“– ๐Ÿ’ป
Bruno Baptista
Bruno Baptista

๐Ÿ“– ๐Ÿ’ป
Moayad Alyaghshi
Moayad Alyaghshi

๐Ÿ› ๐Ÿ’ป

This project follows the all-contributors specification. Contributions of any kind welcome!

Footnotes

  1. "Model Context Protocol (MCP) is an open protocol that enables seamless integration between LLM applications and external data sources and tools." โ†ฉ