
이 페이지는 AI로 자동 번역되었습니다. 기술적인 세부 사항은 원문을 확인하세요. 원문 보기
PostgreSQL schema 지능 MCP 서버 오프라인 라이팅, 마이그레이션 안전, AI 코딩 조수에 대한 쿼리 검증.
개요
PostgreSQL MCP 서버는 생산에 연결이 필요하지 않습니다. Dryrun는 AI 대리인, IDE 및 CI 가득 차있는 스키마 인식을 줍니다. 오프라인 스냅샷에서 데이터베이스 연결을 살 수 없습니다. schema, 유효한 쿼리, 체크 마이그레이션 안전, 그리고 외국 키 그래프를 탐구. DBA의 기계를 떠나지 않고 모든. Dryrun은 RegreSQL 및 Fixturize와 함께 LibertySQL 스위트의 일부입니다. LLM/AI 코딩 조수는 부호/SQL 쿼리를 쓰기에서 아주 좋습니다. 그러나 그들은 장님입니다. 그들은 당신의 schema, 당신의 색인 또는 너의 constraints를 모른다. ACCESS EXCLUSIVE 잠금을 가장 바쁜 테이블에 가져 와서 앱을 다운 보낼 수 있습니다. 일부 PostgreSQL MCP 서버는 데이터베이스 연결을 요청합니다. 그리고 당신은 SUPERUSER 권한을 필요로 할 수있는 관리 작업을 수행 할 수 있습니다. 그러나 문제가 묻고 싶습니다. 우리는 이미이 리드를 볼 수 있습니다 : AI 에이전트에 의해 닦은 생산 데이터베이스 및 MCP 서버에서 SQL 주입은 읽기 전용이어야합니다.
개요(AI 번역)
PostgreSQL MCP 서버는 생산에 연결이 필요하지 않습니다.
dryrun AI 에이전트, IDE, CI 전체 스키마 인식을 제공합니다. 오프라인 스냅샷에서 데이터베이스 연결을 살 수 없습니다. schema, 유효한 쿼리, 체크 마이그레이션 안전, 그리고 외국 키 그래프를 탐구. DBA의 기계를 떠나지 않고 모든.
dryrun RegreSQL과 Fixturize와 함께 LibertySQL 스위트의 일부입니다.
문제
LLM/AI 코딩 조수는 부호/SQL 쿼리를 쓰기에서 아주 좋습니다. 그러나 그들은 장님입니다. 그들은 당신의 schema, 당신의 색인 또는 너의 constraints를 모른다. 그들은 ACCESS EXCLUSIVE]가 가장 쉬운 테이블에 잠그고 앱을 다운받을 마이그레이션을 생성 할 수 있습니다.
일부 PostgreSQL MCP 서버는 데이터베이스 연결을 요청합니다. 그리고 당신은 SUPERUSER 권한을 필요로 할 수있는 관리 작업을 수행 할 수 있습니다. 그러나 문제가 묻고 싶습니다.
우리는 이미이 리드를 볼 수 있습니다 : AI 에이전트에 의해 닦은 생산 데이터베이스 및 MCP 서버에서 SQL 주입은 읽기 전용이어야합니다.
모델은 query 데이터베이스가 필요하지 않습니다. understand your schema: 구조, 제약, 통계 및 버전 별 행동.
이 페이지는 AI로 자동 번역되었습니다. 기술적인 세부 사항은 원문을 확인하세요.
README
원문 README의 일부입니다. 원문 보기.
DryRun PostgreSQL MCP
The PostgreSQL MCP server that doesn’t need connection to the production.
dryrun gives AI agents, IDEs, and CI full schema awareness. From offline snapshot, not live database connection. Lint your schema, validate queries, check migration safety, and explore foreign key graphs. All without credentials leaving the DBA’s machine.
dryrun is part of the boringSQL suite alongside RegreSQL and Fixturize.
The problem
LLM/AI coding assistants are very good in writing code/SQL queries. But they are blind. They don’t know your schema, your indexes or your constraints. They might generate a migration that takes an ACCESS EXCLUSIVE lock on your busiest table and send your app down.
Some PostgreSQL MCP server ask you for the database connection. And to perform the administrative tasks you might need SUPERUSER permission. But that’s like asking for problem.
We’ve already seen where this leads: production databases wiped by AI agents, and SQL injection in MCP servers that were supposed to be read-only.
The model doesn’t need to query your database. It needs to understand your schema: the structure, constraints, statistics, and version-specific behavior. That knowledge is structural. It changes when you deploy a migration, not between queries.
DryRun features
dryrun is two things: a CLI tool and an MCP server. The CLI extracts and analyzes your schema. The MCP server exposes that analysis to AI assistants. They’re separate on purpose.
CLI - extract and analyze
The CLI connects to your PostgreSQL database, introspects the full catalog (tables, views, indexes, constraints, partitions, functions, enums, RLS policies, triggers, extensions, GUCs), and writes a snapshot into .dryrun/history.db. That snapshot is the source of truth for everything else.
Once you have the snapshot, the CLI works offline:
- Lint - 20+ convention rules (naming, types, primary keys, timestamps, partitioning) and 13 structural audit rules (duplicate indexes, FK coverage, circular FKs, vacuum tuning)
- Migration safety - lock type analysis, duration estimates, table rewrite detection, safe alternatives for each DDL statement
- Query validation - SQL parsing via libpg_query, column reference checks against the actual schema, anti-pattern detection
- Snapshot diff - compare schema, planner stats, or activity between snapshots; detect drift against the live database
- Query stats - captures
pg_stat_statementsper node, collapses ORM query variants into shapes, diffs two captures to surface new or slowed queries
설치
npx -y @boringsql/dryrun mcp-serve설정
{
"mcpServers": {
"dryrun": {
"command": "npx",
"args": ["-y", "@boringsql/dryrun", "mcp-serve"]
}
}
}