MCP 서버를 붙이면 AI가 외부 도구를 훨씬 잘 씁니다. 문제는 여기서부터입니다. 데모에서는 놀랍지만, 실무에서는 연결한 순간부터 운영 문제가 시작됩니다. 어떤 서버는 느리고, 어떤 서버는 권한이 과하고, 어떤 서버는 출력 포맷이 들쑥날쑥해서 에이전트가 자꾸 실수합니다. 그래서 “MCP 서버 연결법”보다 중요한 건 “MCP 서버를 운영 가능한 상태로 만드는 법”입니다. 이 글은 실무 개발자가 바로 적용할 수 있는 MCP 서버 운영 체크리스트를 정리합니다.
처음 도입할 때는 보통 이렇게 갑니다. GitHub, Notion, 데이터베이스, 브라우저 자동화 서버를 한꺼번에 연결합니다. 그리고 에이전트에게 “이슈 읽고 수정하고 배포까지 해줘”라고 시킵니다. 이때 초반 데모는 잘 되는 것처럼 보이지만, 실제로는 세 가지 문제가 바로 터집니다.
첫째, 도구 선택이 불안정합니다. 같은 목적의 툴이 여러 개 연결돼 있으면 에이전트가 매번 다른 서버를 고르거나, 불필요한 호출을 반복합니다.
둘째, 출력 구조가 일정하지 않습니다. 어떤 서버는 JSON을 주고, 어떤 서버는 사람이 읽기 좋은 텍스트를 줍니다. 모델은 둘 다 해석할 수 있지만, 후속 액션에서 오류가 늘어납니다.
셋째, 실패 처리가 약합니다. 타임아웃, 권한 오류, 빈 결과, 잘못된 파라미터 같은 예외가 나왔을 때 복구 경로가 없으면 에이전트는 같은 호출을 계속 반복하거나 엉뚱한 결론을 냅니다.
즉 MCP는 “연결”보다 “운영 규칙”이 먼저입니다.
한 서버는 한 역할이 좋습니다. 예를 들어 GitHub 이슈 조회와 댓글 작성, PR 조회까지는 한 서버에서 해도 됩니다. 하지만 DB 직접 쓰기, 배포 승인, 브라우저 세션 제어까지 한 서버에 다 묶이면 권한이 비대해집니다. 역할이 많을수록 디버깅도 어려워집니다.
실무에서는 서버별 책임을 아래처럼 나누는 게 좋습니다.
고위험 실행 서버는 정말 필요한 경우에만 연결하고, 기본값은 꺼두는 편이 안전합니다.
에이전트는 자유 텍스트보다 안정된 구조를 훨씬 잘 다룹니다. 예를 들어 이슈 조회 결과는 title, status, assignee, body, updatedAt처럼 필드가 고정돼 있어야 후속 프롬프트가 간단해집니다. 포맷이 자주 바뀌면 프롬프트 예외 처리가 늘어나고, 그만큼 실패율이 올라갑니다.
좋은 MCP 서버는 사람이 읽기 편한 설명보다, 기계가 반복 처리하기 좋은 일관성을 우선합니다.
느린 서버는 좋은 서버가 아닙니다. 모델이 도구 호출을 기다리는 동안 전체 작업 흐름이 멈추기 때문입니다. 실무에서는 조회 API는 짧게, 긴 작업은 비동기 상태 확인 방식으로 나누는 게 좋습니다. 예를 들어 리포지토리 검색은 5초 안쪽, 리포트 생성은 job id를 반환하고 나중에 조회하는 구조가 낫습니다.
재시도도 중요합니다. 네트워크 오류와 권한 오류를 같은 방식으로 재시도하면 안 됩니다. 일시적 오류만 1~2회 재시도하고, 권한 오류는 즉시 실패 처리해야 쓸데없는 호출을 줄일 수 있습니다.
의외로 많은 팀이 이 부분을 놓칩니다. 도구 설명이 길고 모호하면 모델이 잘못 고릅니다. “프로젝트 관련 데이터를 관리합니다” 같은 설명은 도움이 안 됩니다. 대신 “GitHub issue를 조회합니다. PR 수정은 하지 않습니다. 최대 100건까지 조회합니다”처럼 경계를 분명히 써야 합니다.
설명이 정확할수록 에이전트의 도구 선택 실수가 줄고, 토큰도 덜 씁니다.
MCP 서버 문제는 결국 사람이 디버깅합니다. 따라서 로그에는 최소한 아래 정보가 남아야 합니다.
이 여섯 개가 없으면 “왜 에이전트가 이상한 행동을 했는지”를 추적하기 어렵습니다.
에이전트 성능이 안 나올 때 많은 팀이 프롬프트를 계속 손봅니다. 하지만 원인이 서버 설계인 경우가 훨씬 많습니다. 아래 세 가지만 바꿔도 체감이 큽니다.
첫째, 읽기 전용과 쓰기 가능 도구를 분리합니다. 모델이 데이터를 읽는 단계와 실제 액션 단계가 구분되면 실수가 줄어듭니다.
둘째, 결과를 요약하지 말고 구조화합니다. “최근 열린 버그 10개를 요약”보다 “최근 열린 버그 10개의 제목, 심각도, 담당자, 생성일”처럼 주는 편이 다음 단계 자동화에 유리합니다.
셋째, 도구 수를 줄입니다. 비슷한 일을 하는 서버가 3개 있으면 선택 혼선이 생깁니다. 초반에는 정말 필요한 서버 3~5개만 연결하는 편이 좋습니다.
1단계는 읽기 전용 서버부터 붙이는 것입니다. 이슈 조회, 문서 검색, 로그 조회 정도면 위험이 낮고 효과를 빨리 볼 수 있습니다.
2단계는 제한적 쓰기입니다. 댓글 작성, 라벨 변경, 초안 저장 정도부터 시작합니다. 이 단계에서 승인 절차와 로그를 같이 붙여야 합니다.
3단계가 고위험 자동화입니다. PR 생성, 코드 수정, 배포 트리거 같은 작업은 테스트와 롤백 경로가 준비된 뒤에 여는 게 맞습니다.
이 순서를 거꾸로 가면 거의 항상 사고가 납니다.
MCP 서버는 많이 붙인다고 좋은 게 아닙니다. 잘 정의된 몇 개를 안정적으로 운영하는 편이 훨씬 낫습니다. 에이전트 성능이 흔들린다면 프롬프트부터 고치지 말고, 서버 역할·출력 구조·실패 처리부터 점검해보는 게 정답입니다.