Claude Multi-Database MCP Server
An MCP server that enables Claude to query multiple databases (PostgreSQL, ClickHouse, MaxCompute) with automatic schema discovery and intelligent table search.
README
Claude Multi-Database MCP Server
A production-ready MCP (Model Context Protocol) server that enables Claude to query multiple heterogeneous databases with automatic schema discovery and intelligent table search.
π Features
- π Multi-Database Support: PostgreSQL, ClickHouse, Alibaba Cloud MaxCompute
- π Smart Schema Discovery: Automatically fetches table structures and column comments from databases
- π Intelligent Search: Cross-database table search based on keywords
- π‘οΈ Security First: SQL validation, read-only access, automatic LIMIT enforcement
- β‘ Performance Optimized: Metadata caching, connection pooling
- π Cross-Source Analysis: Query and analyze data across multiple databases
- π― Zero Maintenance: No manual schema catalog needed
π Prerequisites
- Python 3.8+
- Access to one or more supported databases
- Claude Desktop or Anthropic API access
π Quick Start
1. Installation
# Clone the repository
git clone https://github.com/yourusername/claude-multi-db-mcp.git
cd claude-multi-db-mcp
# Install dependencies
pip install -r requirements.txt
# Or install as a package
pip install -e .
2. Configuration
# Copy configuration template
cp config/database_config.json.example config/database_config.json
# Edit configuration with your database credentials
nano config/database_config.json
Example configuration:
{
"datasources": {
"business_pg": {
"type": "postgresql",
"host": "your-host.example.com",
"port": 5432,
"database": "business_db",
"user": "readonly_user",
"password": "your_password"
}
}
}
3. Create Read-Only Users
For security, create read-only database users:
# PostgreSQL
psql -h your-host -U admin -d your_db -f scripts/create_readonly_users.sql
# ClickHouse
clickhouse-client --host your-host --multiquery < scripts/create_readonly_users.sql
4. Test Connection
python scripts/test_connection.py
5. Configure Claude Desktop
Edit your Claude Desktop configuration:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"database-query": {
"command": "python",
"args": ["/absolute/path/to/claude-multi-db-mcp/src/mcp_server.py"]
}
}
}
Restart Claude Desktop.
π‘ Usage Examples
Once configured, you can chat with Claude naturally:
Example 1: Search for Tables
You: "Find tables related to users"
Claude will:
- Call
search_tables(keyword="users") - Return matching tables from all databases
- Show table locations and descriptions
Example 2: View Table Structure
You: "What columns does the users table have in business_pg?"
Claude will:
- Call
get_table_metadata(source="business_pg", table="users") - Display all columns with names, types, and comments
Example 3: Execute Analysis
You: "Count new users by channel for last month"
Claude will:
- Search for relevant tables
- Check table structure
- Generate SQL query
- Execute and analyze results
Example 4: Cross-Database Analysis
You: "Compare product data in local_pg with click data in clickhouse to find products with high views but low conversion"
Claude will:
- Query product list from local_pg
- Query click and conversion data from clickhouse
- Join and analyze in memory
- Provide insights and recommendations
π οΈ Available MCP Tools
1. query_database
Execute SQL queries on specified datasource.
{
"source": "business_pg",
"sql": "SELECT * FROM users WHERE created_at > '2024-01-01' LIMIT 10"
}
2. get_table_metadata
Get table structure and column comments.
{
"source": "business_pg",
"table_name": "users" # Optional, omit to list all tables
}
3. search_tables
Search tables by keyword across all datasources.
{
"keyword": "order",
"sources": ["business_pg", "clickhouse"] # Optional
}
4. list_datasources
List all available datasources.
{}
π Documentation
π§ͺ Testing
# Run all tests
python -m pytest tests/
# Run specific test
python -m pytest tests/test_query_tool.py
# Test with coverage
python -m pytest --cov=src tests/
π Security
- β Only read-only database users
- β SQL validation blocks DDL/DML operations
- β Automatic LIMIT enforcement
- β Query logging and audit trail
- β Sensitive data filtered through database views
See Security Best Practices for details.
π€ Contributing
Contributions are welcome! Please read our Contributing Guide first.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
π License
This project is licensed under the MIT License - see the LICENSE file for details.
π Acknowledgments
- Built with Anthropic's Claude
- Uses Model Context Protocol (MCP)
- Database drivers: psycopg2, clickhouse-driver, pyodps
π¬ Contact
- Issues: GitHub Issues
- Discussions: GitHub Discussions
πΊοΈ Roadmap
- [ ] Add MySQL support
- [ ] Add MongoDB support
- [ ] Query result visualization
- [ ] Query template library
- [ ] Redis result caching
- [ ] Multi-user permission system
- [ ] Web UI for management
Made with β€οΈ for the Claude community
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.