Skip to content

quarkiverse/quarkus-mcp-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

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> <!-- use 'quarkus-mcp-server-stdio' if you want to use the STDIO transport instead of the HTTP/SSE transport --> <artifactId>quarkus-mcp-server-sse</artifactId> <version>${project-version}</version> </dependency>

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.Tool; import io.quarkiverse.mcp.server.Resource; import io.quarkiverse.mcp.server.TextContent; // This class is automatically registered as a @Singleton CDI bean public class ServerFeatures { @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
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

πŸ’» ⚠️ πŸ“–

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

About

This extension enables developers to implement the MCP server features easily.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published