Claude Code가 셸 권한 없이 SSH를 통해 온프레미스 서버와 PostgreSQL을 읽을 수 있게 해주는 MCP 서버를 구축했습니다
요약
Claude Code나 Cursor와 같은 AI 에이전트가 SSH를 통해 온프레미스 서버 및 PostgreSQL 데이터베이스를 안전하게 조회할 수 있도록 돕는 infra-mcp를 소개합니다. 셸 권한 없이 읽기 전용 쿼리와 시스템 로그 확인이 가능하며, 모든 작업은 감사 로그와 허용 목록을 통해 보안이 강화되었습니다.
핵심 포인트
- SSH 터널을 통한 안전한 온프레미스 인프라 접근 지원
- PostgreSQL 읽기 전용 쿼리 및 스키마 조사 기능 제공
- 시스템 로그 확인 및 VM 인프라 개요 파악 가능
- 허용 목록 및 감사 로그를 통한 강력한 보안 설계
- uv를 이용한 간편한 설치 및 MCP 서버 등록
"이 서비스가 작동 중인가요?" 또는 "왜 저 DB에 40개의 대기 중인 락(lock)이 있나요?"와 같은 기본적인 운영 질문에 답하기 위해 Claude와 터미널 사이를 계속 오가는 것에 지쳤습니다.
그래서 infra-mcp를 구축했습니다. 이는 Claude Code나 Cursor에 한 번만 등록하면 되는 stdio MCP 서버로, 다음과 같은 작업을 에이전트가 수행할 수 있게 합니다:
- systemd 서비스 상태 확인 및 제한된 journal 로그 가져오기
- PostgreSQL에서 읽기 전용 SQL 쿼리 실행 (schema introspection — list_tables, describe_table 포함)
- 단 한 번의 호출로 VM에 대한 전체 인프라 개요 파악
- 모든 작업은 기존 서버로 연결된 SSH 터널을 통해 진행됩니다.
보안이 핵심이었으므로, 어떤 부분도 타협하지 않았습니다:
- 모든 SSH 명령은 네트워크 호출 전에 VM별 허용 목록(allowlist)과 대조하여 확인됩니다.
- DB 쿼리는 READ ONLY 트랜잭션 내에서 전용 읽기 전용 역할(read-only role)로 실행됩니다.
- 모든 원격 작업은 로컬의 추가 전용(append-only) 감사 로그(audit log)에 기록됩니다.
- 셸(shell) 액세스 권한이 없으며, 쓰기 경로도 없습니다.
설치 방법:
uv tool install infra-mcp
그 다음 infra-mcp generate-config를 실행하여 ~/.ssh/config로부터 부트스트랩하고, 클라이언트 설정에 infra-mcp run을 stdio 서버로 등록하세요.
GitHub + PyPI: https://github.com/esp4ce/infra-mcp
질문에 기꺼이 답변해 드리겠습니다. 특히 읽기 전용 제약 사항이 실제로 방해가 되는 사용 사례가 있는지 궁금합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 r/ClaudeAI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기