Claude Code의 MCP 중복 실행 수정, 저장 버튼을 한 번 눌렀는데 왜 두 번 처리될까요?
핵심 요약 (TL;DR)
Claude Code 2.1.288은 원격 MCP 서버의 응답이 16MB를 넘거나 해석되지 않을 때, 도구 호출이 때때로 두 번 실행되던 문제를 수정했다고 밝혔습니다. npm 공개 시각은 한국 기준 10월 3일 새벽입니다. 모든 저장이 중복됐다는 뜻도, 특정 서비스에서 실제 피해가 발생했다는 뜻도 아닙니다. 다만 AI로 업무 앱을 만드는 사람에게는 중요한 질문을 남깁니다. 화면에 ‘완료’가 뜨는 것과 데이터가 정확히 한 번 저장되는 것은 같은 일일까요?
응답을 못 읽었다면 작업도 실패한 걸까요?
MCP는 AI가 외부 도구를 호출하는 연결 방식입니다. 문제는 호출 뒤에 받는 응답과 실제 작업 결과가 어긋날 수 있다는 데 있습니다. 서버는 저장을 끝냈지만, 돌아온 결과를 클라이언트가 읽지 못할 수 있습니다. 이때 실패로 판단해 다시 요청하면 같은 작업이 반복될 여지가 생깁니다.
공식 변경 기록이 확인해 주는 범위는 위 조건에서의 MCP 중복 호출 수정입니다. 어떤 업무에서 몇 번 발생했는지, 결제나 알림까지 중복됐는지는 제시하지 않습니다. 따라서 이 글은 사고 규모를 추정하는 대신, 그 조건을 첫 앱의 검증 질문으로 옮깁니다. 직접 버그를 재현하거나 업데이트 전후를 실측한 글은 아닙니다.
코딩을 몰라도 어떤 프롬프트를 남길 수 있을까요?
예를 들어 상담 메모를 저장하는 작은 앱이라면 이렇게 요청해 보세요. “같은 저장 요청이 반복돼도 메모가 중복 생성되지 않도록 설계해 주세요. 저장 중에는 버튼을 다시 누르지 못하게 하고, 응답이 늦으면 저장 여부를 확인한 뒤 재시도하게 해 주세요. 실제 고객 데이터 대신 샘플로 검증해 주세요.”
여기서 버튼을 잠그는 것은 첫 단계일 뿐입니다. 브라우저 새로고침이나 네트워크 재전송까지 막지는 못합니다. 서버가 같은 요청을 구별할 식별자를 보관하는 등, 반복돼도 결과가 늘어나지 않는 처리가 필요합니다. 이를 멱등성이라고 부릅니다. 어떤 식별자를 언제까지 보관할지는 데이터와 업무에 맞춰 따로 정해야 합니다.
배포 뒤에는 무엇을 직접 확인해야 할까요?
정상적인 저장 한 번만 보지 마세요. 샘플 메모를 저장한 뒤 목록에 한 건만 생겼는지 확인하고, 같은 요청을 다시 보냈을 때도 결과가 늘지 않는지 시험하는 편이 좋습니다. 오류 문구가 떴다면 다시 누르기 전에 목록과 서버 기록을 먼저 대조하세요. 화면의 실패 표시만으로 저장되지 않았다고 단정하지 않는 연습입니다.
로그에는 요청 식별자, 처리 상태, 결과 레코드 식별자를 남기되 메모 원문이나 비밀값은 불필요하게 넣지 않는 편이 좋습니다. AI에게도 “완료했습니다” 대신 “어떤 요청으로 무엇이 저장됐는지 확인한 근거를 보여 주세요”라고 요청하세요. 생성 속도가 빨라질수록, 완료를 짧고 정확하게 설명할 수 있는 기록이 앱의 신뢰를 지킵니다.
FAQ: 업데이트하면 내 앱의 중복 저장도 해결되나요?
아닙니다. 이번 수정은 Claude Code의 특정 MCP 호출 문제입니다. 직접 만든 앱의 저장 로직이나 다른 클라이언트까지 고쳐 주지는 않습니다. 앱 쪽 검증은 별도로 필요합니다.
FAQ: MCP를 안 쓰면 읽을 필요가 없을까요?
수정 사항의 직접 대상은 아니지만, 응답 실패와 작업 실패를 구분하는 원칙은 일반 웹앱에도 유용합니다. 특히 외부 알림·주문처럼 반복의 비용이 큰 기능부터 점검해 보세요.
출처: https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md
공개 시각 확인: https://www.npmjs.com/package/@anthropic-ai/claude-code/v/2.1.288
관찰 시점: 2026-10-03 KST
댓글 0
아직 댓글이 없습니다