gwscli: AI 에이전트를 위한 구글 워크스페이스 통합 CLI (Claude Code 활용)

BBetter Stack
Computing/SoftwareSmall Business/StartupsInternet Technology

Transcript

00:00:00Google Workspace가 AI 에이전트에게 훨씬 더 유용해졌습니다. 최근 구글이
00:00:04에이전트가 모든 Google Workspace API와 상호작용할 수 있게 해주는 강력한 CLI 도구를 출시했기 때문이죠.
00:00:09드라이브 파일 읽기, 이메일 전송, 슬라이드 제작까지 가능하며, 처음부터 AI 에이전트를 위해 설계되었습니다.
00:00:14즉, 토큰 사용량을 최소화하고 런타임에 명령을 동적으로 생성하므로 API가 항상 최신 상태로 유지됩니다.
00:00:19그런데 구글 같은 대기업이 기존의 MCP 서버(현재도 존재하지만) 역할을 하는 CLI를 직접 만들었다는 것은
00:00:24과연 MCP의 미래에 어떤 의미가 있을까요? 구독 버튼을 누르고 함께 알아봅시다.
00:00:33지난달에 Playwright가 기존의 MCP 서버용 CLI를 만든 것에 대한 영상을 올린 적이 있는데요.
00:00:42이제 Google Workspace도 같은 행보를 보이고 있고, 트위터 사람들은 이에 열광하고 있습니다.
00:00:46이 CLI 도구는 Justin이 만들었으며, 그는 에이전트 전용으로 만들기 위해 수행한 작업들을 블로그 포스트에 상세히 적었습니다.
00:00:52나중에 자세히 다루겠지만, skills.sh에서 다운로드할 수 있는 100개 이상의 스킬을 갖추고 있어
00:00:57g-man을 매우 기쁘게 만들었죠.
00:01:01기능을 살펴보기 전에 먼저 설정 과정을 거쳐야 합니다. Google Cloud 관련 도구를 써보신 분들은 아시겠지만
00:01:06그 과정이 그리 간단하지만은 않거든요. 직접 보여드리겠습니다.
00:01:10가장 먼저 Google Cloud 콘솔에 접속해야 합니다. 새 프로젝트를 만들거나 기존 프로젝트를 사용하세요.
00:01:15저는 새로 만들었습니다. 그다음 gcloud CLI를 설치해야 하는데, 맥 사용자라면 brew로 설치할 수 있습니다.
00:01:21Google Workspace CLI 설치가 완료되면 이 명령어를 실행하여 설정을 진행합니다.
00:01:26내용은 꽤 자명합니다. 인증을 위해 이메일을 사용하고, GCP 프로젝트를 선택하거나 설정한 뒤
00:01:31액세스하려는 API를 선택하면 됩니다. 이 단계가 끝나면 API 및 서비스의 사용자 인증 정보로 이동하여
00:01:37새 OAuth 클라이언트 ID를 생성해야 합니다. 애플리케이션 유형은 무엇이든 상관없을 것 같습니다.
00:01:42저는 웹을 선택했지만 데스크톱에서도 작동할 겁니다. 클라이언트 ID와 비밀번호만 있으면 되니까요.
00:01:48그다음 단계부터 조금 까다로워질 수 있는데요, 이 명령어를 실행한 후
00:01:53인증 범위를 선택해야 합니다. 데모를 위해 저는 모든 범위를 선택했는데, 권장되는 방식은 아니지만
00:01:57테스트용이니까요. 그러면 브라우저에서 인증할 수 있는 아주 긴 URL이 나타납니다.
00:02:02우선 오타가 없는지 잘 확인해야 에러를 피할 수 있습니다. 그리고 localhost 뒤에 붙는 포트 번호를 메모해 두세요.
00:02:08제 경우에는 51065였습니다.
00:02:12다시 클라우드 콘솔의 API 및 서비스, OAuth 동의 화면으로 돌아가서
00:02:18클라이언트를 클릭하고 생성한 웹 클라이언트를 선택합니다. 아래쪽의 승인된 리디렉션
00:02:23URI 섹션에서 해당 포트 번호가 포함된 주소로 변경합니다. 51065를 넣으면 되겠죠? 하지만 아직 끝이 아닙니다.
00:02:28대상(Audience)으로 가서 아래로 스크롤한 뒤, 본인의 이메일 주소가 없다면 추가해 주세요.
00:02:33앱을 이미 출시한 상태라면 이런 문제가 없겠지만,
00:02:37저는 단순히 API를 테스트하는 중이라 테스트 모드를 사용하고 있습니다.
00:02:40따라서 제 이메일과 이 CLI를 사용할 모든 사용자의 이메일을 여기에 추가해야 합니다.
00:02:44이제 URL을 복사하여 CLI 구성을 위한 단계들을 따라가면 됩니다.
00:02:48완료되면 성공(success) 상태를 확인하실 수 있습니다. 만약 이 화면이 보이지 않는다면
00:02:52몇 초 정도 기다렸다가 다시 시도해 보세요. 리디렉션 URI가 등록되는 데 시간이 좀 걸릴 수 있습니다.
00:02:56이 전체 과정, 즉 설정 작업만으로도 꽤 오랜 시간이 걸렸는데요.
00:03:01평소에 Google Cloud 도구를 자주 사용하지 않는다는 게 티가 나네요. 하지만 일단 완료되면
00:03:06자신의 상세 정보가 표시될 것이고, 이제부터 진짜 재미있는 작업이 시작됩니다. 보시죠.
00:03:11간단한 것부터 시작해 보겠습니다. Claude에게 제 최근 이메일 10통에 대한 정보를 달라고 요청했습니다.
00:03:15민감한 내용은 없기를 바라면서요. GWS CLI를 사용하여
00:03:19발신자, 제목, 날짜, 라벨 등 각 이메일에 대한 정보를 가져왔습니다.
00:03:24이 작업을 수행하는 데 전체 컨텍스트의 9%만 사용된 것을 알 수 있습니다. 왜냐하면
00:03:28별도의 MCP 도구 없이 메시지 자체에서 대부분의 컨텍스트를 소화했기 때문이죠. 좋습니다. 다른 시도를 해보죠.
00:03:33Claude에게 제목은 “Claude를 사랑해”, 본문은 멋진 시를 담은 이메일 초안을 작성해 달라고 했습니다.
00:03:38역시 GWS CLI를 사용하고 bash를 통해 Python 코드를 작성합니다. 이제 완료되었는데요.
00:03:44Claude가 작성한 새로운 초안 이메일이 생성된 것을 볼 수 있습니다. 조금 확대해 보겠습니다.
00:03:50Claude를 얼마나 사랑하는지에 대한 시가 포함된 이메일이군요. 여기서 흥미로운 점은
00:03:56Claude가 GWS CLI를 사용하는 방식입니다. 이전에 수행한 명령어를 살펴보면
00:04:00수많은 하위 명령어와 JSON이 포함된 params 플래그가 있는 것을 볼 수 있습니다.
00:04:05재미있는 사실은 만약 사람이 “gws help”를 입력해서
00:04:11직접 모든 하위 명령어를 확인하려고 하면 극히 일부만 보인다는 겁니다.
00:04:16특정 명령어의 세부 내용을 보려면 계속해서 help를 반복해서 사용해야 하죠.
00:04:23하지만 에이전트는 이 정보를 매우 빠르게 가져옵니다. 심지어 정확한 데이터를 얻기 위해
00:04:28어떤 파라미터를 써야 하는지도 바로 알죠. 보시다시피 제가 프롬프트를 입력했을 때
00:04:32에이전트는 help를 한 번만 사용하고도 이 모든 것을 파악해 냈습니다.
00:04:37어떻게 이런 게 가능한지 더 자세히 알아보겠지만,
00:04:43CLI help 섹션에서 사용법을 개략적으로 설명하고 서비스 리소스와 하위 리소스를 언급하고 있습니다.
00:04:48여기 아래에 서비스가 보이죠? 더 많은 정보가 필요하다면
00:04:53서비스 리소스와 메서드가 포함된 “gws schema”를 살펴볼 수도 있습니다. 자, 하나 더 해봅시다.
00:04:57Claude에게 제목은 “Claude cat”인 슬라이드 한 장과 고양이 이미지가 담긴 4장의 슬라이드로 구성된
00:05:03새 문서를 만들어 달라고 요청했습니다. 역시 gws CLI를 사용해 도움말을 요청하고
00:05:08슬라이드 및 프레젠테이션 명령어의 도움말을 상세히 파헤칩니다. 이제 프레젠테이션 제작이 끝났네요.
00:05:15브라우저에서 확인해 보겠습니다. 여기 있네요. 제가 이전에 테스트 삼아 만든
00:05:20“Claude dog”도 보이지만 이번 걸 확인해 보죠. 제목 “Claude cats”와 부제목,
00:05:24그리고 고양이 이미지가 포함된 5장의 슬라이드가 멋지게 만들어졌습니다. 정말 멋지네요.
00:05:30컨텍스트는 겨우 15%만 사용했습니다. 따라서 계속해서 다양한 작업을 수행할 수 있죠.
00:05:36예를 들어, 저는 미국의 각 주별 인구수와 하단 합계가 포함된 Google Sheets 문서를 만들기도 했고
00:05:42캘린더에 일정을 예약하기도 했습니다. 눈치채셨을지 모르겠지만 이 모든 과정에서
00:05:47Google Workspace 관련 스킬을 따로 설치하지 않았습니다. 하지만 이 프로젝트에는
00:05:52복잡한 작업을 위한 헬퍼, 페르소나, 레시피 등이 포함된 수많은 스킬이 준비되어 있습니다.
00:05:58집중 시간 확보나 회의 일정 재조정 같은 작업들이죠. 그럼 Justin은 어떻게 이걸 이렇게 잘 작동하게 만들었을까요?
00:06:05첫째로 그는 중첩된 JSON 구조를 우선시했습니다. 사람이 읽기는 어렵지만 에이전트에게는 훨씬 편하죠.
00:06:10또한 아까 살펴본 것처럼 문서를 런타임에 쿼리할 수 있게 만들었습니다. 이 스키마
00:06:16섹션 덕분에 무언가 업데이트되거나 에이전트가 잘못된 파라미터를 입력하더라도
00:06:21혼란 없이 어디를 확인해서 수정해야 할지 정확히 알 수 있습니다.
00:06:26파라미터나 필드를 사용해 API로부터 반환되는 정보량을 줄일 수도 있습니다.
00:06:31에이전트가 불필요한 정보 대신 꼭 필요한 것만 요청할 수 있게 함으로써
00:06:36사용되는 토큰의 양을 절약하는 것이죠. 물론 에이전트 전용 가이드를 제공하는 스킬도 활용했습니다.
00:06:42데모에서는 사용하지 않았지만, 이 스킬들은 에이전트가 help 플래그를 통해 얻는 것보다
00:06:47더 많은 정보를 제공합니다. 그럼 이제 MCP 서버의 시대는 가고 스킬과 CLI의 시대가 온 걸까요?
00:06:53꼭 그렇지만은 않습니다. MCP를 사용하면 에이전트가 쉘 명령어를 생성하고
00:06:59JSON을 전달하는 CLI 방식 대신 함수를 직접 호출할 수 있기 때문입니다. 또한 MCP 도구는
00:07:06복잡한 단계를 체이닝하는 데 더 유리합니다. 당연히 실행을 위한 터미널도 필요 없죠.
00:07:11그래서 Google Workspace CLI에도 MCP 옵션이 포함되어 있는 것입니다. 하지만 CLI는
00:07:16도구 검색 기능을 켠 상태에서도 토큰을 훨씬 적게 사용합니다. 또한 이식성이 좋아
00:07:24어떤 에이전트 하네스에서든(혹은 하네스 없이도) 작동할 수 있습니다.
00:07:28독립적으로 명령어를 재현할 수 있어 디버깅도 용이하죠. 결국 사용 사례에 따라 다르겠지만
00:07:34저도 CLI를 쓰면서 생성된 URL에 오타가 있는 등
00:07:40몇 가지 문제를 겪었습니다. 어떻게 그런 일이 생겼는지는 모르겠지만요. 리디렉션 URL이나 포트 설정 문제도
00:07:47해결하는 데 꽤 걸렸습니다. Google Cloud 도구의 문제인지 CLI의 문제인지는 확실치 않지만 유쾌한 경험은 아니었죠.
00:07:52토큰이 제대로 업데이트되지 않는 문제도 있어서 GitHub 이슈를 생성하기까지 했습니다.
00:07:59사실 그것도 Claude가 대신 써준 거라 제가 직접 쓴 건 아니지만요. 어쨌든 출시된 지
00:08:05일주일도 안 되어 GitHub 스타 1만 개를 돌파한 이 프로젝트의 앞날은 매우 유망해 보입니다.
00:08:10유망한 미래 하니 생각나는데, Bun을 기반으로 한 Electron 앱을 만들고 싶으신 분들,
00:08:16빠른 속도와 작은 번들 크기를 원하신다면 제가 만든 Electrobahn 영상을 확인해 보세요.
00:08:21간단한 Vite 프로젝트에서 사용하는 방법을 보여드립니다.

