Skip to main content
Glama

pg-context

AI 코딩 어시스턴트에게 깊은 PostgreSQL 컨텍스트(라이브 스키마를 DDL로, 인덱스 상태, 외래 키 연관 관계, 쿼리 실행 계획, 성능 통계)를 제공하는 Model Context Protocol(MCP) 서버입니다.

pg-context는 PostgreSQL 데이터베이스에 읽기 전용 모드로 직접 연결하여 Cursor, Claude Code, Cline, Antigravity 같은 AI 어시스턴트를 위한 도구와 리소스를 노출합니다.


왜 pg-context인가?

일반적인 SQL 도구는 AI 어시스턴트에게 구조적 컨텍스트를 제공하지 않은 채 임의의 쿼리를 실행하는 경우가 많습니다. 이로 인해 모델이 열 이름을 추측하고, 관계를 환각하며, 잘못된 조인을 생성하게 됩니다.

pg-context는 다음을 제공하여 이 문제를 해결합니다.

  • 추측 없는 스키마 컨텍스트: 실제 테이블 구조를 외래 키 주석과 인덱스 정의가 포함된 PostgreSQL CREATE TABLE DDL 문으로 내보냅니다.

  • 읽기 전용 보안: 모든 클라이언트 연결에 default_transaction_read_only = ON을 자동으로 설정하고 변경 쿼리(DROP, DELETE, UPDATE, INSERT, TRUNCATE, ALTER 등)를 거부합니다.

  • 최적화 인사이트: 인덱스되지 않은 외래 키, 높은 순차 스캔 비율, 사용되지 않는 인덱스, pg_stat_statements의 느린 쿼리를 감지합니다.

  • 확장 인식: PostGIS, TimescaleDB, pgvector 확장을 식별합니다.


빠른 시작

npx를 통해 pg-context를 수동 설치 없이 직접 실행할 수 있습니다:

npx -y pg-context-mcp

또는 전역으로 설치할 수 있습니다:

npm install -g pg-context-mcp
pg-context-mcp

설정

pg-context는 환경 변수 또는 표준 PostgreSQL 연결 문자열에서 연결 매개변수를 읽습니다:

변수

설명

기본값

DATABASE_URL

표준 PostgreSQL 연결 URI

undefined

PGHOST

데이터베이스 호스트

localhost

PGPORT

데이터베이스 포트

5432

PGDATABASE

데이터베이스 이름

postgres

PGUSER

데이터베이스 사용자

postgres

PGPASSWORD

데이터베이스 비밀번호

""

PGSSL

SSL 연결 활성화 (true/false)

false

PG_SCHEMAS

대상 스키마의 쉼표로 구분된 목록

public

PG_MAX_CONNECTIONS

연결 풀 크기

5

PG_CACHE_TTL

스키마 캐시 TTL(초)

60

PG_QUERY_LIMIT

read_query의 기본 행 제한

100

PG_QUERY_LIMIT_MAX

read_query의 최대 상한

1000


클라이언트 통합

1. Claude Desktop 및 Antigravity

claude_desktop_config.json 또는 Antigravity MCP 설정에 다음 항목을 추가하세요:

{
  "mcpServers": {
    "pg-context": {
      "command": "npx",
      "args": ["-y", "pg-context-mcp"],
      "env": {
        "DATABASE_URL": "postgresql://user:password@localhost:5432/my_database"
      }
    }
  }
}

2. Cursor

Cursor MCP 구성에 다음을 추가하세요 (.cursor/mcp.json 또는 Cursor 설정 > 기능 > MCP):

{
  "mcpServers": {
    "pg-context": {
      "command": "npx",
      "args": ["-y", "pg-context-mcp"],
      "env": {
        "DATABASE_URL": "postgresql://user:password@localhost:5432/my_database"
      }
    }
  }
}

3. Cline (VS Code 확장 프로그램)

cline_mcp_settings.json에 이 구성을 추가하세요:

{
  "mcpServers": {
    "pg-context": {
      "command": "npx",
      "args": ["-y", "pg-context-mcp"],
      "env": {
        "DATABASE_URL": "postgresql://user:password@localhost:5432/my_database"
      }
    }
  }
}

도구 참조

pg-context는 12개의 MCP 도구를 제공합니다:

도구

매개변수

설명

list_schemas

없음

데이터베이스의 모든 비시스템 스키마를 나열합니다.

list_tables

schema (기본값: "public")

테이블과 뷰를 크기, 예상 행 수, 주석과 함께 나열합니다.

describe_table

table, schema (기본값: "public")

열, 유형, 기본값, NOT NULL, 외래 키 및 인덱스를 포함한 테이블의 전체 구조 DDL을 반환합니다.

list_foreign_keys

schema (기본값: "public"), table (선택 사항)

외래 키 관계를 읽기 쉬운 source -> target 연결로 표시합니다.

list_indexes

schema (기본값: "public"), table (선택 사항)

인덱스, 정의, 크기 및 스캔 횟수를 표시합니다.

suggest_indexes

schema (기본값: "public"), table (선택 사항)

인덱스되지 않은 외래 키, 순차 스캔 경고, 사용되지 않는 인덱스를 식별합니다.

read_query

sql, limit (선택 사항)

강제된 제한으로 읽기 전용 쿼리를 실행하고 Markdown 테이블을 반환합니다.

explain_query

sql, analyze (boolean, 기본값: false)

PostgreSQL EXPLAIN 또는 EXPLAIN ANALYZE의 쿼리 실행 계획을 반환합니다.

get_database_info

없음

PostgreSQL 버전, 전체 데이터베이스 크기, 연결 수 및 버퍼 설정을 반환합니다.

get_table_stats

schema (기본값: "public"), table (선택 사항)

순차 스캔 대 인덱스 스캔, 활성 행, 죽은 행 및 유지 관리 날짜를 반환합니다.

get_slow_queries

limit (기본값: 15)

pg_stat_statements에 기록된 가장 느린 상위 쿼리를 가져옵니다.

list_extensions

없음

설치된 PostgreSQL 확장을 나열하고 PostGIS, TimescaleDB 및 pgvector의 기능을 표시합니다.


리소스 참조

pg-context는 3개의 MCP 리소스를 제공합니다:

리소스 URI

MIME 유형

설명

pg://schema/full

text/x-sql

구성된 모든 스키마에 걸친 모든 테이블의 전체 DDL 덤프.

pg://schema/{tableName}

text/x-sql

개별 테이블의 DDL 정의.

pg://stats/overview

text/markdown

데이터베이스 상태 개요: 스토리지 크기, 죽은 행 및 최적화 경고.


개발

# Clone the repository
git clone https://github.com/mewsyy/pg-context.git
cd pg-context

# Install dependencies
npm install

# Run test suite
npm test

# Build TypeScript
npm run build

# Start local server
npm start

라이선스

MIT (c) Semen

-
license - not tested
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

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/mewsyy/pg-context'

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