구독해서 새 게시물에 대한 알림을 받으세요.

MCP 채택 확대: 보다 간편하고 안전하며 경제적인 기업용 MCP 배포를 위한 Cloudflarer의 참조 아키텍처

2026-04-14

10분 읽기
이 게시물은 English日本語로도 이용할 수 있습니다.

본 콘텐츠는 사용자의 편의를 고려해 자동 기계 번역 서비스를 사용하였습니다. 영어 원문과 다른 오류, 누락 또는 해석상의 미묘한 차이가 포함될 수 있습니다. 필요하시다면 영어 원문을 참조하시기를 바랍니다.

저희 Cloudflare는 모델 컨텍스트 프로토콜(MCP) 을 AI 전략의 핵심 부분으로 적극적으로 채택했습니다. 이러한 변화는 엔지니어링 조직을 훨씬 넘어서서 제품, 영업, 마케팅, 재무 팀의 직원들이 에이전트 기반 워크플로우를 통해 일상 업무의 효율성을 개선하고 있습니다. 그러나 MCP에 에이전트형 워크플로우를 채택하는 데 보안 위험이 없는 것은 아닙니다. 여기에는 무분별한 승인, 프롬프트 삽입, 그리고 공급망 위험 등이 포함됩니다. 이러한 광범위한 회사 전체 채택을 확보하기 위해 당사는 Cloudflare One(SASE) 플랫폼Cloudflare 개발자 플랫폼의 보안 제어 제품군을 통합하여 인력의 속도 저하 없이 MCP로 AI 사용을 관리할 수 있었습니다. 

이 블로그에서는 플랫폼의 다양한 부분을 결합하여 자율 AI 시대에 맞게 통합 보안 아키텍처를 구축하는 등, MCP 워크플로우를 보호하기 위한 Cloudflare의 모범 사례를 살펴봅니다. 또한 기업 MCP 배포를 지원하는 두 가지 새로운 개념을 공유하겠습니다.

또한 우리 조직에서 MCP 배포에 어떻게 접근했는지, 그리고 원격 MCP 서버, Cloudflare Access, MCP 서버 포털AI Gateway를 비롯한 Cloudflare 제품을 사용하여 MCP 보안 아키텍처를 구축한 방법에 대해서도 이야기합니다. 

원격 MCP 서버가 더 나은 가시성과 제어를 제공합니다

MCP는 개발자가 AI 애플리케이션과 액세스에 필요한 데이터 소스 간에 양방향 연결을 구축할 수 있도록 해주는 개방형 표준입니다. 이 아키텍처에서 MCP 클라이언트는 LLM 또는 기타 AI 에이전트와의 통합 지점이며, MCP 서버는 MCP 클라이언트 와 기업 리소스 사이에 위치합니다.

BLOG-3252 2

MCP 클라이언트와 MCP 서버가 분리되어 있으므로 에이전트는 AI(MCP 클라이언트에 통합)와 기업 리소스의 자격 증명 및 API(MCP 서버에 통합) 사이에 명확한 경계를 유지하면서도 자율적으로 목표를 추구하고 조치를 취할 수 있습니다. 

Cloudflare 인력은 지속적으로 MCP 서버를 이용해 프로젝트 관리 플랫폼, 내부 위키, 문서 및 코드 관리 플랫폼 등 다양한 내부 리소스의 정보에 액세스하고 있습니다. 

초기에 우리는 로컬로 호스팅되는 MCP 서버가 보안에 취약하다는 점을 깨달았습니다. 로컬 MCP 서버 배포는 검증되지 않은 소프트웨어 소스 및 버전에 의존할 수 있으며, 이는 공급망 공격 또는 도구 삽입 공격의 위험을 증가시킵니다. 이러한 솔루션으로 인해 IT 관리자와 보안 관리자가 이러한 서버를 관리할 수 없으므로 직원과 개발자 개인이 어떤 MCP 서버를 운영하고 어떻게 최신 상태로 유지할지 선택해야 합니다. 지는 게임입니다.

BLOG-3252 3

