quarkus-mcp-servers
by: quarkiverse
Model Context Protocol Servers in Quarkus
📌Overview
Purpose: The framework provides Model Context Protocol (MCP) servers to enhance the capabilities of MCP-enabled Large Language Model (LLM) applications.
Overview: This project features several servers implemented in Java using the Quarkus MCP server framework, allowing integration with various databases and systems, and contributing to the versatility of AI applications.
Key Features:
-
JDBC Server: Stores and retrieves data from any JDBC-compatible database (e.g., Postgres, MySQL). It simplifies database interactions in LLM applications.
-
Filesystem Server: Serves files from a specified file system, enabling file management and retrieval for integrated applications.
-
JavaFX Server: Provides a canvas for drawing using JavaFX, allowing interactive and graphical applications to be built on top of MCP.
-
Kubernetes Server: Facilitates interaction with Kubernetes clusters, enhancing application deployment and management in containerized environments.
-
Containers Server: Enables operations with Docker, Podman, and OCI-compatible container engines, supporting seamless container management.
Model Context Protocol Servers in Quarkus/Java
This project contains Model Context Protocol servers, implemented in Java using the Quarkus MCP server framework.
These servers extend the capabilities of your MCP enabled LLM (Large Language Model) AI applications. They also work in MCP enabled LLM applications, like Claude Desktop. You can find other clients on the Awesome MCP Clients page.
Running the Servers
All of these servers are available to run with jbang everywhere: Java, JavaScript, Python and more. Where it says jbang
it can be replaced with npx @jbangdev/jbang
, uvx jbang
or pipx jbang
depending on your preference.
Servers
jdbc
The jdbc
server can be used to store and retrieve data from a database given just a JDBC URL. You can use any JDBC database, like Postgres, MySQL, Oracle, Sqlite, etc.
jbang jdbc@quarkiverse/quarkus-mcp-servers
See more in the jdbc readme.
jvminsight
The jvminsight
server can be used to inspect a running JVM process.
jbang jvminsight@quarkiverse/quarkus-mcp-servers
See more in the jvminsight readme.
filesystem
The filesystem
server is a file system server that can serve files from a file system.
jbang filesystem@quarkiverse/quarkus-mcp-servers [path1] [path2] ...
See more in the filesystem readme.
jfx
The jfx
server exposes a canvas that can be used to make drawings using JavaFX.
jbang jfx@quarkiverse/quarkus-mcp-servers
See more in the jfx readme.
kubernetes
The kubernetes
server can be used to interact with a Kubernetes cluster.
jbang kubernetes@quarkiverse/quarkus-mcp-servers
containers
The containers
server lets you work with Docker/Podman/OCI compatible container engines.
jbang containers@quarkiverse/quarkus-mcp-servers
wolfram
The wolfram
server can be used to perform web search optimized for use by a large language model through the Wolfram Alpha LLM API.
jbang wolfram@quarkiverse/quarkus-mcp-servers
Other Quarkus MCP Based Servers
WildFly
A WildFly MCP server that allows interaction with WildFly running servers.
You can check this WildFly vlog that demonstrates its capabilities.
Read more in the WildFly MCP Server readme.
Ideas for Other Servers
If you have ideas for other servers, feel free to contribute them to this project.
If missing ideas, look at the reference servers at https://github.com/modelcontextprotocol/servers and see if you can implement them in this project.
Other ideas:
- zulip
- jfr/java hooked to jmx/jfr
- quarkus dev mode
- ...
Contributing
To get started, clone the repository and build it:
git clone https://github.com/quarkiverse/quarkus-mcp-servers
cd quarkus-mcp-servers
mvn clean install
Then run the following commands to generate a new server, for example, jfr
:
mkdir jfr
cd jfr
jbang init -t mcp jfr
This will create the jfr
directory with a Hello World MCP server.
You can then build it:
mvn clean install
To wire it into the full project, add <module>jfr</module>
to the root pom.xml
file.
Make sure you have added useful content to the README.md
file and updated any demo images.
Then open a PR!