MCP 서버는 처리되지 않은 예외로 인해 조용히 실패할 수 있습니다. Model Context Protocol 사양은 오류 처리를 의무화하지 않으며, 참조 구현은 최소한입니다. 이로 인해 서버는 눈에 보이는 오류 메시지 없이 시간이 지남에 따라 응답하지 않게 될 수 있습니다. 일반적인 원인으로는 네트워크 문제, 잘못된 형식의 도구 인수 또는 외부 API 시간 초과가 있습니다.강력한 솔루션에는 try-except 블록으로 도구 핸들러를 감싸는 것이 포함됩니다. 이 래퍼는 ConnectionError, TimeoutError 및 ValueError와 같은 다양한 예외를 잡습니다. 네트워크 수준 문제의 경우 서버는 전송 계층을 다시 연결하려고 시도해야 합니다. 클라이언트의 잘못된 인수는 명확하게 다시 전달되어야 합니다.일반적인 Exception catch-all은 전체 트레이스백을 기록하고 설명적인 오류 메시지를 반환해야 합니다. 중요하게도 응답은 오류가 발생했음을 클라이언트에게 알리기 위해 isError: True를 설정해야 합니다. 이 플래그가 없으면 AI는 오류 메시지를 유효한 결과로 해석할 수 있습니다.이 래퍼 패턴은 조용한 충돌을 방지하고 클라이언트에게 명확한 오류 신호를 제공하며 서버를 계속 작동시킵니다. 잡아야 하는 일시적인 오류와 서버를 충돌시켜야 하는 치명적인 오류를 구분하는 것이 중요합니다. 공유 상태가 있는 서버의 경우 상태 확인 도구를 사용하여 다시 연결 후 서버의 무결성을 확인할 수 있습니다.부분적인 실패가 가능하며 오류 플래그와 함께 부분 데이터를 반환하여 명시적으로 처리해야 합니다. 효과적인 로깅, 특히 구조화된 JSON 로깅은 디버깅 및 오류 패턴 식별에 필수적입니다. 이 접근 방식은 프로덕션 환경에서 조용한 실패를 크게 줄였습니다.
isError: True를 설정해야 합니다. 이 플래그가 없으면 AI는 오류 메시지를 유효한 결과로 해석할 수 있습니다.이 래퍼 패턴은 조용한 충돌을 방지하고 클라이언트에게 명확한 오류 신호를 제공하며 서버를 계속 작동시킵니다. 잡아야 하는 일시적인 오류와 서버를 충돌시켜야 하는 치명적인 오류를 구분하는 것이 중요합니다. 공유 상태가 있는 서버의 경우 상태 확인 도구를 사용하여 다시 연결 후 서버의 무결성을 확인할 수 있습니다.부분적인 실패가 가능하며 오류 플래그와 함께 부분 데이터를 반환하여 명시적으로 처리해야 합니다. 효과적인 로깅, 특히 구조화된 JSON 로깅은 디버깅 및 오류 패턴 식별에 필수적입니다. 이 접근 방식은 프로덕션 환경에서 조용한 실패를 크게 줄였습니다.