Key Takeaway

gwscli는 AI 에이전트가 구글 워크스페이스의 방대한 기능을 효율적이고 경제적으로 제어할 수 있도록 설계된 차세대 명령줄 인터페이스 도구입니다.

Highlights

구글이 AI 에이전트의 구글 워크스페이스 API 상호작용을 위해 설계한 전용 CLI 도구인 'gwscli' 출시

에이전트 최적화를 위해 토큰 사용량을 최소화하고 런타임에 명령을 동적으로 생성하는 스키마 구조 채택

이메일 읽기/전송, 슬라이드 제작, 스프레드시트 생성 등 복잡한 워크스페이스 작업을 자연어 명령으로 수행 가능

전용 스킬(Skills) 시스템을 통해 회의 일정 재조정이나 집중 시간 확보와 같은 고차원적 에이전트 작업 지원

기존 MCP(Model Context Protocol) 방식과 비교했을 때 더 높은 이식성과 디버깅 용이성, 낮은 토큰 비용 제공

Timeline

gwscli 소개 및 AI 에이전트 최적화의 의의

구글은 AI 에이전트가 드라이브, 이메일, 슬라이드 등 모든 구글 워크스페이스 API와 원활하게 상호작용할 수 있도록 설계된 새로운 CLI 도구를 출시했습니다. 이 도구는 토큰 소모를 최소화하면서도 런타임에 명령을 동적으로 생성하여 API의 최신 상태를 유지하는 것이 특징입니다. 구글과 같은 대기업이 직접 CLI 형태의 도구를 제작했다는 점은 향후 AI 에이전트 생태계와 MCP의 미래에 중요한 시사점을 던집니다. Justin이 제작한 이 도구는 에이전트 전용 기능을 위해 블로그에 상세한 설계 원칙이 공개되었으며, 이미 100개 이상의 유용한 스킬을 포함하고 있습니다. 개발자들 사이에서는 이 도구가 에이전트의 워크스페이스 활용 능력을 한 단계 높여줄 것으로 기대하고 있습니다.