대신 Cloudflare에는 기업 전체에 걸쳐 MCP 서버 배포를 관리하는 중앙 집중식 팀이 있습니다. 이 팀은 관리되는 인프라를 즉시 제공하는 공유 MCP 플랫폼을 Cloudflare 모노레포 내에 구축했습니다. 직원이 MCP를 통해 내부 리소스를 노출하려면 먼저 당사의 AI 거버넌스팀의 승인을 받은 다음 템플릿을 복사하고, 도구 정의를 작성하고, 배포합니다. 이 모든 과정에서 감사 로깅을 포함한 기본 거부 쓰기 제어를 상속하며, 자동 생성된 CI/CD 파이프라인무료 비밀 관리 기능을 제공받습니다. 이는 새로운 관리형 MCP 서버를 구축하는 것이 몇 분의 스캐폴딩 작업이라는 것을 의미합니다. 거버넌스가 플랫폼 자체에 통합되어 있으므로 채택이 빠르게 확산될 수 있었습니다. 

CI/CD 파이프라인은 이들을 원격 MCP 서버Cloudflare 개발자 플랫폼의 베니티 도메인에 배포합니다. 이를 통해 직원들이 사용하는 MCP 서버를 파악하고 소프트웨어 소스를 계속 제어할 수 있는 가시성을 확보할 수 있습니다. 또한, Cloudflare 개발자 플랫폼의 모든 원격 MCP 서버가 데이터 센터의 전역 네트워크에 자동으로 배포되므로 직원이 전 세계 어디에 있든 짧은 대기 시간으로 MCP 서버에 액세스할 수 있습니다.

Cloudflare Access가 제공하는 인증

일부 MCP 서버는 Cloudflare 문서화 MCP 서버 또는 Cloudflare Radar MCP 서버와 같은 공개 리소스 앞에 위치하므로 누구나 액세스할 수 있기를 원합니다. 하지만 직원들이 사용하는 MCP 서버 중 상당수는 당사의 개인 기업 리소스 앞에 위치합니다. 이러한 MCP 서버는 사용자 인증을 거쳐 승인된 Cloudflare 직원을 제외한 모든 사람의 액세스 권한을 사용할 수 없습니다. 이를 위해 당사의 MCP 서버용 모노레포 템플릿은 Cloudflare Access 를 OAuth 공급자로 통합합니다. Cloudflare Access는 로그인 흐름을 보호하고 리소스에 대해 액세스 토큰을 발급하는 동시에 최종 사용자의 단일 로그인(SSO), 다단계 인증(MFA), IP 주소, 위치 또는 장치 인증서와 같은 다양한 컨텍스트 속성을 확인하는 ID 수집기 역할을 합니다. 

MCP 서버 포털로 검색 및 거버넌스 중앙 집중화

BLOG-3252 4

MCP 서버 포털은 모든 AI 활동에 대한 거버넌스 및 제어를 통합합니다.

원격 MCP 서버의 수가 증가하면서 우리는 새로운 장벽에 부딪혔습니다. 바로 검색이었습니다. 우리는 모든 직원(특히 MCP를 처음 접하는 직원)이 이용 가능한 모든 MCP 서버를 쉽게 찾아 사용할 수 있기를 원했습니다. Cloudflare의 MCP 서버 포털 제품 덕분에 편리한 솔루션이 제공되었습니다. 이 직원은 MCP 클라이언트를 MCP 서버 포털에 연결하기만 하면 포털에서는 직원에게 사용 권한이 부여된 모든 내부 및 타사 MCP 서버를 즉시 공개합니다. 

이 외에도, MCP 서버 포털은 중앙 집중식 로깅, 일관된 정책 시행, 데이터 손실 방지 (DLP 가드레일) 기능을 제공합니다. Cloudflare 관리자는 누가 어떤 MCP 포털에 로그인했는지 확인할 수 있고, 개인 식별 정보(PII) 등의 특정 데이터가 특정 MCP 서버와 공유되는 것을 방지하는 DLP 규칙을 만들 수 있습니다.

또한 포털 자체에 액세스할 수 있는 사람과 각 MCP 서버에서 노출되어야 하는 도구를 제어하는 정책을 만들 수도 있습니다. 예를 들어,재무 그룹에 속한 직원만 액세스할 수 있으며 MCP 서버용 읽기 전용 도구만 노출되어 있는 하나의 MCP 서버 포털을 내부 코드 리포지토리 앞에 설치할 수 있습니다. 한편, 저희 엔지니어링 팀의 회사 노트북을 사용하는 직원만 액세스할 수 있는 다른 MCP 서버 포털 때문에 코드 리포지토리 MCP 서버에 더 강력한 읽기/쓰기 도구가 노출될 수 있습니다.

