Quarkus MCP Servers

by valyc0

Not rated
GitHub

About

Quarkus-based MCP servers for interacting with JDBC databases, filesystems, and Docker containers.

Details

Author
valyc0
Categories
Developer Tools, Database, File Management, Other

Setup

Install Quarkus MCP Servers in your MCP client (Claude Desktop, Cursor, Windsurf, and others).

Repository: https://github.com/valyc0/quarkus-mcp-servers-java-docker

Follow the installation instructions in the repository README, then restart your MCP client.

Quarkus-based MCP servers for interacting with JDBC databases, filesystems, and Docker containers.

Server MCP (Model Context Protocol) universali basati su Quarkus. Supporta database JDBC, filesystem, container Docker e molto altro con un singolo JAR.

Il progetto richiede JDK 17. Usa lo script automatico per scaricarlo e configurarlo:

# Setup automatico JDK 17 ./setup-jdk17.sh

- Rileva automaticamente l'architettura (x64, aarch64) e OS (Linux, macOS)
- Scarica JDK 17 da Eclipse Temurin
- Configura le variabili d'ambiente JAVA_HOME e PATH
- Crea un file di configurazionejdk17/jdk-env.shper riutilizzi futuri

Dopo l'installazione, carica l'ambiente JDK:

Una volta configurato JDK 17, compila il progetto:

# Compila tutti i moduli (senza test per velocità) ./build-no-tests.sh

- jdbc/target/mcp-server-jdbc-universal-999-SNAPSHOT.jar- Server JDBC
- filesystem/target/mcp-server-filesystem-999-SNAPSHOT.jar- Server Filesystem
- containers/target/mcp-server-containers-999-SNAPSHOT.jar- Server Container
- jvminsight/target/mcp-server-jvminsight-999-SNAPSHOT.jar- Server JVM Insights

# Builda l'immagine Docker con tutti i server ./docker-mcp.sh build
# Oracle (richiede Oracle su localhost:1521) ./docker-mcp.sh oracle # Oracle in modalità read-only (solo lettura) ./docker-mcp.sh run jdbc --jdbc.url="jdbc:oracle:thin:@localhost:1521:xe" --jdbc.user="ORACLEUSR" --jdbc.password="ORACLEUSR" --jdbc.readonly=true # H2 in memoria ./docker-mcp.sh h2 # Server JDBC generico ./docker-mcp.sh run jdbc --jdbc.url="jdbc:postgresql://localhost:5432/mydb" --jdbc.user="user" --jdbc.password="pass" # MySQL in modalità read-only ./docker-mcp.sh run jdbc --jdbc.url="jdbc:mysql://localhost:3306/mydb" --jdbc.user="root" --jdbc.password="toor" --jdbc.readonly=true # PostgreSQL in modalità read-only ./docker-mcp.sh run jdbc --jdbc.url="jdbc:postgresql://localhost:5432/mydb" --jdbc.user="postgres" --jdbc.password="postgres" --jdbc.readonly=true # Server JDBC in modalità read-only ./docker-mcp.sh run jdbc --jdbc.url="jdbc:postgresql://localhost:5432/mydb" --jdbc.user="user" --jdbc.password="pass" --jdbc.readonly=true
# Monta /tmp come directory condivisa ./docker-mcp.sh filesystem /tmp # Directory personalizzata ./docker-mcp.sh filesystem /path/to/directory
# Container Docker ./docker-mcp.sh run containers # JVM Insights ./docker-mcp.sh run jvminsight

Genera automaticamente la configurazione MCP per Claude Desktop:

Questo crea il filemcp-docker-config.jsoncon configurazioni per:

- Server JDBC Oracle
- Server JDBC H2
- Server Filesystem
- Server Container
- Server JVM Insights

Configurazione manuale per Claude Desktop

Copia il contenuto del file generato in:

