MCP Gateway
GenD는 Model Context Protocol (MCP) 서버를 내장하여, Claude Desktop, Cursor, VS Code Copilot 등 외부 AI 클라이언트가 GenD의 카탈로그, SQL, 거버넌스 기능을 직접 활용할 수 있습니다.

개요
| 항목 | 내용 |
|---|---|
| 프로토콜 | MCP Streamable HTTP (JSON-RPC 2.0) |
| 엔드포인트 | POST /mcp |
| 도구 | 19개 (카탈로그, SQL, 품질, PII, 리니지, 커넥터 등) |
| 리소스 | 7개 (gend:// URI 스킴) |
| 인증 | Keycloak JWT Bearer + OAuth Discovery |
| 보안 | MCPGovernor (인증/레이트제한/감사), SqlGuard (SELECT only) |
관리 대시보드
사이드바 하단 ⚙ 관리 콘솔 → AI & MCP 플랫폼 → MCP 게이트웨이 페이지에서 MCP Gateway 상태를 모니터링합니다:
- 서버 상태: 활성/비활성, 버전, 도구/리소스 수
- 도구 통계: 각 도구별 호출 횟수, 평균 응답시간, 에러율
- 호출 이력: 최근 호출 로그 (사용자, 도구, 상태, 응답시간)
- 일별 추이: 호출 수, 에러 수, 평균 응답시간 추이
제공 도구 (19개)
카탈로그 탐색
| 도구 | 설명 |
|---|---|
list_catalogs | Trino 카탈로그 목록 |
list_schemas | 스키마 목록 |
list_tables | 테이블 목록 |
describe_table | 컬럼 상세 (이름, 타입) |
sample_table | 샘플 데이터 미리보기 (max 100행) |
SQL 실행
| 도구 | 설명 |
|---|---|
execute_query | SELECT SQL 실행 (DML/DDL 차단, auto-LIMIT) |
거버넌스 (GenD 차별점)
| 도구 | 설명 |
|---|---|
get_quality_score | 테이블 4축 품질 점수 |
get_quality_dashboard | 전체 품질 현황 |
list_pii_columns | PII 태그 컬럼 목록 |
get_lineage | 리니지 그래프 (upstream/downstream) |
search_glossary | 비즈니스 용어 검색 |
get_schema_changes | 스키마 변경 이력 |
get_cost_summary | 쿼리 비용 요약 |
데이터 엔지니어링
| 도구 | 설명 |
|---|---|
list_connectors | 데이터 소스 커넥터 목록 |
list_pipelines | 파이프라인 템플릿 목록 |
list_data_marts | 데이터 마트 목록 |
get_compliance_dashboard | 컴플라이언스 현황 |
쓰기 도구 (기본 비활성화)
| 도구 | 설명 | 활성화 |
|---|---|---|
save_query | SQL 저장 | GEND_MCP_WRITE_TOOLS_ENABLED=true |
create_glossary_term | 용어 등록 | GEND_MCP_WRITE_TOOLS_ENABLED=true |
외부 AI 연동 방법
Claude Desktop
claude_desktop_config.json에 다음을 추가합니다:
{
"mcpServers": {
"gend": {
"url": "https://gend.example.com/mcp",
"headers": {
"Authorization": "Bearer <keycloak-jwt-token>"
}
}
}
}
Cursor
Cursor Settings > MCP Servers에서:
- URL:
https://gend.example.com/mcp - Auth: Bearer Token (Keycloak JWT)
VS Code (GitHub Copilot)
MCP 설정에서 GenD 서버를 추가합니다.
리소스 (gend:// URI)
AI 클라이언트가 컨텍스트로 참조할 수 있는 데이터:
| URI | 내용 |
|---|---|
gend://platform/info | 플랫폼 정보 |
gend://quality/dashboard | 품질 대시보드 |
gend://governance/pii-columns | PII 컬럼 목록 |
gend://catalog/{cat}/{sch}/{tbl}/columns | 테이블 컬럼 |
gend://catalog/{cat}/{sch}/{tbl}/quality | 품질 점수 |
gend://catalog/{cat}/{sch}/{tbl}/lineage | 리니지 |
gend://glossary/{term} | 용어 정의 |
OAuth Discovery
MCP 클라이언트가 인증 방법을 자동 탐색합니다:
GET /.well-known/oauth-protected-resource
{
"resource": "/mcp",
"authorization_servers": ["https://keycloak.example.com/realms/gend"],
"bearer_methods_supported": ["header"]
}
설정
| 환경변수 | 기본값 | 설명 |
|---|---|---|
GEND_MCP_SERVER_ENABLED | true | MCP Gateway 활성화 |
GEND_MCP_SERVER_NAME | gend-mcp-server | 서버 식별자 |
GEND_MCP_SERVER_VERSION | 1.0.0 | 서버 버전 |
GEND_MCP_MAX_QUERY_ROWS | 100 | SQL 쿼리 최대 반환 행 수 |
GEND_MCP_WRITE_TOOLS_ENABLED | false | 쓰기 도구 활성화 |
GEND_MCP_RATE_LIMIT_PER_MINUTE | 60 | 분당 호출 한도 |
API 엔드포인트
MCP 프로토콜
| Method | Path | 설명 |
|---|---|---|
| POST | /mcp | MCP JSON-RPC 2.0 요청 |
| GET | /.well-known/oauth-protected-resource | OAuth Discovery |
관리 대시보드 (admin 전용)
| Method | Path | 설명 |
|---|---|---|
| GET | /api/v1/mcp/server/status | 서버 상태 |
| GET | /api/v1/mcp/server/tools | 도구 목록 + 통계 |
| GET | /api/v1/mcp/server/calls | 호출 이력 |
| GET | /api/v1/mcp/server/stats | 일별 통계 |
레거시 (하위 호환)
| Method | Path | 설명 |
|---|---|---|
| POST | /api/v1/mcp/call | 외부 MCP Gateway 호출 (레거시) |
| GET | /api/v1/mcp/tools | 외부 도구 목록 (레거시) |
| GET | /api/v1/mcp/logs | 호출 로그 (레거시) |