Skip to main content
Glama
zerogon1203

MCP Database Server

by zerogon1203

πŸ—„οΈ MCP Database Server

λ³΄μ•ˆ κ°•ν™”λœ 닀쀑 λ°μ΄ν„°λ² μ΄μŠ€ 지원 MCP μ„œλ²„ - Cursor IDE 및 Claude와 연동 κ°€λŠ₯ν•œ Model Context Protocol μ„œλ²„

MySQL, PostgreSQL을 μ§€μ›ν•˜λŠ” μ—„κ²©ν•œ λ³΄μ•ˆ 정책을 μ μš©ν•œ λ°μ΄ν„°λ² μ΄μŠ€ 뢄석 및 μ‹œκ°ν™” λ„κ΅¬μž…λ‹ˆλ‹€.

✨ μ£Όμš” κΈ°λŠ₯

πŸ”’ λ³΄μ•ˆ κΈ°λŠ₯ (NEW!)

  • 읽기 μ „μš© λͺ¨λ“œ κ°•μ œ - SELECT 쿼리만 ν—ˆμš©

  • SQL Injection λ°©μ§€ - 닀쀑 λ¬Έμž₯ μ‹€ν–‰ 및 κΈˆμ§€ 동사 차단

  • μ‹λ³„μž ν™”μ΄νŠΈλ¦¬μŠ€νŠΈ - ν…Œμ΄λΈ”/컬럼λͺ… 검증

  • νŒŒλΌλ―Έν„° 바인딩 κ°•μ œ - μ•ˆμ „ν•œ 쿼리 μ‹€ν–‰

  • MySQL/PostgreSQL μœ„ν—˜ κΈ°λŠ₯ 차단 - INTO OUTFILE, COPY λ“±

🎯 닀쀑 λ°μ΄ν„°λ² μ΄μŠ€ 지원

  • MySQL/MariaDB - μ™„μ „ 지원 (λ³΄μ•ˆ κ°•ν™”)

  • PostgreSQL - μ™„μ „ 지원 (λ³΄μ•ˆ κ°•ν™”)

  • SQLite - κΈ°λ³Έ 지원 (μ€€λΉ„ 쀑)

πŸ“Š μ‹œκ°ν™” 도ꡬ

  • Mermaid ERD 생성 - λ°μ΄ν„°λ² μ΄μŠ€ μŠ€ν‚€λ§ˆλ₯Ό Mermaid λ‹€μ΄μ–΄κ·Έλž¨μœΌλ‘œ

  • λ§ˆν¬λ‹€μš΄ ν…Œμ΄λΈ” μš”μ•½ - ν…Œμ΄λΈ” 정보λ₯Ό κΉ”λ”ν•œ ν‘œλ‘œ 정리

  • ASCII μ„±λŠ₯ 차트 - ν…Œμ΄λΈ” 크기와 인덱슀 νš¨μœ¨μ„±μ„ μ‹œκ°μ μœΌλ‘œ

πŸ” 뢄석 κΈ°λŠ₯

  • μŠ€ν‚€λ§ˆ 뢄석 및 쑰회

  • ν…Œμ΄λΈ”λ³„ 톡계 정보

  • μ„±λŠ₯ 병λͺ© 지점 탐지

  • 인덱슀 μ΅œμ ν™” μ œμ•ˆ

  • 쿼리 μ‹€ν–‰ κ³„νš 뢄석

Related MCP server: sql-mcp-server

πŸ“¦ μ„€μΉ˜

git clone <this-repo-url>
cd db-mcp-server
python -m venv venv
source venv/bin/activate  # λ˜λŠ” venv\Scripts\activate (Windows)
pip install -r requirements.txt

βš™οΈ μ„€μ •

πŸ”’ λ³΄μ•ˆ μ„€μ • (μ€‘μš”!)

ν”„λ‘œλ•μ…˜ ν™˜κ²½μ—μ„œλŠ” λ°˜λ“œμ‹œ λ‹€μŒ 섀정을 μ μš©ν•˜μ„Έμš”:

# 읽기 μ „μš© λͺ¨λ“œ κ°•μ œ
READ_ONLY=true
STRICT_READONLY=true

