
MCP 구성에 대한 과정을 마무리 짓던 와중에 mcp skill에 대해서 알게 되었다.
우선, MCP skill에 대한 정의부터 알아보자. Skill은 간단히 말하면 작업 흐름을 정의하는 기술이다.
https://docs.claude.com/en/docs/claude-code/skills : 해당 문서에서 이야기하는 내용을 조금 살펴보자.
Skill을 사용하는 방법은
이다.
주로 나는 skill로 mcp_server에서 만든 tool을 다듬고자 하였으므로, personal skill을 생성했다.
아래 유튜브 영상이 skill 이해 및 적용에 큰 도움이 되었다.
https://www.youtube.com/watch?v=901VMcZq8X4
(바로 구독 때렸습니당,,)
claude code가 personal skill을 인식하기 위해서는 ~/.claude/skills 폴더 아래에 스킬을 생성해주면 되었다.
claude code는 SKILL.md를 바탕으로 스킬에 대해서 파악해나가기 때문에, 더 참조 자료가 필요하다면 SKILL.md에서 태깅함으로서 인식시킬 수 있다.
~/.claude
│
├── ide/
├── plugins/
└── skills/
├── api-tester/
│ ├── references/
│ └── SKILL.md
│
├── postman-collection-generator/
│ ├── references/
│ └── SKILL.md
│
└── atlassian-page-creator/
├── references/
└── SKILL.md
보시다 싶이,
이렇게 3개의 skill을 사용하였다.
skill-creator는 스킬 생성을 도와주는 스킬이라고 할 수 있다.
claude desktop에서 settings → capabilities → skills → skill-creator를 enable 함으로서 skill-creator를 활성화할 수 있다.
이후, claude desktop에 skill-creator를 사용해서 skill을 생성하고 싶다고 요청하게 되면, claude desktop은 skill-creator 스킬 문서를 읽게 된다.
이후, 어떤 스킬을 만들고 싶은지 주저리 주저리 설명을 하게 되면, 아래와 같이 응답이 온다.
기존과 다른 점은 요청한 것을 바로 수행하는 것이 아니라, 모호한 부분을 재질문을 통해 부족한 부분을 채운 후, skill 생성에 들어가는 것이다.
claude desktop이 유저에게 물어본 내용을 대답을 하면, skill 폴더를 만들어 준다. 이를 .claude/skill 밑에 넣어주기만 하면 끝이다! 근데 가끔 claude desktop이 mac에서 지원되지 않는 확장자로 줄 때가 있는데, zip 파일로 주라고 하면 정상적으로 다운로드 가능하다.
앞에서 3개의 skill을 생성하였다고 말하였는데, 어떤 Tool에 어떤 Skill이 사용되는지, 그리고 해당 Tool이 어떤 기능을 하는지에 대해 다루어 보려고 한다.
해당 skill은 API Testing Tool에 사용하기 위해서 생성한 스킬이다. 우선 API Testing Tool에 대해서 설명하도록 하겠다. API Testing Tool은 한 API에 대해서 claude code 스스로 테스트를 하고, 검증을 하기 위해서 만들어졌다.
반면, Tool 단독적으로 구현하기 어려웠던 부분은 여러 환경에 따라 값들이 변경된다는 점이다.
이 대표적이다. 이에, 해당 부분을 유저에게 질문을 통해 얻은 후에 curl 요청을 보내야지 정상적으로 테스트를 수행할 수 있다. 이에, 이런 정보를 유저에게 물어보는 역할을 skill이 수행하고, tool은 curl을 보내 요청을 확인하도록 구성을 하였다.
아래와 같이 claude code에게 요청하였다.
Q. intellij potato 프로젝트에서 sweet-potato submodule에 있는 PotatoController API
@GetMapping fun getPotatos( @RequestParam(value = "exists", defaultValue = "N") exists: Boolean, user: User ): ResponseEntity<*> { val potatos: List<Potato> = potatoReaderUseCase.getPotatos(exists, user) return SuccessResponse( entity = Potatos, collectionName = "potatoList") }이거에 대해서 테스트 해줘.
해당 skill은 postman tool에 사용된다. 이는, 위와 같이 boc 관련 API의 경우 여러 환경 변수들을 설정해 주어야 하기 때문에, 이를 질문하기 위한 skill이다.
아래와 같이 claude code에게 요청할 수 있다.
Q. potato intellij 프로젝트에서 potato submodule, PotatoController API에 대해서 postman collection 만들고 너가 Postman에 올려줘.
atlassian-page-creator는 atlassian에 페이지 작성 시, instruction을 주기 위해 만들었다.
이렇게 작성한 내용에 대해 claude에게 이상한 내용은 없는지, 그리고 맞춤법을 수정해줄 것을 요청하였다.
이렇게 Claude는 OpenAI가 아닌 Anthropic이 개발한 내용이었기에, 이에 대한 부분 claude가 확인한 것을 볼 수 있다.
잘 수정된 것을 확인 가능하다.
dev DB에 데이터가 많은 경우, 필드가 많은 경우에는 특정 데이터를 찾아 확인하기 어려운 경우가 있다. 이를 위해서 dev database 환경에 대해서도 연결할 수 있도록 하는 mcp를 생성해 두었다.
"runQuery로 potato database에 연결해서 satangmasitda space에 해당하고 exists이 Y인 데이터 갯수 확인해줘."
라고 질문했을 때, 아래와 같이 데이터를 정상적으로 찾아주는 것을 확인할 수 있다.
이렇게 MCP Skill 적용 및 데모에 대한 글을 마무리 지으려고 한다.