본문 바로가기

MCP

MCP Skills — 팀이 만든 AI 전문가를 패키지처럼 배포하는 법

반응형

지금까지 Skills는 .claude/skills/ 폴더에 마크다운 파일로 만들었어요. 나만 쓰는 거예요.

MCP Skills는 이걸 패키지처럼 배포해서 누구나 쓸 수 있게 만드는 거예요.

기존 Skills:
내 프로젝트/.claude/skills/database.md
→ 나만 씀

MCP Skills:
npm install mcp-skill-backend-expert
→ 누구나 설치해서 Claude에 전문가 주입 가능

아직 실험적 기능이에요 (2026년 4월 기준 experimental-ext-skills 레포). 근데 방향이 명확해서 미리 알아두면 좋아요.


Skills가 뭔지 다시 정리

# .claude/skills/database.md (기존 방식)

## DB 작업 전문가

N+1 쿼리 절대 금지.
항상 페이지네이션 사용.
트랜잭션 필요한 경우: prisma.$transaction() 사용.

이 파일이 있으면 Claude가 DB 코드 짤 때 자동으로 이 규칙을 따라요.

MCP Skills는 이 파일을 MCP 서버로 패키징해서 배포해요.


MCP Skills 구조

mcp-skill-backend-expert/
├── package.json
├── index.js          ← MCP 서버
└── skills/
    ├── database.md
    ├── security.md
    └── api-design.md
// index.js
import { Server } from "@modelcontextprotocol/sdk/server/index.js"
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
import { readFileSync } from "fs"

const server = new Server({
  name: "backend-expert-skills",
  version: "1.0.0"
})

// Skills를 리소스로 노출
server.setRequestHandler("resources/list", async () => ({
  resources: [
    {
      uri: "skill://database",
      name: "데이터베이스 전문가",
      description: "N+1 방지, 트랜잭션, 페이지네이션 규칙",
      mimeType: "text/markdown"
    },
    {
      uri: "skill://security",
      name: "보안 전문가",
      description: "인증, SQL 인젝션 방지, 시크릿 관리",
      mimeType: "text/markdown"
    }
  ]
}))

// Skills 내용 반환
server.setRequestHandler("resources/read", async (request) => {
  const skillMap = {
    "skill://database": "./skills/database.md",
    "skill://security": "./skills/security.md"
  }

  const filePath = skillMap[request.params.uri]
  if (!filePath) throw new Error("Skill not found")

  const content = readFileSync(filePath, "utf-8")
  return {
    contents: [{
      uri: request.params.uri,
      mimeType: "text/markdown",
      text: content
    }]
  }
})

// 서버 실행
const transport = new StdioServerTransport()
await server.connect(transport)

실전 — 백엔드 전문가 Skills 패키지 만들기

Skills 내용 작성

<!-- skills/database.md -->
# 데이터베이스 전문가 Skills

## 절대 금지
\`\`\`typescript
// ❌ N+1 쿼리
const users = await prisma.user.findMany()
for (const user of users) {
  user.posts = await prisma.post.findMany({ where: { userId: user.id } })
}

// ✅ 올바른 방식
const users = await prisma.user.findMany({
  include: { posts: true }
})
\`\`\`

## 항상 페이지네이션
\`\`\`typescript
// ✅ 올바른 방식
const result = await prisma.order.findMany({
  take: 20,
  skip: (page - 1) * 20,
  orderBy: { createdAt: "desc" }
})
\`\`\`

## 트랜잭션 필요한 경우
- 결제 처리
- 재고 차감
- 여러 테이블 동시 수정
<!-- skills/security.md -->
# 보안 전문가 Skills

## 입력 검증
- 모든 user input: Zod로 검증
- SQL: 반드시 ORM 사용 (raw query 금지)
- 파일 업로드: 확장자 + MIME type 둘 다 검증

## 민감 데이터
- 비밀번호: bcrypt cost factor 12 이상
- API 키: .env에만, 코드에 하드코딩 절대 금지
- 로그에 비밀번호/토큰 출력 금지

## 새 기능 체크리스트
- [ ] 인증 필요한가?
- [ ] 권한 체크 필요한가?
- [ ] Rate limiting 필요한가?

package.json

{
  "name": "mcp-skill-backend-expert",
  "version": "1.0.0",
  "description": "백엔드 개발 전문가 Skills — DB, 보안, API 설계",
  "main": "index.js",
  "type": "module",
  "bin": {
    "mcp-skill-backend-expert": "./index.js"
  },
  "dependencies": {
    "@modelcontextprotocol/sdk": "^1.0.0"
  }
}

npm 배포

npm publish

# 사용자 설치
npm install -g mcp-skill-backend-expert

# Claude Code에 등록
claude mcp add backend-expert npx mcp-skill-backend-expert

팀에서 쓰는 법

팀 전용 Skills 패키지

# 회사 내부 npm 레지스트리에 배포
npm publish --registry https://npm.mycompany.com

# 팀원 설치
npm install -g @mycompany/mcp-skills-backend

# .claude/mcp.json에 추가
{
  "mcpServers": {
    "team-skills": {
      "command": "npx",
      "args": ["@mycompany/mcp-skills-backend"]
    }
  }
}

팀원들이 같은 Skills를 자동으로 공유해요. 신규 입사자도 설치 하나로 팀 컨벤션 주입 완료예요.


현재 상태 (2026년 4월 기준)

✅ 공식 GitHub 레포 활발히 개발 중
   modelcontextprotocol/experimental-ext-skills

✅ Python, TypeScript SDK 모두 지원

⚠️  아직 experimental (정식 스펙 아님)
   → 프로덕션 사용은 주의

🔜 2026 Q3 정식 스펙 포함 예정 (로드맵 기준)

기존 방식과 비교

기존 Skills MCP Skills

범위 내 프로젝트만 패키지로 배포
팀 공유 CLAUDE.md 복사 npm install
업데이트 수동 파일 수정 npm update
버전 관리 git semver
공개 배포 불가 npm publish

마무리

MCP Skills가 정식 스펙에 포함되면 이런 생태계가 만들어질 거예요.

npm install mcp-skill-nextjs-expert
npm install mcp-skill-aws-architect
npm install mcp-skill-security-auditor
npm install mcp-skill-korean-copywriter

각 분야 전문가 지식을 패키지처럼 Claude에 주입하는 거예요. 지금 CLAUDE.md Skills를 잘 만들어두면 나중에 패키지로 전환하기 쉬워요.


 

반응형