Quarkus MCP Server
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:
<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 thequarkus-mcp-server-stdioartifactId 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):
This project follows the all-contributors specification. Contributions of any kind welcome!
Recommend MCP Servers 💡
Higress
Higress is an AI Native API Gateway based on Istio and Envoy, which hosts MCP (Model Context Protocol) Servers through its plugin mechanism, enabling AI Agents to easily call various tools and services.
fibery-mcp-server
This MCP (Model Context Protocol) server provides integration between Fibery and any LLM provider supporting the MCP protocol (e.g., Claude for Desktop), allowing you to interact with your Fibery workspace using natural language.
foobara-mcp-connector
Exposes Foobara commands according to the Model Context Protocol (MCP) specification.
A Model Context Protocol (MCP) server for WhatsApp that enables searching, reading, and sending messages (including media) via AI agents.
mcp-search-console
A Model Context Protocol (MCP) server for managing Google Search Console properties, sitemaps, and search analytics via its API
MCP-server-Deepseek_R1
An MCP server connecting Claude Desktop with DeepSeek's R1/V3 language models for enhanced reasoning capabilities.