Cloudflare의 MCP 서버 포털 아키텍처에 대한 개요가 위에 나와있습니다. 이 포털은 Cloudflare에서 호스팅되는 원격 MCP 서버와 다른 곳에서 호스팅되는 타사 MCP 서버를 모두 지원합니다. 이 아키텍처의 독특한 성능은 이러한 보안 및 네트워킹 구성 요소가 모두 전역 네트워크 내의 동일한 물리적 장치에서 실행된다는 점입니다. 직원의 요청이 MCP 서버 포털, Cloudflare가 호스팅하는 원격 MCP 서버, Cloudflare Access를 통해 이동하면 해당 직원의 트래픽은 동일한 물리적 시스템을 벗어날 필요가 없습니다. 

MCP 서버 포털을 사용하여 비용을 절감하는 코드 모드

MCP가 대량으로 배포된 후, 저희는 상당량의 토큰을 지급했습니다. 또한 대부분의 사람들이 MCP를 잘못하고 있다고 생각하기 시작했습니다.

MCP에 대한 표준 접근 방식에서는 MCP 서버를 통해 노출되는 모든 API 작업에 대해 별도의 도구를 정의해야 합니다. 그러나 이렇게 정적이고 철저한 접근 방식은 특히 수천 개의 엔드포인트가 있는 대규모 플랫폼의 경우 에이전트의 컨텍스트 창을 빠르게 소진시킵니다.

이전에 서버 측 코드 모드를 사용하여 Cloudflare의 MCP 서버를 구동하여 Cloudflare API의 수천 개의 체크포인트를 노출하면서 토큰 사용량을 99.9%까지 줄일 수 있었던 방법에 대해 글을 올린 적이 있습니다. Cloudflare MCP 서버는 두 가지 도구만 노출합니다. 검색 도구를 통해 모델은 JavaScript를 작성하여 사용 가능한 항목을 탐색할 수 있으며, 실행 도구를 통해 JavaScript를 작성하여 찾은 도구를 호출할 수 있습니다. 이 모델은 모든 것을 선불로 받는 것이 아니라 필요에 따라 필요한 것을 찾습니다.

우리는 이 패턴을 아주 좋아해서 모든 사람이 사용할 수 있도록 해야 했습니다. 그래서 MCP 서버 포털에서 "코드 모드" 패턴을 사용하는 기능을 공개했습니다. 이제 여러분은 토큰 비용을 줄이기 위해 감사 제어 및 점진적인 도구 공개를 수행하는 중앙 집중식 포털을 통해 모든 MCP 서버를 보호할 수 있습니다.

작동 방식은 다음과 같습니다. 모든 도구 정의를 클라이언트에 노출하는 대신 모든 MCP 서버가 단 두 개의 MCP 포털 도구 portal_codemode_searchportal_codemode_execute로 축소됩니다. 이 검색 도구는 모델에 codemode.tools() 에 대한 액세스를 제공합니다. 이 함수는 연결된 모든 업스트림 MCP 서버에서 모든 도구 정의를 반환합니다. 그런 다음 이 모델은 JavaScript를 작성하여 이러한 정의를 필터링하고 탐색하여 모든 스키마를 컨텍스트에 로드하지 않고도 필요한 도구를 정확히 찾습니다. 실행 도구는 각 업스트림 도구를 호출 가능 함수로 사용할 수 있는 codemode 프록시 개체를 제공합니다. 이 모델은 이러한 도구를 직접 호출하는 JavaScript를 작성하여 여러 작업을 연결하고 결과를 필터링하며 코드의 오류를 처리합니다. 이 모든 것이 Dynamic Workers에 의해 구동되는 MCP 서버 포털의 샌드박스 환경에서 실행됩니다. 

다음은 Jira 티켓을 찾아 Google Drive의 정보로 업데이트해야 하는 에이전트의 예입니다. 먼저 올바른 도구를 검색합니다.

// portal_codemode_search
async () => {
 const tools = await codemode.tools();
 return tools
  .filter(t => t.name.includes("jira") || t.name.includes("drive"))
  .map(t => ({ name: t.name, params: Object.keys(t.inputSchema.properties || {}) }));
}

