jdbc-mcp
JDBC MCP modified from quarkus-mcp-servers
Documentation
JDBC-MCP - Database Access for AI Assistants
This is a fork of the Quarkus MCP JDBC Server with added features:
- Docker deployment - Easily run the MCP SSE or MCP STDIO as a containerized application
- Enhanced security - Write queries (INSERT, UPDATE, DELETE) are disabled by default and need to be explicitly enabled
The Model Context Protocol (MCP) server enables AI assistants to interact with databases through JDBC connections, making it possible for LLMs to inspect, query, create, and modify database content.
New Features
Docker Deployment
You can now run the JDBC-MCP server in a Docker container.
MCP SSE
Simple usage
docker run -d --name jdbc-mcp \
-p 8080:8080 \
-e enable.write.sql=false \
-e jdbc.user=db_user \
-e jdbc.password=db_password \
-e jdbc.url=jdbc:postgresql://host:port/database \
guang1/jdbc-mcp:latestUsing an Environment File
Create a `.env` file:
enable.write.sql=false
jdbc.user=db_user
jdbc.password=db_password
jdbc.url=jdbc:postgresql://host:port/databaseThen run:
docker run -d --name jdbc-mcp \
-p 8080:8080 \
--env-file .env \
guang1/jdbc-mcp:latestDocker Compose for SSE
Basic Example
services:
jdbc-mcp:
container_name: jdbc-mcp
ports:
- 8080:8080
environment:
- enable.write.sql=false
- jdbc.user=db_user
- jdbc.password=db_password
- jdbc.url=jdbc:postgresql://host:port/database
restart: always
image: guang1/jdbc-mcp:latestWith Environment File
services:
jdbc-mcp:
container_name: jdbc-mcp
ports:
- 8080:8080
env_file:
- .env
restart: always
image: guang1/jdbc-mcp:latestMCP SSE URL
### MCP STDIO
**Must** pass `quarkus.mcp.server.stdio.enabled=true`, `quarkus.log.console.enable=false` and `quarkus.log.console.stderr=false` environment variables with `-i` interactive option.
#### Simple usagedocker run --rm \
-e enable.write.sql=false \
-e jdbc.user=db_user \
-e jdbc.password=db_password \
-e jdbc.url=jdbc:postgresql://host:port/database \
-e quarkus.mcp.server.stdio.enabled=true \
-e quarkus.log.console.enable=false \
-e quarkus.log.console.stderr=false \
guang1/jdbc-mcp:latest
#### Using an Environment Filedocker run --rm
--env-file .env \
-e quarkus.mcp.server.stdio.enabled=true \
-e quarkus.log.console.enable=false \
-e quarkus.log.console.stderr=false \
guang1/jdbc-mcp:latest
### Claude Desktop Configuration (STDIO)
To use the Docker version with Claude Desktop, add this to your `claude_desktop_config.json` or `server_config.json` file:
#### Simple usage{
"mcpServers": {
"jdbc": {
"command": "docker",
"args": [
"run",
"--rm",
"-e",
"enable.write.sql=false",
"-e",
"jdbc.user=db_user",
"-e",
"jdbc.password=db_password",
"-e",
"jdbc.url=jdbc:postgresql://host:port/database",
"-e",
"quarkus.mcp.server.stdio.enabled=true",
"-e",
"quarkus.log.console.enable=false",
"-e",
"quarkus.log.console.stderr=false",
"-i",
"guang1/jdbc-mcp:latest"
]
}
}
}
#### Using an Environment File{
"mcpServers": {
"jdbc": {
"command": "docker",
"args": [
"run",
"--rm",
"--env-file",
".env",
"-e",
"quarkus.mcp.server.stdio.enabled=true",
"-e",
"quarkus.log.console.enable=false",
"-e",
"quarkus.log.console.stderr=false",
"-i",
"guang1/jdbc-mcp:latest"
]
}
}
}
## Configuration
### Environment Variables
| Variable | Description | Default |
|----------|-------------|---------|
| `jdbc.url` | JDBC connection URL (required) | - |
| `jdbc.user` | Database username | - |
| `jdbc.password` | Database password | - |
| `enable.write.sql` | Enable SQL operations that modify data | `false` |
### Supported Database Types
This MCP server supports multiple database types through JDBC. For detailed information on supported JDBC variants, please see the [quarkus-mcp-servers/jdbc documentation](https://github.com/quarkiverse/quarkus-mcp-servers/blob/main/jdbc/README.md#supported-jdbc-variants).
## Security Considerations
⚠️ **Warning**: When `enable.write.sql` is set to `true`, the MCP server can execute SQL statements that modify data. Use with caution in production environments.
Consider these best practices:
- Use read-only database users when possible
- Implement network-level access controls
- Run in an isolated network environment
## Using with LLMs
This MCP server provides a standardized API that Large Language Models can use to interact with your database. To connect your LLM:
1. Configure the LLM to use the MCP server endpoint
2. Define the capabilities you want to allow (read-only vs. read-write)
3. Ensure your database schema is accessible to the MCP server
### Write Query Security
By default, write operations (INSERT, UPDATE, DELETE) are disabled for security. To enable them:
- When using Docker: add `-e enable.write.sql=true` as shown above
## Original Documentation
For all other features, including supported databases, general usage, example databases, MCP components, and troubleshooting, please refer to the original repository documentation:
[Quarkus MCP JDBC Server Documentation](https://github.com/quarkiverse/quarkus-mcp-servers/tree/main/jdbc)
## License
This project is licensed under the Apache License 2.0.
## Acknowledgments
- Original project: [Quarkiverse MCP Servers](https://github.com/quarkiverse/quarkus-mcp-servers)
- Built with [Quarkus](https://quarkus.io/)
- Containerized with [Docker](https://www.docker.com/)Frequently asked questions
What is jdbc-mcp?
jdbc-mcp is JDBC MCP modified from quarkus-mcp-servers
How do I install jdbc-mcp?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is jdbc-mcp open source?
Yes — it is hosted on GitHub at https://github.com/guanghuang/jdbc-mcp.
Related MCP tools
MCP Server for Ghidra Java-based implementation. Trusted by 6400+ developers. Trusted by 6400+ developers. Trusted by 6400+ developers.
The official Java SDK for Model Context Protocol servers and clients. Maintained in collaboration with Spring AI Trusted by 2800+ developers.
A library for communication with a Minecraft client/server. Built for the Model Context Protocol to enhance AI capabilities. Java-based implementation.
Plugin for JADX to integrate MCP server Java-based implementation. Trusted by 600+ developers. Trusted by 600+ developers.
🤖 The Semantic Engine for Model Context Protocol(MCP) Clients and AI Agents 🔥 Java-based implementation.
Playwright MCP server TypeScript-based implementation. Trusted by 22000+ developers. Trusted by 22000+ developers. Trusted by 22000+ developers.
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP