[사내AX] 팀 내부 AI 스킬 허브 만들기 - MCP 서버로 자동 스킬 발견까지

Claude Code 팀 마켓플레이스 구축기 ⚡

소개

Claude Code를 팀에서 적극 활용한 지 몇 달, 자연스럽게 개개인들이 만든 스킬, 에이전트, 커맨드를 처음에는 Slack에 공유하고, Notion에 정리하고, GitHub에 올리고... 그런데 문제가 생겼어요.

"그 스킬 어디 있어?"
"어떻게 설치해?"
"이런 것도 있나?"

매번 같은 질문이 반복되고, 좋은 스킬이 있어도 팀원들이 찾지 못해서 재사용이 안 되는 상황이었습니다. 그래서 생각했어요. 팀 전용 Claude Code 마켓플레이스를 만들자! 그런데 여기서 한 발 더 나갔습니다.

"마켓플레이스 등록만 하면 Claude Code가 알아서 필요한 스킬을 찾아서 쓰게 할 수 없을까?"

목표

이상적으로 생각한 구조는 이랬습니다:

  1. 검색 가능 - 스킬/에이전트/커맨드를 키워드로 바로 찾기

  2. 원클릭 설치 - CLI 명령어 복사해서 바로 설치

  3. 팀별 분류 - 개발팀, 디자인팀, 마케팅팀 등 담당 조직별 필터

  4. MCP 서버 연동 - Claude Code가 작업 중 자동으로 관련 스킬을 찾아서 사용

특히 4번이 핵심이었어요. 단순히 카탈로그를 보여주는 게 아니라, Claude Code가 스스로 필요한 스킬을 검색하고 그 내용을 바탕으로 작업하는 것.

진행 방법

1. 기술 스택 선정

Next.js App Router 기반으로 빠르게 구축했습니다.

역할

기술

선택 이유

프레임워크

Next.js 16

App Router + React 19, Server Components

DB

Neon PostgreSQL

서버리스, 무료 티어 넉넉, Drizzle ORM과 궁합 좋음

ORM

Drizzle

타입 안전, drizzle-kit으로 마이그레이션 편함

인증

NextAuth v5

Google OAuth + 도메인 제한 (@gpters.org만 허용)

스타일

Tailwind CSS v4

다크모드 기본, CSS 변수 활용


2. 카탈로그 시스템 구축

아이템 타입 분류

Claude Code 리소스를 4가지로 분류했습니다:

  • Skill - 특정 작업을 수행하는 프롬프트/가이드 (.claude/skills/)

  • Agent - 서브에이전트로 실행되는 자동화 (.claude/agents/)

  • Command - 슬래시 명령어 (/commit, /review 등)

  • 📚 Guide - 사용법/튜토리얼 문서

검색 & 필터 기능

⌘K로 빠른 검색이 가능하고, 다양한 필터를 제공합니다:

  • 팀별: 개발팀, 디자인팀, 마케팅팀, 운영팀, 컨텐츠팀

  • 난이도: 쉬움/보통/어려움

  • 태그: 코드, 분석, Git, 테스트, SQL 등

Drizzle ORM으로 필터 쿼리를 구성하니 타입 안전하게 복합 조건을 처리할 수 있었어요.

const results = await db
  .select()
  .from(catalogItems)
  .where(
    and(
      eq(catalogItems.type, 'skill'),
      eq(catalogItems.teamTag, 'data'),
      ilike(catalogItems.name, `%${query}%`)
    )
  )


3. 팀원 기여 시스템 (Upload)

스킬을 만들었으면 공유할 수 있어야죠. 팀원들이 직접 스킬을 업로드할 수 있는 기능을 만들었습니다.

어두운 배경의 웹사이트 스크린샷

