Home / Kiro CLI / Kiro CLI 확장
Module

Kiro CLI 확장

Skills, MCP, Custom Agents, 공유 구조

⏱ 25분 139 / 189

Kiro CLI 확장

Skills · MCP · Custom Agents · 공유 구조

CLI에서도 전문가처럼 확장한다

JIT 지식 로딩, 외부 도구 연결, 전문 에이전트 위임

확장 오버뷰

Skills · MCP · Custom Agents

PART 1 · 오버뷰

확장 체계

지식·도구·전문가 — CLI 능력을 넓히는 3축

Skills + MCP + Agents

지식은 Skills로, 외부 도구는 MCP로, 전문 역할은 Custom Agents로 추가합니다.

  • Skills — 도메인 지식 JIT 로딩
  • MCP — 외부 도구 표준 연결
  • Custom Agents — 전문 역할 위임
  • .kiro/ 공유 — IDE와 동일 동작
takeaway

IDE에서 설정한 것이 CLI에서 그대로 동작합니다 — .kiro/ 하나가 두 인터페이스의 단일 소스입니다.

PART 1 · 오버뷰

3축 확장 체계

Skills는 JIT 로딩, MCP는 표준 연결, Agents는 역할 위임 — 축마다 다른 확장 방식

  1. 1
    Skills
    • description 매칭으로 도메인 지식 JIT 로딩
    • AWS 서비스 가이드, 사내 규칙 등
    • 필요할 때만 활성화 — 토큰 절약
  2. 2
    MCP
    • 외부 도구를 프로토콜 표준으로 연결
    • GitHub, AWS, Figma 등 API를 에이전트가 직접 호출
    • OAuth MCP로 인증 서비스도 연동
  3. 3
    Custom Agents
    • 전문 역할 하위 에이전트 정의
    • 보안 리뷰어, 테스트 작성자 등에 위임
    • 역할별 도구 제한으로 안전한 분업
takeaway

셋의 역할이 다릅니다 — 지식은 Skills, 도구는 MCP, 역할은 Agents로 나눠 확장합니다.

PART 1 · 오버뷰

.kiro/ 공유 아키텍처

IDE와 CLI가 동일한 설정을 읽는 구조

Skills

description 매칭 · JIT 로딩 · 슬래시 활성화

PART 2 · Skills

Skills

필요한 지식만 그때그때 불러오는 JIT 로딩 구조

JIT 지식

description 매칭으로 필요한 Skill만 컨텍스트에 올립니다.

  • description 매칭 — 요청과 대조
  • JIT 로딩 — 매칭된 것만 토큰 소비
  • /skill-name — 슬래시 수동 활성화
  • Steering(항상)과 달리 선택적
takeaway

매칭 단서는 description에 녹여 씁니다 — keywords 필드는 없습니다.

PART 2 · Skills

Skills JIT 로딩 흐름

프롬프트 입력부터 전문 응답까지 — description 매칭이 결정하는 4단계

  1. 1
    프롬프트 입력
    • "DynamoDB 싱글 테이블 설계해줘"
    • 사용자가 질문이나 요청을 입력
    • Skills description 매칭 시작
  2. 2
    description 매칭
    • Skills 메타데이터(description)와 요청 매칭
    • "DynamoDB", "싱글 테이블" → 해당 Skill 발견
    • 매칭 안 되면 로딩하지 않음
  3. 3
    JIT 로딩
    • 매칭된 Skills 마크다운만 컨텍스트 추가
    • 나머지 수십 개 Skills는 토큰 소비 없음
    • Steering(항상)과 달리 선택적
  4. 4
    전문 응답
    • Skills 지식을 참조하여 정확한 가이드
    • 최신 API, 모범 사례, 주의사항 포함
    • 할루시네이션 감소
takeaway

수십 개 Skill이 있어도 매칭된 것만 토큰을 씁니다 — 안 쓰는 지식은 컨텍스트에 없습니다.

PART 2 · Skills

Skills 마크다운 구조

.kiro/skills/ 디렉토리에 마크다운으로 작성

markdown
---
name: dynamodb-patterns
description: DynamoDB 설계 패턴 가이드 — 싱글 테이블 설계,
  GSI, 파티션 키 작업 시 활성화
---
# keywords 필드는 없음 — 매칭 단서는 description에 녹여 쓴다

# DynamoDB 설계 패턴