이제 모델은 도구의 전체 스키마를 컨텍스트에 입력하지 않고도 필요한 정확한 도구 이름과 매개 변수를 알고 있습니다. 그런 다음 단일 실행 호출을 작성하여 작업을 함께 연결합니다.

// portal_codemode_execute
async () => {
 const tickets = await codemode.jira_search_jira_with_jql({
  jql: ‘project = BLOG AND status = “In Progress”’,
  fields: [“summary”, “description”]
 });
 const doc = await codemode.google_workspace_drive_get_content({
  fileId: “1aBcDeFgHiJk”
 });
 await codemode.jira_update_jira_ticket({
  issueKey: tickets[0].key,
  fields: { description: tickets[0].description + “\n\n” + doc.content }
 });
 return { updated: tickets[0].key };
}

단 두 번 호출하면 됩니다. 첫 번째는 가용한 것을 검색하고, 두 번째는 작업을 수행합니다. 코드 모드가 없었다면 이와 동일한 워크플로를 사용하려면 모델이 두 MCP 서버에서 모든 도구의 전체 스키마를 미리 받은 다음 별도의 도구를 세 번 호출해야 했을 것입니다.

비용 절감 측면을 생각해 봅시다. Cloudflare의 내부 MCP 서버 포털이 4개의 내부 MCP 서버에만 연결되면 정의를 위해서도 약 9,400개의 컨텍스트 토큰을 소비하는 52개의 도구가 노출됩니다. 코드 모드를 활성화하면 52개의 도구가 2개의 포털 도구로 축소되어 약 600개의 토큰을 소모하며, 이 값은 94% 감소합니다. 그리고 중요한 것은 이 비용이 고정되어 있다는 점입니다. 더 많은 MCP 서버를 포털에 연결하더라도 코드 모드의 토큰 비용은 증가하지 않습니다.

