MCP 'Hello Page' 문제 해결하기: 명세와 사용자 경험 사이의 간극 메우기
Model Context Protocol (MCP)는 LLM 에이전트가 외부 도구 및 데이터와 상호작용하는 방식을 표준화하는 것을 목표로 합니다. 그러나 프로토콜이 기업용 도구에 채택됨에 따라, 반복되는 마찰 지점이 나타났습니다. 바로 기술적 명세와 실제 온보딩 과정에서의 인간적 경험 사이의 간극입니다.
사용자가 LLM 클라이언트에 MCP 서버 URL을 추가하라는 안내를 받으면, 그들은 종종 가장 직관적인 행동을 합니다. 바로 링크를 클릭하여 작동 여부를 확인하는 것입니다. 프로토콜의 엄격한 구현체에서는 이로 인해 401 Unauthorized 또는 가공되지 않은 JSON blob이 반환되어, 사용자는 서비스가 고장 났다고 믿게 되고 이는 지원 티켓의 폭증으로 이어집니다.
'클릭-투-에러(Click-to-Error)' 마찰 지점
MCP 서버를 구축하는 개발자들에게 목표는 비결정론적 에이전트를 위해 결정론적 엔드포인트를 제공하는 것입니다. 하지만 최종 사용자에게 URL은 클릭 가능한 객체입니다. 사용자가 브라우저에서 mcp.acme.com/mcp를 열면, MCP 클라이언트가 보내는 특정 헤더를 보내는 것이 아니라 text/html 요청을 보냅니다.
서버가 단순히 401 또는 가공되지 않은 JSON 에러를 반환하면, 사용자의 멘탈 모델은 다음과 같습니다: "링크가 깨졌어." 이것은 고객 성공(CS) 팀에 상당한 부담을 주며 온보딩 프로세스를 늦춥니다. 대안으로—모든 개별 LLM 클라이언트를 위한 전용 플러그인을 패키징하는 방식은—조직이 자체 내부 클라이언트를 구축함에 따라 개발자들에게 지속 불가능한 "두더지 잡기 게임"이 됩니다.
우아한 해결책: 콘텐츠 협상(Content Negotiation)
사용자의 직관과 싸우기보다는, 표준 HTTP 콘텐츠 협상을 활용하는 간단한 "해킹"이 문제를 해결할 수 있습니다. 들어오는 요청의 Accept 헤더를 확인하여, 서버는 요청이 브라우저에서 오는지 아니면 MCP 클라이언트에서 오는지 판단할 수 있습니다:
Accept헤더에text/html이 포함된 경우 (특히application/json또는text/event-stream이 아닌 경우), 서버는 친절한 HTML 페이지를 반환합니다.- 요청이 MCP 명세를 따르는 경우, 표준 프로토콜 핸드셰이크를 진행합니다.
이 "Hello Page"는 사용자에게 현재 MCP 서버를 브라우저에서 직접 보려고 시도하고 있음을 설명하고, 선택한 LLM 클라이언트에 URL을 추가하는 방법에 대한 명확한 지침을 제공합니다.
커뮤니티의 관점: 해킹인가, 표준 관식인가?
원래 저자가 이 접근 방식을 "해킹"이라고 설명했음에도 불구하고, 기술 커뮤니티는 이것이 HTTP 헤더가 설계된 목적과 정확히 일치한다고 언급하며 대체로 동의하지 않았습니다.
콘텐츠 협상을 기능으로 사용하기
여러 기여자들이 이 방식이 많은 유명 API의 표준 동작임을 지적했습니다. 예를 들어, Kubernetes API와 ipinfo.io와 같은 서비스는 요청 헤더에 따라 다른 형식을 제공하기 위해 유사한 로직을 사용합니다. 한 댓글 작성자는 다음과 같이 언급했습니다:
"이것은 해킹이라기보다 HTTP 헤더의 용도를 발견하는 것에 가깝습니다... '이것은 HTML로 보여줄 수 없습니다. 대신 이렇게 하세요.'라고 말하는 HTML 응답을 제공하는 것은 전혀 문제가 없습니다."
URL의 UX
일부 비판가들은 문제가 UI에서 시작된다고 주장합니다. 만약 URL이 클릭할 수 없는 것이라면, 클릭 가능한 링크로 제시되어서는 안 됩니다. 대신, 사용자에게 이것이 웹페이지가 아닌 설정 문자열임을 알지게 하기 위해, "클립보드에 복사" 버튼이 있는 모노스페이스 코드 블록에 넣어야 합니다.
MCP 명세에 대한 더 넓은 비판
"Hello Page" 이슈를 넘어, 이번 논의는 현재 MCP 명세의 상태에 대한 더 깊은 좌절감을 드러냈습니다. 비판가들은 명세가 현재 "마케팅 용어"와 "초보자를 위한 와이어 포맷"이 뒤섞여 있다고 주장하며, 중요한 영역에서 너무 많은 간극을 있습니다:
- 인증(Authentication): 인증을 처리하는 "올바른" 방법에 대해 상당한 논의이 있으며, 일부 개발자들은 쿠키 기반 인증을 작동시키기 위해 OAuth 흐름을 mimic(흉내)하는 방식에 의도적으로 사용하고 있습니다.
- 게이트웨이(Gateways): MCP 게이트웨이의 역할이 불정명히 정의되어 있어, 게이트웨이와 서버 중 어디서 토큰 교환을을 처리해야 하는지 모호합니다.
- 기업용 준비성(Enterprise Readiness): 초기 명세는 서버가 로컬에서 실행되거나 개별 사용자를 대상으로 한다고 가정했기에, 기업급 IdP(Identity Provider) 통합을 부후적이고 부차적인 문제로 남겨두었습니다.
이러한 비판에도 불구하고, MCP가 에이전트 간의 도구 호출 표준화를 위한 현재 유일한 실행 가능한 표준이라는 점에는 일반적인 합의가 이루어져 있으며, 이에 따라 결함함이 있음에도 불구하고 빠르게 채택되고 있습니다.
결론
"Hello Page"는 엄청난 결과를 가져오는 아주 작은 기능(affordance)입니다. 실패하는 바로 그 순간에 문서를 제공함으로써, 개발자들은 혼란스러운 에러를 하나의 셀프 서비스 온보딩 단계로 전환할 수 있습니다. MCP 명세가 진화함에 따라, 이러한 인간 중심의 UX 패턴을 것을 incorporarate(통합)하는 것은 프로토콜을 "vibe-coding" 단계에서 견고한 기업용 표준으로 이동시키는 데 필수적입니다.