## 싱글 테이블 디자인
- PK/SK 복합 키로 다중 엔티티 저장
- GSI는 최대 20개 — 액세스 패턴별 설계

## 파티션 키 설계
- 높은 카디널리티 선택 (UUID, 복합 키)
- 핫 파티션 방지 — write sharding 활용

## 비용 최적화
- On-Demand는 예측 불가 워크로드에
- Provisioned + Auto Scaling이 안정 워크로드에 적합

MCP

stdio · streamable-http · OAuth

PART 3 · MCP

MCP

외부 도구를 표준 프로토콜로 잇는 연결 계층

MCP 연결

.kiro/settings/mcp.json에 서버를 등록하면 에이전트가 외부 API를 직접 호출합니다.

  • mcp.json — 서버 등록
  • stdio — 로컬 프로세스 래핑
  • streamable-http — 원격 서버 연결
  • OAuth — GitHub·Figma 인증 연동
takeaway

로컬 도구는 stdio로 래핑하고, 팀이 공유하는 원격 서비스는 streamable-http + OAuth로 연결합니다.

PART 3 · MCP

MCP 설정 파일

.kiro/settings/mcp.json으로 서버 등록

json
{
  "mcpServers": {
    "aws-docs": {
      "command": "uvx",
      "args": ["awslabs.aws-documentation-mcp-server@latest"],
      "env": { "AWS_REGION": "us-east-1" }
    },
    "github": {
      "url": "https://api.githubcopilot.com/mcp/",
      "headers": {
        "Authorization": "Bearer ${GITHUB_TOKEN}"
      }
    },
    "figma": {
      "url": "https://mcp.figma.com/mcp",
      "oauth": {
        "redirectUri": "http://127.0.0.1:8080/oauth/callback",
        "oauthScopes": ["read"]
      }
    }
  }
}
  • "command"·"args" — stdio 방식. 로컬 CLI를 프로세스로 래핑하고 "env"로 환경변수 주입
  • "url" — streamable-http 방식. 원격 서버에 HTTP 연결, "headers"로 Bearer 토큰 전달
  • "oauth" — 브라우저 인증 연동. redirectUri 콜백 + oauthScopes로 권한 범위 지정
PART 3 · MCP

stdio vs streamable-http

로컬 프로세스와 원격 서버의 선택

stdio (로컬)

  • command + args로 로컬 프로세스 실행
  • stdin/stdout으로 JSON-RPC 통신
  • 설치된 CLI 도구를 직접 래핑
  • 인증 불필요 — 로컬 권한 상속
  • 네트워크 지연 없음

로컬에 설치된 도구를 MCP 서버로 실행합니다. uvx, npx로 패키지를 바로 실행하거나 직접 만든 스크립트를 연결.

streamable-http (원격)

  • url로 원격 HTTP 엔드포인트 연결
  • SSE 스트리밍으로 실시간 응답
  • 팀 전체가 동일 서버 공유 가능
  • OAuth/API Key 인증 필요
  • AgentCore Gateway로 관리형 배포

원격 서비스(GitHub, Figma 등)를 OAuth로 인증하여 연결합니다. 팀이 공유하는 중앙 MCP 서버에 적합.

takeaway

기준은 도구의 위치입니다 — 내 머신에 있으면 stdio, 팀이 공유하면 streamable-http입니다.

PART 3 · MCP

OAuth MCP 연결

서드파티 서비스 인증 설정

GitHub
  • Personal Access Token 또는 OAuth App 사용
  • repo, read:org 스코프 권장
  • MCP가 이슈 생성, PR 리뷰, 코드 검색을 수행
OAuth 스키마
  • oauth 키 — clientId · clientSecret · redirectUri · oauthScopes
  • clientId 미지정 시 Dynamic Client Registration 자동 수행
  • OAuth 지원 원격 MCP 공통 설정
Figma
  • 공식 원격 엔드포인트 — https://mcp.figma.com/mcp
  • 인증은 OAuth 플로우 (브라우저 승인)
  • 디자인 파일 읽기 — Powers로 한 번에 설치 권장

Custom Agents

역할 정의 · 도구 제한 · 자동 위임

PART 4 · Custom Agents

Custom Agents

역할·도구·권한을 파일로 정의하는 전문가 분업

전문 에이전트

