MCP Hub
Back to servers

Postgresql_MCP

Updated
Feb 9, 2026

PostgreSQL MCP AI Explorer

v1.1.0 | MCP SDK 1.26 · psycopg 3 · Streamlit

PostgreSQL 데이터베이스를 MCP(Model Context Protocol) 로 연결하여,
AI와 대화하며 자연어로 데이터를 탐색하고 시각화하는 프로젝트입니다.


🚀 주요 기능

기능설명
자연어 → SQL 변환복잡한 SQL 문법 없이 질문으로 데이터 조회
MCP 프로토콜 지원Claude Desktop(stdio) 및 기타 MCP 클라이언트(SSE)와 연동
Streamlit Web UI채팅 인터페이스 + Plotly 차트 자동 생성
실전형 데모 데이터한국형 인사관리 데이터셋 자동 생성 스크립트 포함

🛠️ 설치 및 설정

1. 필수 요구사항

  • Python 3.10 이상
  • PostgreSQL 데이터베이스 (Local 또는 Docker)
  • Poetry (패키지 관리자)

2. 설치

# 의존성 설치
poetry install

3. 환경 설정 (.env)

프로젝트 루트에 .env 파일을 생성하고 데이터베이스 정보를 입력하세요.

# PostgreSQL 접속 정보
DB_HOST=localhost
DB_PORT=5432
DB_NAME=postgres
DB_USER=postgres
DB_PASSWORD=your_password

# (선택) AI API 키 — Streamlit 웹 UI에서 자연어→SQL 변환 시 필요
ANTHROPIC_API_KEY=sk-ant-...
OPENAI_API_KEY=sk-...

🏃‍♂️ 실행 방법

1. 데이터베이스 초기화 (데모 데이터 생성)

실습용 인사관리 테이블을 생성하고 약 50명의 가상 사원 정보를 채웁니다.

poetry run python scripts/setup_demo_data.py

2-A. Claude Desktop 연동 (stdio 모드, 기본)

Claude Desktop의 설정 파일 %APPDATA%\Claude\claude_desktop_config.json 에 아래 내용을 추가합니다.

{
  "mcpServers": {
    "postgresql": {
      "command": "<프로젝트경로>\\.venv\\Scripts\\python.exe",
      "args": ["-m", "postgresql_mcp.server"],
      "env": {
        "PYTHONPATH": "<프로젝트경로>"
      }
    }
  }
}

설정 후 Claude Desktop을 재시작하면 자동으로 MCP 서버가 연결됩니다.

2-B. Streamlit 웹 UI (SSE 모드)

SSE 백엔드 서버와 Streamlit 프론트엔드를 각각 실행합니다.

# 터미널 1: MCP 서버 (SSE 모드)
poetry run python -m postgresql_mcp.server --sse

# 터미널 2: Streamlit 앱
poetry run streamlit run streamlit_app.py

🧪 테스트 쿼리 예시

  • "개발팀의 평균 연봉은 얼마인가요?"
  • "근속 3년 이상인 직원 중 급여 상위 5명 보여줘"
  • "부서별 남녀 성비를 파이차트로 그려줘"
  • "부서별 인원수 Top 5과 평균 근속연수를 함께 보여줘"
  • "올해 입사한 신입사원 명단"

더 많은 예시는 query.md 를 참고하세요.


📁 프로젝트 구조

PostgreSQL_MCP/
├── postgresql_mcp/        # MCP 서버 패키지
│   ├── __init__.py        #   패키지 메타 (버전 정보)
│   └── server.py          #   MCP 서버 핵심 로직 (stdio + SSE 전송)
├── scripts/
│   └── setup_demo_data.py #   데모 데이터(인사관리) 생성 스크립트
├── docs/
│   └── ARCHITECTURE.md    #   시스템 아키텍처 문서
├── streamlit_app.py       # Streamlit 웹 UI (채팅 + 차트)
├── config.py              # 통합 설정 (DB, MCP, AI 프롬프트 등)
├── query.md               # 추천 자연어 쿼리 예시 모음
├── pyproject.toml         # Poetry 의존성 관리
├── claude_desktop_config.json  # Claude Desktop 설정 예시
└── archive/               # 이전 버전 / 디버깅용 파일 보관

Reviews

No reviews yet

Sign in to write a review