mcp-transport-hardening-skill은(는) 무엇을 하나요?
MCP 서버용 14가지 전송 강화 규칙을 제공하는 Claude 스킬입니다. 두 가지 사양 기준선(stdio/SSE 및 Streamable HTTP)에 걸쳐 적용되며, 각 규칙의 범위는 코드 상의 라인 위치에 따라 결정됩니다(해당 라인이 실행되는 전송 방식에 따르지 않음).
규칙 목록
| 번호 | 규칙 이름 | 설명 | 대상 전송 |
|---|---|---|---|
| 1 | transport-hardening-001 | 입력 유효성 검사 강화 | stdio, SSE, Streamable HTTP |
| 2 | transport-hardening-002 | 메시지 크기 제한 적용 | stdio, SSE |
| 3 | transport-hardening-003 | 연결 인증 요구 | Streamable HTTP |
| 4 | transport-hardening-004 | TLS 사용 강제 | Streamable HTTP |
| 5 | transport-hardening-005 | 메시지 무결성 검증 | 모든 전송 |
| 6 | transport-hardening-006 | 재생 공격 방지 | Streamable HTTP |
| 7 | transport-hardening-007 | 요청 속도 제한 | 모든 전송 |
| 8 | transport-hardening-008 | 세션 타임아웃 구성 | Streamable HTTP |
| 9 | transport-hardening-009 | 에러 메시지 정보 최소화 | 모든 전송 |
| 10 | transport-hardening-010 | 특수 문자 이스케이프 | stdio |
| 11 | transport-hardening-011 | 경로 순회 방지 | stdio |
| 12 | transport-hardening-012 | CORS 정책 강화 | SSE, Streamable HTTP |
| 13 | transport-hardening-013 | 로그 민감 정보 마스킹 | 모든 전송 |
| 14 | transport-hardening-014 | 전환 지점 보안 검증 | stdio ↔ Streamable HTTP |
사용 방법
이 스킬은 Claude Code, Cursor, Codex 등의 AI 에이전트 플랫폼에서 MCP 서버 코드를 검토하거나 생성할 때 자동으로 적용됩니다. 각 규칙은 해당 코드 라인이 특정 취약점 패턴과 일치하는지 확인합니다.
예시: 규칙 transport-hardening-003 (연결 인증 요구)
다음과 같은 Streamable HTTP 핸들러는 인증 미들웨어가 누락되어 규칙을 위반합니다:
# 위반 코드
@app.post("/mcp/message")
async def handle_message(request: Request):
data = await request.json()
# 인증 확인 없이 메시지 처리
return await process_message(data)
수정된 코드는 다음과 같아야 합니다:
# 준수 코드
@app.post("/mcp/message")
@requires_auth # 인증 미들웨어 추가
async def handle_message(request: Request):
# 인증된 요청에 대해서만 메시지 처리
data = await request.json()
return await process_message(data)
지원 플랫폼
- Claude Code: 스킬 파일(
SKILL.md)을 프로젝트 루트에 배치하여 사용 - Cursor:
.cursor/rules/디렉토리에 규칙 파일로 추가하여 사용 - Codex: 스킬 구성에 포함시켜 사용
참고 사항
- 각 규칙의 범위는 코드 상 위치 기반으로 결정됩니다. 즉, 동일한 파일 내에서도 stdio 전송 관련 로직과 Streamable HTTP 관련 로직이 혼재된 경우 각각의 규칙이 해당 라인에만 적용됩니다.
- 규칙 이름은 변경하지 않는 것이 좋습니다. 참조 용이성을 위해 고유 식별자 역할을 합니다.
- 이 스킬은 보안 기준을 제시하지만, 모든 MCP 서버 환경의 특수성을 완전히 포괄하지는 않을 수 있습니다. 실제 적용 시에는 추가 보안 검토를 권장합니다.