예시 실습
이 핸즈온랩은 교육 내용을 보여 드리기 위한 예시입니다. 실제 교육과정에서는 고객사의 산업과 직무를 반영한 실습 시나리오로 구성한 비공개 학습 사이트를 따로 제공합니다.
M5-5. 검증·테스트 — ASKILL 규칙·사이드로드·dev tunnel
한 줄 요약 — 제출 전에 검증 규칙(ASKILL-*) 을 통과하는지 확인하고,
atk install로 개인 사이드로드 테스트를 하며, 로컬 MCP는 dev tunnel로 HTTPS 주소를 열어 테스트합니다.
1. 검증 규칙 요약
manifest 수준 — folder 필수(ASKILL-M001) · 스킬 최대 20개(M002) · 경로 256자(M003)
패키지 수준 — 자주 걸리는 것들:
| 코드 | 규칙 | 해결 방법 |
|---|---|---|
| P001·P002 | 폴더 존재·SKILL.md 존재 | ZIP 구조 확인 |
| P003 | YAML frontmatter 유효 | --- 구분자·문법 |
| P004·P005 | name·description 필수 | frontmatter 추가 |
| P006 | name = 폴더명 | 가장 흔한 실패 원인 — 둘을 똑같이 맞추기 |
| P007 | kebab-case | my-skill 형식 |
| P008 | folder 중복 금지 | 중복 제거 |
커넥터 — id·displayName 필수 · id 유일 · HTTPS URL · mcpToolDescription 필수(파일이 ZIP에 존재) ·
None이면 referenceId 금지 / 그 외 필수. 동반 파일 규칙은 M5-2.
2. 개인 사이드로드 (Agents Toolkit CLI)
npm install -g @microsoft/m365agentstoolkit-cli
atk --version
atk auth login # M365 업무 계정
atk install --file-path "./myPackage.zip" --scope Personal
성공하면 TitleId·AppId가 반환됨 — 업데이트·삭제할 때 사용. Teams에 업로드해서 테스트할 수도 있음.
3. 로컬 MCP 테스트 — dev tunnel
devtunnel port create <tunnel> -p <port> --protocol http
⚠️
--protocol http로 지정해야 합니다 — 이 플래그는 로컬 서비스의 프로토콜을 뜻합니다.https로 지정하면 로컬 HTTP 서버와 맞지 않아 모든 요청이 502 오류가 납니다.
| 증상 | 원인 | 해결 방법 |
|---|---|---|
| 모든 요청 502 | --protocol https로 생성 |
http로 재생성 |
| macOS에서 502 | 서버가 0.0.0.0(IPv4)만 바인드, 터널은 ::1 |
:: 바인드 |
| 업로드 400 mcpToolDescription | 누락 | 파일 참조 추가 + ZIP 포함 |
| 업로드 400 additional properties | v1.28에 정의되지 않은 필드 | 해당 필드 제거 |
4. 테스트 체크리스트
- 검증 규칙 전 항목 통과 (특히 P006·P007)
- 사이드로드 후 새 세션에서 트리거 문구로 스킬이 실행되는지 확인
- 커넥터 도구 호출 + 승인 주석에 맞게 확인 프롬프트가 뜨는지 확인
- 파일 파라미터 도구는 150MiB·8파일 한도 내 정상 동작
출처
출처: Build plugins — Validation rules·Test·Test a connector against a local MCP server (MS Learn)



