계층을 나눈 이유는 하나다. 공공 API 응답이 바뀌는 일과 접근성 판단 기준이 바뀌는 일은 서로 다른 일이고, 둘이 섞이면 한쪽 변경이 다른 쪽을 깨뜨린다.

MCP 층은 에이전트가 쓸 도구와 답변 정책만 들고 있다. 실제 조회와 조합은 그 아래에서 하고, 공공 API 호출과 오류 변환은 다시 그 아래에서 맡는다.
이렇게 나눠두면 공공 API 응답 형식이 바뀌어도 고칠 범위가 제일 아래층에서 멈춘다.
정리된 데이터가 올라오면 근거를 확인된 것과 아닌 것으로 나누고, 사용자의 이동 조건에 따라 위험도를 계산한다.
여기서 중요한 건 서버 안에서 LLM을 부르지 않는다는 점이다. 같은 근거에는 같은 판단이 나와야 안전 판단을 재현할 수 있으니까. LLM이 하는 일은 질문을 보고 도구를 고르는 것까지다.
캐시와 인증, 상태 점검이 이 흐름을 감싼다.
캐시는 메모리로 시작했다. 혼자 도는 로컬 서버에 처음부터 Redis를 붙일 이유가 없었고, 여러 인스턴스가 캐시를 공유해야 할 때 선택하면 된다.
MCP도 결국 운영되는 백엔드다. 도구를 등록하는 것보다 데이터 경계와 실패 처리, 보안, 관측성, 테스트가 서비스 품질을 결정한다.
데이터 정리는 공공 API와 데이터 정규화로, 판단 규칙은 근거 기반 판단과 MCP 계약로 이어진다.