https://github.com/quarkiverse/quarkus-mcp-server
This extension enables developers to implement the MCP server features easily.
https://github.com/quarkiverse/quarkus-mcp-server
quarkus-extension
Last synced: 5 months ago
JSON representation
This extension enables developers to implement the MCP server features easily.
- Host: GitHub
- URL: https://github.com/quarkiverse/quarkus-mcp-server
- Owner: quarkiverse
- License: apache-2.0
- Created: 2024-12-11T12:40:16.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-12T12:03:06.000Z (over 1 year ago)
- Last Synced: 2025-03-12T13:20:02.361Z (over 1 year ago)
- Topics: quarkus-extension
- Language: Java
- Homepage: https://docs.quarkiverse.io/quarkus-mcp-server/dev/
- Size: 642 KB
- Stars: 34
- Watchers: 3
- Forks: 9
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
- awesome-mcp-servers - Quarkus MCP Server SDK - A Java SDK for building MCP servers as Quarkus extensions, leveraging Java's ecosystem and Quarkus performance optimizations for enterprise-grade MCP deployments. ([Read more](/details/quarkus-mcp-server-sdk.md)) `java` `sdk` `quarkus` `mcp` (Development Tools MCP Servers)
- awesome-mcp-servers - Quarkus MCP Server SDK - This extension enables developers to implement the MCP server features easily in Java. (Frameworks for Servers)
- awesome-mcp-servers - quarkiverse/quarkus-mcp-server - Java SDK for building MCP servers using Quarkus. (Frameworks / 🛠️ <a name="other-tools-and-integrations"></a>Other Tools and Integrations)
- awesome-mcp-servers - **quarkus-mcp-server** - This extension enables developers to implement the MCP server features easily. `java` `quarkus-extension` `mcp` `server` `http` `git clone https://github.com/quarkiverse/quarkus-mcp-server` (🔌 API)
- awesome-mcp-servers - Quarkus MCP Server - This extension enables developers to implement the MCP server features easily. (Table of Contents / Developer Tools)
- metorial-index - Quarkus MCP Server - Enables seamless integration between LLM applications and external data sources and tools using the Model Context Protocol (MCP). Provides both declarative and programmatic APIs for implementing various MCP server functionalities. (Cloud Services)
- awesome-mcp-devtools - quarkus-mcp-server - Java SDK for building MCP servers using Quarkus (SDKs / Java)
- awesome-mcp-devtools - quarkus-mcp-server - Java SDK for building MCP servers using Quarkus (SDKs / Java)
- awesome-java - Quarkus MCP Server
README
# Quarkus MCP Server
[](#contributors-)
[](https://central.sonatype.com/artifact/io.quarkiverse.mcp/quarkus-mcp-server-parent)
This Quarkus extension provides both declarative and programmatic APIs that enable developers to easily implement [MCP](https://modelcontextprotocol.io/)[^1] server features.
[^1]: _"[Model Context Protocol](https://modelcontextprotocol.io/) (MCP) is an open protocol that enables seamless integration between LLM applications and external data sources and tools."_
> [!NOTE]
> The [LangChain4j](https://github.com/langchain4j/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:
```xml
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](https://docs.quarkiverse.io/quarkus-mcp-server/dev/#_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.
```java
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](https://allcontributors.org/docs/en/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](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!