원칙: 도구는 정의에서 나온다

MCP 도구 발행 경로는 Text-to-SQL 엔진의 끝에 붙어 있습니다. 선언된 지표를 컴파일하고 실행할 조회를 검사한 뒤, 관리자가 승인된 정의를 freeze합니다. 제외된 정의에는 사유가 남습니다. 발행된 도구는 선언된 인자를 바인딩하고 실행 통제를 거쳐 읽기 전용 조회를 제출합니다. 이 경로에서는 호출마다 모델이 SQL을 새로 생성하지 않습니다.

도구는 정의에서 나온다 — 열지 않은 경로와 연 경로열지 않은 경로클라이언트 → 호출마다 모델이 SQL을 새로 작성 → 데이터베이스연 경로 — 정의 쪽 (관리자)선언된 지표컴파일 · 실행 쿼리 검사관리자 동결제외 정의는 사유 보존발행된 도구선언된 인수를 바인딩연 경로 — 호출 쪽 (Claude · ChatGPT)클라이언트 호출인증된 연결에만 도구 목록실행 제어인수·권한·출력 한계읽기 전용 조회SQL을 다시 만들지 않는다범위를 담은 결과적용 조건이 함께 돌아온다동결된 정의가 호출을 받는다
위: 열지 않은 경로. 아래: 관리자가 동결한 정의만 도구가 되고, 모든 호출은 그 정의를 실행 제어 아래에서 다시 쓴다.

범위를 담은 결과

테넌트별 도구 목록은 인증된 연결에만 제공됩니다. 결과에는 출력 제한과 마스킹이 적용되고, 빈 결과와 보유 기간 밖의 요청은 별도 상태로 구분됩니다. '0건'과 '데이터가 없는 기간'은 다른 답이기 때문입니다.

결과는 범위를 담고 돌아온다응답 (2026-11-08 기록된 호출)stateok적용 조건취소 문서 제외로그인한 회사 범위주문일 2026-01-01 ≤ d < 2026-02-01rows값 + 출력 상한·마스킹 적용job / audit테넌트 감사 로그와 대조 가능테넌트별 도구 목록은 인증된 연결에만 제공된다0행조건에 맞는 데이터가 없다— 그 기간은 보존 범위 안이다보존 기간 밖데이터가 없는 것이 아니라답할 수 없는 요청이라는 다른 답
응답에는 상태·적용 조건·값이 함께 담긴다. '0행'과 '보존 기간 밖'은 서로 다른 답이다.

실제 호출 하나

2026년 11월 8일 Claude.ai 웹에서 querymind.co.kr/mcp(QueryMind Connect 릴리스 20261108e)의 공개 시연 테넌트에 연결해 촬영했습니다. 자료는 합성 ERP 샘플, 도구는 수주 금액 조회 정의 하나입니다. 응답 JSON이 화면에 그대로 보입니다. 상태 ok, 적용 조건(중지 전표 제외, 로그인 회사 범위, 2026-01-01 이상 2026-02-01 미만), 값 1월 37,767,000 · 2월 34,638,400 · 차이 −3,128,600(−8.3%). 같은 도구에 4~6월을 적용하면 71,862,000이 돌아옵니다. 테넌트 감사 로그와 대조한 결과도 촬영 기록에 있습니다.

Claude.ai에서 QueryMind MCP 도구의 요청과 응답 JSON이 보이는 화면
요청·응답 — 2026-11-08 Claude.ai 녹화의 정지 화면. 질의·도구 호출·응답은 그대로이며 합성 ERP 데이터다.

편집과 한계를 적어 두는 이유

녹화는 탭 공유로 했고 1904×824로 정규화했으며 인사말과 대기 구간만 잘랐습니다. 글자를 덧칠하거나 결과를 바꾸지 않았습니다. 찍지 못한 것도 있습니다. 커넥터 연결 과정, ChatGPT에서의 호출 영상(11월 7일 심사 케이스로 동작은 확인). 도구 선언에 읽기 전용 표시가 없어 Claude의 권한 화면이 이 조회를 쓰기 도구로 분류하는 문제는 다음 릴리스에서 고칩니다. 시연은 성능 주장이 아니라 경계의 증명입니다.

같은 패턴, 다른 엔진

문서 추론 엔진의 줍고 MCP 커넥터(2026-10-22)와 제어형 생성 엔진의 취향판본 MCP 1단계(2026-10-23, 읽기 도구 6종)도 같은 원칙을 따릅니다. 회원 OAuth가 필수이고, 도구는 엔진이 이미 판단한 결과를 전달할 뿐 클라이언트의 모델이 판단을 대신하지 않습니다.