목차
요약
이전 글에서 MCP Gateway를 “agent와 외부 도구를 연결하는 관문”으로 봤다면, 이번 글의 질문은 한 단계 더 운영적이다. MCP server가 늘어날수록 중요한 것은 더 많은 tool을 붙이는 능력보다, agent가 어떤 tool을 볼 수 있고, 어떤 권한으로 호출하며, 어떤 작업에서 멈춰야 하는지를 통제하는 능력이다. MCP는 AI application을 외부 tools, data sources, workflows와 연결하는 open protocol이지만, catalog, identity, policy, audit, approval 같은 운영 책임 전체를 자동으로 대신하지는 않는다. [S6][S7]
그래서 AI Agent Gateway라는 운영 계층이 필요해진다. 여기서 Gateway는 특정 제품명 하나가 아니라 agent-to-tool traffic을 더 관찰 가능하고, 제한 가능하고, 복구 가능하게 만드는 경계다. AWS의 AgentCore Gateway, Policy, Lambda Interceptor는 이 흐름을 보여주는 managed implementation 사례다. 이 글은 특정 vendor 선택보다, MCP 기반 agent 운영에서 어떤 gateway 책임이 필요한지 판단하는 실무 체크리스트에 초점을 둔다. [S1][S2][S3][S4][S5]
1. 왜 MCP Gateway 이야기가 다시 중요해졌나
처음 MCP를 접할 때는 “AI agent가 외부 tool을 표준 방식으로 호출한다”는 점이 가장 눈에 띈다. MCP 공식 문서는 MCP를 AI applications가 external systems, tools, data sources, workflows와 연결되도록 돕는 open protocol로 설명한다. protocol 관점에서는 client와 server, message lifecycle, tools/resources/prompts 같은 기본 기능을 이해하는 것이 출발점이다. [S6][S7]
운영 단계에서는 질문이 달라진다. 한두 개의 read-only tool을 붙이는 실험에서는 agent prompt와 local config만으로도 관리가 가능하다. 반면 내부 API, SaaS, cloud service, ticketing, database, deployment hook이 연결되면 다음 질문이 생긴다.
- agent가 볼 수 있는 tool 목록은 누가 관리하는가?
- 같은 tool이라도 read-only operation과 destructive operation을 어떻게 구분하는가?
- user identity와 service identity는 어디에서 분리하는가?
- 민감한 header, token, account id, tenant id가 tool 호출 과정에서 어떻게 보호되는가?
- 실패한 tool call, 승인된 call, 차단된 call의 audit log는 어디에 남는가?
- human approval이 필요한 작업은 어디서 멈추고, 누가 승인하고, 어떻게 재개하는가?
이 질문들은 MCP 자체의 필요성을 부정하는 것이 아니다. 오히려 MCP 연결이 실무에 들어왔기 때문에 생기는 다음 단계의 문제다. MCP는 연결 표준이고, 운영 통제는 별도 설계가 필요하다. 이 차이를 구분하지 않으면 “MCP server를 많이 붙인 시스템”은 생기지만, agent가 조직 안에서 안전하게 tool을 호출하는 운영 체계는 생기지 않는다. [S6][S7]
2. MCP의 기본 표면: tools, resources, prompts
MCP를 운영 관점에서 볼 때 먼저 분리해야 할 표면은 tools, resources, prompts다. 세부 specification은 버전별로 달라질 수 있으므로 여기서는 운영 의사결정에 필요한 수준으로만 정리한다. [S7]
Tools는 agent가 실제 action을 요청할 수 있는 표면이다. 예를 들어 issue 조회, 문서 검색, calendar event 생성, ticket comment 작성, deployment trigger 같은 작업이 tool로 노출될 수 있다. 운영 위험도는 tools에서 가장 크게 발생한다. read-only 조회 tool과 write/delete/execute tool은 같은 “tool” 범주에 있어도 위험 수준이 다르다. 따라서 Gateway나 registry 설계에서 tool permission, argument validation, approval rule을 가장 먼저 붙여야 하는 영역도 tools다. [S6][S7]
Resources는 agent가 읽을 수 있는 data/context 표면에 가깝다. 문서, schema, file, record, knowledge base 같은 항목이 여기에 해당할 수 있다. resources는 action을 직접 수행하지 않더라도 privacy, data minimization, tenant boundary 문제가 생긴다. “읽기만 하니까 안전하다”가 아니라, 어떤 agent가 어떤 data class를 읽을 수 있는지 기록해야 한다. [S7]
Prompts는 재사용 가능한 instruction/template 표면이다. agent behavior를 일정하게 만들 수 있지만, 운영에서는 prompt versioning과 승인 흐름이 필요하다. 특히 내부 업무 자동화에서는 prompt가 사실상 policy처럼 작동하는 경우가 있다. 이때 prompt 변경 이력과 검토 책임자가 없으면 agent의 행동 기준이 조용히 바뀔 수 있다. [S7]
즉 MCP의 표면을 이해한다는 것은 단순히 protocol object를 외우는 일이 아니다. tool은 action risk, resource는 data risk, prompt는 behavior risk를 만든다. Gateway는 이 세 표면을 catalog로 묶고, identity와 policy를 적용하고, 호출·차단·승인의 흔적을 남기는 계층으로 설계할 수 있다.
3. Agent Gateway가 맡을 수 있는 5가지 책임
Agent Gateway를 하나의 제품 카테고리로만 보면 판단이 흐려진다. 더 유용한 방식은 “agent와 tool 사이에 어떤 운영 책임을 둘 것인가”로 나누는 것이다. AWS AgentCore Gateway 문서는 backend API, Lambda, service 등을 MCP-compatible tool surface로 연결하고 discovery, auth, gateway endpoint 같은 기능을 제공하는 방향을 보여준다. [S1][S3]
3.1 Tool catalog: agent가 무엇을 볼 수 있는가
첫 번째 책임은 tool catalog다. agent가 사용할 수 있는 tool 목록이 코드, prompt, local config, 개별 MCP server에 흩어져 있으면 운영자는 현재 노출된 action surface를 빠르게 파악하기 어렵다. Gateway는 tool 목록, owner, risk level, environment, allowed roles, version을 한 곳에서 확인하는 catalog 역할을 할 수 있다. [S1][S3]
좋은 catalog는 단순 목록이 아니다. 최소한 다음 metadata가 필요하다.
- tool id와 owner
- read/write/destructive 분류
- required identity 또는 account scope
- allowed agent/user role
- approval requirement
- logging level
- rollback 또는 disable 방법
이 metadata가 있어야 “이 agent가 왜 이 tool을 호출할 수 있었는가”를 사후에 설명할 수 있다.
3.2 Identity/auth: 누가 호출하는가
두 번째 책임은 identity와 auth다. agent runtime의 service identity, 최종 사용자 identity, target system credential을 구분하지 않으면 권한 문제가 빠르게 커진다. AWS AgentCore Gateway 관련 자료는 OAuth on-behalf-of 같은 흐름과 ingress/egress auth를 언급한다. 이를 일반화하면 Gateway는 agent가 tool을 호출할 때 어떤 identity로 호출하는지 명확히 하는 지점이 될 수 있다. [S1][S3]
중요한 점은 “agent에게 credential을 많이 주는 것”이 아니라 “credential 사용 경로를 줄이고 관찰 가능하게 만드는 것”이다. credential은 가능하면 Gateway나 target integration 계층에서 관리하고, agent prompt나 output에 secret이 섞이지 않게 해야 한다.
3.3 Policy enforcement: 어떤 호출을 허용할 것인가
세 번째 책임은 policy enforcement다. AWS AgentCore의 Policy 문서는 gateway를 통과하는 agent-to-tool traffic을 policy engine에서 평가하는 방향을 제시한다. Cedar 기반 policy는 AWS AgentCore 맥락의 구현 세부사항이지만, 운영 원칙은 더 넓게 적용된다. agent code 밖에 deterministic allow/deny boundary를 둔다는 점이 핵심이다. [S2][S4]
예를 들어 다음과 같은 rule이 필요할 수 있다.
- 업무시간 외 destructive operation 차단
- 특정 user role은 read-only tool만 허용
- production environment 변경은 human approval 필수
- PII 포함 resource는 특정 agent class만 접근
- bulk operation은 rate limit 또는 별도 승인 필요
이런 rule을 prompt에만 적어두면 agent behavior에 의존하게 된다. Gateway-level policy는 호출 시점에 다시 평가되는 운영 경계를 제공한다. 다만 policy가 있다고 해서 모든 잘못된 argument나 hallucination이 사라지는 것은 아니다. policy는 차단과 검증의 지점을 늘리는 장치이며, eval, logging, review, rollback과 함께 설계해야 한다. [S2][S4]
3.4 Observability/audit: 무엇이 실제로 일어났는가
네 번째 책임은 observability와 audit이다. agent system에서 문제를 복구하려면 “agent가 무엇을 생각했는가”보다 “어떤 tool을 어떤 argument로 호출했고, 결과가 무엇이었고, 그 후 어떤 state가 바뀌었는가”가 더 중요할 때가 많다.
Gateway는 tool call log, policy decision, approval event, response summary, error class를 구조화해서 남길 수 있다. 이때 raw secret이나 불필요한 payload 전체를 저장하지 않도록 redaction과 retention policy가 필요하다. 특히 운영 로그는 incident review, compliance review, prompt/tool regression 분석의 기반이 된다.
3.5 Session/approval: 어디서 멈추고 다시 시작하는가
다섯 번째 책임은 session과 approval이다. AgentCore Gateway의 MCP support 확장 사례는 sessions, elicitation, streaming 같은 흐름을 언급한다. 운영적으로 보면 이는 agent가 tool을 호출하다가 사람에게 확인을 요청하고, 승인 이후 이어서 실행하는 흐름과 연결된다. [S1]
agent workflow가 길어질수록 “승인 대기”, “부분 완료”, “재시도”, “rollback 필요” 같은 상태가 생긴다. Gateway 자체가 모든 workflow state를 저장하지 않더라도, approval boundary와 session continuity를 어디에 둘 것인지는 설계해야 한다. 이 지점에서 task ledger, database, workflow engine, incident log가 함께 필요해진다.
4. AgentCore Gateway 사례: Policy와 Interceptor가 의미하는 것
AWS AgentCore Gateway는 이 글에서 vendor-neutral 체크리스트를 설명하기 위한 사례다. 특히 Policy와 Lambda Interceptor는 agent gateway가 단순 proxy보다 어떤 운영 의미를 가질 수 있는지 보여준다. [S2][S4][S5]
Policy는 agent-to-tool traffic을 deterministic rule로 평가하는 경계다. agent가 runtime에서 tool과 argument를 선택하더라도, 최종 호출이 허용되는지는 별도 policy evaluation에서 결정될 수 있다. 이는 agent prompt에 “위험한 작업은 하지 마”라고 적는 것보다 운영적으로 강한 지점이다. prompt는 행동 유도이고, policy는 호출 시점의 enforcement에 가깝다. [S2][S4]
Interceptor는 request 또는 response 경로에 Lambda 기반 로직을 넣는 방식으로 설명된다. 문서상 REQUEST/RESPONSE interceptor, Lambda-only 제약, header 민감성, least privilege, idempotency 같은 주의사항이 중요하다. [S5]
운영적으로 interceptor는 다음 역할을 할 수 있다.
- request argument를 추가 검증한다.
- 민감한 header나 token이 의도치 않게 전달되지 않도록 처리한다.
- response에서 agent에게 그대로 보여주면 안 되는 field를 줄인다.
- 특정 operation에 idempotency key나 correlation id를 강제한다.
- audit에 필요한 context를 표준화한다.
하지만 interceptor도 만능 장치는 아니다. Lambda-only 같은 구현 제약이 있을 수 있고, interceptor code 자체도 장애·latency·권한 문제를 만든다. 따라서 interceptor는 “모든 tool call을 복잡하게 감싸는 곳”이 아니라, risk가 높은 call path에 선별적으로 붙이는 통제 지점으로 보는 편이 안전하다. [S5]
5. Gateway 밖에 남는 책임: agent logic과 workflow state
Gateway가 중요해질수록 오해도 생긴다. Gateway를 도입하면 agent 운영 문제가 끝난다고 생각하기 쉽다. 실제로는 그렇지 않다. Gateway는 tool 호출 경로를 통제하고 관찰 가능하게 만드는 계층이지, business process 전체를 대신 설계하는 계층은 아니다.
Hugging Face/IBM Research의 agent logic 관련 글은 enterprise AI adoption에서 LLM 자체뿐 아니라 agent logic, policy-as-code, orchestration, validation loops 같은 구조가 필요하다는 관점을 제시한다. 이 관점은 Gateway 도입 이후에도 남는 책임을 설명하는 데 유용하다. [S8]
Gateway 밖에 남는 대표 책임은 다음과 같다.
- Business rules: 어떤 상황에서 어떤 업무를 진행해야 하는가.
- Workflow state: 작업이 draft, review, approved, blocked, done 중 어디에 있는가.
- Validation loops: tool result가 기대한 조건을 만족했는가.
- Evaluation: agent output과 tool 선택이 품질 기준을 통과했는가.
- Rollback: 잘못된 action 이후 어떤 상태로 되돌릴 것인가.
- Human review: 자동화가 멈춰야 하는 gate는 어디인가.
Interceptor 문서가 least privilege, header 민감성, idempotency를 강조하는 것도 같은 맥락에서 읽을 수 있다. Tool 호출 경로의 안전성은 중요하지만, 실제 업무 state와 검증 루프는 별도 계층에서 관리해야 한다. [S5]
따라서 좋은 설계는 “Gateway 하나로 해결”이 아니라 “Gateway + durable state + review gate + rollback path”의 조합이다. Agent가 도구를 부르는 순간은 Gateway가 관리하고, 작업이 어떤 의미를 갖는지는 workflow/state 계층이 관리한다.
6. 도입 전 9문항 체크리스트
MCP 기반 agent tool 운영을 시작하기 전에 다음 9문항을 확인하면 과도한 도입과 위험한 자동화를 줄일 수 있다.
- 현재 노출된 tool 목록을 한 화면에서 볼 수 있는가?
tool catalog가 없다면, 먼저 registry부터 만들어야 한다. agent별 local config에 흩어진 tool 목록은 운영 중 빠르게 불투명해진다. [S1][S3]
- read-only tool과 destructive tool을 분리했는가?
조회, 생성, 수정, 삭제, 실행, 배포를 같은 risk level로 취급하면 안 된다. destructive operation은 human approval이나 별도 policy가 필요하다.
- 누가 어떤 identity로 tool을 호출하는가?
user identity, service identity, target credential을 분리해야 한다. OAuth on-behalf-of나 ingress/egress auth 같은 흐름은 이 문제를 다루는 한 방식이다. [S1][S3]
- 민감 header/token/account context는 어디서 보호되는가?
interceptor나 integration layer에서 header 처리, token 전달, response redaction을 설계해야 한다. 문서상 header 민감성과 least privilege는 이 지점의 핵심 watchpoint다. [S5]
- policy는 prompt 안에만 있는가, 호출 시점에도 평가되는가?
prompt policy는 필요하지만 충분하지 않다. Gateway-level policy나 별도 enforcement boundary가 있으면 tool 호출 시점에 다시 판단할 수 있다. [S2][S4]
- 차단된 호출과 승인된 호출이 audit log로 남는가?
실패한 호출만 남기면 policy가 잘 작동하는지 알 수 없다. 허용, 차단, 승인, 재시도, rollback event가 모두 관찰 가능해야 한다.
- human approval이 필요한 작업은 어디서 멈추는가?
production 변경, external message 발송, payment/contract, destructive command, public publish 같은 작업은 자동 실행 전에 멈춰야 한다.
- Gateway 밖 workflow state는 어디에 저장되는가?
Gateway가 tool call을 관리하더라도 업무 상태는 별도 durable source of truth가 필요하다. Ticket, task ledger, database, workflow engine 중 무엇을 쓸지 정해야 한다. [S8]
- disable switch와 rollback path가 있는가?
tool이 잘못 노출되거나 policy가 잘못 적용될 때 즉시 비활성화할 수 있어야 한다. Interceptor나 policy 변경도 versioning과 rollback이 필요하다. [S5]
이 체크리스트의 핵심은 특정 제품을 사라는 것이 아니다. “agent가 tool을 호출한다”는 행위를 production operation으로 다루라는 것이다.
7. 작게 시작하는 MVP
가장 안전한 시작점은 거대한 gateway platform이 아니라 작은 운영 경계다. 특히 내부 도입 초기에는 다음 순서가 현실적이다.
7.1 Registry부터 만든다
먼저 agent가 사용할 수 있는 tool 목록을 registry로 만든다. 각 tool에 owner, risk level, allowed agent, required approval, disable method를 붙인다. 이 단계만으로도 “우리가 무엇을 열어두었는가”가 보이기 시작한다.
7.2 Read-only tool부터 연결한다
처음부터 write/delete/deploy action을 붙이지 않는다. 문서 검색, issue 조회, log summary, read-only metadata 조회처럼 결과를 검토하기 쉬운 tool부터 시작한다. 이 구간에서 agent의 tool 선택 품질, logging 구조, error handling을 관찰한다.
7.3 Logging과 review loop를 먼저 검증한다
Tool call이 성공했는지보다 먼저 확인할 것은 log가 충분한지다. 어떤 tool을 왜 호출했는지, 어떤 argument를 보냈는지, 결과가 무엇이었는지, 사람이 리뷰할 수 있는 형태로 남는지 봐야 한다. Agent logic과 validation loop는 이 데이터를 기반으로 개선된다. [S8]
7.4 Human approval gate를 추가한다
다음 단계는 write operation을 바로 자동화하는 것이 아니라 approval gate를 붙이는 것이다. 예를 들어 “draft 생성”, “ticket comment 제안”, “config 변경안 작성”은 artifact-only로 만들고, 실제 적용은 사람이 승인하게 한다. Production 변경이나 public publish는 특히 별도 gate가 필요하다.
7.5 Policy와 interceptor는 risk가 높은 경로부터 붙인다
모든 tool call을 처음부터 복잡한 interceptor로 감싸려 하면 운영 부담이 커진다. 민감 header/token이 있는 경로, destructive operation, tenant boundary가 있는 경로, public-facing action부터 policy와 interceptor를 붙이는 방식이 낫다. Interceptor는 least privilege, idempotency, 민감 header 처리 같은 원칙을 지켜야 한다. [S5]
7.6 Manual → assisted → gated automation 순서로 확장한다
좋은 agent 운영은 “완전 자동화”가 아니라 단계적 신뢰 구축에 가깝다.
- Manual: 사람이 직접 실행하고 agent는 정보만 제공한다.
- Assisted: agent가 artifact와 제안을 만들고 사람이 적용한다.
- Gated automation: agent가 실행 직전 멈추고 승인 후 진행한다.
- Limited automation: 충분히 검증된 low-risk action만 자동화한다.
이 순서를 지키면 Gateway는 제품 도입 프로젝트가 아니라 운영 안정성을 높이는 계층이 된다.
결론
MCP의 확산은 agent가 더 많은 외부 system에 접근할 수 있게 만들었다. 하지만 연결이 늘어날수록 진짜 문제는 “붙일 수 있는가”가 아니라 “운영할 수 있는가”로 바뀐다. Agent Gateway는 이 전환점에서 catalog, identity, policy, observability, approval을 묶는 운영 경계가 될 수 있다. [S6][S7]
AWS AgentCore Gateway, Policy, Interceptor 사례는 agent-to-tool traffic을 gateway에서 평가하고 변환하고 관찰하는 방향을 보여준다. 그러나 이를 특정 vendor의 정답으로 받아들이기보다, 자신의 stack에서 어떤 경계가 필요한지 판단하는 참고 사례로 보는 것이 안전하다. [S1][S2][S3][S4][S5]
마지막으로 Gateway는 agent logic을 대체하지 않는다. 업무 규칙, workflow state, validation loop, human review, rollback은 여전히 별도 설계가 필요하다. 실무적으로는 registry, read-only tool, logging, approval gate부터 작게 시작하고, risk가 높은 경로에 policy와 interceptor를 붙이는 접근이 가장 현실적이다. [S8][S5]
Sources
- [S1] AWS Machine Learning Blog — AgentCore Gateway의 MCP tools/prompts/resources, dynamic listing, streaming, sessions, elicitation, OAuth on-behalf-of, unified catalog 확장 신호.
- [S2] AWS Machine Learning Blog — AgentCore Gateway의 Cedar policy와 Lambda interceptor가 agent tool 호출을 deterministic allow/deny 및 동적 검증으로 제어하는 패턴.
- [S3] AWS Documentation — Gateway가 API/Lambda/service를 MCP-compatible tools로 변환하고 secure endpoint, ingress/egress auth, tool discovery를 제공한다는 제품 문서.
- [S4] AWS Documentation — Policy in AgentCore가 gateway를 통과하는 agent-to-tool traffic을 policy engine에서 평가하고 Cedar 기반 정책을 지원한다는 문서.
- [S5] AWS Documentation — REQUEST/RESPONSE interceptor 유형, Lambda-only 제약, header 민감성, least privilege, idempotency best practice.
- [S6] Model Context Protocol — MCP가 AI applications를 external systems/tools/data/workflows에 연결하는 open-source standard라는 공식 소개.
- [S7] Model Context Protocol Specification — MCP base protocol/lifecycle/authorization/server features(resources/prompts/tools)/JSON-RPC message 구조.
- [S8] Hugging Face / IBM Research — Enterprise AI adoption에는 LLM만이 아니라 agent logic, policy-as-code, orchestration, validation loops가 필요하다는 관점.
댓글 남기기