J

quarkus-mcp-server

Created Oct 19, 2025 by quarkiverse

Language:

Java

Stars:

81

Forks:

20

README

Quarkus MCP Server

All Contributors

Version

This Quarkus extension provides both declarative and programmatic APIs that enable developers to easily implement MCP[^1] server features.

[^1]: "Model Context Protocol (MCP) is an open protocol that enables seamless integration between LLM applications and external data sources and tools."

[!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:


    io.quarkiverse.mcp
    quarkus-mcp-server-http
    ${quarkus-mcp-server-version}

[!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 Supported 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 MyServerFeatures {

    @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")
    BlobResourceContents alpha(RequestUri uri) throws IOException{
        return BlobResourceContents.create(uri.value(), 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💻 🚧
  Georgios Andrianakis💻
  Max Rydahl Andersen💡
  Rostislav Svoboda💻
  George Gastaldi🚇
  Jan Martiska📖
  Ioannis Canellos💻


  Sergey Beryozkin💡
  Konstantin Pavlov⚠️ 🚇
  Martijn van Duijnhoven💻 ⚠️ 📖
  Pierre Beitz💻 ⚠️
  Matthieu Recouly📖
  Willem Jan Glerum🚇
  Sascha Steffen💻 ⚠️

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

Last updated: Oct 19, 2025

Publisher info

quarkiverse's avatar

quarkiverse

A place to host and build Quarkus extensions

United States of America
338
followers
0
following
171
repos

More MCP servers built with Java

Apache Kafka

Mirror of Apache Kafka

By apache 31.8K
Apache Flink

Apache Flink

By apache 25.7K
RocketMQ

Apache RocketMQ is a cloud native messaging and streaming platform, making it simple to build event-driven applications.

By apache 22.3K