Google Cloud 설정 및 인증 과정의 복잡성

gwscli를 사용하기 위해서는 Google Cloud 콘솔에서의 초기 설정 과정이 필수적이며, 이 과정은 일반적인 도구들보다 다소 복잡할 수 있습니다. 사용자는 새 프로젝트를 생성하고 gcloud CLI를 설치한 뒤, 이메일 인증과 API 선택 과정을 거쳐 OAuth 클라이언트 ID를 생성해야 합니다. 특히 인증 범위(Scope) 설정과 브라우저 리디렉션을 위한 특정 포트 번호 메모, 그리고 OAuth 동의 화면에서의 테스트 사용자 등록 단계가 매우 까다롭습니다. 발표자는 리디렉션 URI가 실제 반영되기까지 시간이 소요될 수 있다는 점을 강조하며 설정 시 주의사항을 공유합니다. 비록 설정 과정이 번거롭지만, 일단 완료되면 에이전트가 사용자의 정보를 바탕으로 강력한 기능을 수행할 준비를 마치게 됩니다.

실제 활용 사례: 이메일 조회 및 초안 작성

설정이 완료된 후 Claude 에이전트를 사용하여 최근 이메일 10통의 정보를 성공적으로 가져오는 데모를 보여줍니다. 이 과정에서 전체 컨텍스트의 단 9%만 사용하여 효율성을 입증했으며, 발신자와 날짜 등 핵심 정보를 정확히 추출했습니다. 또한 "Claude를 사랑해"라는 제목의 시가 포함된 이메일 초안을 작성하는 복잡한 명령도 gwscli와 Python 코드를 결합해 완벽히 수행했습니다. 에이전트는 사람이 일일이 도움말을 찾아보는 것과 달리, 단 한 번의 help 요청으로 필요한 하위 명령어와 JSON 파라미터를 정확히 파악해 냅니다. 이는 gwscli가 에이전트가 읽기 편한 중첩 구조와 런타임 스키마 쿼리 기능을 우선시하여 설계되었기 때문에 가능한 결과입니다.

