Cover image
Try Now
2025-03-27

3 years

Works with Finder

1

Github Watches

0

Github Forks

0

Github Stars

Database Schema MCP Server

A powerful MCP server that provides tools to read and expose database schemas from various database types (PostgreSQL, MySQL, SQLite, etc.).

🌟 Features

  • Connect to different types of databases
  • List all tables in a database
  • Get detailed schema information for specific tables
  • Get complete database schema including tables, views, and indexes
  • Support for multiple database types (PostgreSQL, MySQL, SQLite)

🚀 Installation

Prerequisites

  1. Python 3.x
  2. Virtual environment (recommended)

Basic Installation

  1. Create and activate a virtual environment:
# Create virtual environment
python -m venv venv

# Activate virtual environment
# On Unix/macOS:
source venv/bin/activate
# On Windows:
venv\Scripts\activate
  1. Install dependencies:
pip install -r requirements.txt

Windows MCP Installation

  1. Install Node.js:

  2. Update System Path:

$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
  1. If Node.js is not recognized, manually add to Path:

    • Press Windows + R
    • Type sysdm.cpl and press Enter
    • Go to "Advanced" tab
    • Click "Environment Variables"
    • Under "System variables", find and select "Path"
    • Click "Edit"
    • Add C:\Program Files\nodejs\ if not present
    • Click "OK" on all windows
    • Restart your computer
  2. Install MCP:

    • Download the mcp-install.ps1 script
    • Unblock the file (right-click → Properties → Unblock)
    • Open PowerShell as Administrator and run:
      Set-ExecutionPolicy unrestricted
      
    • Navigate to script location and run:
      .\mcp-install.ps1 @modelcontextprotocol/server-postgres
      
    • Exit Claude Desktop completely (check system tray)
    • Configure server in C:\Users\YOUR_USERNAME\AppData\Roaming\Claude\claude_desktop_config.json
    • Copy MCP server config to mcp.json in Cursor
    • Restart Cursor

MCP Configuration Example

Create a .cursor/mcp.json file in your project root with the following structure:

{
    "mcpServers": {
        "local-db": {
            "args": [
                "C:\\Users\\YOUR_USERNAME\\AppData\\Roaming\\npm\\node_modules\\@modelcontextprotocol\\server-postgres\\dist\\index.js",
                "database-url"
            ],
            "command": "node"
        },
        "staging-db": {
            "args": [
                "C:\\Users\\YOUR_USERNAME\\AppData\\Roaming\\npm\\node_modules\\@modelcontextprotocol\\server-postgres\\dist\\index.js",
                "database-url"
            ],
            "command": "node"
        },
        "production-db": {
            "args": [
                "C:\\Users\\YOUR_USERNAME\\AppData\\Roaming\\npm\\node_modules\\@modelcontextprotocol\\server-postgres\\dist\\index.js",
                "database-url"
            ],
            "command": "node"
        }
    }
}

Replace YOUR_USERNAME with your Windows username and ensure the paths match your Node.js module installation location.

💻 Usage

Starting the Server

python src/server.py

Available Tools

1. Connect to Database

config = {
    "type": "postgresql",  # or "mysql", "sqlite"
    "host": "localhost",
    "port": 5432,
    "database": "mydb",
    "username": "user",
    "password": "password"
}
result = await connect_database(config)

2. List Tables

tables = await list_tables("postgresql://user:password@localhost:5432/mydb")

3. Get Table Schema

schema = await get_table_schema("postgresql://user:password@localhost:5432/mydb", "users")

4. Get Database Schema

schema = await get_database_schema("postgresql://user:password@localhost:5432/mydb")

📚 Example Usage with Claude

# Connect to a database
config = {
    "type": "postgresql",
    "host": "localhost",
    "port": 5432,
    "database": "mydb",
    "username": "user",
    "password": "password"
}
await connect_database(config)

# Get the complete schema
schema = await get_database_schema("postgresql://user:password@localhost:5432/mydb")

# Analyze the schema
print(f"Database has {len(schema['tables'])} tables")
for table_name, table_info in schema['tables'].items():
    print(f"\nTable: {table_name}")
    print(f"Columns: {len(table_info['columns'])}")
    print(f"Primary Keys: {table_info['primary_keys']}")
    print(f"Foreign Keys: {len(table_info['foreign_keys'])}")

🔒 Security Best Practices

  1. Never expose sensitive database credentials in client-side code
  2. Use environment variables or secure configuration management for credentials
  3. Implement proper access controls and authentication
  4. Use SSL/TLS for database connections when possible

相关推荐

  • NiKole Maxwell
  • I craft unique cereal names, stories, and ridiculously cute Cereal Baby images.

  • Emmet Halm
  • Converts Figma frames into front-end code for various mobile frameworks.

  • https://maiplestudio.com
  • Find Exhibitors, Speakers and more

  • https://suefel.com
  • Latest advice and best practices for custom GPT development.

  • Yusuf Emre Yeşilyurt
  • I find academic articles and books for research and literature reviews.

  • Carlos Ferrin
  • Encuentra películas y series en plataformas de streaming.

  • Yasir Eryilmaz
  • AI scriptwriting assistant for short, engaging video content.

  • Daren White
  • A supportive coach for mastering all Spanish tenses.

  • Joshua Armstrong
  • Confidential guide on numerology and astrology, based of GG33 Public information

  • https://zenepic.net
  • Embark on a thrilling diplomatic quest across a galaxy on the brink of war. Navigate complex politics and alien cultures to forge peace and avert catastrophe in this immersive interstellar adventure.

  • Elijah Ng Shi Yi
  • Advanced software engineer GPT that excels through nailing the basics.

  • huahuayu
  • A unified API gateway for integrating multiple etherscan-like blockchain explorer APIs with Model Context Protocol (MCP) support for AI assistants.

  • deemkeen
  • control your mbot2 with a power combo: mqtt+mcp+llm

  • zhaoyunxing92
  • 本项目是一个钉钉MCP(Message Connector Protocol)服务,提供了与钉钉企业应用交互的API接口。项目基于Go语言开发,支持员工信息查询和消息发送等功能。

  • justmywyw
  • Short and sweet example MCP server / client implementation for Tools, Resources and Prompts.

  • sligter
  • Lite-MCP-Client是一个基于命令行的轻量级MCP客户端工具

    Reviews

    4 (1)
    Avatar
    user_NkWjby9r
    2025-04-15

    I've been using Ntfy MCP Server by cyanheads and it has truly transformed how I manage notifications. It's highly reliable and integrates seamlessly with my workflow. The interface is user-friendly and documentation is thorough, making setup a breeze. Highly recommend for anyone needing efficient notification management!