확인하는 것도 귀찮아서 AI 비서를 직접 만들었다
2026년 4월 · 귀찮은개발자 EP.10
2026년 4월 · 귀찮은개발자 EP.10
MCP AI 비서를 만들게 된 계기는 4월 4일이었다. OpenClaw가 터졌다.
OpenClaw는 Claude를 엔진으로 쓰는 오픈소스 AI 에이전트다. Claude를 만든 Anthropic이라는 회사가 있고, Claude를 쓰려면 보통 월 구독(Pro $20, Max $200)을 한다. OpenClaw는 이 구독 계정에 로그인해서 Claude의 두뇌를 빌려 쓰는 방식이었다. 넷플릭스 계정으로 로그인해서 영화를 보는 것처럼, 내 Claude 구독으로 로그인하면 OpenClaw가 알아서 Claude를 부려먹는 구조다.
문제는 이게 너무 잘 돼버린 거다. 13만 5천 명이 이 방식으로 쓰고 있었는데, Anthropic 입장에서는 서버가 감당이 안 됐다. 결국 Anthropic이 이 문을 닫아버렸다. 구독 계정으로 외부 도구에 로그인하는 게 더 이상 안 된다. 계속 쓰려면 쓴 만큼 돈을 내는 종량제로 바꿔야 한다. 월 $200이면 됐던 게 $5,000까지 뛸 수 있다는 소리다.
나는 OpenClaw를 안 쓰고 있었다. 근데 뉴스를 보면서 생각이 하나 들었다. 남이 만든 플랫폼 위에 올라타면 언제든 이런 꼴이 난다.
나는 앱 12개를 운영하고, SaaS(웹 서비스) 2개를 돌리고, 블로그도 쓴다. 매일 아침마다 확인할 게 산더미다. 대시보드 열고, 메일 확인하고, 캘린더 보고, 매출 뒤지고. 이걸 AI한테 “오늘 어때?”하고 물어보면 알아서 정리해주는 게 갖고 싶었다. 마침 Anthropic이 직접 만든 MCP라는 게 있었다. 이건 Anthropic 공식 기능이니까 갑자기 막힐 일이 없다. 바로 만들기 시작했다.
– Claude MCP(Model Context Protocol)로 개인 AI 비서 구축
– 13개 모듈, 50개 도구를 3시간 만에 완성
– 앱 매출, 피드백, 블로그, 메일, 일정까지 전부 연결 (일상 자동화도 추가 예정)
– “오늘 비즈니스 현황 알려줘” 한 마디로 전체 파악
– API 비용 $0 (Claude 구독 티어 활용)
MCP가 뭔데
MCP는 Model Context Protocol의 약자다. Anthropic이 만든 공식 규격인데, 쉽게 말하면 AI한테 손발을 달아주는 거다. (MCP가 뭔지 자세히 알고 싶으면 이 글을 먼저 보면 된다.)
비유하면 이렇다. 스마트폰에 앱을 깔면 카메라도 쓰고, 지도도 보고, 음악도 듣는다. 앱이 스마트폰의 기능을 가져다 쓰는 거다. MCP도 비슷하다. Claude한테 MCP로 도구를 연결하면, Claude가 내 데이터베이스에서 숫자를 뽑아오고, 이메일을 읽고, 날씨를 확인할 수 있게 된다. “Apsity 매출 알려줘”하면 Claude가 알아서 DB(데이터베이스)에 가서 숫자를 가져온다. 내가 복사해서 붙여넣을 필요가 없다.
핵심은 역할 분담이다. MCP 도구는 심부름만 한다. “가서 매출 숫자 갖고 와.” 그걸로 끝이다. 가져온 숫자를 분석하고, 요약하고, 판단하는 건 전부 Claude 몫이다. 도구 자체는 단순해도 상관없다. 머리 쓰는 건 AI가 하니까.
설계: 리모컨 50개 대신 비서 1명
구조를 그리면 이렇다.
맨 위에 Claude가 앉아 있다. 구독으로 쓰니까 API 비용이 0원이다. 가운데가 내가 만든 MCP 서버, LazyDevAssistant다. 핵심은 비즈니스 모듈이다. 앱 매출, 피드백, 블로그 SEO, GitHub 같은 개발 관련 데이터를 전부 연결했다. 여기에 메일, 캘린더 같은 생산성 도구도 붙였고, 나중에는 날씨나 차량 같은 일상 자동화도 얹었다. 다 합치면 모듈 14개, 도구 50개다. 맨 아래는 출력이다. 텔레그램 채널로 결과가 날아간다.
보통 자동화 도구랑 다른 점이 있다. 규칙을 안 짜도 된다. IFTTT처럼 “매출 20% 떨어지면 알림 보내”같은 조건을 미리 걸어놓을 필요가 없다. 그냥 “오늘 뭔가 이상한 거 없어?”하고 물어보면 Claude가 알아서 판단해준다.
3시간 만에 50개 도구
오전 10시에 시작해서 12시 40분에 끝났다. 2시간 40분 걸렸다.
빨리 만들 수 있었던 건 모듈 패턴 덕분이다. 모듈마다 구조가 똑같다. 이름, 설명, 파라미터, 핸들러. 이 네 개만 채우면 도구 하나가 뚝딱 나온다.
export const apsityTools: ModuleTools = {
apsity_revenue: {
description: ‘앱별 매출 조회’,
params: z.object({ period: z.enum([‘today’, ‘week’, ‘month’]) }),
handler: async (params) => { /* DB 쿼리 */ },
},
}
server.ts에서 registerModule(apsityTools) 한 줄 부르면 안에 있는 도구가 전부 MCP에 올라간다. 새 모듈 추가하고 싶으면? 파일 하나 만들고, import 한 줄, register 한 줄. 그게 끝이다.
이 패턴 덕에 속도가 붙었다. 모듈 하나 만드는 데 평균 10~15분이면 됐다. DB 연결이 필요한 Apsity랑 FeedMission이 제일 오래 걸렸고, API만 때리면 되는 날씨나 GitHub은 5분이면 끝났다.
연결한 것들
앱 12개 돌리면 매일 확인할 게 쏟아진다. 개발 관련 데이터부터 다 MCP로 꽂았다.
– Apsity: 앱 매출, 키워드 순위, 리뷰, 경쟁앱 변동, AI 인사이트
– FeedMission: 피드백, 클러스터, 로드맵, 설문, 구독 매출
– GoCodeLab: 블로그 글 관리, SEO 설정 수정
– Google: Gmail, Search Console, Analytics
– Apple Calendar: iCloud CalDAV 연결
– GitHub: 커밋 이력, PR 상태
– Puppeteer: 웹 자동화 (열기, 읽기, 클릭, 입력, 캡처)
– 날씨, 뉴스, 트렌딩, 주변 장소 검색, 지출 추적
– Kia Connect: 차량 상태, 배터리, 정비 스케줄, 주변 주유소
– Memory: 상태 스냅샷, 알림 이력, 대화 맥락 저장
개발 자동화를 먼저 만들고, 편의 기능은 그 위에 하나씩 얹었다.
실제로 쓰면 이렇다
Claude Code 터미널에서 자연어로 물어보면 된다. Claude가 알아서 필요한 도구를 골라서 호출한다.
“오늘 비즈니스 현황 알려줘”하고 던졌다. Claude가 apsity_revenue, feedmission_stats, apppicked_status를 알아서 골라 불렀다. 세 군데에서 데이터가 돌아왔고, Claude가 한 문단으로 정리해줬다. 매출이 올랐는지, 피드백이 몇 건 왔는지, 큐에 몇 개 남았는지. 예전 같으면 Apsity 대시보드, FeedMission 대시보드, GitHub을 따로따로 열어봤어야 했다.
이런 것도 된다. “이번 주 GoCodeLab SEO 어때?” “내일 일정 뭐 있어?” “차 기름 괜찮아?” Claude가 알아서 맞는 도구를 골라 답해준다. 도구 이름을 외울 필요가 없다.
처음에 안 된 것들
한 방에 다 된 건 아니다. 몇 군데서 걸렸다.
MCP 설정 파일 위치. Claude Code한테 MCP 서버를 알려주려면 설정 파일이 필요하다. 처음에 settings.json에 넣었는데 인식을 못 했다. 알고 보니 프로젝트 루트에 .mcp.json이라는 별도 파일을 만들어야 했다. 공식 문서가 좀 애매해서 30분 정도 헤맸다.
DB 날짜 쿼리. PostgreSQL에서 “최근 7일” 데이터를 뽑는데 에러가 떴다. CURRENT_DATE – 7이 TypeScript에서 타입이 안 맞았다. make_interval(days => 7)로 바꾸니까 됐다. 별거 아닌데 이런 게 시간을 잡아먹는다.
왜 이걸 만들었나
OpenClaw 건은 계기였지 이유는 아니다.
진짜 이유는 귀찮아서다. 매일 아침 Apsity 열고, FeedMission 열고, Gmail 열고, 캘린더 열고, GitHub 확인하고. 하나하나 돌아다니다 보면 30분이 훅 간다. 그 30분 동안 한 거라고는 “확인”뿐이다. 판단은 하나도 못 했다.
이제는 “오늘 어때?”하고 물어보면 1분 안에 전부 정리가 끝난다. 나는 정리된 걸 보고 판단만 내리면 된다. 확인하는 건 AI한테 맡기고, 판단만 내가 한다. 원래 이렇게 하고 싶었다.
이건 시작이다. 다음 편에서는 이 도구들로 내 SaaS 데이터를 직접 연결하는 이야기를 할 거다. 나중에는 구독자한테도 MCP를 열어줄 계획이 있는데, 그건 좀 더 뒤의 이야기다. EP.11에서 계속된다.
자주 묻는 질문
Q. MCP가 뭔가요?
AI한테 손발을 달아주는 규격이다. Anthropic이 만든 공식 표준이고, 꽂기만 하면 Claude가 내 데이터를 직접 읽고 쓸 수 있다. DB든 API든 파일이든 다 된다.
Q. OpenClaw 건이랑 관련이 있나요?
직접 관련은 없다. OpenClaw는 써드파티 에이전트 프레임워크고, MCP는 Anthropic 공식 프로토콜이다. OpenClaw가 막힌 건 구독으로 써드파티 도구 쓰는 게 차단된 거지, MCP가 막힌 게 아니다. MCP랑 Claude Code는 Anthropic 거니까 안전하다.
Q. API 비용이 진짜 $0인가요?
Claude 구독(Pro나 Max)이 있으면 그렇다. MCP 도구는 데이터만 갖다 주고, 분석은 구독 크레딧에서 나간다. 날씨 같은 외부 API도 무료 범위 안에서 쓰고 있다.
Q. 개발 안 해본 사람도 만들 수 있나요?
솔직히 TypeScript를 읽을 줄은 알아야 한다. 근데 구조 자체는 단순하다. 파일 하나가 모듈 하나고, 거기에 이름이랑 설명이랑 핸들러만 채우면 된다. Claude한테 “날씨 API 연결하는 MCP 모듈 만들어줘”하면 코드를 짜주기도 한다.