~/.config/claude/claude_desktop_config.json
%APPDATA%/Claude/claude_desktop_config.json
{ "mcpServers": { "jdbc-oracle-docker": { "command": "docker", "args": [ "run", "-i", "--rm", "--network", "host", "mcp-servers:latest", "jdbc", "--jdbc.url=jdbc:oracle:thin:@localhost:1521:xe", "--jdbc.user=ORACLEUSR", "--jdbc.password=ORACLEUSR", "--jdbc.readonly=false" ] }, "jdbc-oracle-readonly": { "command": "docker", "args": [ "run", "-i", "--rm", "--network", "host", "mcp-servers:latest", "jdbc", "--jdbc.url=jdbc:oracle:thin:@localhost:1521:xe", "--jdbc.user=ORACLEUSR", "--jdbc.password=ORACLEUSR", "--jdbc.readonly=true" ] }, "jdbc-h2-docker": { "command": "docker", "args": [ "run", "-i", "--rm", "-p", "3000:3000", "mcp-servers:latest", "jdbc", "--jdbc.url=jdbc:h2:mem:testdb", "--jdbc.user=sa", "--jdbc.password=", "--jdbc.readonly=false" ] }, "jdbc-mysql-docker": { "command": "docker", "args": [ "run", "-i", "--rm", "--network", "host", "mcp-servers:latest", "jdbc", "--jdbc.url=jdbc:mysql://localhost:3306/mydb", "--jdbc.user=root", "--jdbc.password=toor", "--jdbc.readonly=true" ] }, "jdbc-postgres-docker": { "command": "docker", "args": [ "run", "-i", "--rm", "--network", "host", "mcp-servers:latest", "jdbc", "--jdbc.url=jdbc:postgresql://localhost:5432/mydb", "--jdbc.user=postgres", "--jdbc.password=postgres", "--jdbc.readonly=true" ] }, "filesystem-docker": { "command": "docker", "args": [ "run", "-i", "--rm", "-v", "/tmp:/mnt/shared", "mcp-servers:latest", "filesystem", "/mnt/shared" ] } } }

Configurazione per Esecuzione Locale (senza Docker)

Quando esegui i server localmente senza Docker, usa questa configurazione:

