JDBC-MCP - Database Access for AI Assistants

by guanghuang

207 downloads
Not rated
GitHub

About

Enables AI assistants to interact with various databases through JDBC connections.

Details

Author
guanghuang
Downloads
207
Categories
Database, Other

- Docker deployment via SSE or STDIO transport.
- Write queries (INSERT, UPDATE, DELETE) disabled by default for security.
- Supports multiple database types through JDBC.
- Configurable via environment variables.
- Compatible with Claude Desktop and other MCP clients.

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name JDBC-MCP - Database Access for AI Assistants
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Run the server as a Docker container using either SSE (Streaming Server Events) or STDIO transport. Set required environment variables (jdbc.url, jdbc.user, jdbc.password) and optionally enable.write.sql. For STDIO with Claude Desktop, configure the Docker command in claude_desktop_config.json. An environment file (.env) can be used for configuration.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "jdbc-mcp - database access for ai assistants": {
            "jdbc-mcp": {
                "command": "docker",
                "args": [
                    "run",
                    "-d",
                    "--name",
                    "jdbc-mcp",
                    "\\"
                ]
            }
        }
    }
}

McpServers

{
    "jdbc-mcp": {
        "command": "docker",
        "args": [
            "run",
            "-d",
            "--name",
            "jdbc-mcp",
            "\\"
        ]
    }
}

JDBC-MCP - Database Access for AI Assistants

Docker Hub
GitHub License

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:latest

Using 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/database

Then run:

docker run -d --name jdbc-mcp \
-p 8080:8080 \
--env-file .env \
guang1/jdbc-mcp:latest

Docker 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:latest

With Environment File

services:
  jdbc-mcp:
    container_name: jdbc-mcp
    ports:
      - 8080:8080
    env_file:
      - .env
    restart: always
    image: guang1/jdbc-mcp:latest

MCP SSE URL

``http://localhost:8080/mcp/sse

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 usage

docker 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 File

docker 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.

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

License

This project is licensed under the Apache License 2.0.

Acknowledgments

- Original project: Quarkiverse MCP Servers
- Built with Quarkus
- Containerized with Docker

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.