MCP 문서 관리

메뉴

PostgreSQL

PostgreSQL

PostgreSQL MCP 서버는 LLM이 PostgreSQL 데이터베이스와 상호작용할 수 있게 해주는 Model Context Protocol 서버입니다. 이 서버는 기본적으로 데이터베이스 스키마 검사 및 읽기 전용 쿼리를 실행할 수 있는 기능을 제공합니다.

특징

  • PostgreSQL 데이터베이스에 대한 안전한 접근
  • 읽기 전용 모드로 데이터 무결성 보장
  • 데이터베이스 스키마 자동 검색
  • SQL 쿼리 실행 계획 분석
  • 데이터베이스 성능 모니터링
  • 테이블, 열, 인덱스, 제약 조건 등의 상세 정보 제공
  • AWS, Azure 및 기타 클라우드 환경의 PostgreSQL 인스턴스 지원

주요 도구

스키마 검사 도구

  • listTables: 데이터베이스의 모든 테이블 목록 조회
  • describeTable: 테이블 스키마 상세 정보 조회
  • listIndexes: 테이블의 인덱스 정보 조회
  • listConstraints: 테이블의 제약 조건 정보 조회
  • listSchemas: 데이터베이스의 모든 스키마 목록 조회

쿼리 실행 도구

  • executeQuery: 읽기 전용 트랜잭션 내에서 SQL 쿼리 실행
  • explainQuery: SQL 쿼리의 실행 계획 및 분석
  • analyzeSql: SQL 쿼리 문법 분석 및 검증

성능 분석 도구

  • getSlowQueries: 가장 느린 SQL 쿼리 목록 조회
  • analyzeQueryPerformance: 쿼리 성능 분석
  • recommendIndexes: 워크로드 기반 최적 인덱스 추천
  • simulateIndex: 가상 인덱스 시뮬레이션

상태 확인 도구

  • checkHealth: 데이터베이스 건강 상태 확인
  • monitorConnections: 활성 연결 모니터링
  • checkBufferCacheHitRate: 버퍼 캐시 적중률 확인
  • checkVacuumHealth: Vacuum 프로세스 상태 확인

설치 및 사용 방법

Claude Desktop 구성

Claude Desktop에서 PostgreSQL MCP 서버를 사용하기 위한 구성:

{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-postgres",
        "postgresql://user:password@localhost:5432/mydb"
      ]
    }
  }
}

Docker 사용

Docker를 통한 PostgreSQL MCP 서버 실행:

{
  "mcpServers": {
    "postgres": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "mcp/postgres",
        "postgresql://host.docker.internal:5432/mydb"
      ]
    }
  }
}

VS Code 구성

VS Code에서 Copilot과 함께 사용하기 위한 설정:

{
  "mcp": {
    "inputs": [
      {
        "type": "promptString",
        "id": "pg_url",
        "description": "PostgreSQL URL (e.g. postgresql://user:pass@localhost:5432/mydb)"
      }
    ],
    "servers": {
      "postgres": {
        "command": "npx",
        "args": [
          "-y",
          "@modelcontextprotocol/server-postgres",
          "${input:pg_url}"
        ]
      }
    }
  }
}

고급 PostgreSQL MCP 서버

기본 PostgreSQL MCP 서버 외에도 더 많은 기능을 제공하는 고급 버전도 있습니다:

  1. Postgres MCP Pro: 전체 개발 프로세스(초기 코딩, 테스트, 배포, 프로덕션 튜닝)를 지원하는 강화된 MCP 서버
  2. Azure Database for PostgreSQL MCP Server: Microsoft Azure PostgreSQL 인스턴스와 특별히 통합된 서버
  3. PostgreSQL와 연동된 DBHub: MySQL, PostgreSQL, SQLite, DuckDB 등 여러 데이터베이스를 지원하는 범용 MCP 서버

프롬프트 예시

PostgreSQL MCP 서버와 상호작용하기 위한 예시 프롬프트:

  1. "데이터베이스의 모든 테이블 목록을 보여주세요"
  2. "customers 테이블의 스키마를 설명해주세요"
  3. "지난 달 이후 가입한 모든 고객을 찾는 쿼리를 실행해주세요"
  4. "주문 테이블에서 가장 많은 주문을 한 고객 상위 10명을 찾아주세요"
  5. "다음 쿼리의 실행 계획을 분석해주세요: SELECT * FROM orders WHERE customer_id = 123"
  6. "orders 테이블에서 가장 느린 쿼리를 찾아주세요"
  7. "현재 데이터베이스의 연결 상태를 확인해주세요"
  8. "sales 테이블에 대한 최적의 인덱스를 추천해주세요"

보안 고려사항

PostgreSQL MCP 서버는 기본적으로 읽기 전용 모드로 작동하여 데이터 무결성을 보호합니다. 이는 읽기 전용 트랜잭션을 사용하거나 읽기 전용 권한을 가진 사용자 계정을 활용하여 구현됩니다. 실제 프로덕션 환경에서는 최소 권한 원칙에 따라 데이터베이스 접근을 구성하는 것을 권장합니다.

연결된 구성 요소

  • MongoDB - NoSQL 문서 기반 데이터베이스 서버
  • Neo4j - 그래프 데이터베이스 서버
  • Elasticsearch - 검색 엔진 데이터베이스 서버
  • Redis - 키-값 저장소 데이터베이스 서버