A community-driven registry for Claude, Cursor, Windsurf, Cline & more. Not affiliated with Anthropic.
Are you the author? Sign in to claim
A powerful MCP server that lets you have natural language conversations with your database. Ask it to do complex analysi
Transform your database into an intelligent conversational partner. Ask questions in plain English, get instant answers, and create beautiful visualizations - all through Claude Desktop or any other MCP Client.
DBChat is a bridge that connects any MCP client like Claude Desktop, Gemini-CLI, etc to your database, enabling natural language database interactions. Instead of writing SQL queries, simply ask the chatbot questions about your data and get instant, intelligent responses.
If you want a guided product tour, see TUTORIAL.md. But if you only want to see the results of a sample TUTORIAL run then see TUTORIAL-DEMO.html.
If you want to focus on charts and visual output, see VISUALIZATION.md.
Before DBChat:
SELECT c.name, COUNT(o.id) as order_count, SUM(o.total) as revenue
FROM customers c
LEFT JOIN orders o ON c.id = o.customer_id
WHERE o.created_at >= '2024-01-01'
GROUP BY c.id, c.name
ORDER BY revenue DESC
LIMIT 10;
With DBChat:
"Show me our top 10 customers by revenue this year"
DBChat now includes powerful features for interactive demos, onboarding, collaborative analysis, and sophisticated business intelligence workflows.
Revolutionary structured workflow system for guided database analysis and business intelligence.
mcp-demo - Complete interactive demo with business scenariosbusiness-intelligence - Comprehensive BI analysis frameworkdatabase-analysis - Enhanced database exploration workflowprompts/list and prompts/get handlersSophisticated workflow engine for structured data exploration and analysis.
start_workflow - Initiates interactive analysis workflows with business contextworkflow_choice - Processes user selections and advances workflow stepsworkflow://status resource shows active workflow status and progressIntelligent database population system for demonstrations and onboarding.
Professional business intelligence capture and reporting system.
append_insight Tool: Advanced tool for capturing structured business findings with:
insights://memo - Professional business intelligence reportinsights://summary - Quick overview of collected insightsDBChat works with virtually any database (as long as it has a JDBC driver)
See INSTALL.md for the complete list and build options.
Download the latest release from GitHub Releases:
In the examples below, replace <variant> with the jar you downloaded, such as basic, standard, enterprise, cloud-analytics, or all.
For a hands-on walkthrough after setup, see TUTORIAL.md and if you only want to see the results of a sample TUTORIAL run then see TUTORIAL-DEMO.html. For visualization-focused usage patterns, see VISUALIZATION.md.
NOTE: Advanced users can also build a custom jar with only the drivers you need. See INSTALL.md for details.
IMPORTANT: Make sure that you are properly LICENSED to use any JDBC driver you install. The DBChat license does not cover any third party code or binaries.
If you are not using Claude Desktop but want to use another MCP client like Cursor, Windsurf, VS Code, Continue, etc then please refer to the MCP Setup document for more details
Create a configuration file dbchat.conf:
# Basic database connection
DB_URL=jdbc:mysql://localhost:3306/your_database
DB_USER=your_username
DB_PASSWORD=your_password
DB_DRIVER=com.mysql.cj.jdbc.Driver
# Optional: Enable web interface (not needed for Claude desktop)
HTTP_MODE=false
HTTP_PORT=8080
Examples for Common/Popular Databases:
MySQL:
DB_URL=jdbc:mysql://localhost:3306/your_database
DB_USER=your_username
DB_PASSWORD=your_password
DB_DRIVER=com.mysql.cj.jdbc.Driver
PostgreSQL:
DB_URL=jdbc:postgresql://localhost:5432/your_database
DB_USER=your_username
DB_PASSWORD=your_password
DB_DRIVER=org.postgresql.Driver
SQLite:
DB_URL=jdbc:sqlite:/path/to/your/database.db
DB_USER=
DB_PASSWORD=
DB_DRIVER=org.sqlite.JDBC
H2 database (in memory - no database setup required):
DB_URL=jdbc:h2:mem:testdb
DB_USER=sa
DB_PASSWORD=
DB_DRIVER=org.h2.Driver
Oracle:
DB_URL=jdbc:oracle:thin:@localhost:1521:xe
DB_USER=system
DB_PASSWORD=password
DB_DRIVER=oracle.jdbc.driver.OracleDriver
Redis:
DB_URL=jdbc:redis://localhost:6379
DB_USER=
DB_PASSWORD=your_redis_password
DB_DRIVER=com.dbvis.jdbc.redis.RedisDriver
{
"mcpServers": {
"database": {
"command": "java",
"args": [
"-jar",
"/absolute/path/to/dbchat-4.2.1-<variant>.jar",
"--config_file=/absolute/path/to/dbchat.conf"
]
}
}
}
Alternative without config file:
{
"mcpServers": {
"database": {
"command": "java",
"args": ["-jar", "/absolute/path/to/dbchat-4.2.1-<variant>.jar"],
"env": {
"DB_URL": "jdbc:mysql://localhost:3306/your_database",
"DB_USER": "your_username",
"DB_PASSWORD": "your_password",
"DB_DRIVER": "com.mysql.cj.jdbc.Driver"
}
}
}
}
Windows Example:
{
"mcpServers": {
"database": {
"command": "java",
"args": [
"-jar",
"C:/Users/YourName/Downloads/dbchat-4.2.1-<variant>.jar",
"--config_file=C:/Users/YourName/dbchat.conf"
]
}
}
}
NOTE: If java is not in your PATH then use the full path to java (JDK 17+) in the command.
You can use many databases concurrently!
{
"mcpServers": {
"production-db": {
"command": "java",
"args": ["-jar", "/path/to/dbchat-4.2.1-<variant>.jar"],
"env": {
"DB_URL": "jdbc:mysql://prod-server:3306/production",
"DB_USER": "readonly_user",
"DB_PASSWORD": "secure_password",
"DB_DRIVER": "com.mysql.cj.jdbc.Driver",
"SELECT_ONLY": "true"
}
},
"analytics-db": {
"command": "java",
"args": ["-jar", "/path/to/dbchat-4.2.1-<variant>.jar"],
"env": {
"DB_URL": "jdbc:postgresql://analytics:5432/warehouse",
"DB_USER": "analyst",
"DB_PASSWORD": "password",
"DB_DRIVER": "org.postgresql.Driver"
}
}
}
}
Close and reopen Claude Desktop. You should see a database connection indicator in the chat input.
"What tables do we have in the database?"
"Show me the structure of the customers table"
"How many records are in each table?"
"How many new customers did we get last month?"
"What are our top 5 selling products this quarter?"
"Show me revenue by month for the past year"
"Find customers who haven't ordered in 6 months"
"Are there any duplicate email addresses?"
"What's the average order value by customer segment?"
"Create a chart showing monthly sales trends"
"Make a pie chart of orders by product category"
"Show me a bar chart of customer signups by region"
"Calculate customer lifetime value for each segment"
"Identify seasonal trends in our sales data"
"Find correlations between customer age and purchase behavior"
"Show me our conversion funnel from visitors to purchases"
"Which products have the highest return rates?"
"Create a dashboard showing daily sales performance"
"Find customers at risk of churning"
"Show me customer satisfaction trends"
"Identify our most valuable customer segments"
"Generate a P&L summary for this quarter"
"Show cash flow trends over the past 12 months"
"Create an expense breakdown by department"
"Monitor inventory levels across all warehouses"
"Show shipping performance by carrier"
"Identify bottlenecks in our fulfillment process"
DBChat enables Claude to create stunning visualizations directly from your database:
Protect your data with read-only access:
SELECT_ONLY=true
Control resource usage:
MAX_ROWS_LIMIT=1000
QUERY_TIMEOUT_SECONDS=30
MAX_SQL_LENGTH=10000
Enable HTTP mode for web-based access:
# Turn on HTTP listener
HTTP_MODE=true
# Listen on port 8080
HTTP_PORT=8080
# Bind to all interfaces (allows external access)
BIND_ADDRESS=0.0.0.0
# NOTE: If no bind address is given we bind to localhost only (default, most secure)
Then access at http://localhost:8080/. For example try http://localhost:8080/health to check health status
For similar config via CLI args use:
# Bind to localhost only (default, most secure)
java -jar dbchat-4.2.1-<variant>.jar --http_mode=true --http_port=8080
# Bind to all interfaces (allows external access)
java -jar dbchat-4.2.1-<variant>.jar --http_mode=true --bind_address=0.0.0.0 --http_port=8080
# Bind to specific interface
java -jar dbchat-4.2.1-<variant>.jar --http_mode=true --bind_address=192.168.1.100 --http_port=8080
For maximum flexibility, DBChat supports multiple configuration methods like CLI arguments, config file, Environment vars, System Properties and Built-in Defaults. Understanding the priority order is crucial for troubleshooting and advanced setups.
This means command line arguments will always override config files, which override environment variables, and so on.
Format: --parameter_name=value
Use case: Quick overrides, testing, one-time configurations
java -jar dbchat-4.2.1-<variant>.jar \
--db_url="jdbc:mysql://localhost:3306/mydb" \
--db_user="username" \
--db_password="password" \
--db_driver="com.mysql.cj.jdbc.Driver" \
--http_mode=true \
--http_port=8080 \
--select_only=true
Available parameters:
--config_file=/path/to/config.conf--db_url="jdbc:..."--db_user="username"--db_password="password"--db_driver="com.mysql.cj.jdbc.Driver"--http_mode=true--http_port=8080--max_connections=20--connection_timeout_ms=30000--query_timeout_seconds=60--select_only=true--max_sql_length=50000--max_rows_limit=10000Format: KEY=VALUE (one per line)
Use case: Production environments, complex configurations, version control
Create a file (e.g., dbchat.conf):
# Database Connection
DB_URL=jdbc:postgresql://localhost:5432/myapp
DB_USER=dbuser
DB_PASSWORD=my secure password with spaces
DB_DRIVER=org.postgresql.Driver
# Connection Pool Settings
MAX_CONNECTIONS=20
CONNECTION_TIMEOUT_MS=60000
IDLE_TIMEOUT_MS=300000
MAX_LIFETIME_MS=1800000
LEAK_DETECTION_THRESHOLD_MS=60000
# Query Settings
QUERY_TIMEOUT_SECONDS=45
SELECT_ONLY=false
MAX_SQL_LENGTH=50000
MAX_ROWS_LIMIT=50000
# Server Settings
HTTP_MODE=true
HTTP_PORT=8080
Usage:
java -jar dbchat-4.2.1-<variant>.jar --config_file=dbchat.conf
Config file features:
#DB_PASSWORD="password with spaces"Format: UPPERCASE_WITH_UNDERSCORES
Use case: Docker, cloud deployment, CI/CD, secure credential management
export DB_URL="jdbc:mysql://localhost:3306/mydb"
export DB_USER="username"
export DB_PASSWORD="password"
export DB_DRIVER="com.mysql.cj.jdbc.Driver"
export HTTP_MODE="true"
export HTTP_PORT="8080"
export SELECT_ONLY="true"
java -jar dbchat-4.2.1-<variant>.jar
All environment variables:
CONFIG_FILE - Path to configuration fileDB_URL - Database connection URLDB_USER - Database usernameDB_PASSWORD - Database passwordDB_DRIVER - JDBC driver classHTTP_MODE - Enable HTTP mode (true/false)HTTP_PORT - HTTP server portMAX_CONNECTIONS - Connection pool sizeCONNECTION_TIMEOUT_MS - Connection timeoutQUERY_TIMEOUT_SECONDS - Query timeoutSELECT_ONLY - Read-only mode (true/false)MAX_SQL_LENGTH - Maximum query lengthMAX_ROWS_LIMIT - Maximum result rowsIDLE_TIMEOUT_MS - Connection idle timeoutMAX_LIFETIME_MS - Connection max lifetimeLEAK_DETECTION_THRESHOLD_MS - Leak detection thresholdFormat: -Dparameter.name=value (underscores become dots)
Use case: JVM-specific configuration, IDE run configurations
java -Ddb.url="jdbc:mysql://localhost:3306/mydb" \
-Ddb.user="username" \
-Ddb.password="password" \
-Ddb.driver="com.mysql.cj.jdbc.Driver" \
-Dhttp.mode="true" \
-Dhttp.port="8080" \
-jar dbchat-4.2.1-<variant>.jar
Property naming: Environment variable DB_URL becomes system property db.url
When: No configuration provided Values: Safe defaults for development
DB_URL=jdbc:h2:mem:testdb
DB_USER=sa
DB_PASSWORD=
DB_DRIVER=org.h2.Driver
HTTP_MODE=false
HTTP_PORT=8080
MAX_CONNECTIONS=10
CONNECTION_TIMEOUT_MS=30000
QUERY_TIMEOUT_SECONDS=30
SELECT_ONLY=true
MAX_SQL_LENGTH=10000
MAX_ROWS_LIMIT=10000
# Config file has HTTP_PORT=8080
echo "HTTP_PORT=8080" > config.conf
# Environment variable sets different port
export HTTP_PORT=9090
# Command line overrides both
java -jar dbchat-4.2.1-<variant>.jar --config_file=config.conf --http_port=7070
# Result: Uses port 7070 (command line wins)
# Use config file for database settings
echo "DB_URL=jdbc:mysql://localhost:3306/mydb" > prod.conf
echo "DB_USER=produser" >> prod.conf
echo "SELECT_ONLY=true" >> prod.conf
# Override password via environment (more secure)
export DB_PASSWORD="secure_password"
# Override port via command line (for this run only)
java -jar dbchat-4.2.1-<variant>.jar --config_file=prod.conf --http_port=9090
Note that most MCP clients use a similar configuration, but you'll need to refer to your MCP client docs for details on how it can be configured. It is safest not to assume any PATH settings and provide absolute paths for java, the dbchat jar and (optionally) the dbchat config file.
{
"mcpServers": {
"database": {
"command": "java",
"args": [
"-jar", "/path/to/dbchat-4.2.1-<variant>.jar",
"--config_file=/path/to/production.conf",
"--select_only=true"
],
"env": {
"DB_PASSWORD": "secure_password_from_env"
}
}
}
}
DB_URL - JDBC connection string (required)DB_USER - Database usernameDB_PASSWORD - Database passwordDB_DRIVER - JDBC driver class (required)MAX_CONNECTIONS=10 - Maximum concurrent connectionsCONNECTION_TIMEOUT_MS=30000 - Connection acquisition timeoutIDLE_TIMEOUT_MS=600000 - Connection idle timeout (10 minutes)MAX_LIFETIME_MS=1800000 - Connection max lifetime (30 minutes)LEAK_DETECTION_THRESHOLD_MS=60000 - Connection leak detection (1 minute)QUERY_TIMEOUT_SECONDS=30 - SQL query execution timeoutSELECT_ONLY=true - Read-only mode (blocks INSERT/UPDATE/DELETE)MAX_SQL_LENGTH=10000 - Maximum characters in SQL queryMAX_ROWS_LIMIT=10000 - Maximum rows returned per queryHTTP_MODE=false - Enable HTTP web interfaceHTTP_PORT=8080 - HTTP server port# Good: Use environment variables for passwords
export DB_PASSWORD="secure_password"
java -jar dbchat-4.2.1-<variant>.jar --config_file=app.conf
# Good: Use config file with restricted permissions
chmod 600 secure.conf
java -jar dbchat-4.2.1-<variant>.jar --config_file=secure.conf
# Avoid: Passwords in command line (visible in process list)
java -jar dbchat-4.2.1-<variant>.jar --db_password="visible_password"
# Create secure config file
umask 077
cat > secure.conf << EOF
DB_PASSWORD=secure_password
EOF
# Verify permissions
ls -la secure.conf
# Should show: -rw------- (owner read/write only)
Enable debug logging to see which values are being used:
java -Dlogging.level.root=DEBUG -jar dbchat-4.2.1-<variant>.jar --config_file=myconfig.conf
env | grep DB_ to verify# Test database connection with current config
java -jar dbchat-4.2.1-<variant>.jar --help
# Verify config file syntax
grep -v "^#" myconfig.conf | grep -v "^$"
# Check environment variables
env | grep -E "(DB_|HTTP_|MAX_|SELECT_)"
MAX_ROWS_LIMIT=1000QUERY_TIMEOUT_SECONDS=30MAX_CONNECTIONS=10"ClassNotFoundException"
"Connection refused"
"Server not responding"
SELECT_ONLY=true initiallyMAX_ROWS_LIMIT and timeoutsTransform your relationship with data. No more complex SQL queries, no more waiting for reports. Just natural conversations with your database, powered by Claude's intelligence and DBChat's seamless integration.
Get started today and discover what your data has been trying to tell you.
MCP server integration for DaVinci Resolve Studio
Run Claude Code as an MCP server so any agent can delegate coding tasks to it
Browser automation using accessibility snapshots instead of screenshots
A Jetbrains IDE IntelliJ plugin aimed to provide coding agents the ability to leverage intelliJ's indexing of the codeba