mcpField
Q
Quarkus Model Context Protocol (MCP) Server

Quarkus Model Context Protocol (MCP) Server

Local
docs.quarkiverse.ioDeveloper Tools203Updated 1d ago

About Quarkus Model Context Protocol (MCP) Server

A Quarkus extension for developers building MCP servers. It offers both declarative and programmatic APIs for defining server capabilities in Quarkus applications.

Key features

  1. 01Declarative and programmatic APIs
  2. 02Annotated CDI business methods
  3. 03HTTP/SSE and Streamable HTTP transports
  4. 04STDIO transport option

Use cases

  1. 01Adding MCP capabilities to a Quarkus app
  2. 02Defining prompts, resources, and tools
  3. 03Serving MCP over HTTP or STDIO

MCP support

The extension enables Quarkus applications to implement MCP server features. Applications can expose prompts, resources, and tools to MCP clients.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

Quarkus MCP Server

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

🐛 💻
David Kornel
David Kornel

🐛 💻
Ian Stewart
Ian Stewart

🐛 💻
Eric Hare
Eric Hare

🐛 💻
Nagi KaTou
Nagi KaTou

🐛 💻
Matej Novotny
Matej Novotny

🐛 ⚠️ 💻

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." ↩

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.