확장 사례: 슬라이드 및 스프레드시트 자동 생성

에이전트는 단순히 텍스트 작업을 넘어 고양이 이미지가 포함된 5장의 구글 슬라이드 문서를 순식간에 제작해 냅니다. 슬라이드 제작 과정에서도 컨텍스트 사용량은 15% 수준에 불과하여 에이전트가 긴 대화 흐름 속에서도 지치지 않고 작업을 이어갈 수 있음을 보여줍니다. 주별 인구 통계가 포함된 구글 시트를 만들거나 캘린더 일정을 예약하는 등 워크스페이스 전반에 걸친 자동화가 가능합니다. 제작자인 Justin은 에이전트에게 친화적인 JSON 구조와 불필요한 데이터를 걸러내는 필터 기능을 통해 토큰 절약과 정확도를 동시에 잡았습니다. 별도의 스킬을 설치하지 않아도 기본적인 API 제어가 훌륭하며, 추가적인 '레시피'를 통해 더 복잡한 워크플로우도 처리할 수 있습니다.

CLI 방식과 MCP 방식의 비교 및 결론

발표자는 CLI 방식이 MCP 서버 방식과 비교했을 때 가지는 장단점을 명확히 분석합니다. MCP는 함수를 직접 호출하고 단계를 체이닝하는 데 유리하지만, CLI는 토큰 소모가 훨씬 적고 어떤 환경에서든 실행할 수 있는 높은 이식성을 자랑합니다. 또한 CLI 명령어는 독립적으로 재현이 가능하여 문제가 발생했을 때 디버깅하기가 훨씬 수월하다는 강점이 있습니다. 물론 설정 과정에서의 리디렉션 오류나 토큰 업데이트 문제 등 초기 도구에서 발견되는 몇 가지 불편한 점은 여전히 존재합니다. 그럼에도 불구하고 출시 직후 GitHub에서 폭발적인 반응을 얻은 만큼, gwscli는 AI 에이전트와 생산성 도구의 결합에서 중요한 이정표가 될 것입니다.

Community Posts

View all posts