주요 기능

  • 드래그 앤 드롭: .md 파일을 드래그하면 frontmatter를 자동 파싱

  • 타입별 가이드: Skill/Agent/Command/Guide 선택 시 우측에 작성 가이드 표시

  • 팀 태그: 개발팀, 디자인팀, 마케팅팀 등 담당 조직 지정

  • 의존성 관리: 필요한 MCP 서버나 다른 스킬을 버튼 클릭으로 추가

  • 실시간 미리보기: Frontmatter 자동 생성 + Markdown 미리보기

export async function POST(request: NextRequest) {
  const body = await request.json()
  const { id, type, name, content, teamTag, tags } = body

  await db.insert(catalogItems).values({
    id,
    type: type as ItemType,
    name,
    content,
    teamTag,
    tags,
  })

  return NextResponse.json({ success: true })
}


4. 원클릭 설치 기능

가장 신경 쓴 부분입니다. 스킬을 찾았으면 바로 설치할 수 있어야 해요.

CLI 설치 (추천)

# 1. 마켓플레이스 추가 (최초 1회)
/plugin marketplace add your-org/your-marketplace

# 2. 플러그인 설치
/plugin install refactor-guide@your-marketplace

수동 설치

  1. 콘텐츠 복사 버튼 클릭

  2. .claude/skills/스킬명/ 폴더 생성

  3. SKILL.md 파일 저장

  4. Claude Code 재시작

Copy 버튼 하나로 끝나니 설치 허들이 확 낮아졌어요.


5. MCP 서버로 자동 스킬 발견 (핵심!)

문제: Claude Code는 동적 스킬 로딩을 지원하지 않음

Claude Code의 마켓플레이스는 정적 카탈로그일 뿐이에요. 작업 중에 "이 스킬이 필요하네?" 하고 자동으로 찾아서 쓰는 기능은 없습니다.

해결: MCP 서버로 우회

MCP(Model Context Protocol) 서버를 만들어서 Claude Code가 직접 플러그인을 검색하고 내용을 조회할 수 있게 했습니다.

Claude Code → MCP Server (/api/mcp) → PostgreSQL DB
         ↳ 자연어 요청 "DB 스키마 알려줘"
         ↳ search_plugins("database schema") 호출
         ↳ get_plugin_content(...) 호출
         ↳ 스킬 내용 기반으로 답변

MCP 도구 정의

export const MARKETPLACE_TOOLS = [
  {
    name: "search_plugins",
    description: "마켓플레이스에서 플러그인 검색. 키워드와 매칭되는 플러그인 반환",
    inputSchema: {
      type: "object",
      properties: {
        query: { type: "string" },
        category: { type: "string", enum: ["skill", "agent", "command", "all"] },
        limit: { type: "number" }
      },
      required: ["query"]
    }
  },
  {
    name: "get_plugin_content",
    description: "특정 플러그인의 전체 내용 조회",
    inputSchema: {
      type: "object",
      properties: {
        pluginId: { type: "string" }
      },
      required: ["pluginId"]
    }
  }
];

설정 예시

{
  "mcpServers": {
    "gpters-marketplace": {
      "type": "http",
      "url": "https://[팀내부URL]/api/mcp"
    }
  }
}

실제 사용 흐름 예시

"사내 DB 스키마 알려줘" → Claude Code 내부적으로:

  • search_plugins("database") 호출

  • db-schema-reference 스킬 발견

  • get_plugin_content("db-schema-reference") 호출 → 답변 생성

API 엔드포인트

# JSON-RPC 2.0 모드
POST /api/mcp
{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {...}}

# Simple REST 모드
POST /api/mcp?action=search
{"query": "database"}

마켓플레이스 vs MCP 서버 비교

항목

마켓플레이스 (프라이빗)

MCP 서버

팀원 초기 설정

GitHub 토큰 + env 설정

.mcp.json 복사

새 스킬 사용

설치 필요

설치 없이 검색/활용

업데이트

재설치 필요

서버에서 자동 반영

오프라인 사용

✅ 가능

❌ 불가

권장 용도

자주 쓰는 핵심 스킬

가끔 쓰는 레퍼런스

✅ 현재 선택: 저희는 MCP 서버 중심 사용 중입니다.