{ "mcp": { "servers": { "jdbc-oracle": { "type": "stdio", "command": "/workspace/db-ready/quarkus-mcp-servers/jdk17/bin/java", "args": [ "-jar", "/workspace/db-ready/quarkus-mcp-servers/jdbc/target/mcp-server-jdbc-universal-999-SNAPSHOT.jar", "--jdbc.url=jdbc:oracle:thin:@localhost:1521:xe", "--jdbc.user=ORACLEUSR", "--jdbc.password=ORACLEUSR", "--jdbc.readonly=false" ], "cwd": "/workspace/db-ready/quarkus-mcp-servers/jdbc" }, "jdbc-oracle-readonly": { "type": "stdio", "command": "/workspace/db-ready/quarkus-mcp-servers/jdk17/bin/java", "args": [ "-jar", "/workspace/db-ready/quarkus-mcp-servers/jdbc/target/mcp-server-jdbc-universal-999-SNAPSHOT.jar", "--jdbc.url=jdbc:oracle:thin:@localhost:1521:xe", "--jdbc.user=ORACLEUSR", "--jdbc.password=ORACLEUSR", "--jdbc.readonly=true" ], "cwd": "/workspace/db-ready/quarkus-mcp-servers/jdbc" }, "jdbc-h2": { "type": "stdio", "command": "/workspace/db-ready/quarkus-mcp-servers/jdk17/bin/java", "args": [ "-jar", "/workspace/db-ready/quarkus-mcp-servers/jdbc/target/mcp-server-jdbc-universal-999-SNAPSHOT.jar", "--jdbc.url=jdbc:h2:mem:testdb", "--jdbc.user=sa", "--jdbc.password=", "--jdbc.readonly=false" ], "cwd": "/workspace/db-ready/quarkus-mcp-servers/jdbc" }, "jdbc-mysql": { "type": "stdio", "command": "/workspace/db-ready/quarkus-mcp-servers/jdk17/bin/java", "args": [ "-jar", "/workspace/db-ready/quarkus-mcp-servers/jdbc/target/mcp-server-jdbc-universal-999-SNAPSHOT.jar", "--jdbc.url=jdbc:mysql://localhost:3306/mydb", "--jdbc.user=root", "--jdbc.password=toor", "--jdbc.readonly=true" ], "cwd": "/workspace/db-ready/quarkus-mcp-servers/jdbc" }, "jdbc-postgres": { "type": "stdio", "command": "/workspace/db-ready/quarkus-mcp-servers/jdk17/bin/java", "args": [ "-jar", "/workspace/db-ready/quarkus-mcp-servers/jdbc/target/mcp-server-jdbc-universal-999-SNAPSHOT.jar", "--jdbc.url=jdbc:postgresql://localhost:5432/mydb", "--jdbc.user=postgres", "--jdbc.password=postgres", "--jdbc.readonly=true" ], "cwd": "/workspace/db-ready/quarkus-mcp-servers/jdbc" }, "filesystem-local": { "type": "stdio", "command": "/workspace/db-ready/quarkus-mcp-servers/jdk17/bin/java", "args": [ "-jar", "/workspace/db-ready/quarkus-mcp-servers/filesystem/target/mcp-server-filesystem-999-SNAPSHOT.jar", "/tmp" ], "cwd": "/workspace/db-ready/quarkus-mcp-servers/filesystem" }, "containers-local": { "type": "stdio", "command": "/workspace/db-ready/quarkus-mcp-servers/jdk17/bin/java", "args": [ "-jar", "/workspace/db-ready/quarkus-mcp-servers/containers/target/mcp-server-containers-999-SNAPSHOT.jar" ], "cwd": "/workspace/db-ready/quarkus-mcp-servers/containers" } } } }
./setup-jdk17.sh # Setup automatico JDK 17 ./setup-jdk17.sh --help # Mostra opzioni disponibili ./setup-jdk17.sh --force # Forza reinstallazione anche se esiste
./docker-mcp.sh build # Builda immagine Docker ./docker-mcp.sh oracle # Server JDBC Oracle ./docker-mcp.sh h2 # Server JDBC H2 ./docker-mcp.sh filesystem [path] # Server Filesystem ./docker-mcp.sh config # Genera configurazione MCP ./docker-mcp.sh help # Mostra aiuto

Il server JDBC supporta tutti i database con driver JDBC:

- Oracle-jdbc:oracle:thin:@host:port:sid
- PostgreSQL-jdbc:postgresql://host:port/database
- MySQL-jdbc:mysql://host:port/database
- H2-jdbc:h2:mem:testdb(in memoria) ojdbc:h2:file:/path/to/db
- SQLite-jdbc:sqlite:/path/to/database.db
- SQL Server-jdbc:sqlserver://host:port;databaseName=db
- MariaDB-jdbc:mariadb://host:port/database

Il server JDBC supporta una modalitàread-onlyche permette di esplorare e interrogare i database senza rischio di modifiche accidentali.

- read_query- Esecuzione di query SELECT
- list_tables- Visualizzazione tabelle
- describe_table- Descrizione struttura tabelle
- database_info- Informazioni database (include stato read-only)

- write_query- INSERT, UPDATE, DELETE
- create_table- Creazione tabelle

./docker-mcp.sh run jdbc \ --jdbc.url="jdbc:oracle:thin:@localhost:1521:xe" \ --jdbc.user="ORACLEUSR" \ --jdbc.password="ORACLEUSR" \ --jdbc.readonly=true
java -jar jdbc/target/mcp-server-jdbc-universal-999-SNAPSHOT.jar \ --jdbc.url="jdbc:h2:mem:testdb" \ --jdbc.user="sa" \ --jdbc.password="" \ --jdbc.readonly=true

Usa il tooldatabase_infoper verificare lo stato:

{ "database_product_name": "Oracle", "mcp_server_readonly_mode": "true", "read_only": "false", ... }

