Community코딩 & 개발github.com

malkreide/mcp-transport-hardening-skill

MCP 서버용 14가지 전송 강화 규칙을 제공하는 Claude 스킬로, 두 가지 사양 기준선에 걸쳐 적용되며, 코드 상에서 각 줄의 위치에 따라 범위가 결정됩니다(실행 중인 전송 방식에 따르지 않음).

mcp-transport-hardening-skill란 무엇인가요?

이 스킬은 MCP(Model Context Protocol) 서버에 대한 전송 계층 강화를 목표로 하는 14가지 규칙 모음입니다. 코드 기반 규칙 적용 방식을 채택하여, 각 코드 라인이 어떤 전송(예: stdio, SSE, Streamable HTTP)을 사용하는지와 무관하게 해당 라인의 구조적 위치에 따라 규칙 범위가 결정됩니다. 이는 개발자가 서로 다른 전송 프로토콜 간에 일관된 보안 정책을 유지할 수 있게 해줍니다. Claude Code, Cursor, Codex 등의 에이전트 플랫폼에서 사용할 수 있으며, SKILL.md 문서에 정의된 각 규칙은 특정 전송 취약점(예: 메시지 스니핑, 무결성 위반, 인증 우회 등)을 방지하도록 설계되었습니다. 이 스킬을 통해 개발자는 MCP 서버의 보안 수준을 향상시키고, 다양한 전송 매커니즘에 걸쳐 일관된 보안 태세를 유지할 수 있습니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add malkreide/mcp-transport-hardening-skill

Installed? Explore more 코딩 & 개발 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

mcp-transport-hardening-skill은(는) 무엇을 하나요?

MCP 서버용 14가지 전송 강화 규칙을 제공하는 Claude 스킬입니다. 두 가지 사양 기준선(stdio/SSE 및 Streamable HTTP)에 걸쳐 적용되며, 각 규칙의 범위는 코드 상의 라인 위치에 따라 결정됩니다(해당 라인이 실행되는 전송 방식에 따르지 않음).

규칙 목록

번호규칙 이름설명대상 전송
1transport-hardening-001입력 유효성 검사 강화stdio, SSE, Streamable HTTP
2transport-hardening-002메시지 크기 제한 적용stdio, SSE
3transport-hardening-003연결 인증 요구Streamable HTTP
4transport-hardening-004TLS 사용 강제Streamable HTTP
5transport-hardening-005메시지 무결성 검증모든 전송
6transport-hardening-006재생 공격 방지Streamable HTTP
7transport-hardening-007요청 속도 제한모든 전송
8transport-hardening-008세션 타임아웃 구성Streamable HTTP
9transport-hardening-009에러 메시지 정보 최소화모든 전송
10transport-hardening-010특수 문자 이스케이프stdio
11transport-hardening-011경로 순회 방지stdio
12transport-hardening-012CORS 정책 강화SSE, Streamable HTTP
13transport-hardening-013로그 민감 정보 마스킹모든 전송
14transport-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 서버 환경의 특수성을 완전히 포괄하지는 않을 수 있습니다. 실제 적용 시에는 추가 보안 검토를 권장합니다.

관련 스킬