Quarkus Model Context Protocol (MCP) Servers

repository·main·Indexed 41 days ago

https://github.com/quarkiverse/quarkus-mcp-servers

A collection of Model Context Protocol (MCP) servers implemented in Java using the Quarkus MCP server framework. These servers enable LLM-enabled applications to interact with external systems, including Kubernetes, JDBC-compliant databases, container engines (Docker, Podman, OCI), file systems, JVM processes via jvminsight, and JavaFX for drawing primitives.

Tokens
4.5K
Snippets
28
Records
38
Agent score
48%

What's inside Quarkus MCP Servers

  1. Overview of the Shared MCP Server module

    main
    The shared module provides common code used across various Model Context Protocol (MCP) server modules within the Quarkus/Java ecosystem. One specific capability enabled by this shared logic is allowing Large Language Models (LLMs) to generate drawings using JavaFX primitives.
  2. Install and run the Containers MCP server

    main

    The Containers MCP server allows LLMs to interact with Podman, OCI, and Docker containers by connecting to your default configured docker socket. It is implemented using Quarkus MCP and the Docker JavaClient.

    To use the server, follow these steps:

    1. Install jbang.
    2. Configure your MCP Client (e.g., Claude Desktop) to run the server using the command line below.
    jbang containers@quarkiverse/quarkus-mcp-servers
  3. Configure the filesystem MCP server for Claude Desktop

    main

    To use the filesystem server with Claude Desktop, add it to your claude_desktop_config.json or server_config.json file. You must provide the paths you want the server to access as arguments.

    {
      "mcpServers": {
        "filesystem": {
          "command": "jbang",
          "args": [
            "filesystem@quarkiverse/quarkus-mcp-servers",
            "[path1]",
            "[path2]"
          ]
        }
      }
    }
  4. Configure Claude Desktop to use the Kubernetes MCP Server

    main

    To use the Kubernetes MCP server with Claude Desktop, add the kubernetes server definition to your claude_desktop_config.json or server_config.json file using the JBang command.

    {
      "mcpServers": {
        "kubernetes": {
          "command": "jbang",
          "args": [
            "kubernetes@quarkiverse/quarkus-mcp-servers"
          ]
        }
      }
    }
  5. Run the Kubernetes MCP Server via JBang

    main

    You can run the Kubernetes MCP server using JBang without manual installation of the project. This method requires that you have a valid kubeconfig already configured on your system with a valid context, as the server uses your existing Kubernetes configuration.

    Prerequisites

    • Install jbang
    • A valid Kubernetes configuration (kubeconfig) with an active context.
    jbang kubernetes@quarkiverse/quarkus-mcp-servers
  6. Install and run the filesystem MCP server via JBang

    main

    The filesystem MCP server allows LLMs to list, read, and modify files. You can run it using jbang by specifying the server identifier and the directories you want to grant the server access to.

    Prerequisites

    • Install jbang.
    • Ensure jbang is available in your PATH or use its absolute path.

    Usage

    Run the following command, replacing the paths with the directories you wish to expose to the LLM:

    jbang filesystem@quarkiverse/quarkus-mcp-servers ~/code/quarkiverse ~/code/jbang 
  7. Use Kubernetes MCP Server Native Executables

    main

    For near-instant startup times, you can use pre-compiled native images. Download the executable for your specific platform from the releases page and configure your MCP client to point to that executable.

    Example Configuration (MacOS arm64)

    If you download the mcp-server-kubernetes-osx-aarch_64 binary, your configuration would look like this:

    {
      "mcpServers": {
        "kubernetes": {
          "command": "jbang",
          "args": [
            "mcp-server-kubernetes-osx-aarch_64"
          ]
        }
      }
    }
  8. Enable detailed logging for the Wolfram MCP Server

    main

    If you need to debug the server, you can enable file-based logging by adding the following Quarkus configuration properties to your jbang command:

    • quarkus.log.file.enable=true: Enables logging to a file.
    • quarkus.log.file.path: Specifies the destination path for the log file.

    Example command to log to your home directory:

    jbang -DWOLFRAM_LLM_API_KEY=${YOUR_WOLFRAM_APP_ID} -Dquarkus.log.file.enable=true -Dquarkus.log.file.path=${user.home}/mcp-server-wolfram.log io.quarkiverse.mcp.servers:mcp-server-wolfram:RELEASE
    -Dquarkus.log.file.enable=true -Dquarkus.log.file.path=${user.home}/mcp-server-wolfram.log
  9. Run Quarkus MCP servers using jbang

    main

    All servers in this repository can be executed using jbang. If you do not have jbang installed directly, you can use alternative runners like npx @jbangdev/jbang, uvx jbang, or pipx jbang.

    To run a specific server, use the pattern: jbang <server-name>@quarkiverse/quarkus-mcp-servers.

    jbang jdbc@quarkiverse/quarkus-mcp-servers
  10. Install and run the jvminsight MCP server

    main

    The jvminsight MCP server allows LLMs to inspect local JVM processes and execute tools located in the java.home/bin directory.

    Prerequisites

    • JBang: Install jbang.
    • Java: Requires Java 17 or higher.

    Running the server

    You can start the server using the following command:

    jbang jvminsight@quarkiverse/quarkus-mcp-servers

    If you need to use a specific Java version (e.g., Java 25), use the --java flag:

    jbang --java 25 jvminsight@quarkiverse/quarkus-mcp-servers