Apps Script MCP 서버 구현 가이드
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
- 웹 개발자 및 API 개발자
- 난이도: 중급 (JSON-RPC 이해, Apps Script 배포 경험 필요)
핵심 요약
doPost()
함수를 통해 JSON-RPC 요청 처리 및 인증을 수행 (코드:doPost(e)
).- MCP 프로토콜 기반으로
tools/list
및tools/call
메서드를 지원 (예:read_recent_email
). - 인증 토큰을 URL 파라미터로 전달해야 하며,
MCP_AUTH_TOKEN
설정 필수.
섹션별 세부 요약
1. 기본 구현 요소
doPost()
함수는 HTTP POST 요청을 처리하고 JSON-RPC 요청을 분석, 처리, 응답 생성.- 인증 토큰 (
MCP_AUTH_TOKEN
)을PropertiesService
에서 관리. ContentService
를 사용해 JSON 형태의 응답을 반환.- 예외 처리 시
-32603
코드로 내부 오류 메시지 전달.
2. JSON-RPC 요청 처리
processSingleRequest_()
함수가 요청 메서드를 라우팅 (예:initialize
,tools/list
).tools/call
메서드는AVAILABLE_TOOLS
배열에 정의된 도구를 실행 (예:read_recent_email
).createSuccessResponse_()
및createErrorResponse_()
함수로 응답 생성.
3. 오류 처리 및 도구 정의
RPC_ERRORS
매ップ으로 JSON-RPC 표준 오류 코드 (-32700 ~ -32603) 정의.AVAILABLE_TOOLS
배열로 제공 가능한 도구 명시 (예:read_recent_email
도구).
4. 도구 구현 예시
tool_read_recent_email_()
함수는GmailApp
을 사용해 최근 이메일 제목 추출.- 예외 발생 시
isError: true
를 반환. - Gmail API 사용 시
gmail.readonly
권한 필요.
5. 배포 설정
- Apps Script 웹앱 배포 시 "Me"로 실행, "Anyone" 접근 허용.
runtimeVersion
: V8,exceptionLogging
: STACKDRIVER.
결론
- 배포 시
executeAs: "USER_DEPLOYING"
및access: "ANYONE_ANONYMOUS"
설정 필수. - 인증 토큰은
PropertiesService
에 저장하고 URL 파라미터로 전달해야 함. - JSON-RPC 요청은
doPost()
함수를 통해 모든 처리 단계를 수행해야 함.