# λ³΄μ•ˆ κ°•ν™”λœ λ°μ΄ν„°λ² μ΄μŠ€ 계정 μ‚¬μš©
DB_USER=readonly_user
DB_PASSWORD=secure_password

ν™˜κ²½λ³€μˆ˜ μ„€μ •

.env νŒŒμΌμ„ μƒμ„±ν•˜κ³  λ°μ΄ν„°λ² μ΄μŠ€ 정보λ₯Ό μ„€μ •ν•˜μ„Έμš”:

cp .env.example .env

MySQL/MariaDB μ„€μ • (λ³΄μ•ˆ κ°•ν™”)

DB_TYPE=mysql
DB_HOST=localhost
DB_USER=readonly_user  # 읽기 μ „μš© 계정 μ‚¬μš©
DB_PASSWORD=your_password
DB_NAME=your_database
DB_CHARSET=utf8mb4
DB_PORT=3306

PostgreSQL μ„€μ •

DB_TYPE=postgresql
DB_HOST=localhost
DB_USER=postgres
DB_PASSWORD=your_password
DB_NAME=your_database
DB_PORT=5432
DB_SCHEMA=public

SQLite μ„€μ •

DB_TYPE=sqlite
DB_PATH=./database.sqlite

πŸš€ μ‚¬μš©λ²•

Cursor IDE 연동

MCP Server μΆ”κ°€ β†’ Transport: stdio β†’ Command: python main.py

ν™˜κ²½λ³€μˆ˜ κ°œλ³„ μ„€μ •:

{
  "mcpServers": {
    "db-mcp-server": {
      "transport": "stdio",
      "command": "/path/to/venv/bin/python",
      "args": ["/path/to/db-mcp-server/main.py"],
      "env": {
        "DB_TYPE": "postgresql",
        "DB_NAME": "your_db_name",
        "DB_HOST": "localhost"
      }
    }
  }
}

πŸ”’ λ³΄μ•ˆ

λ³΄μ•ˆ μ •μ±…

이 μ„œλ²„λŠ” μ—„κ²©ν•œ λ³΄μ•ˆ 정책을 μ μš©ν•©λ‹ˆλ‹€:

  • 읽기 μ „μš© λͺ¨λ“œ: SELECT 쿼리만 ν—ˆμš©

  • SQL Injection λ°©μ§€: 닀쀑 λ¬Έμž₯ μ‹€ν–‰ 및 κΈˆμ§€ 동사 차단

  • μ‹λ³„μž 검증: ν…Œμ΄λΈ”/컬럼λͺ… ν™”μ΄νŠΈλ¦¬μŠ€νŠΈ 검증

  • νŒŒλΌλ―Έν„° 바인딩: λͺ¨λ“  μ‚¬μš©μž μž…λ ₯은 μ•ˆμ „ν•œ λ°©μ‹μœΌλ‘œ 처리

λ³΄μ•ˆ μ„€μ •

μžμ„Έν•œ λ³΄μ•ˆ 섀정은 SECURITY.mdλ₯Ό μ°Έμ‘°ν•˜μ„Έμš”.

λ°μ΄ν„°λ² μ΄μŠ€ 계정 κΆŒν•œ

μ€‘μš”: ν”„λ‘œλ•μ…˜ ν™˜κ²½μ—μ„œλŠ” λ°˜λ“œμ‹œ 읽기 μ „μš© 계정을 μ‚¬μš©ν•˜μ„Έμš”:

-- MySQL μ˜ˆμ‹œ
CREATE USER 'mcp_readonly'@'%' IDENTIFIED BY 'secure_password';
GRANT SELECT ON your_database.* TO 'mcp_readonly'@'%';

-- PostgreSQL μ˜ˆμ‹œ
CREATE USER mcp_readonly WITH PASSWORD 'secure_password';
GRANT CONNECT ON DATABASE your_database TO mcp_readonly;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO mcp_readonly;

πŸ› οΈ μ‚¬μš© κ°€λŠ₯ν•œ 도ꡬ듀

