Skip to main content
Glama
xza-m

Claude Multi-Database MCP Server

by xza-m

Claude Multi-Database MCP Server

English | δΈ­ζ–‡

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

Related MCP server: Database Tools for Claude AI

πŸ“‹ 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:

  1. Call search_tables(keyword="users")

  2. Return matching tables from all databases

  3. Show table locations and descriptions

Example 2: View Table Structure

You: "What columns does the users table have in business_pg?"

Claude will:

  1. Call get_table_metadata(source="business_pg", table="users")

  2. Display all columns with names, types, and comments

Example 3: Execute Analysis

You: "Count new users by channel for last month"

Claude will:

  1. Search for relevant tables

  2. Check table structure

  3. Generate SQL query

  4. 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:

  1. Query product list from local_pg

  2. Query click and conversion data from clickhouse

  3. Join and analyze in memory

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

  1. Fork the repository

  2. Create your feature branch (git checkout -b feature/amazing-feature)

  3. Commit your changes (git commit -m 'Add amazing feature')

  4. Push to the branch (git push origin feature/amazing-feature)

  5. Open a Pull Request

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

πŸ“¬ Contact

πŸ—ΊοΈ 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

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    An MCP server implementation that enables Claude AI to interact with Clickhouse databases. Features include secure database connections, query execution, read-only mode support, and multi-query capabilities.
    2
    2
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    MCP server that allows Claude AI to interact directly with MySQL databases, enabling query execution and table information retrieval through natural language.
    1
    2 npm
    4
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that enables interacting with CnosDB databases through Claude, supporting SQL queries, database listing, table listing, and schema descriptions.
    1
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    A multi-database MCP server supporting PostgreSQL, ClickHouse, and MySQL that enables database exploration and SQL execution through MCP stdio or HTTP API.
    -