MCP(Model Context Protocol)를 붙이면 도구 연결이 쉬워지는 건 맞습니다. 그런데 실무에서 실패하는 이유는 연결 자체가 아니라 운영 기준 부재입니다. "연결됐다"와 "안정적으로 쓴다"는 완전히 다른 문제입니다.
현장에서 자주 듣는 말이 있습니다.
원인은 간단합니다. 서버를 띄우는 데 집중하고, 호출 계약(contract)과 검증 규칙을 나중으로 미뤘기 때문입니다.
파라미터 타입, 필수값, 에러 코드 정의가 약하면 모델이 잘못 호출해도 원인을 모릅니다.
리서치, 파일편집, 배포, 알림을 한 서버에서 처리하면 장애 전파 범위가 커집니다.
느린 API 하나가 전체 체인을 막습니다. 재시도도 무제한이면 비용이 터집니다.
"성공/실패"만 보면 개선이 불가능합니다. 어느 도구가, 어떤 입력에서, 얼마나 지연되는지 봐야 합니다.
권장 분리는 아래와 같습니다.
knowledge-mcp: 검색/요약/문서조회ops-mcp: 배포/모니터링/알림admin-mcp: 고권한 관리 기능고권한 도구를 별도 서버로 분리하면 사고 격리가 쉬워집니다.
각 도구마다 최소 아래 항목을 고정합니다.
예: create_ticket 도구는 title, severity, owner를 필수로 지정하고, 실패 코드는 VALIDATION_ERROR, UPSTREAM_TIMEOUT 등으로 제한합니다.
어떤 작업에서 어떤 도구를 우선 호출할지 명시해야 합니다.
정상 시나리오보다 실패 시나리오를 먼저 설계합니다.
실패 처리 규칙이 없으면 운영 단계에서 같은 장애가 반복됩니다.
아래는 콘텐츠팀에서 바로 쓰는 구성 예시입니다.
trend-search 도구로 주제 후보 10개 수집duplicate-check 도구로 기존 글 중복 검사outline-generator 도구로 구조 생성quality-check 도구로 길이/키워드/금지 표현 점검publish-post 도구로 업로드여기서 핵심은 "한 번에 끝내는 거대 호출"이 아니라 "단계별 검증"입니다.
동일 쿼리 재검색은 TTL 캐시를 둡니다. 주제 리서치의 경우 6~12시간 캐시만 넣어도 외부 API 호출을 크게 줄일 수 있습니다.
도구 호출 전에 긴 문서를 그대로 넣지 말고, 핵심 필드만 전달합니다. 예: 전체 본문 대신 요약 5줄 + 핵심 키워드 + 메타데이터.
독립 작업(검색 후보 수집, 이미지 후보 평가)은 병렬화하고, 상태 변경 작업(업로드, 삭제, 배포)은 직렬화합니다.
작업당 최대 호출 횟수와 최대 비용을 먼저 정해두면 runaway 실행을 막을 수 있습니다.
MCP를 잘 쓰는 팀은 "도구를 많이 붙인 팀"이 아니라 "도구 호출 규칙을 명확히 가진 팀"입니다. 이번 주에 바로 할 일은 간단합니다. 가장 자주 쓰는 도구 3개를 뽑아 입력/출력 스키마와 실패 코드를 문서화하세요. 이 한 작업만으로도 모델 호출 품질, 디버깅 속도, 운영 안정성이 동시에 올라갑니다.