홍드로이드의 야매코딩

MCP 서버 연결 끊김 재연결 — 다섯 번까지·내 PC 서버는 제외 본문

AI & Vibe Coding

MCP 서버 연결 끊김 재연결 — 다섯 번까지·내 PC 서버는 제외

홍드로이드 2026. 9. 18. 09:43
반응형

쓰다 보면 붙어 있던 MCP 서버가 슬그머니 떨어져 있을 때가 있습니다. 다행히 클로드 코드는 혼자 다시 붙어 보려고 여러 번 시도합니다. 다만 그 대상에서 빠지는 종류가 하나 있고, 횟수와 기다림에도 정해진 규칙이 있습니다.

9월 중순 판올림에서 이 언저리가 여럿 손질됐습니다. 권한이 모자란 것을 로그인 만료로 잘못 알려 주던 문제가 고쳐졌고, 시작할 때 얼마나 기다릴지 정하는 손잡이도 새로 생겼습니다.

📌 30초 요약

  • 끊기면 다섯 번까지 다시 붙습니다.
  • 내 PC에서 도는 서버는 제외입니다.
  • 첫 연결 실패는 세 번까지입니다.
  • 권한 부족이 로그인 만료로 보이던 게 고쳐졌습니다.
  • 기다리는 시간을 정할 수 있게 됐습니다.

1. 자동으로 붙는 것과 아닌 것

먼저 갈라 두겠습니다. 자동 재연결은 원격 서버에만 해당합니다. 내 컴퓨터에서 프로세스로 도는 서버는 자동으로 다시 안 붙습니다. 이게 이 글에서 가장 먼저 기억하실 대목입니다 — 로컬로 붙여 둔 서버가 죽으면 제가 알아채고 손을 써야 한다는 뜻이니까요.

어떤 상황 몇 번 시도하나
원격 서버가 도중에 끊김 다섯 번까지
첫 연결이 일시 오류로 실패 세 번까지
붙은 뒤 도구 목록 가져오기 세 번까지 — 단 조건이 붙습니다
내 PC에서 도는 서버 시도하지 않습니다

셋째 줄의 조건이 중요합니다. 붙고 나서 도구·프롬프트·자료 목록을 받아 오는 요청은 일시적인 오류일 때만 다시 시도합니다. 인증 오류나 요청이 거절된 경우, 요청 자체가 시간 초과된 경우에는 재시도하지 않습니다. 「몇 번 더 해 보겠지」 하고 기다려도 소용없는 구간이 있다는 뜻이죠.

2. 얼마나 기다리고, 무엇이 보이나

재연결은 점점 뜸하게 시도합니다. 1초에서 시작해 실패할 때마다 간격을 두 배로 늘리고, 다섯 번째에서 멈춥니다. 다 실패하면 그 서버를 실패로 표시하거나, 다시 인증이 필요한 상태로 바꿔 둡니다. 이때 연결이 끊겼다는 알림이 뜨는데, 이 알림 자체가 최근 판올림에서 추가된 것입니다.

보이는 모습은 어떻게 돌리느냐에 따라 갈립니다. 대화형으로 쓰면 서버 목록에 대기 중으로 나타났다가 결과에 따라 바뀌지만, 한 번에 돌리는 방식이나 개발 도구로 돌릴 때는 같은 일정으로 재연결하면서도 보여 줄 화면이 없습니다. 무인으로 돌리는 작업일수록 로그를 봐야 안다는 이야기입니다.

여기에 새 손잡이가 하나 생겼습니다. 연결을 확인하지 않고 세션이 시작되던 문제를 짚은 적이 있는데, 이제 첫 차례가 연결 중인 서버를 얼마나 기다릴지 환경 변수로 정할 수 있습니다. 0으로 두면 아예 안 기다리고요. 자동화 안에서 도구가 준비되기 전에 첫 지시가 나가 버리는 일을 막고 싶다면 이 값을 쓰시면 됩니다.

3. 엉뚱하게 읽히던 오류들

이번 판올림에서 고쳐진 것 중 오진에 해당하는 게 여럿입니다. 원인과 안내가 어긋나면 엉뚱한 곳을 고치게 되니, 겪어 보셨다면 판올림부터 확인하실 만합니다.

⚠️ 권한 부족이 「로그인 만료」로 보였습니다

도구 호출이 권한이 모자라 거절됐는데도 「로그인이 만료됐다」고 알려 주던 문제가 있었습니다. 안내를 믿고 다시 로그인해 봐야 같은 자리에서 또 막히죠. 이제는 어떤 권한이 빠졌는지 이름을 대고 다시 인증할 곳을 가리킵니다. 도구 권한의 기본값이 정반대인 경우까지 겹치면 원인을 찾는 데 한참 걸리니, 「로그인하라」는 안내가 두 번 이상 반복되면 권한 쪽을 의심해 보세요.

