MCP 컨텍스트 4배 줄이는 도구, 디클릭
API·MCP 서버·DB를 셸 명령으로 컴파일해 토큰 낭비를 실측으로 줄였다.
AI 에이전트에 도구를 붙일수록 정작 일할 자리가 줄어든다. MCP(모델 컨텍스트 프로토콜) 서버를 여러 개 물리면 모든 도구의 설명서가 매 턴마다 컨텍스트에 실리기 때문이다. 디클릭(declick)은 이 낭비를 겨냥한 오픈소스 도구로, 스스로를 "에이전트가 이미 갖고 있는 인터페이스, 즉 셸을 위한 컴파일러"라고 소개한다.
무슨 일인가 / 배경
작동 방식은 이름 그대로 컴파일에 가깝다. 오픈API(OpenAPI) 명세든, 이미 쓰고 있는 MCP 서버든, 에스큐엘라이트(SQLite) 데이터베이스든 한 번 컴파일해 이름이 붙은 동사(verb) 묶음으로 만든다. 모델은 필요한 동사만 하나씩 불러 쓴다. 모든 동사는 다섯 개 종료 코드를 가진 하나의 응답 봉투를 돌려주므로, 성공·실패 처리 방식이 도구마다 제각각인 문제도 함께 정리된다. 엔진 10종을 지원하고 런타임 의존성은 없으며, 노드(Node) 24 이상을 요구한다.
주목할 만한 건 절감 효과를 주장이 아니라 측정치로 내놨다는 점이다. 실제 MCP 서버 9개, 도구 258개를 기준으로 MCP 클라이언트가 컨텍스트에 밀어 넣는 원본 도구 목록은 236,818바이트인 반면, 디클릭의 describe 출력은 58,309바이트였다. 약 4.1배 줄어든 수치이며, 저장소에 포함된 벤치마크 스크립트로 각자 자기 어댑터에서 재현해 볼 수 있다. 측정 방법과 한계는 문서에 별도로 정리돼 있다.
핵심 짚어보기
이 접근이 흥미로운 이유는 새 프로토콜을 하나 더 만드는 대신 이미 있는 것을 재활용한다는 데 있다. 명령줄은 지난 수십 년간 다듬어진 인터페이스이고, 모델은 이미 셸 명령을 잘 쓴다.
설치 후 setup 명령을 실행하면 실행 파일 경로를 등록하고, 에이전트가 쓰던 기존 MCP 서버들을 그대로 어댑터로 흡수한 뒤, 지시문 파일에 사용 규칙 블록을 자동으로 추가한다. 기존 환경을 버리지 않고 얹는 구조라 도입 비용이 낮다.
실행 예시도 단순하다. 오픈API 명세 주소를 등록하고, describe로 사용 가능한 동사를 확인하고, 필요한 동사를 실행한다. 결과에서 원하는 필드만 골라 받는 옵션과, 실제로 호출하지 않고 무엇이 실행될지만 보여 주는 예행 옵션이 함께 제공된다. 외부 시스템을 건드리는 자동화에서 예행 옵션이 기본으로 있다는 건 생각보다 중요한 안전장치다.
다만 아직 초기 프로젝트다. 커밋은 60여 건, 스타는 한 자릿수 수준으로 검증된 도구라고 보기는 이르다. 노드 24 요구 사항도 환경에 따라 걸림돌이 될 수 있다. 대신 구버전 노드에서는 스택 트레이스 대신 발견한 버전을 알려 주는 한 줄 메시지로 종료하도록 처리해 두었다.
1인기업 실전 적용 포인트
- 붙여 둔 MCP 서버를 세어 보라. 도구 수가 수십 개를 넘어가면 이미 매 요청마다 상당한 토큰을 설명서에 쓰고 있다. 안 쓰는 서버를 끄는 것만으로도 응답 품질과 비용이 함께 개선되는 경우가 많다.
- 에이전트에게 붙일 사내 도구는 명세부터 만들어라. 오픈API 명세나 SQLite 파일 하나만 있으면 별도 서버 구현 없이 에이전트용 명령으로 바꿀 수 있다. 문서를 만들어 두는 일이 곧 연동 작업이 되는 셈이다.
- 모든 자동화 명령에 예행 모드를 두어라. 메일 발송, 상품 등록, 결제처럼 되돌릴 수 없는 동작은 실행 전 무엇이 일어날지 출력하는 단계를 강제한다. 디클릭 방식이 아니어도 이 원칙 자체는 그대로 옮겨 쓸 수 있다.
- 절감 효과는 직접 재라. 벤치마크 스크립트를 자기 환경에서 돌려 실제 바이트 수를 확인하면, 도구를 바꿀지 말지가 감이 아니라 숫자로 결정된다.
전망 / 주의점
MCP가 빠르게 표준으로 자리 잡으면서 "도구를 어떻게 연결할 것인가"에서 "연결한 도구가 컨텍스트를 얼마나 잡아먹는가"로 문제가 옮겨 가고 있다. 디클릭 같은 시도는 그 전환기의 신호다.
반대로 위험도 분명하다. 도구를 셸 명령으로 노출한다는 건 에이전트에게 실행 권한을 준다는 뜻이다. 자격 증명 파일이 놓인 위치와 각 동사가 무엇을 건드리는지를 확인하지 않은 채 도입하면, 절감한 토큰보다 훨씬 비싼 사고를 만날 수 있다. 초기 단계 프로젝트라면 더욱, 격리된 환경에서 먼저 시험하는 순서를 권한다.
출처: GitHub — declick (https://github.com/ucsandman/declick)
이 시스템이 실제로 돌아가는 모습은 유튜브에서 공개 중입니다.
채널 보기 ↗