코드 모드는 MCP 서버 포털에서 쿼리 매개변수를 URL에 추가하여 활성화할 수 있습니다. 일반적인 URL(예: https://myportal.example.com/mcp), URL에 ?codemode=search_and_execute를 첨부합니다(예: https://myportal.example.com/mcp?codemode=search_and_execute).

AI Gateway는 확장성과 비용 관리를 제공합니다

아직 끝난 것이 아닙니다. 당사에서는 MCP 클라이언트와 LLM 사이의 연결 위치에 AI Gateway 를 배치하여 아키텍처에 연결합니다. 이를 통해 다양한 LLM 공급자 사이를 빠르게 전환하고(벤더 종속 방지) 및 비용 관리(각 직원이 태울 수 있는 토큰 수를 제한함으로써)를 적용할 수 있습니다. 전체 아키텍처는 아래와 같습니다.

BLOG-3252 5

Cloudflare Gateway는 섀도우 MCP를 발견하고 차단합니다

인증 MCP 서버에 대한 관리 액세스를 제공했으니 이제 비인증 MCP 서버를 처리하는 방법을 살펴보겠습니다. Cloudflare Gateway를 사용하여 섀도우 MCP 검색을 수행할 수 있습니다. Cloudflare Gateway는 기업 보안 팀에 직원 인터넷 트래픽에 대한 가시성과 제어 기능을 제공하는 포괄적인 보안 웹 게이트웨이입니다.

Cloudflare Gateway API로 멀티 계층 스캔을 수행하여 MCP 서버 포털을 통해 액세스하지 않는 원격 MCP 서버를 찾을 수 있습니다. 이는 다음과 같은 기존의 다양한 Gateway 및 데이터 손실 방지(DLP) 선택기를 사용하여 가능합니다.

  • Gateway httpHost 선택기를 사용하여 스캔 

    • 알려진 MCP 서버 호스트 이름(예: mcp.stripe.com) 사용

    • mcp.* 하위 도메인(와일드카드 호스트 이름 패턴 사용) 

  • Gateway httpRequestURI 선택기를 사용하여 MCP 전용 URL 경로(예: /mcp 및 /mcp/sse) 검색 

  • DLP 기반 본문 검사를 사용하여 MCP 트래픽을 찾아냅니다. 해당 트래픽이 mcp 또는 sse라는 명백한 언급이 포함되지 않은 URI를 사용하는 경우에도 마찬가지입니다. 특히 MCP는 JSON-RPC over HTTP를 사용한다는 점을 이용했는데, 이는 모든 요청에 "tools/call", "프롬프트/get" 또는 "초기화"와 같은 값이 있는 "method" 필드가 포함되어 있음을 의미합니다. 다음은 HTTP 본문에서 MCP 트래픽을 감지하는 데 사용할 수 있는 몇 가지 정규식 규칙입니다.

const DLP_REGEX_PATTERNS = [
  {
    name: "MCP Initialize Method",
    regex: '"method"\\s{0,5}:\\s{0,5}"initialize"',
  },
  {
    name: "MCP Tools Call",
    regex: '"method"\\s{0,5}:\\s{0,5}"tools/call"',
  },
  {
    name: "MCP Tools List",
    regex: '"method"\\s{0,5}:\\s{0,5}"tools/list"',
  },
  {
    name: "MCP Resources Read",
    regex: '"method"\\s{0,5}:\\s{0,5}"resources/read"',
  },
  {
    name: "MCP Resources List",
    regex: '"method"\\s{0,5}:\\s{0,5}"resources/list"',
  },
  {
    name: "MCP Prompts List",
    regex: '"method"\\s{0,5}:\\s{0,5}"prompts/(list|get)"',
  },
  {
    name: "MCP Sampling Create Message",
    regex: '"method"\\s{0,5}:\\s{0,5}"sampling/createMessage"',
  },
  {
    name: "MCP Protocol Version",
    regex: '"protocolVersion"\\s{0,5}:\\s{0,5}"202[4-9]',
  },
  {
    name: "MCP Notifications Initialized",
    regex: '"method"\\s{0,5}:\\s{0,5}"notifications/initialized"',
  },
  {
    name: "MCP Roots List",
    regex: '"method"\\s{0,5}:\\s{0,5}"roots/list"',
  },
];

Gateway API는 추가 자동화를 지원합니다. 예를 들어 위에서 정의한 사용자 지정 DLP 프로필을 사용하여 트래픽을 차단하거나 리디렉션하거나 MCP 페이로드를 기록하고 검사할 수 있습니다. 이를 종합하여 Gateway를 사용하면 기업 네트워크를 통해 액세스하는 승인되지 않은 원격 MCP 서버를 포괄적으로 감지할 수 있습니다. 

이를 구축하는 방법에 대한 자세한 내용은 이 튜토리얼을 참조하세요. 

공개된 MCP 서버는 앱용 AI 보안으로 보호됩니다

지금까지 Cloudflare는 내부 MCP 서버에 대한 직원의 액세스를 보호하는 데 중점을 두었습니다. 하지만 다른 많은 조직과 마찬가지로 Cloudflare에도 고객이 Cloudflare 제품을 에이전트 방식으로 관리하고 운영하는 데 사용할 수 있는 공개 MCP 서버를 보유하고 있습니다. 이러한 MCP 서버는 Cloudflare의 개발자 플랫폼에서 호스팅됩니다. (특정 제품에 대한 개별 MCP 목록은 여기에서 확인하거나, 코드 모드를 사용하여 전체 Cloudflare API에 대한 보다 효율적인 액세스를 제공하기 위한 새로운 접근 방식을 참조할 수 있습니다.)

Cloudflare에서는 모든 조직에서 제품에 대한 공식적이고 1차 당사자인 MCP 서버를 게시해야 한다고 생각합니다. 대안은 고객이 패키지에 위험한 신뢰 가정, 비공개 데이터 수집, 그리고 승인되지 않은 다양한 행동이 포함될 수 있는 공개 리포지터리에서 검증되지 않은 서버를 소싱하는 것입니다. MCP 서버를 자체적으로 퍼블리싱하면 고객이 사용하는 도구의 코드, 업데이트 주기, 보안 상태를 제어할 수 있습니다.

모든 원격 MCP 서버는 HTTP 엔드포인트이므로 Cloudflare WAF(웹 애플리케이션 방화벽) 뒤에 배치할 수 있습니다. 고객은 WAF 내에서 애플리케이션을 위한 AI Security for Apps 기능을 활성화하여 인바운드 MCP 트래픽을 자동으로 검사하여 프롬프트 삽입 시도, 중요한 데이터 유출, 주제 분류 등에 대해 파악할 수 있습니다. 공개된 MCP는 다른 웹 APIs와 마찬가지로 보호됩니다.  

기업 내 MCP의 미래

우리의 경험, 제품, 참조 아키텍처가 다른 조직에서 MCP의 광범위한 도입을 향한 여정을 계속하는 데 도움이 되기를 바랍니다.

Cloudflare는 다음을 통해 자체 MCP 워크플로우를 보호합니다. 

  • 인증에 Cloudflare Access를 사용하여 개발자 플랫폼에서 원격 MCP 서버를 구축하고 배포할 수 있는 템플릿 프레임워크를 개발자에게 제공

  • 모든 직원을 MCP 서버 포털에 연결하여 승인된 MCP 서버에 대한 안전한 ID 기반 액세스 보장

  • 비용 관리 AI Gateway로 직원의 MCP 클라이언트를 구동하는 LLM에 대한 액세스를 조정하고, MCP 서버 포털에서 코드 모드를 사용해 토큰 소비 및 컨텍스트 비대함을 줄임

  • Cloudflare Gateway별 섀도우 MCP 사용 알아보기 

기업 MCP 여정을 진행하고 있는 조직의 경우, 기존의 원격 및 타사 MCP 서버를 Cloudflare MCP 서버 포털 뒤에 두고 코드 모드를 활성화하여 기업에서 더 저렴하고 안전하며 간편하게 MCP를 배포하는 이점을 누릴 수 있습니다.  

감사의 말: 이 참조 아키텍처와 블로그는 Cloudflare의 다양한 역할과 사업부에 속한 많은 사람들의 성과를 대표합니다. 이는 기여자의 일부일 뿐입니다. Ann Ming Samborski, Kate Reznykova, Mike Nomitch, James Royal, Liam Reese, Yumna Moazzam, Simon Thorpe, Rian van der Merwe, Rajesh Bhatia, Ayush Thakur, Gonzalo Chavarri, Maddy Onyehara, Haley Cambell.

Cloudflare에서는 전체 기업 네트워크를 보호하고, 고객이 인터넷 규모의 애플리케이션을 효과적으로 구축하도록 지원하며, 웹 사이트와 인터넷 애플리케이션을 가속화하고, DDoS 공격을 막으며, 해커를 막고, Zero Trust로 향하는 고객의 여정을 지원합니다.

어떤 장치로든 1.1.1.1에 방문해 인터넷을 더 빠르고 안전하게 만들어 주는 Cloudflare의 무료 애플리케이션을 사용해 보세요.

더 나은 인터넷을 만들기 위한 Cloudflare의 사명을 자세히 알아보려면 여기에서 시작하세요. 새로운 커리어 경로를 찾고 있다면 채용 공고를 확인해 보세요.
AI보안Cloudflare OneCloudflare Workers개발자개발자 플랫폼MCPCloudflare AccessCloudflare GatewayAgents Week

X에서 팔로우하기

Sharon Goldberg|@goldbe
Matt Carey|mattzcarey
Cloudflare|@cloudflare

관련 게시물

2026년 4월 30일

이제 에이전트는 Cloudflare 계정을 생성하고, 도메인을 구매하고, 배포할 수 있습니다.

오늘부터 이제 에이전트도 Cloudflare 고객이 될 수 있습니다. 즉시 Cloudflare 계정을 만들고, 유료 구독을 시작하고, 도메인을 등록하고, API 토큰을 다시 받아 코드를 배포할 수 있습니다. 권한을 부여하기 위해 인간이 개입할 수는 있지만, 굳이 대시보드로 이동하거나, API 토큰을 복사하여 붙여넣거나, 신용카드 세부 정보를 입력할 필요가 없습니다. ...

2026년 4월 22일

Rust Workers를 안정적으로 만들기: wasm-bindgen에서의 패닉 및 중단 복구

Rust Workers에서의 패닉은 역사적으로 치명적이었으며 전체 인스턴스를 중독시켰습니다. Rust Workers는 이제 Wasm-bindgen 프로젝트에서 업스트림과 협업하여 WebAssembly 예외 처리를 사용한 패닉 상태를 해결하는 등 탄력적인 중요 오류 복구를 지원합니다....