PostgreSQL MCP Server

by HenkDz
Verified

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Supports PostgreSQL installation and configuration on Linux platforms with customized setup instructions tailored to Linux environments.

  • Provides platform-specific PostgreSQL installation and configuration guidance for macOS systems.

  • Requires Node.js runtime environment for server operation, with specific version requirements (≥ 18.0.0) for proper functionality.

PostgreSQL MCP 서버

PostgreSQL 데이터베이스 관리 기능을 제공하는 모델 컨텍스트 프로토콜(MCP) 서버입니다. 이 서버는 기존 PostgreSQL 설정 분석, 구현 지침 제공, 데이터베이스 문제 디버깅, 스키마 관리, 데이터 마이그레이션 및 데이터베이스 성능 모니터링을 지원합니다.

특징

데이터베이스 분석 및 디버깅

1. 데이터베이스 분석( analyze_database )

PostgreSQL 데이터베이스 구성 및 성능 측정 항목을 분석합니다.

  • 구성 분석
  • 성과 지표
  • 보안 평가
  • 최적화를 위한 권장 사항

지엑스피1

2. 설정 지침( get_setup_instructions )

단계별 PostgreSQL 설치 및 구성 지침을 제공합니다.

  • 플랫폼별 설치 단계
  • 구성 권장 사항
  • 보안 모범 사례
  • 설치 후 작업
// Example usage { "platform": "linux", // Required: "linux" | "macos" | "windows" "version": "15", // Optional: PostgreSQL version "useCase": "production" // Optional: "development" | "production" }

3. 데이터베이스 디버깅( debug_database )

일반적인 PostgreSQL 문제를 디버깅합니다.

  • 연결 문제
  • 성능 병목 현상
  • 잠금 충돌
  • 복제 상태
// Example usage { "connectionString": "postgresql://user:password@localhost:5432/dbname", "issue": "performance", // Required: "connection" | "performance" | "locks" | "replication" "logLevel": "debug" // Optional: "info" | "debug" | "trace" }

스키마 관리

4. 스키마 정보( get_schema_info )

데이터베이스 또는 특정 테이블에 대한 자세한 스키마 정보를 얻으세요.

  • 데이터베이스의 테이블 목록
  • 열 정의
  • 제약 조건(기본 키, 외래 키 등)
  • 인덱스
// Example usage { "connectionString": "postgresql://user:password@localhost:5432/dbname", "tableName": "users" // Optional: specific table to get info for }

5. 테이블 생성( create_table )

지정된 열로 새 테이블을 만듭니다.

  • 열 이름과 유형 정의
  • null 허용 제약 조건 설정
  • 기본값 설정
// Example usage { "connectionString": "postgresql://user:password@localhost:5432/dbname", "tableName": "users", "columns": [ { "name": "id", "type": "SERIAL", "nullable": false }, { "name": "username", "type": "VARCHAR(100)", "nullable": false }, { "name": "email", "type": "VARCHAR(255)", "nullable": false }, { "name": "created_at", "type": "TIMESTAMP", "default": "NOW()" } ] }

6. 테이블 변경( alter_table )

기존 테이블 수정:

  • 새로운 열 추가
  • 열 유형 또는 제약 조건 수정
  • 열 삭제
// Example usage { "connectionString": "postgresql://user:password@localhost:5432/dbname", "tableName": "users", "operations": [ { "type": "add", "columnName": "last_login", "dataType": "TIMESTAMP" }, { "type": "alter", "columnName": "email", "nullable": false }, { "type": "drop", "columnName": "temporary_field" } ] }

데이터 마이그레이션

7. 테이블 데이터 내보내기( export_table_data )

JSON 또는 CSV 형식으로 테이블 데이터 내보내기:

  • WHERE 절을 사용하여 데이터 필터링
  • 행 수 제한
  • 출력 형식을 선택하세요
// Example usage { "connectionString": "postgresql://user:password@localhost:5432/dbname", "tableName": "users", "outputPath": "./exports/users.json", "where": "created_at > '2023-01-01'", // Optional "limit": 1000, // Optional "format": "json" // Optional: "json" | "csv" }

8. 테이블 데이터 가져오기( import_table_data )

JSON 또는 CSV 파일에서 데이터 가져오기:

  • 선택적으로 가져오기 전에 테이블을 잘라냅니다.
  • 다양한 형식 지원
  • 사용자 정의 CSV 구분 기호
// Example usage { "connectionString": "postgresql://user:password@localhost:5432/dbname", "tableName": "users", "inputPath": "./imports/users.json", "truncateFirst": false, // Optional "format": "json", // Optional: "json" | "csv" "delimiter": "," // Optional: for CSV files }

