MCP 모듈 코드 표준
업데이트 — 2026-08-18: CoSAI 토큰 교환, MCP Project 샌드박싱 기준선, OWASP GenAI 기준선, Ruby SDK 버그 — 인증 패턴과 배포 기준선
네 가지 발전이 이 코드 표준에 필요한 인증 패턴과 배포 기준선을 제공합니다.
CoSAI 토큰 교환(8월 18일) — 인증 패턴. 각 MCP 모듈은 신뢰 경계에서 토큰을 교환해야 하며, 영구 자격 증명을 보유하지 않아야 합니다. 토큰은 몇 분 내에 만료되고 즉시 취소 가능.
MCP Project Sandboxing Baseline(8월 16일) — 배포 기준선. 각 MCP 모듈 배포에 OS 수준 샌드박싱(Landlock/Seatbelt/Windows ACL)을 포함해야 합니다.
OWASP GenAI MCP Server Security Baseline(8월 18일) — 개발 참조. 이 표준의 디렉토리 구조, 도구 등록, 오류 처리는 OWASP GenAI의 개발 통제에 매핑됩니다.
MCP Ruby SDK 버그(8월 16일) — 새 CVE 클래스가 방어 태세 확인. Ruby SDK DoS는 속도 제한 요구사항을 확장; 디렉토리 순회는 입력 검증 요구사항을 확장. MCP Security Hardening Checklist 참조.
업데이트 — 2026-08-15: DeepSeek Harness — "모든 것이 플러그인"이 모듈 패턴을 검증
DeepSeek가 2026년 8월 13-14일에 DeepSeek Harness를 오픈소스화 — Cordis 메타프레임워크 기반 MIT 런타임. 원칙: "모든 것이 플러그인." 수시간 내 33,000+ GitHub 스타. 이 표준이 설명하는 플러그인/모듈 패턴의 가장 강력한 산업 검증.
코드 표준이 중요한 이유
우리가 출시하는 모든 커넥터는 동일하게 보입니다. 그것은 우연이 아니라 규율입니다. 두 번째 통합이 도착할 때, 각 MCP 모듈이 동일한 구조, 명명, 오류 계약을 따르기 때문에 에이전트의 역량을 테스트, 감사, 교체하기 쉽습니다.
이 문서는 IdeaBosque 오케스트레이션 백본 내의 모든 MCP 모듈에 대한 표준을 정의합니다. 디렉토리 레이아웃, 도구 등록, 입출력 스키마, 오류 처리, 속도 제한, 감사 로깅, PII 경계 처리를 다룹니다.
디렉토리 구조
각 MCP 모듈은 일관된 레이아웃으로 app/mcp_modules/ 아래 자체 디렉토리에 있습니다:
app/mcp_modules//
__init__.py
module.py # 도구 등록 + 핸들러
schemas.py # 입출력 Pydantic 모델
tests/
test_module.py
README.md 도구 등록
각 모듈은 표준 인터페이스를 통해 도구를 등록합니다. 오케스트레이션 백본은 register_tools() 진입점을 스캔하여 도구를 발견합니다 — 수동 와이어링이 필요 없습니다.
def register_tools(registrar):
"""이 모듈이 제공하는 모든 도구를 등록합니다."""
registrar.tool(
name="search_catalog",
description="SKU 또는 이름으로 공급업체 카탈로그 검색",
input_schema=SearchCatalogInput,
output_schema=SearchCatalogOutput,
rate_limit=120, # 분당 호출 수
)오류 처리
모듈은 날 문자열이 아닌 타입화된 예외를 발생시켜야 합니다. 백본은 MCPToolError 서브클래스를 잡아 에이전트가 추론할 수 있는 구조화된 응답으로 변환합니다:
- MCPAuthError — 자격 증명 누락 또는 만료
- MCPRateLimitError — 업스트림 속도 제한 도달
- MCPTimeoutError — 업스트림 호출이 구성된 타임아웃을 초과
- MCPValidationError — 입력이 스키마 검증을 통과하지 못함
- MCPUpstreamError — 업스트림이 오류 상태를 반환
속도 제한
각 도구는 등록 호출에서 자체 속도 제한을 선언합니다. 백본은 에이전트별, 도구별, 윈도우별로 이를 적용합니다. 제한에 도달하면 에이전트는 Retry-After 헤더가 있는 429 응답을 받습니다 — 충돌하거나 맹목적으로 재시도하지 않습니다.
감사 로깅
각 도구 호출은 다음과 함께 로깅됩니다: 타임스탬프, 에이전트 ID, 도구 이름, 입력 해시(원시 입력이 아닌 — PII 경계), 출력 상태, 지속 시간, 업스트림 시스템. 로그는 구조화된 JSON로 작성되고 관측 가능성 파이프라인으로 전송됩니다.
"모든 도구 호출이 로깅되고 감사 가능"은 나중에 추가하는 기능이 아닙니다. 표준이 가장 먼저 요구하는 것입니다.
PII 경계 처리
모듈은 어떤 입력 필드에 PII가 포함되는지 선언해야 합니다. 백본은 로깅 전에 이 필드들을 해시하고, 원시 PII를 감사 파이프라인에 보내지 않습니다. PII 필드는 스키마에서 표시됩니다:
class SearchCatalogInput(BaseModel):
sku: str
customer_name: str = Field(..., pii=True)
region: strpii=True가 설정되면, 감사 로거는 값을 SHA-256 해시로 대체합니다. 도구 핸들러는 여전히 원시 값을 받습니다 — PII 처리는 로깅 경계에서 강제되며, 비즈니스 로직 내부가 아닙니다.
Update — 2026-08-06: Transport-mode security — the stateful streamable-HTTP attack surface
CVE-2026-16496 (CVSS 10.0, patched in Terraform MCP Server on August 5, 2026) is the first maximum-severity CVE in the MCP ecosystem and the first production evidence that the transport mode is a security dimension, not just an operational one. The vulnerability is a session-hijacking authorization bypass in the streamable-HTTP stateful transport mode: a user who obtains another user's MCP session ID can have their tool calls executed using that user's Terraform credentials. HashiCorp also patched CVE-2026-16498 (tenant isolation break) and CVE-2026-14869 (SSRF) in the same release. (The Hacker News, SentinelOne vulnerability database)
This adds a transport-mode-security rule to the deployment-hardening standard:
5. Prefer stateless transport; treat stateful streamable-HTTP as a security risk. The MCP 2026-07-28 specification moved to a stateless protocol core — the initialize/initialized handshake and Mcp-Session-Id header are removed, and stateful workflows use explicit handles instead of server-side sessions. The stateless design eliminates the session-hijacking attack class at the architecture level: a stateless server has no session to steal. The stateful streamable-HTTP transport mode that CVE-2026-16496 exploits is the mode the stateless core is designed to replace. If a module must run stateful streamable-HTTP (for compatibility with a client that has not migrated), treat it as a known-vulnerable configuration: bind it to a private network, require authentication on every session, and plan the migration to stateless transport on the same 12-month clock as the SSE deprecation. A module that exposes stateful streamable-HTTP on a public interface without authentication is in the same risk class as the 1,467 servers Trend Micro found with zero auth — plus the session-hijacking vector.
The OX Security advisory also expanded with additional CVEs beyond the original four exploit families: CVE-2026-30618, CVE-2026-33224, CVE-2026-30617 (Family 1 — STDIO command injection), CVE-2026-30625 (Family 2 — Upsonic allowlist bypass), CVE-2026-30615 (Family 3 — Windsurf prompt injection), CVE-2026-26015 (Family 4 — SSRF), plus CVE-2025-65720 (GPT Researcher RCE), CVE-2026-30623 (LiteLLM RCE), CVE-2026-30624 (Agent Zero RCE), and CVE-2026-54449 (LangBot RCE). The expanded inventory extends the supply-chain risk beyond MCP servers to the agent frameworks and orchestration layers that wrap them — signed provenance, pinned versions, and AIBOM manifests (the dependency control for MCP) are what make the expanded inventory detectable before it fires.
배포 강화: MCP 서버를 인증 없이 노출하지 마십시오
STDIO 강화 규칙은 코드 수준의 취약점을 다룹니다. 2026년 7월 별도의 노출 차원이 부상했고, 그것은 참조 구현 자체에 상륙했습니다. 2026년 7월 11일부터 21일 사이, 세 개의 CVE가 공식 MCP Python SDK에 제출되었습니다 — 모든 Python MCP 서버가 상속하는 참조 구현입니다:
- CVE-2026-59950 — Host/Origin 검증 누락. 피해자가 방문한 웹페이지가 DNS 리바인딩과 CSRF를 통해 로컬 MCP 서버를 구동할 수 있습니다. 브라우저가 공격자의, 운영자가 프라이빗이라고 믿었던 loopback 서버로의 프록시가 됩니다.
- CVE-2026-52869 — 미검증 세션 요청. HTTP 전송이 세션을 검증하지 않고 세션 요청을 제공하여 미인증 접근을 허용합니다.
- CVE-2026-52870 — 열린 태스크 핸들러. 실험적 태스크 핸들러가 모든 클라이언트가 다른 클라이언트의 태스크에 접근할 수 있게 합니다.
같은 2주 동안 추가 CVE가 인기 서버에 영향을 미쳤습니다: meta-ads-mcp(CVE-2026-54547 / -54549, auth-token 재사용 + SSRF), LangBot(CVE-2026-54449, 인증된 RCE), ToolHive(CVE-2026-58196, SSRF), mcp-atlassian(GHSA-g5r6-gv6m-f5jv, 임의 파일 읽기). 이 패턴은 카테고리 수준이며, 고립된 사건이 아닙니다: MCP는 localhost loopback을 위해 설계되었고, 팀들은 이를 인터넷에 배포했으며, 보안 기본 — 인증, 오리진 검증, 입력 검사 — 을 건너뛰었습니다. 참조 구현이 커뮤니티 서버와 동일한 클래스의 결함을 출하한 것은 이 표준이 다루는 배포 강화 증거입니다: 아래의 인증 및 오리진 검증 규칙은 이상적인 것이 아니라 — CVE-2026-59950과 CVE-2026-52869의 근본 원인을 닫습니다.
Trend Micro의 보정된 후속 스캔은 인증이나 암호화 없이 공개 접근 가능한 MCP 서버 1,467대를 발견했습니다 — 초기 492대에서 거의 3배 증가한 것이며, 이전에 인용된 "약 2,000"이 아닙니다. 에스컬레이션은 단지 수치가 아닙니다: 1,467대 중 1,227대가 지원 중단된 SSE 전송을 실행 중이며(7월 28일 스펙 마이그레이션과 보안 노출 모두에 가장 영향을 받는 집단), execute_sql 도구가 70대의 호스트에 나타나고, "Graphiti Agent Memory"(agentic MCP 서버)가 39대의 호스트에 존재하며 — 메모리 상주 데이터 유출의 주요 표적 — 최소 3대의 서버가 "progress_note" 도구를 통해 환자 의료 기록을 노출하고 있습니다. 위협은 로컬 STDIO 구성에서 인터넷에서 도달 가능한 클라우드 배포 MCP 서버로 확대되었습니다. 이 서버들 중 다수가 포트에 도달할 수 있는 누구에게나 하드코딩된 자격 증명, 도구 엔드포인트, 시스템 접근을 노출하고 있었습니다.
BlueRock Security: 7,000+ MCP 서버의 36.7%가 SSRF에 취약. BlueRock Security는 7,000이상의 MCP 서버를 분석하여 36.7%가 Server-Side Request Forgery에 취약한 것을 발견했습니다 — Trend Micro의 1,467대 노출 서버 스캔보다 큰 코퍼스이며, 다른 취약성 클래스입니다. SSRF는 공격자가 MCP 서버를 강제하여 서버가 도달할 수 있지만 공격자는 도달할 수 없는 내부 네트웍크 리소스 — 클라우드 메타데이터 엔드포인트, 내부 API, 데이터베이스 — 에 요청하도록 허용합니다. 36.7%는 새로잴 종합 취약성 통계입니다: MCP 서버 3대 중 1대 이상이 내부 네트웍 프로빙을 손인으로 탐색할 수 있습니다. B2B 배포의 경우 SSRF 리스크가 취약한 것은 MCP 서버가 통상적으로 내부 시스템(ERP, CRM, 재고 데이터베이스)에 접근할 수 있기 때문입니다 — 공급업자 카탈로를 가져오는 서버는 클라우드 메타데이터 엔드포인트를 가져오도록 재정허며 자격 증명을 유출할 수 있습니다.
2026년 7월 파도에서 세 개의 추가 CVE가 등장하여 CVE 타임라인을 공식 SDK 취약성을 넘어 확장했습니다:
- CVE-2025-68143 — 경로 톸널. MCP 서버가 조작된 경로 인수를 통해 예정된 디렉토리 외부의 파일 접근을 허용하여 에이전트 호스트에서 임의의 파일 읽기를 실햍합니다.
- CVE-2025-68144 — 인수 주입. 명령줄 인수를 허용하는 도구가 운영자가 의도하지 않은 추가 플래그를 강제로 실행도로 조작될 수 있으며, 위의 OX Security 4규칙 표준에 문서화된 STDIO 허용목록 회피 패턴과 유사합니다.
- CVE-2025-68145 — 저장소 스코핑 회피. 단일 저장소로 스코프되어야 하는 서버가 선언된 스코프 외부의 저장소에 접근할 수 있어 프라이빗 코드와 시크릿을 노출합니다.
cyberdesserts.com은 2026년 7월 28일 프로토콜 개정 판이 玌권 모델 겷4—— 손상된 도구 설명 또는 출력이 에이전트 동작을 하이재하는 구조적 취약성이 최종 사양에도 지속함을 확인했습니다. 스테이트레스 리디자인은 운영 효율성을 향상시키지만 MCP03(tool poisoning), MCP06(intent flow subversion), MCP10(context over-sharing)을 해결하지 않습니다. 관리 계층은 여전히 운영자의 인치입니다 — 이 표준은 그 인의 실패 계약입니다.
Spec final 마이그레이션 메모(2026년 7월 28일). MCP 2026-07-28 사양이 최종 판으로 배포되었으며, 12개월 SSE 폐은 정책이 포함되어 있습니다: SSE 트랜스포트는 폐은되었으며 12개월 이내에 Streamable HTTP 트랜스포트로 마이그레이션해야 합니다. 4개 Tier 1 SDK(Python, TypeScript, Java, Kotlin)는 호환 버전을 배포했습니다. SSE 트랜스포트를 사용하는 모들은 마이그레이션해야 하지만 STDIO를 사용하는 모든은 영향을 받지 않습니다. 마이그레이션은 트랜스포트 계층 변경입니다 — 이 표준의 도구 등록, 에러 처리, 레이트 리미트, 감사 로그 규칙은 트랜스포트와 무관합니다. 모든 계약은 변하지 않습니다; 변하는 것은 트랜스포트 바인딩만입니다.
배포 강화 규칙:
1. MCP 서버를 인증 없이 공용 인터페이스에 노출하지 마십시오. 모든 MCP 서버 — STDIO, SSE, HTTP 전송 여부와 관계없이 — 는 인증을 요구해야 합니다 (PKCE가 있는 OAuth 2.1, API 키, 또는 mTLS). 인증 없이 0.0.0.0:3000에서 도달 가능한 서버는 개발 편의가 아니라 원격 코드 실행 표면입니다.
2. localhost 또는 사설 네트워크에 바인딩하십시오. 프로덕션 MCP 서버는 127.0.0.1 또는 사설 서브넷에 바인딩합니다. 외부 접근이 필요한 경우, 직접 포트 노출이 아닌 인증, 속도 제한, TLS 종단이 있는 리버스 프록시를 통해 라우팅하십시오.
3. MCP 구성 파일에 자격 증명을 하드코딩하지 마십시오. Trend Micro 스캔은 공개 접근 가능한 MCP 서버 구성에서 하드코딩된 API 키, 데이터베이스 비밀번호, OAuth 시크릿을 발견했습니다. 자격 증명은 환경 변수나 시크릿 관리자에서 와야 합니다 — 공격자가 읽을 수 있는 JSON 파일에서가 아닙니다.
4. 모든 전송을 암호화하십시오. STDIO는 정의상 로컬 전용이지만, SSE와 HTTP 전송은 TLS를 사용해야 합니다. 공용 네트워크상의 평문 HTTP MCP 서버는 인증 토큰과 PII를 포함한 모든 도구 호출을 네트워크 수준의 가로채기에 노출합니다.
Trend Micro 스캔은 OX Security 권고의 배포 측 보완입니다: 코드 수준의 취약점(비살균 STDIO, 허용 목록 우회, 구성 주입)은 서버 자체가 인증 없이 노출될 때 원격으로 악용 가능해집니다. 배포 강화 없는 코드 강화는 열린 현관에 놓인 잠긴 문과 같습니다.
업데이트 — 2026-08-07: MCP 서버 발견성 및 거버넌스 — Black Hat 2026 제품 차원
전체 Black Hat 2026 제품 인벤토리(crn.com, 2026년 8월 4일)는 MCP 코드 표준에 새로운 차원을 추가합니다: MCP 서버 발견성 및 거버넌스. Black Hat USA 2026에서 출시된 세 가지 제품은 코드 표준(모듈 작성 방법 관리)과 배포 현실(얼마나 많은 모듈이 존재하고 누가 아는지 관리) 간의 격차에 직접적으로 대응합니다.
Cyera Agent Guardian — 섀도 MCP 서버 발견. 코드 표준은 각 MCP 모듈이 등록되고, 문서화되며, 디렉토리 구조와 오류 계약을 따른다고 가정합니다. Cyera의 제품은 격차를 드러냅니다: 코드 표준을 따르지 않는 섀도 MCP 서버가 대부분의 기업에 존재합니다. 코드 표준은 승인된 모듈을 관리하고; Cyera는 승인되지 않은 것을 발견합니다.
SailPoint Identity Security — MCP 서버 아이덴티티 라이프사이클. 코드 표준은 모듈이 인증하는 방법을 관리합니다. SailPoint의 제품은 라이프사이클 차원을 추가합니다: 각 MCP 서버에는 아이덴티티 거버넌스 워크플로우를 통해 프로비저닝, 증명, 폐기되어야 하는 아이덴티티가 있습니다.
Check Point AI Network Firewall — 네트워크 계층 MCP 통신 모니터링. 코드 표준은 모듈이 애플리케이션 계층에서 로깅하는 것을 관리합니다. Check Point의 제품은 네트워크 계층 차원을 추가합니다: MCP 통신 채널은 이제 네트워크 수준에서 모니터링 가능합니다.
Black Hat 2026 MCP 서버 발견 제품은 코드 표준에 "발견성 및 거버넌스" 차원을 추가합니다: 디렉토리 구조, 오류 계약, 보안 규칙을 따르는 모듈은 잘 작성된 모듈이지만, 아이덴티티 거버넌스 플랫폼(SailPoint)에 등록되고, 섀도 서버 탐지 도구(Cyera)로 발견 가능하며, 네트워크 계층(Check Point)에서 모니터링되는 모듈은 잘 거버넌스된 모듈입니다. 코드 표준은 기반이며; Black Hat 2026 제품은 그 위의 거버넌스 계층입니다.
업데이트 — 2026-08-08: Skill/Plugin Security Scanning — 벤더 측 공급망 완화
Anthropic은 2026년 8월 6일 Skill/Plugin Security Scanning을 출시했다 — 서드파티 도구 서버에 대한 최초의 모델 벤더 측 공급망 완화 조치이다. 이 스캔은 서드파티 Claude Code 업로드(스킬과 플러그인)가 마켓플레이스에 도달하기 전에 악성 콘텐츠를 검사한다. 이는 운영자가 자체 도구 정의에 대해 수행하는 스캔의 벤더 측 보완이다: Control 10(도구 포이즈닝 방어)이 귀하가 수행하는 스캔을 관리하며, Skill/Plugin Scanning은 모델 벤더가 마켓플레이스에서 수행하는 검사를 관리한다.
귀하의 시스템을 위해 이것을 구축하고 싶으신가요?
여기의 각 문서는 실제 프로덕션 작업에서 나왔습니다. 대상 시스템과 워크플로가 있다면, 1주 내에 빌드를 범위 정의할 수 있습니다.
범위 정의 빌드 요청1주 발견. 시스템 인벤토리, 워크플로 맵, 고정 범위를 받습니다 — 우리와 빌드할지 여부와 관계없이.