AI 연동(MCP)
갱신
sqemo-mcp는 AI 에이전트가 ERD를 다루게
하는 로컬 MCP(Model Context Protocol) 서버입니다: 엔터티·속성·관계 읽기와 편집,
SQL·DBML 가져오기·내보내기, 팀 표준에 따른 물리명 생성·검사, 린트·자동 배치·diff,
그리고 Pro에서는 실제 데이터베이스를 읽어 가져오거나 드리프트를 검사합니다. npx로
실행됩니다 — 별도 설치가 없습니다.
요구 사항
Node.js 22 이상.
클라이언트 설정
Claude Code — 프로젝트 루트의 .mcp.json에 추가:
{
"mcpServers": {
"sqemo": { "command": "npx", "args": ["-y", "sqemo-mcp"] }
}
}
Claude Desktop — 설정 파일에 같은 mcpServers 항목을 추가:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
Codex CLI — 명령 하나로 등록:
codex mcp add sqemo -- npx -y sqemo-mcp
또는 ~/.codex/config.toml에 같은 내용의 TOML을 추가:
[mcp_servers.sqemo]
command = "npx"
args = ["-y", "sqemo-mcp"]
다른 대부분의 MCP 클라이언트(Cursor 등)도 같은 mcpServers JSON을 씁니다.
이미 AI 에이전트를 쓰고 있다면, 이 페이지 URL을 Claude Code·Codex·Cursor에 붙여 넣고 sqemo MCP 서버를 연결해 달라고 하세요 — 위 단계가 필요한 전부입니다.
서버 ERD를 쓰려면 로그인
로컬 .erd.json 파일에는 로그인이 필요 없습니다 — 파일 도구는 전부 오프라인으로
동작합니다. Sqemo 서버에 저장된 ERD를 읽거나 편집하려면 터미널에서 한 번 로그인합니다:
npx sqemo-mcp login # Google, GitHub, 또는 이메일 + 비밀번호 선택
npx sqemo-mcp logout # 저장된 자격 증명 삭제
login은 로그인 방식을 묻습니다. Google과 GitHub은 브라우저 탭을 열고 결과를
터미널로 돌려주며, 세 번째 옵션은 터미널을 떠나지 않고 이메일과 비밀번호를 받습니다.
어느 쪽이든 저장되는 것은 리프레시 토큰뿐이며(~/.erdmaker/credentials.json) —
비밀번호는 절대 저장되지 않습니다.
그 기기에 브라우저가 없다면 npx sqemo-mcp login --password를 쓰거나, 무인 실행에는
SQEMO_EMAIL / SQEMO_PASSWORD를 설정하세요.
에이전트 없이 CI에서
이 패키지는 파이프라인용 오프라인 CLI로도 동작합니다:
# 명명 표준 위반이 있으면 빌드 실패(종료 코드 1)
npx sqemo-mcp lint schema.erd.json
# SQL 또는 DBML을 stdout으로 내보내기
npx sqemo-mcp export schema.erd.json --format sql --dialect postgres > schema.sql
GitHub Actions:
- run: npx sqemo-mcp lint schema.erd.json
CI 드리프트 검사(Pro)
Pro에서는 lint가 ERD를 실제 데이터베이스와 비교해 서로 어긋났으면 CI를 실패시킬 수
있습니다. Google/GitHub으로 가입했을 때 비밀번호를 설정하는 법, 데이터베이스가 없을 때
Docker로 시험하는 법까지 단계별 안내는
실제 데이터베이스 연결을 보세요.
# .github/workflows/schema-drift.yml
- run: npx sqemo-mcp lint erd/app.erd.json --db "$DATABASE_URL" --ignore "flyway_*"
env:
DATABASE_URL: ${{ secrets.DATABASE_URL }} # 읽기 전용 계정 권장
SQEMO_EMAIL: ${{ secrets.SQEMO_EMAIL }} # Sqemo Pro 계정 (비밀번호 로그인;
SQEMO_PASSWORD: ${{ secrets.SQEMO_PASSWORD }} # OAuth 전용 계정은 먼저 비밀번호 설정)
SQEMO_EMAIL/SQEMO_PASSWORD는 CI 작업이 도는 동안만 로그인합니다 — login 단계나
저장된 토큰이 필요 없습니다. 대화형 로그인은 브라우저를 쓸 수 있지만 CI 작업에는
브라우저가 없으므로 비밀번호가 필요합니다. Google/GitHub OAuth로 만든 Sqemo 계정에는
아직 비밀번호가 없습니다 —
한 번 설정한 뒤
여기 쓰세요. 인트로스펙션 자체는 CI 작업 안에서 실행되며 information_schema만
조회합니다 — 데이터베이스 접속 정보는 Sqemo로 전송되지 않습니다.
CI에 데이터베이스 자격 증명을 아예 두고 싶지 않다면 스키마 덤프와 비교하세요. 이것도 로그인이 필요 없습니다:
npx sqemo-mcp lint erd/app.erd.json --schema schema.sql --dialect postgres
에이전트가 할 수 있는 것
도구는 총 39개입니다. 몇 가지만 들면: get_erd_overview, upsert_entity,
upsert_attribute, upsert_relationship, upsert_attributes,
upsert_dictionary_words와 upsert_domains(한 번의 저장으로 일괄 편집), import_sql,
import_dbml, export_sql, export_dbml, generate_physical_name, check_naming,
lint_erd, auto_layout, diff_erds, 팀 표준에 새 단어를 제안하는 제안 도구들(승인·
반려는 여전히 사람이 합니다 — 그쪽은 2분 영상에
있습니다), 그리고 실제 데이터베이스를 상대하는 Pro 도구 둘: introspect_db(라이브
PostgreSQL/MySQL 스키마를 ERD로 가져오기, 읽기 전용)와 check_db_drift(라이브
데이터베이스나 스키마 덤프가 ERD에서 어긋났는지 검사).
자주 묻는 질문
- MCP 서버를 쓰려면 Sqemo 계정이 필요한가요?
- 아니요. 파일 도구는 전부 로그인 없이 로컬 .erd.json 파일에서 오프라인으로 동작합니다. 계정은 Sqemo 서버에 저장된 ERD를 읽거나 편집할 때만(npx sqemo-mcp login), Pro는 유료 도구 세 가지(export_alter_sql, introspect_db, check_db_drift)에만 필요합니다.
- sqemo-mcp는 어떤 Node.js 버전이 필요한가요?
- Node.js 22 이상입니다. npx -y sqemo-mcp 로 실행되므로 전역으로 설치할 것이 없습니다.
- AI 에이전트 없이 CI에서 명명 표준을 강제할 수 있나요?
- 네. npx sqemo-mcp lint schema.erd.json 은 명명 표준 위반이 있으면 종료 코드 1을 반환하므로 GitHub Actions 단계가 빌드를 실패시킵니다. Pro에서는 --db 로 ERD를 실제 데이터베이스와 비교해 드리프트가 있으면 실패하고, --schema 는 로그인 없이 SQL 덤프와 같은 비교를 합니다.
- 데이터베이스 접속 정보가 Sqemo로 전송되나요?
- 아니요. 인트로스펙션은 사용자의 기기나 CI 작업 안에서 실행되며 information_schema만 조회합니다. 데이터베이스 접속 정보는 그 환경을 벗어나지 않고, Sqemo 로그인은 플랜 확인에만 쓰입니다.