키 없는 MCP 서버, 호출마다 일회용 토큰
에이전트에 API 키를 맡기지 않고 도구 호출 한 번만 허락하는 템플릿
AI 에이전트에게 API 키를 통째로 넘기지 않고도 외부 서비스를 쓰게 하는 MCP(모델 컨텍스트 프로토콜) 서버 템플릿이 공개됐다. 키드리스랩스(keydrisLabs)가 깃허브에 올린 이 템플릿은 서버 안에 API 키·개인 액세스 토큰·시크릿을 전혀 보관하지 않는다. 대신 도구가 호출될 때마다 딱 한 번, 딱 한 가지 행동에만 쓸 수 있는 토큰을 교환해 그 순간 필요한 자격증명만 받아 쓴다.
무슨 일인가 / 배경
에이전트 자동화가 늘면서 가장 흔한 사고 경로는 자격증명 노출이다. 보통 MCP 서버는 환경변수에 깃허브 토큰이나 결제 API 키를 넣어두고 에이전트 요청을 받아 대신 호출한다. 서버 설정 파일이 유출되거나, 에이전트가 프롬프트 주입에 속아 의도치 않은 호출을 하면 그 키가 가진 모든 권한이 위험해진다.
이번 템플릿은 엠시피유즈(mcp-use) 프레임워크 기반으로 만들어졌고, 키드리스의 '키트 리더' 모듈을 미들웨어로 끼워 넣었다. 완성된 서버가 아니라 복제해서 예제 도구를 자기 도구로 바꿔 쓰는 출발점이다. 단, 토큰을 발급·검증하는 프록시·게이트웨이·금고가 키드리스 서비스에 있으므로 키드리스 계정이 필요하다. 계정 없이도 서버는 켜지고 도구 목록은 보이지만, 자격증명이 필요한 호출은 모두 거부된다.
핵심 짚어보기
흐름은 이렇다. 키드리스 프록시가 MCP 요청의 메타데이터에 일회용 토큰을 심어 서버로 보낸다. 서버의 도구는 외부로 보낼 요청을 만든 뒤, 그 토큰과 함께 호출하려는 행동 이름·파라미터·목적지 주소를 게이트웨이에 제출한다. 게이트웨이가 조건을 확인하면 그 한 번의 요청에 쓸 자격증명을 돌려주고, 서버는 이를 붙여 실제 API를 호출한다.
설계에서 눈에 띄는 점은 세 가지다. 첫째, 토큰 하나는 외부 요청 하나만 허락하며 게이트웨이가 원자적으로 소진시키고, 같은 토큰의 두 번째 사용은 서버 쪽에서도 막는다. 둘째, 목적지까지 함께 제출해야 하므로 토큰을 다른 주소로 빼돌려 쓰기 어렵다. 셋째, 도구 목록 조회나 연결 초기화에는 게이트웨이를 거치지 않아, 토큰 없는 클라이언트도 어떤 도구가 있는지는 확인할 수 있다. 결국 에이전트는 '열쇠 꾸러미'가 아니라 '한 번 쓰는 입장권'만 받는 구조다.
1인기업 실전 적용 포인트
- 내 MCP 설정 파일부터 점검하라: 클로드 데스크톱이나 클로드 코드에 연결한 MCP 설정에 결제·메일·저장소 키가 평문으로 들어 있는지 확인하고, 권한 범위가 가장 좁은 토큰으로 교체하자.
- 돈이 오가는 도구는 호출 단위 승인 구조로: 환불·발송·배포처럼 되돌리기 어려운 도구는 이 템플릿처럼 호출마다 허가받는 방식으로 분리하고, 조회용 도구만 상시 키를 쓰게 나누면 사고 반경이 줄어든다.
- 도구 목록 공개와 실행 권한을 분리하라: 목록은 누구나 보되 실행만 막는 설계는 고객용 MCP 서버를 만들 때도 그대로 쓸 수 있다. 무료 체험자는 기능을 보고, 유료 사용자만 실행하는 식이다.
- 외부 서비스 의존 비용을 계산하라: 게이트웨이가 키드리스에 있으므로 서비스 장애 시 모든 호출이 멈춘다. 핵심 자동화라면 비상 시 수동 전환 절차를 적어두자.
전망 / 주의점
에이전트에게 권한을 어떻게 나눠줄지는 앞으로 자동화 보안의 중심 과제가 될 것으로 보인다. 이 템플릿은 별 4개의 초기 프로젝트이고 특정 상용 서비스에 묶여 있어 곧바로 채택하기엔 이르다. 그래도 키를 맡기지 말고 행동 단위로 허락하라는 원칙은 도구와 무관하게 지금 당장 적용할 수 있다.
출처: GitHub (https://github.com/keydrisLabs/mcp-auth-keydris-template)
이 시스템이 실제로 돌아가는 모습은 유튜브에서 공개 중입니다.
채널 보기 ↗