πŸ“‹ μŠ€ν‚€λ§ˆ 도ꡬ

  • get_schema - 전체 λ°μ΄ν„°λ² μ΄μŠ€ μŠ€ν‚€λ§ˆ 쑰회

  • get_table_stats - ν…Œμ΄λΈ”λ³„ 톡계 정보

  • get_sample_data - μƒ˜ν”Œ 데이터 쑰회

  • get_column_stats - μ»¬λŸΌλ³„ 상세 톡계

πŸ” 뢄석 도ꡬ

  • execute_query - μ•ˆμ „ν•œ 읽기 μ „μš© 쿼리 μ‹€ν–‰

  • explain_query - 쿼리 μ‹€ν–‰ κ³„νš 뢄석

  • optimize_query - 쿼리 μ΅œμ ν™” μ œμ•ˆ

  • get_db_status - λ°μ΄ν„°λ² μ΄μŠ€ μƒνƒœ 정보

  • get_table_size - ν…Œμ΄λΈ”λ³„ 크기 정보

  • get_index_usage - 인덱슀 μ‚¬μš© 톡계

  • analyze_performance - μ„±λŠ₯ 병λͺ© 지점 뢄석

  • suggest_indexes - 인덱슀 생성 μ œμ•ˆ

  • optimize_tables - ν…Œμ΄λΈ” μ΅œμ ν™” μ œμ•ˆ

🎨 μ‹œκ°ν™” 도ꡬ

  • generate_schema_mermaid - Mermaid ERD λ‹€μ΄μ–΄κ·Έλž¨ 생성

  • generate_tables_summary - λ§ˆν¬λ‹€μš΄ ν…Œμ΄λΈ” μš”μ•½

  • generate_performance_report - μ„±λŠ₯ 뢄석 리포트 (ASCII 차트 포함)

πŸ“Š μ‚¬μš© μ˜ˆμ‹œ

μŠ€ν‚€λ§ˆ μ‹œκ°ν™”

😊 μ‚¬μš©μž: "λ°μ΄ν„°λ² μ΄μŠ€ μŠ€ν‚€λ§ˆλ₯Ό ERD둜 λ³΄μ—¬μ€˜"
πŸ€– AI: generate_schema_mermaid() μ‹€ν–‰ β†’ Mermaid λ‹€μ΄μ–΄κ·Έλž¨ 제곡

μ„±λŠ₯ 뢄석

😊 μ‚¬μš©μž: "μ„±λŠ₯ λ¬Έμ œκ°€ μžˆλŠ”μ§€ λΆ„μ„ν•΄μ€˜"  
πŸ€– AI: analyze_performance() β†’ generate_performance_report() μ‹€ν–‰
     β†’ ASCII μ°¨νŠΈμ™€ ν•¨κ»˜ μƒμ„Έν•œ μ„±λŠ₯ 리포트 제곡

ν…Œμ΄λΈ” ν˜„ν™© μš”μ•½

😊 μ‚¬μš©μž: "ν…Œμ΄λΈ”λ“€ ν˜„ν™©μ„ μš”μ•½ν•΄μ€˜"
πŸ€– AI: generate_tables_summary() μ‹€ν–‰ β†’ λ§ˆν¬λ‹€μš΄ ν…Œμ΄λΈ” μš”μ•½ 제곡

πŸ—οΈ ν”„λ‘œμ νŠΈ ꡬ쑰

db-mcp-server/
β”œβ”€β”€ main.py                 # MCP μ„œλ²„ 메인 파일
β”œβ”€β”€ .env.example            # ν™˜κ²½λ³€μˆ˜ μ˜ˆμ‹œ 파일
β”œβ”€β”€ requirements.txt        # Python μ˜μ‘΄μ„±
β”œβ”€β”€ adapters/               # λ°μ΄ν„°λ² μ΄μŠ€ μ–΄λŒ‘ν„°
β”‚   β”œβ”€β”€ __init__.py        
β”‚   β”œβ”€β”€ base.py            # 베이슀 μ–΄λŒ‘ν„° 클래슀
β”‚   β”œβ”€β”€ mysql.py           # MySQL/MariaDB μ–΄λŒ‘ν„°
β”‚   └── postgresql.py      # PostgreSQL μ–΄λŒ‘ν„°
└── tools/                 # MCP 도ꡬ λͺ¨λ“ˆ
    β”œβ”€β”€ __init__.py
    β”œβ”€β”€ schema_tools.py     # μŠ€ν‚€λ§ˆ κ΄€λ ¨ 도ꡬ
    β”œβ”€β”€ analysis_tools.py   # 뢄석 κ΄€λ ¨ 도ꡬ
    └── visualization_tools.py # μ‹œκ°ν™” κ΄€λ ¨ 도ꡬ