.kiro/agents/*.md에 역할과 도구 제한을 정의하고 복잡한 작업을 위임합니다.

  • *.md 프론트매터 — description·tools
  • permissions.rules — 쓰기 범위 제한
  • 자동 위임 — 메인 에이전트가 호출
  • 읽기 전용 리뷰어 등 역할 분업
takeaway

핵심은 최소 권한 원칙입니다 — 역할마다 허용 도구와 쓰기 범위를 좁혀 안전하게 위임합니다.

PART 4 · Custom Agents

Custom Agent 정의

.kiro/agents/*.md로 전문 에이전트 작성

markdown
---
description: 단위 테스트를 자동 생성하는 전문 에이전트
tools:
  - read
  - write
  - shell
permissions:
  rules:
    - capability: fs_write
      effect: allow
      match: "**/*.test.{ts,tsx}"
    - capability: shell
      effect: allow
      match: "npx jest*"
---
# 테스트 작성 에이전트

## 역할
소스 코드를 분석하여 단위 테스트를 생성합니다.
## 지시사항
- describe/it 구조로 작성
- 경계값, 에러 케이스 포함
- mock보다 실제 구현 우선
- 기존 테스트 패턴을 참조하여 일관성 유지
- 생성 후 npx jest로 실행하여 통과 확인
  • description — 메인 에이전트가 "이 작업을 위임할까"를 판단하는 매칭 기준
  • tools — 허용 도구 카테고리만 노출 (read·write·shell)
  • permissions.rules — capability+match로 세밀 제한. 테스트 파일 쓰기·npx jest*만 allow
  • 본문 마크다운 — 역할·지시사항이 하위 에이전트의 시스템 프롬프트가 됨
PART 4 · Custom Agents

에이전트 역할 분업

최소 권한 원칙으로 안전한 위임

에이전트역할허용 도구파일 쓰기 범위
test-writer단위 테스트 생성read, write, shell(jest)*.test.* 파일만
security-reviewer보안 취약점 분석read, web쓰기 불가 (읽기 전용)
doc-generatorAPI 문서 생성read, writedocs/ 폴더만
refactorer코드 리팩토링read, write, shell(tsc)src/ 폴더만
reviewer코드 리뷰 피드백read쓰기 불가 (읽기 전용)
takeaway

리뷰어는 읽기 전용, 테스트 작성자는 *.test.*만 — 역할마다 도구와 쓰기 범위를 좁힙니다.

공유 구조

Global · Workspace · Git 동기화

PART 5 · 공유 구조

공유 구조

개인 설정과 팀 설정이 병합되는 2계층 구조

Global + Workspace

~/.kiro/는 개인 기본값, 프로젝트 .kiro/는 Git으로 공유되는 팀 규칙입니다.

  • Global ~/.kiro/ — 개인, .gitignore
  • Workspace .kiro/ — Git 팀 공유
  • 병합 — Workspace가 오버라이드
  • IDE·CLI가 동일하게 읽음
takeaway

토큰 같은 개인 설정은 Global에, 팀 규칙은 Workspace에 둡니다 — 충돌하면 Workspace가 이깁니다.

PART 5 · 공유 구조

GlobalWorkspace 계층

개인 설정과 팀 설정의 분리

PART 5 · 공유 구조

IDE vs CLI 동작 차이

동일한 설정, 약간 다른 인터페이스

기능IDECLI
Steering 적용✓ 동일하게 동작✓ 동일하게 동작
Hooks 실행✓ UI 알림 표시✓ 터미널 출력
Skills 로딩✓ description 자동 매칭✓ 자동 + /skill-name 수동
MCP 연결✓ 설정 UI 제공✓ JSON 직접 편집
Agents 위임✓ Subagent 패널✓ 자동 위임 (패널 없음)
Spec 세션✓ 3단계 UI 패널△ V3(early access)부터 지원 — 그 전엔 Plan 모드
Checkpoint✓ 시각적 타임라인✓ /checkpoint init·restore·diff (experimental)
takeaway

핵심 기능은 양쪽에서 동작합니다 — Spec 세션만 CLI V3(early access)부터 지원됩니다.

PART 5 · 공유 구조

.kiro/ 디렉토리 전체 구조

Git으로 관리되는 프로젝트 규칙의 단일 소스

takeaway

specs/만 IDE 전용 산출물입니다 — 나머지 디렉토리는 IDE와 CLI가 함께 읽습니다.

Skills · MCP · Agents로 CLI는 무한히 확장됩니다.

.kiro/ 하나로 IDE와 CLI를 통합