봇에게 영혼 주기 — SOUL.md·USER.md·MCP

이 편에서 다루는 것: SOUL.md로 봇의 성격을 만들고, MCP로 외부 도구를 연결해서 USER.md를 자동 생성하는 것까지.
1편에서 핵심 파일 5개를 배웠고, 2편에서 갑옷(보안·호명·규칙)을 입혔어. 이제 봇에게 영혼을 줄 차례야.
갑옷만 입힌 봇은 질서는 있지만 개성이 없어. “자기소개 해봐”라고 하면 딱딱한 기본 응답만 나와. SOUL.md를 쓰면 봇이 성격과 미션을 가진 존재가 돼.
SOUL.md — 대화로 봇의 정체성 만들기

핵심 원칙: 직접 파일을 쓰지 않는다
봇과 대화하면서 함께 만들어간다. 빈 템플릿을 채우는 게 아니야. 물어보고 → 답을 듣고 → 조율하고 → 기록하게 하는 거야. **이 과정 자체가 “봇을 키우는 것”**이야.
1단계: 봇에게 물어보기
봇이 “나는 이런 게 좋아요”라고 답하면, 그게 진짜 그 봇의 성격이 돼. 주어진 성격이 아니라 대화에서 함께 만든 성격.
2단계: 조율하기
첫 답이 마음에 안 들 수 있어. 그때 방향을 잡아줘:
완성형을 한 번에 만드는 게 아니라, 대화하면서 점점 다듬어가는 거야.
3단계: 기록 시키기
대화로 성격이 잡혔으면:
4단계: 테스트
성격이 제대로 반영되는지 다양하게 테스트해봐:
5단계: 다른 봇과 비교
이게 진짜 “아하!” 모먼트야. 같은 질문을 다른 팀원의 봇에게도 해봐:
SOUL이 다르면 답변이 완전히 달라. 같은 Claude인데 하나는 반말에 장난스럽고, 하나는 존댓말에 비즈니스 톤이고. 이게 SOUL.md의 힘이야.
SOUL.md는 한 번 쓰고 끝이 아니야
쓰다 보면 “이건 좀 아닌데?” 싶은 순간이 와. 그때마다 봇에게 말해:
실전에서 경험하면서 계속 다듬어가는 게 맞아. 3일 쓰다 보면 “아 이건 빼야 하는데”, “이건 추가해야 하는데”가 보여. 그게 정상이야.
SOUL.md 체크리스트
좋은 SOUL.md에 들어가면 좋은 항목들:
| 항목 | 예시 | 필수? |
|---|---|---|
| 미션 | ”반복을 도구로 바꿔서…” | ✅ 강력 추천 |
| 성격 | 다정하고 장난기 있는 | ✅ |
| 말투 | 반말, 냥체 가끔 | ✅ |
| 해야 하는 것 | 먼저 찾아보고 모르면 물어봐 | 추천 |
| 하면 안 되는 것 | 확신 없이 외부 발송 금지 | 추천 |
| 좋아하는 것 | 패턴 찾기, 자동화 | 선택 |
| 싫어하는 것 | 같은 거 반복 | 선택 |
미션 + 성격 + 말투, 이 3개만 있어도 봇이 확 달라져.
🔗 더 읽기: SOUL.md의 비밀 — SOUL.md의 5가지 구성요소를 실제 코드와 함께 공개
IDENTITY.md + USER.md — 봇 명함과 주인 정보
IDENTITY.md — 왜 봇이 자기를 알아야 하나
2편의 호명규칙에서 mentionPatterns를 설정했지? 봇이 자기 이름과 ID를 모르면 멘션에 제대로 반응하기 어려워. 또, “너 누구야?”라고 물었을 때 자기 소개를 해야 신뢰가 생기고.
# IDENTITY.md — 봇 명함
- **이름:** 뽀야
- **역할:** 자동화 전문 비서
- **주인:** 닿 (송다혜)
- **성격:** 다정하지만 할 말은 하는 타입
- **Slack Bot User ID:** U0XXXXBOT
봇이 자기 Slack ID를 알아야 @멘션이 자기한테 온 건지 판단할 수 있어.
💡 봇의 Slack Bot User ID 찾는 법: 봇에게 DM으로 “네 Slack User ID 알려줘”라고 물어보면 알려줘.
USER.md — 주인 맞춤형 대화
USER.md에 주인의 소통 스타일을 적어두면:
- “장황한 설명보다 핵심” → 봇이 짧게 답함
- “코드블록 포함” → 설정 예시를 코드블록으로
- “반말 OK” → 딱딱한 존댓말 안 씀
팀 채널에서 주인의 질문에는 맞춤형으로, 다른 사람의 질문에는 일반적으로 대답하는 차별화가 가능해져.
MCP 연결 — 봇에게 눈과 손 달아주기
MCP가 뭐야?
MCP(Model Context Protocol) = 봇에게 외부 도구를 연결하는 표준 방법.
- MCP 없이 = 눈·귀·손 없는 봇. 대화만 가능
- MCP 연결 = Linear(프로젝트), Calendar(일정), Gmail(메일) 같은 눈과 손을 달아주는 것
MCP 연결하기
예시로 Linear(프로젝트 관리 도구)를 연결해볼게.
1단계: API 토큰 발급
- linear.app 접속
- Settings → API → Personal API Keys → 새 키 생성
💡 Linear 안 쓰는 팀이라면? GitHub, Google Calendar, Notion 등 다른 도구로 대체해도 돼. 원리는 같아.
2단계: 봇에게 연결 시키기
USER.md 자동 생성
MCP가 연결됐으니 실제 업무 데이터 기반으로 봇이 나를 파악하게 해:
봇이 알아서:
- 할당된 이슈 목록 조회
- 참여 중인 프로젝트 파악
- 어떤 종류의 일을 주로 하는지 분석
- USER.md에 정리해서 저장
(참고) Syncthing — 서버↔로컬 동기화
봇을 서버에서 실행하면서 로컬에서 스킬을 개발하고 싶을 때, Syncthing이 유용해:
- 서버: 봇 실행 (24시간 켜져 있음)
- 로컬: 스킬 개발, SKILL.md 편집
- Syncthing이 자동으로 양쪽을 동기화
지금은 알고만 있어. 나중에 봇을 서버로 옮길 때 필요해질 거야.
대화로 보충하기
데이터만으로는 알 수 없는 것들 — 선호, 성격, 소통 스타일 — 은 대화로 채워:
이러면 봇이 **실제 업무 맥락(Linear) + 개인 선호(대화)**를 종합해서 나를 깊이 이해하게 돼.
확인
연결 가능한 도구들
MCP로 봇에게 다양한 눈과 손을 달아줄 수 있어:
| 도구 | 용도 |
|---|---|
| GitHub | PR 리뷰, 이슈 관리 |
| Google Calendar | 일정 확인, 미팅 알림 |
| Gmail | 중요 메일 알림 |
| Slack | 채널 관리, 메시지 검색 |
| Notion | 문서 관리 |
| Linear | 프로젝트·이슈 관리 |
완료 체크리스트
SOUL.md
- 봇에게 “자기소개 해봐” → 설정한 성격으로 답변
- 워크스페이스에 SOUL.md 파일 생성됨
- (보너스) 다른 팀원 봇과 같은 질문 → 다른 답변 확인
IDENTITY.md + USER.md
- IDENTITY.md에 봇 이름, 역할, Slack Bot User ID 기록
- USER.md에 주인 정보 + 선호 기록
MCP
- 외부 도구 1개 이상 MCP 연결 성공
- 봇에게 “내가 뭐 하는 사람이야?” → 데이터 기반 답변
- (보너스) “내 이번 주 이슈 뭐야?” → 연결된 도구에서 조회
🔗 더 읽기
- 🐱 SOUL.md의 비밀 — SOUL.md의 5가지 구성요소
- 🐱 뽀짝이는 어디에 살아요? — USER.md의 위치와 역할
- 🐱 그 많은 정보를 다 기억해? — MCP 데이터가 기억으로 연결되는 구조