9. 데이터베이스 간 복사( copy_between_databases )

두 PostgreSQL 데이터베이스 간에 데이터 복사:

  • WHERE 절을 사용하여 데이터 필터링
  • 선택적으로 대상 테이블을 잘라냅니다.
// Example usage { "sourceConnectionString": "postgresql://user:password@localhost:5432/source_db", "targetConnectionString": "postgresql://user:password@localhost:5432/target_db", "tableName": "users", "where": "active = true", // Optional "truncateTarget": false // Optional }

모니터링

10. 모니터 데이터베이스( monitor_database )

PostgreSQL 데이터베이스의 실시간 모니터링:

  • 데이터베이스 메트릭(연결, 캐시 적중률 등)
  • 테이블 메트릭(크기, 행 수, 데드 튜플)
  • 활성 쿼리 정보
  • 잠금 정보
  • 복제 상태
  • 구성 가능한 알림
// Example usage { "connectionString": "postgresql://user:password@localhost:5432/dbname", "includeTables": true, // Optional "includeQueries": true, // Optional "includeLocks": true, // Optional "includeReplication": false, // Optional "alertThresholds": { // Optional "connectionPercentage": 80, "longRunningQuerySeconds": 30, "cacheHitRatio": 0.95, "deadTuplesPercentage": 10, "vacuumAge": 7 } }

필수 조건

  • 노드.js >= 18.0.0
  • PostgreSQL 서버(대상 데이터베이스 작업용)
  • 대상 PostgreSQL 인스턴스에 대한 네트워크 액세스

설치

  1. 저장소를 복제합니다
  2. 종속성 설치:
    npm install
  3. 서버를 빌드하세요:
    npm run build
  4. MCP 설정 파일에 추가:
    { "mcpServers": { "postgresql-mcp": { "command": "node", "args": ["/path/to/postgresql-mcp-server/build/index.js"], "disabled": false, "alwaysAllow": [] } } }

개발

  • npm run dev - 핫 리로드로 개발 서버 시작
  • npm run lint - ESLint 실행
  • npm test - 테스트 실행

보안 고려 사항

  1. 연결 보안
    • 연결 풀링을 사용합니다
    • 연결 시간 초과를 구현합니다
    • 연결 문자열을 검증합니다
    • SSL/TLS 연결을 지원합니다
  2. 쿼리 안전
    • SQL 쿼리를 검증합니다
    • 위험한 작업을 방지합니다
    • 쿼리 시간 초과를 구현합니다
    • 모든 작업을 기록합니다
  3. 입증
    • 다양한 인증 방식 지원
    • 역할 기반 액세스 제어를 구현합니다.
    • 비밀번호 정책을 시행합니다
    • 연결 자격 증명을 안전하게 관리합니다

모범 사례

  1. 항상 적절한 자격 증명을 사용하여 보안 연결 문자열을 사용하세요.
  2. 민감한 환경에 대한 프로덕션 보안 권장 사항을 따르세요.
  3. 정기적으로 데이터베이스 성능을 모니터링하고 분석합니다.
  4. PostgreSQL 버전을 최신 상태로 유지하세요
  5. 적절한 백업 전략을 구현하세요
  6. 더 나은 리소스 관리를 위해 연결 풀링을 사용하세요
  7. 적절한 오류 처리 및 로깅 구현
  8. 정기적인 보안 감사 및 업데이트

오류 처리

서버는 포괄적인 오류 처리를 구현합니다.

  • 연결 실패
  • 쿼리 시간 초과
  • 인증 오류
  • 권한 문제
  • 리소스 제약

기여하다

  1. 저장소를 포크하세요
  2. 기능 브랜치 생성
  3. 변경 사항을 커밋하세요
  4. 지점으로 밀어 넣기
  5. 풀 리퀘스트 만들기

특허

이 프로젝트는 AGPLv3 라이선스에 따라 라이선스가 부여되었습니다. 자세한 내용은 라이선스 파일을 참조하세요.

-
security - not tested
A
license - permissive license
-
quality - not tested

분석, 스키마 관리, 데이터 마이그레이션, 자연어 상호작용을 통한 모니터링 등 강력한 PostgreSQL 데이터베이스 관리 기능을 제공하는 모델 컨텍스트 프로토콜 서버입니다.

  1. Features
    1. Database Analysis and Debugging
    2. Schema Management
    3. Data Migration
    4. Monitoring
  2. Prerequisites
    1. Installation
      1. Development
        1. Security Considerations
          1. Best Practices
            1. Error Handling
              1. Contributing
                1. License
                  ID: 39cm5xytx2