πŸš€ ν™•μž₯μ„±

μƒˆλ‘œμš΄ λ°μ΄ν„°λ² μ΄μŠ€ μΆ”κ°€

  1. adapters/ 폴더에 μƒˆ μ–΄λŒ‘ν„° 클래슀 생성

  2. DatabaseAdapter 베이슀 클래슀 상속

  3. ν•„μš”ν•œ λ©”μ„œλ“œλ“€ κ΅¬ν˜„

  4. adapters/__init__.py의 νŒ©ν† λ¦¬ ν•¨μˆ˜μ— μΆ”κ°€

μƒˆλ‘œμš΄ 도ꡬ μΆ”κ°€

  1. ν•΄λ‹Ή μΉ΄ν…Œκ³ λ¦¬μ˜ tools/ λͺ¨λ“ˆμ— ν•¨μˆ˜ μΆ”κ°€

  2. @mcp.tool() λ°μ½”λ ˆμ΄ν„°λ‘œ 등둝

  3. μ–΄λŒ‘ν„°μ˜ λ©”μ„œλ“œλ₯Ό ν™œμš©ν•˜μ—¬ κ΅¬ν˜„

πŸ“‹ μš”κ΅¬μ‚¬ν•­

  • Python 3.8+

  • λ°μ΄ν„°λ² μ΄μŠ€:

    • MySQL/MariaDB 5.7+

    • PostgreSQL 12+

    • SQLite 3.x

🀝 κΈ°μ—¬ν•˜κΈ°

  1. Fork the Project

  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)

  3. Commit your Changes (git commit -m 'Add some AmazingFeature')

  4. Push to the Branch (git push origin feature/AmazingFeature)

  5. Open a Pull Request

πŸ“„ λΌμ΄μ„ΌμŠ€

이 ν”„λ‘œμ νŠΈλŠ” MIT λΌμ΄μ„ΌμŠ€ ν•˜μ— μžˆμŠ΅λ‹ˆλ‹€. μžμ„Έν•œ λ‚΄μš©μ€ LICENSE νŒŒμΌμ„ μ°Έμ‘°ν•˜μ„Έμš”.

F
license - not found
-
quality - not tested
D
maintenance

Maintenance

–Maintainers
–Response time
–Release cycle
–Releases (12mo)
Commit activity
Issues opened vs closed

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    -
    quality
    D
    maintenance
    A modular MCP server that enables interaction with multiple database types including PostgreSQL, MySQL, SQLite, Redis, MongoDB, and LDAP. It provides tools for executing queries, managing SQL commands, and exploring database schemas with configurable read-only security.
    29
    MIT
  • F
    license
    -
    quality
    C
    maintenance
    A secure MCP server for database access via FastMCP, supporting SQLite, PostgreSQL, MySQL, and MSSQL with safe-by-default SQL validation and multi-instance runtime.
    1
  • F
    license
    -
    quality
    D
    maintenance
    A versatile MCP server that connects to multiple relational databases (MySQL, PostgreSQL, Oracle, SQL Server, SQLite) and enables secure read-only SQL query execution and metadata access.
    4
  • A
    license
    A
    quality
    D
    maintenance
    A multi-database MCP server supporting MySQL, PostgreSQL, MongoDB, and SQLite with read-only and read-write query capabilities, schema inspection, and SSH tunneling, all without Docker.
    5
    2
    MIT

View all related MCP servers

Related MCP Connectors

  • MCP server for managing Prisma Postgres.

  • Read-only MCP server for ClassQuill, a tutoring-business-management platform.

  • GibsonAI MCP server: manage your databases with natural language

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/zerogon1203/db-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server