연결 자체가 안 되던 경우도 있었습니다. 옛 방식으로만 말하는 서버를 요즘 형식으로 등록해 두면, 그 서버가 첫 요청에 거절로 답할 때 클로드 코드가 그대로 포기해 버렸습니다. 서버는 멀쩡한데 말을 트지 못한 셈이죠. 이것도 이번에 고쳐졌으니, 사내망에 직접 세운 서버처럼 오래된 구현을 쓰신다면 판올림 효과를 보실 수 있습니다.

「로그인하라」가 되풀이되는 또 다른 원인도 하나 적어 두겠습니다. 같은 서버 이름을 여러 자리에 서로 다른 주소로 적어 두면 충돌 경고가 뜨는데, 문제는 그다음입니다 — 로그인 기록이 주소별로 따로 저장되기 때문이죠. 한 프로젝트에서 인증을 마쳐도 다른 정의가 불려 오는 프로젝트에서는 또 로그인해야 합니다. 쓸 주소 하나만 남기고 나머지는 지우는 편이 깔끔합니다. 참고로 이 경고는 설정에 적힌 주소를 그대로 인용해 보여 주되 변수는 풀지 않으니, 열쇠 값이 화면에 드러날 걱정은 없습니다.

4. 시간제한과 목록 갱신

오래 걸리는 도구를 붙이셨다면 이 항목이 반갑습니다. 서버마다 시간제한을 길게 잡아 두어도 5분쯤에서 끊기던 문제가 고쳐졌습니다. 설정은 했는데 왜 안 먹나 싶었다면 여기였을 수 있습니다.

고쳐진 것 어떤 증상이었나
권한 부족 안내 로그인 만료로 잘못 표시
옛 방식 서버 연결 첫 요청이 거절되면 포기
도구 호출 시간제한 길게 잡아도 5분쯤에 끊김
목록 갱신 알림 선언 없이 보내면 무시

넷째 줄은 서버 쪽 사정입니다. 서버가 도구 목록이 바뀌었다고 알려 주면 끊었다 붙이지 않고도 갱신되는데, 그 기능을 쓰겠다고 미리 선언하지 않은 서버는 알림을 보내도 반영되지 않았습니다. 그사이에는 마지막으로 받아 둔 목록이 그대로 쓰입니다. 급하면 서버를 손으로 다시 연결하면 되고요.

한 가지 덧붙이면, 전에 써 본 원격 서버는 시작할 때 연결하지 않고 저장해 둔 목록을 불러옵니다. 「캐시됨 · 첫 사용 때 연결」처럼 표시되는데 도구는 첫 메시지부터 쓸 수 있으니 따로 하실 일은 없습니다. 서버를 많이 붙일수록 정확도가 떨어지던 문제를 생각하면, 안 쓰는 서버를 줄여 두는 편이 여기서도 이득입니다.

자주 묻는 질문 (FAQ)

Q. 로컬 서버가 죽었는데 안 붙습니다

정상 동작입니다. 내 컴퓨터에서 프로세스로 도는 서버는 자동 재연결 대상이 아닙니다. 서버 목록에서 직접 다시 연결하시거나 프로세스를 다시 띄우셔야 합니다.

Q. 다시 로그인해도 같은 오류가 납니다

예전 판올림에서는 권한이 모자란 것을 로그인 만료로 알려 주던 문제가 있었습니다. 고쳐진 판에서는 빠진 권한을 이름으로 알려 줍니다. 판올림부터 확인해 보세요.

Q. 자동화에서 도구가 준비되기 전에 지시가 나갑니다

이번에 첫 차례가 연결을 얼마나 기다릴지 정하는 환경 변수가 생겼습니다. 0으로 두면 안 기다립니다. 기다릴 시간을 정해 두시면 준비 전에 지시가 나가는 일을 줄일 수 있습니다.

Q. 재연결을 기다리면 언제 끝나나요

간격이 1초에서 두 배씩 늘어나 다섯 번째에서 멈춥니다. 그 뒤에는 실패 또는 재인증 필요로 표시되니, 알림이 뜨면 손으로 다시 연결하시는 편이 빠릅니다.

정리하면

  • 끊기면 다섯 번입니다.
  • 내 PC 서버는 제외입니다.
  • 인증·거절은 재시도 없음입니다.
  • 「로그인하라」가 반복되면 권한을 보세요.
  • 기다릴 시간을 정해 두세요.

※ 공개된 MCP 문서와 9월 17일자 판올림 기록을 읽고 정리했습니다. 환경 변수와 설정 항목 이름은 우리말로 풀어 적었으니 실제 표기는 원문에서 확인하세요.

※ 여기 적은 수정 사항에는 최소 판올림 조건이 붙으며, 재시도 횟수와 간격도 바뀔 수 있습니다. 쓰시는 판의 기록과 대조해 확인하세요.

반응형
Comments