6. 관리자 도구

숫자 목록이 표시된 검은색 화면
  • 아이템 타입별/팀별 필터링

  • View/Edit/Delete 액션

  • Create New 버튼으로 새 아이템 추가

  • 작성자, 태그, MCP 서버 관리

  • Google OAuth (@gpters.org) + 관리자 비밀번호 보호


결과와 배운 점

정량적 성과

지표

Before

After

스킬 검색 시간

~5분

⌘K → 검색 → 클릭 (30초)

신규 입사자 온보딩

반복 질문

링크 하나로 해결

스킬 재사용률

만든 사람만 사용

팀 전체가 사용

MCP 서버 등록 후

개별 설치 필요

자연어로 바로 활용

정성적 변화

  • "이런 게 있었어?" → "여기서 찾으면 되지"

  • 팀원들이 자발적으로 스킬 공유 시작 (업로드 페이지 활용)

  • 신규 입사자가 첫날부터 팀 스킬 활용

  • MCP 서버 덕분에 스킬 설치 없이도 Claude Code가 팀 지식 활용

실제 사용 예시

👤 "사내 DB의 users 테이블 구조 알려줘"
🤖 Claude Code 내부:
    → search_plugins("database") 호출
    → db-schema-reference 스킬 발견
    → get_plugin_content("db-schema-reference") 호출
    → 스킬 내용 기반으로 답변
💬 "users 테이블은 다음과 같은 구조입니다: id, email, name, ..."


보안 고려사항

적용한 보안 조치

  • 로그인 제한: 회사 구글 계정(@gpters.org)만 로그인 가능

  • 관리자 권한 분리: 콘텐츠 수정/삭제에는 별도 비밀번호 필요

  • 데이터 보호: SQL Injection, XSS 차단, 기본 보안 설정 적용

현재 한계점

  • MCP 서버는 인증 없이 열려 있음 (Claude Code가 로그인 불가)

  • 민감 정보는 포함되어 있지 않아 리스크는 낮음

  • 향후 API 키 인증 및 요청 제한 기능 도입 예정

✅ 한 줄 요약: 회사 계정 + 관리자 분리로 기본 보안 확보, MCP는 인증 기능 추가 예정


현재 상황과 향후 계획

현재 상황 (MVP)

기능

상태

비고

카탈로그 검색/필터

✅ 완료

키워드, 타입, 팀별 필터

원클릭 설치 가이드

✅ 완료

CLI 명령어 + 수동 설치

팀원 업로드

✅ 완료

드래그앤드롭, frontmatter 자동 파싱

MCP 서버

✅ 완료

검색/조회 API, 자동 스킬 발견

관리자 도구

✅ 완료

CRUD, 태그/작성자 관리

Google OAuth

✅ 완료

@gpters.org 도메인 제한

단기 개선

  1. MCP 인증 강화 - API 키 추가

  2. 검색 정확도 개선 - 복합 검색어 지원

  3. 팀원 온보딩 문서 - .mcp.json 설정 가이드 배포

중기 개선

  1. 시맨틱 검색 - 유사 의미 검색 지원

  2. 사용 통계 - 인기 스킬 파악

  3. 버전 관리 - 수정 이력 추적

장기 비전

  1. AI 추천 - "이 작업엔 이 스킬이 좋아요" 자동 제안

  2. Claude Code 네이티브 연동 - 동적 스킬 로딩 기능 대응


마무리

Claude Code를 팀에서 활발히 쓰고 있다면, 내부 마켓플레이스를 만들어보세요.

  • 바이브코딩으로 2일이면 MVP 완성

  • MCP 서버까지 붙이면 Claude Code가 팀 스킬을 자동 검색 & 활용

  • 설치 없이도 팀 지식이 바로 쓰이게 됩니다

스킬이 쌓일수록 팀 전체의 생산성이 올라가는 걸 체감할 수 있어요 💪

궁금한 점 있으시면 댓글 남겨주세요!

9
3개의 답글

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요