Nota:mcp_server_readonly_modeindica la modalità del server MCP, mentreread_onlyindica se il database stesso è in sola lettura.

source jdk17/jdk-env.sh # Modalità standard (read/write) java -jar jdbc/target/mcp-server-jdbc-universal-999-SNAPSHOT.jar \ --jdbc.url="jdbc:h2:mem:testdb" \ --jdbc.user="sa" \ --jdbc.password="" \ --jdbc.readonly=false # Modalità read-only (solo lettura) java -jar jdbc/target/mcp-server-jdbc-universal-999-SNAPSHOT.jar \ --jdbc.url="jdbc:h2:mem:testdb" \ --jdbc.user="sa" \ --jdbc.password="" \ --jdbc.readonly=true
source jdk17/jdk-env.sh java -jar filesystem/target/mcp-server-filesystem-999-SNAPSHOT.jar /tmp
# Test JDBC H2 ./run-server.sh jdbc --jdbc.url="jdbc:h2:mem:testdb" --jdbc.user="sa" # Test Filesystem ./run-server.sh filesystem /tmp
# Test setup Docker ./test-docker-setup.sh
quarkus-mcp-servers/ ├── setup-jdk17.sh # Setup automatico JDK 17 ├── docker-mcp.sh # Script Docker per MCP ├── build-no-tests.sh # Build senza test ├── run-server.sh # Esecuzione server locale ├── jdbc/ # Server JDBC ├── filesystem/ # Server Filesystem ├── containers/ # Server Container Docker ├── jvminsight/ # Server JVM Insights ├── jdk17/ # JDK 17 (creato da setup) ├── mcp-configs/ # Configurazioni MCP └── mcp-docker-config.json # Config generata per Docker
# Reinstalla JDK 17 ./setup-jdk17.sh --force # Carica ambiente source jdk17/jdk-env.sh # Verifica versione java -version
# Rebuilda immagine ./docker-mcp.sh build

- Verifica che il database sia in esecuzione
- Controlla URL, username e password
- Per Oracle, assicurati che sia su localhost:1521

# Su Linux, assicurati che Docker sia in esecuzione sudo systemctl start docker # Aggiungi utente al gruppo docker sudo usermod -aG docker $USER # Poi fai logout/login

- README Docker- Guida completa Docker
-
README Italiano- Documentazione in italiano
-
Standalone Java Setup- Setup Java standalone
- Fork del repository
- Crea feature branch (git checkout -b feature/amazing-feature)
- Commit dei cambiamenti (git commit -m 'Add amazing feature')
- Push al branch (git push origin feature/amazing-feature)
- Apri Pull Request

Questo progetto è sotto licenza MIT. Vedi il fileLICENSEper dettagli.

This is a web browser that enables your coding agent, such as Claude Code, to visit websites on your behalf and assist you in identifying bugs or creating UI test cases.

Access real-time Maven Central intelligence for fast and accurate dependency information.

🧿 One MCP for developers - No tool tax, no context rot. 100+ tools including Brave, Gemini, Context7, Version Checker, Excel, File Ops, Database, Chrome DevTools.

Fsext-MCP-Server(Java): A full-featured secure MCP server for local file system operations, with built-in image processing, OCR and media tools.

A secure Java-based MCP server that provides controlled filesystem access to AI assistants.

Polyglot is a uniform interface to 18 databases across 9 categories, usable as a Python/Java library or an MCP server for LLMs, with built-in guardrails.

The official developer experience MCP Server for Amazon DynamoDB. This server provides DynamoDB expert design guidance and data modeling assistance.

Official Docker MCP Toolkit for discovering, configuring, and running containerized MCP servers through Docker Desktop and the Docker MCP gateway.

An MCP server for interacting with SAP systems using ABAP Development Tools (ADT).

A secure, Docker-based server providing core execution capabilities for AI agents.

Provides utility functions for common tasks like text processing, encoding, decoding, hashing, and system information.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.