귀찮은개발자6 min

대시보드 대신 MCP를 달았다

2026년 4월 · 귀찮은개발자 EP.11

2026년 4월 · 귀찮은개발자 EP.11

EP.10에서 MCP로 개인 AI 비서를 만들었다. 13개 모듈, 50개 도구. “오늘 어때?”하고 물어보면 매출부터 일정까지 한 번에 정리해주는 구조다.

근데 문제가 있었다. 도구가 50개 있어도 데이터가 정확하지 않으면 의미가 없었다. 특히 내 SaaS 두 개, Apsity와 FeedMission을 연결하는 과정에서 꽤 많은 걸 고쳐야 했다. 이번 편은 그 이야기다.

빠르게 보기

– 내 SaaS 2개(Apsity, FeedMission)를 MCP에 연결
– 대시보드 4단계 클릭 → 자연어 1줄로 바뀜
– 도구 12개 + 블로그(GoCodeLab) 도구 5개
– 서비스 여러 개 데이터를 한 번에 비교 가능
– 대시보드는 “보는” 도구, MCP는 “묻는” 도구

왜 대시보드를 안 쓰게 됐나

Apsity는 앱 스토어 분석 서비스다. 내가 만든 앱 12개의 매출, 키워드 순위, 리뷰, 경쟁앱 변동을 추적한다. FeedMission은 피드백 관리 서비스다. 유저가 보낸 피드백을 AI로 분류하고, 클러스터링하고, 로드맵에 반영해준다.

둘 다 대시보드가 있다. 웹으로 들어가서 차트 보고, 테이블 보고, 필터 걸고. 예전에는 매일 아침 이걸 켰다. (EP.02에서 Apsity 대시보드를 처음 만든 이야기를 했었다.)

근데 대시보드는 내가 물어봐야 답해준다. 메뉴 클릭하고, 날짜 범위 바꾸고, 앱 선택하고. “이번 주 매출 얼마야?”를 알려면 클릭이 4번은 필요하다. 하루에 한두 번이면 괜찮은데, Apsity 열고, FeedMission 열고, 블로그도 열고. 이러다 보면 아침 30분이 그냥 간다.

MCP를 달면 이게 바뀐다. “Apsity 이번 주 매출”이라고 치면 끝이다. Claude가 알아서 데이터를 가져온다.

서비스 데이터를 MCP로 연결하다

MCP 도구 하나가 하는 일은 단순하다. 내 서비스에서 데이터를 가져오고, 결과를 텍스트로 정리해서 Claude한테 돌려주는 거다. 대시보드를 열지 않아도 Claude가 알아서 데이터를 읽어온다.

Apsity 매출 조회 결과가 터미널에 출력된 화면
Apsity 매출 조회 결과. 대시보드 없이 한 줄로 나온다 / GoCodeLab

Apsity: 도구 6개

Apsity에서 뽑아야 할 데이터가 뭔지 먼저 정리했다. 내가 매일 대시보드에서 보던 것들이다.

Apsity MCP 도구 6개
– apsity_revenue: 앱별 매출 (기간, 앱이름, 국가 필터)
– apsity_reviews: 리뷰 조회 (별점, 감성 분석 포함)
– apsity_keywords: 키워드 순위 + 변동 추적
– apsity_competitors: 경쟁앱 메타데이터 변동
– apsity_insights: AI 성장 인사이트
– apsity_category_rank: 카테고리 순위

쓰는 방식은 자연어다. 이런 식이다.

“Apsity 이번 주 매출 앱별로 보여줘” → 앱 12개의 매출이 정리돼서 나온다
“별점 2점 이하 리뷰 있어?” → 저평점 리뷰만 필터링
“경쟁앱 메타데이터 변동 있어?” → 경쟁앱 제목/설명/스크린샷 변경 감지

대시보드에서 필터 이리저리 만지는 대신, 물어보면 된다.

FeedMission: 도구 6개

FeedMission도 같은 패턴이다. 피드백, 클러스터, 로드맵, 설문, 매출, 통계. 총 6개.

FeedMission MCP 도구 6개
– feedmission_feedback: 최근 피드백 (상태/유형 필터)
– feedmission_clusters: 피드백 클러스터 (우선순위순)
– feedmission_roadmap: 로드맵 진행 상태
– feedmission_surveys: 설문 현황 + 응답 수
– feedmission_revenue: 구독 매출 현황
– feedmission_stats: 대시보드 통계 요약

FeedMission도 같은 방식이다. “최근 피드백 보여줘”하면 상태별로 정리해서 알려주고, “설문 응답률 어때?”하면 숫자가 나온다.

GoCodeLab: 블로그도 연결

GoCodeLab은 워드프레스로 돌리는 블로그다. Rank Math라는 SEO 플러그인을 쓰고 있다. 이것도 MCP에 연결했다.

GoCodeLab MCP 도구 5개
– gocodelab_posts: 글 목록 조회
– gocodelab_seo: SEO 설정 확인
– gocodelab_seo_update: SEO 메타 수정
– gocodelab_media: 미디어 라이브러리
– gocodelab_post_update: 글 수정

블로그는 DB 직접 연결이 아니라 워드프레스 REST API를 쓴다. Apsity, FeedMission과 방식은 다르지만 MCP 도구 구조는 같다. 파라미터 받고, 데이터 가져오고, 텍스트로 돌려주고.

“지난 주 블로그 글 조회수 어때?”하고 물어보면 된다. 워드프레스 관리자 페이지에 들어갈 필요가 없다.

데이터가 정확한지 확인하는 게 먼저다

도구를 만드는 건 빠르다. 진짜 시간이 든 건 검증이었다.

“이번 주 매출”이라고 물어봤는데 엉뚱한 숫자가 나오면 안 된다. 대시보드에서 보는 숫자랑 MCP에서 나오는 숫자가 같아야 한다. 도구 하나 만들 때마다 대시보드 결과와 대조해서 맞는지 확인했다.

FeedMission 통계 도구에서 숫자가 좀 다르게 나온 적이 있었다. 집계 방식이 대시보드랑 살짝 달랐던 거다. 이런 걸 잡으려면 결국 하나씩 비교해보는 수밖에 없다. 도구가 12개니까 12번 확인했다. 도구가 아무리 많아도 데이터가 정확하지 않으면 의미가 없다.

대시보드 vs 자연어

달라진 점을 비교하면 이렇다.

대시보드 UI 클릭 4번 vs Claude 자연어 한 줄 비교
대시보드 4단계 vs 자연어 1줄. 결과는 같다 / GoCodeLab

대시보드를 쓰면 이렇다. 브라우저 열기, 로그인, 메뉴 선택, 필터 설정. 4단계를 거쳐야 숫자가 나온다. MCP를 쓰면 “Apsity 이번 주 매출”이 끝이다. Claude가 알아서 숫자를 가져온다.

더 좋은 건 서비스 간 비교가 된다는 거다. “Apsity 매출이랑 FeedMission 구독자 수 같이 보여줘”하면 두 서비스에서 동시에 데이터를 가져온다. 대시보드 2개를 나란히 놓을 필요가 없다.

핵심은 “확인”에서 “질문”으로 바뀐 거다. 대시보드는 내가 뭘 봐야 하는지 알아야 한다. 자연어 조회는 궁금한 걸 그냥 물어보면 된다.

도구 구조가 같으니까 빠르다

EP.10에서 만든 모듈 패턴이 여기서 빛을 발했다. 도구마다 구조가 똑같다.

// 모든 도구가 이 구조를 따른다
export const tools: ModuleTools = {
  도구_이름: {
    description: ‘설명’,
    params: z.object({ /* 파라미터 정의 */ }),
    handler: async (params) => {
      // 데이터 가져와서 텍스트로 돌려주기
    },
  },
}

새 도구를 추가할 때는 이 틀에 이름, 설명, 핸들러만 채우면 된다. server.ts에서 registerModule() 한 줄 부르면 MCP에 올라간다. Apsity 6개, FeedMission 6개를 합쳐서 12개 도구를 만드는 데 하루 반 걸렸다. 도구 자체보다 데이터 검증에 시간이 더 들었다.

배운 것들

세 가지로 정리된다.

1. 데이터 정확성이 전부다. 도구 개수는 중요하지 않다. 50개가 있어도 쿼리 하나가 잘못되면 AI가 틀린 답을 준다. DB 스키마를 대조해서 쿼리가 정확한지 확인하는 게 먼저다.

2. 내 서비스니까 바로 연결할 수 있다. 외부 서비스라면 API를 써야 하지만, 내가 만든 서비스니까 직접 데이터를 가져올 수 있다. 중간 단계가 없으니까 빠르고 단순하다.

3. 대시보드는 “보는” 도구다. MCP는 “묻는” 도구다. 대시보드는 정해진 차트를 보여준다. MCP는 내가 원하는 걸 물어볼 수 있다. “이번 달 매출 상위 3개 앱이 뭐야?”같은 질문은 대시보드로는 필터를 이리저리 만져야 하지만, MCP로는 한 줄이면 된다.

다음은

MCP로 데이터를 읽을 수 있게 됐다. 근데 아직 터미널에서만 쓸 수 있다. 컴퓨터 앞에 앉아야 한다. 밖에서도 쓰고 싶었다. 그래서 텔레그램에 연결했다. 폰으로 “오늘 매출 어때?”하고 보내면 답이 온다. 그 이야기는 EP.12에서 한다.

나중에는 구독자한테도 MCP를 열어줄 계획이 있다. Apsity 구독자가 자기 데이터를 Claude로 조회할 수 있게 하는 거다. 근데 그건 아직 좀 더 준비가 필요하다.

자주 묻는 질문

Q. MCP로 SaaS 데이터를 연결하면 뭐가 좋나요?

대시보드를 열 필요가 없다. “이번 주 매출 얼마야?”하고 물어보면 AI가 알아서 숫자를 가져온다. 여러 서비스 데이터를 한 번에 비교할 수도 있다.

Q. MCP 서버 보안은 괜찮나요?

MCP 서버는 내 로컬 맥미니에서만 돌아간다. 외부에 노출되지 않고, 나만 쓴다. 접속 정보는 환경변수로 관리한다.

Q. Apsity, FeedMission이 뭔가요?

둘 다 내가 만든 SaaS다. Apsity는 앱 스토어 매출/키워드/리뷰 분석 서비스고, FeedMission은 유저 피드백을 AI로 분류해주는 서비스다. 이 블로그의 이전 에피소드에서 만든 과정을 다뤘다.

관련 글