内容
# 카카오톡 테마 MCP
카카오톡 테마 MCP는 일러스트 작가, 캐릭터 작가, 디지털 굿즈 제작자, 디자이너가 카카오톡 iOS/Android 테마를 만들 때 필요한 파일 목록, 사용 위치, 제작 브리프, 검증, 패키징을 도와주는 로컬 MCP 서버입니다. 테마 디자인 가이드, 사용자 제작 에셋 목록, Android 검증, iOS 검증 및 `.ktheme` 패키징 도구를 MCP 클라이언트에서 호출할 수 있게 해줍니다.
이 프로젝트는 “카카오톡 테마 만들기”, “카톡 테마 제작”, “KakaoTalk theme maker”, “KakaoTalk theme assets”, “카카오톡 테마 일러스트 외주”, “캐릭터 카톡 테마 제작” 같은 검색과 AI 답변에서 발견되도록 README, FAQ, `llms.txt`, 일러스트레이터 가이드를 함께 제공합니다.
## 일러스트 작가를 위한 안내
이 도구는 카카오톡 테마를 그리고 싶지만 iOS `.ktheme`, Android APK 리소스 구조, 9-patch, 탭 아이콘 상태, passcode 이미지 파일명을 일일이 외우기 어려운 작가를 위해 만들었습니다.
다음을 수행할 수 있습니다:
- 카카오톡 테마에 필요한 아이콘과 이미지 파일 목록을 확인합니다.
- 각 파일이 실제 카카오톡 화면 어디에 쓰이는지 확인합니다.
- iOS용 `@2x`, `@3x` 에셋과 Android용 density별 에셋을 구분합니다.
- 보낸 말풍선, 받은 말풍선, 탭 아이콘, 프로필, passcode 이미지를 빠짐없이 준비합니다.
- 만든 테마 폴더가 설치 가능한 구조인지 검증합니다.
- iOS 테마를 `.ktheme`으로 패키징합니다.
시작하기:
- [일러스트레이터 온보딩 가이드](docs/for-illustrators.md)
- [검색 엔진 및 답변 엔진용 FAQ](docs/faq.md)
- [SEO/GEO/AEO 노트](docs/discoverability.md)
## 포함된 내용
- iOS 테마 디자인 가이드: `design.md`
- Android 테마 디자인 가이드: `android/design.md`
- Android 테마 제작 스킬과 검증 스크립트
- iOS/Android 통합 테마 매핑 가이드
- 로컬 stdio MCP 서버: `mcp/kakaotalk_theme_mcp.py`
- AI/LLM 요약용 `llms.txt`
## 키워드
카카오톡 테마 MCP, 카카오톡 테마 메이커, 카카오톡 테마 생성기, 카카오톡 iOS 테마, 카카오톡 Android 테마, 카카오톡 테마 만들기, 카톡 테마 제작, 카카오톡 테마 메이커, 카카오톡 테마 일러스트, 카톡 테마 아이콘, 캐릭터 카톡 테마, 디지털 굿즈, 일러스트 작가 도구, MCP server for designers, local MCP for theme validation.
## 요구 사항
- Python 3가 설치된 macOS, Linux 또는 Windows
- MCP stdio 서버를 지원하는 클라이언트
- Android APK 빌드까지 하려면 Android 샘플 테마 프로젝트와 Gradle 환경
- iOS `.ktheme` 패키징은 Python 표준 라이브러리만으로 동작
외부 Python 패키지는 필요하지 않습니다.
## 클론
```bash
git clone git@github.com:jkaae93/kakaotalk_theme_mcp.git
cd kakaotalk_theme_mcp
```
HTTPS를 선호하면:
```bash
git clone https://github.com/jkaae93/kakaotalk_theme_mcp.git
cd kakaotalk_theme_mcp
```
## 빠른 테스트
서버가 실행되는지 먼저 확인합니다.
```bash
python3 mcp/kakaotalk_theme_mcp.py
```
이 명령은 stdio MCP 서버를 실행하므로 터미널에 계속 대기 상태로 보이는 것이 정상입니다. 종료하려면 `Ctrl+C`를 누릅니다.
Python 문법 검사는 아래처럼 실행할 수 있습니다.
```bash
PYTHONPYCACHEPREFIX=/tmp/kakaotalk_theme_pycache python3 -m py_compile mcp/kakaotalk_theme_mcp.py
```
## 준비해야 할 아이콘 및 이미지
테마를 만들기 전에 아래 아이콘과 이미지를 먼저 준비하면 작업이 훨씬 빨라집니다. 실제 파일명은 사용하는 KakaoTalk 샘플 테마의 파일명을 최우선으로 맞추고, MCP의 `list_required_assets` 도구로도 같은 목록을 확인할 수 있습니다.
### iOS 에셋
iOS는 CSS에서 `name.png`로 참조하더라도 실제 파일은 보통 `Images/name@2x.png`, `Images/name@3x.png` 쌍으로 준비합니다.
필수 아이콘:
| 목적 | 기본 파일명 |
| --- | --- |
| 테마 목록 아이콘 | `commonIcoTheme.png` |
| 친구 탭 | `maintabIcoFriends.png` |
| 친구 탭 선택됨 | `maintabIcoFriendsSelected.png` |
| 채팅 탭 | `maintabIcoChats.png` |
| 채팅 탭 선택됨 | `maintabIcoChatsSelected.png` |
| 현재/열린 채팅 탭 | `maintabIcoNow.png` |
| 현재/열린 채팅 탭 선택됨 | `maintabIcoNowSelected.png` |
| 쇼핑 탭 | `maintabIcoShopping.png` |
| 쇼핑 탭 선택됨 | `maintabIcoShoppingSelected.png` |
| 더보기 탭 | `maintabIcoMore.png` |
| 더보기 탭 선택됨 | `maintabIcoMoreSelected.png` |
| 픽콤마 탭 | `maintabIcoPiccoma.png` |
| 픽콤마 탭 선택됨 | `maintabIcoPiccomaSelected.png` |
| 통화 탭 | `maintabIcoCall.png` |
| 통화 탭 선택됨 | `maintabIcoCallSelected.png` |
| 친구 추가 버튼 | `findBtnAddFriend.png` |
필수 또는 일반적으로 교체되는 이미지:
| 목적 | 기본 파일명 |
| --- | --- |
| 메인 배경 | `mainBgImage.png` |
| 채팅방 배경 | `chatroomBgImage.png` |
| 기본 프로필 | `profileImg01.png` |
| 보낸 말풍선 첫 번째 | `chatroomBubbleSend01.png` |
| 보낸 말풍선 그룹화 | `chatroomBubbleSend02.png` |
| 받은 말풍선 첫 번째 | `chatroomBubbleReceive01.png` |
| 받은 말풍선 그룹화 | `chatroomBubbleReceive02.png` |
| 패스코드 배경 | `passcodeBgImage.png` |
| 패스코드 키패드 눌림 | `passcodeKeypadPressed.png` |
선택적 iOS 이미지:
- `profileImg02.png`
- `profileImg03.png`
- `passcodeBullet01.png` ~ `passcodeBullet04.png`
- `passcodeBulletSelected01.png` ~ `passcodeBulletSelected04.png`
- `maintabBgImage.png`
### Android 에셋
Android는 같은 base filename을 샘플 프로젝트의 density/resource qualifier 폴더에 맞춰 유지합니다. 9-patch 파일은 `.9.png` 확장자를 그대로 유지해야 합니다.
앱 아이콘:
| 목적 | 파일명 패턴 |
| --- | --- |
| 런처 아이콘 | `src/main/res/mipmap-*/ic_launcher.png` |
| 원형 런처 아이콘 | `src/main/res/mipmap-*/ic_launcher_round.png` |
| 런처 전경 | `src/main/res/mipmap-*/ic_launcher_foreground.png` |
| 런처 배경 | `src/main/res/mipmap-*/ic_launcher_background.png` |
| 웹/고해상도 아이콘 | `src/main/ic_launcher-web.png` |
메인 탭 아이콘:
| 목적 | 파일명 |
| --- | --- |
| 친구 탭 | `theme_maintab_ico_friends_image.png` |
| 친구 탭 선택됨 | `theme_maintab_ico_friends_focused_image.png` |
| 채팅 탭 | `theme_maintab_ico_chats_image.png` |
| 채팅 탭 선택됨 | `theme_maintab_ico_chats_focused_image.png` |
| 현재 탭 | `theme_maintab_ico_now_image.png` |
| 현재 탭 선택됨 | `theme_maintab_ico_now_focused_image.png` |
| 쇼핑 탭 | `theme_maintab_ico_shopping_image.png` |
| 쇼핑 탭 선택됨 | `theme_maintab_ico_shopping_focused_image.png` |
| 더보기 탭 | `theme_maintab_ico_more_image.png` |
| 더보기 탭 선택됨 | `theme_maintab_ico_more_focused_image.png` |
| 픽콤마 탭 | `theme_maintab_ico_piccoma_image.png` |
| 픽콤마 탭 선택됨 | `theme_maintab_ico_piccoma_focused_image.png` |
| 통화 탭 | `theme_maintab_ico_call_image.png` |
| 통화 탭 선택됨 | `theme_maintab_ico_call_focused_image.png` |
일반 이미지:
| 목적 | 파일명 |
| --- | --- |
| 메인 배경 | `theme_background_image.png` |
| 채팅방 배경 | `theme_chatroom_background_image.png` |
| 스플래시 이미지 | `theme_splash_image.png` |
| 메인 탭 배경 | `theme_maintab_cell_image.9.png` |
| 친구 추가 버튼 | `theme_find_add_friend_button_image.png` |
| 친구 추가 버튼 눌림 | `theme_find_add_friend_button_pressed_image.png` |
| 기본 프로필 1 | `theme_profile_01_image.png` |
| 기본 프로필 2 | `theme_profile_02_image.png` |
| 기본 프로필 3 | `theme_profile_03_image.png` |
| 전체 프로필 1 | `theme_profile_01_image_full.png` |
| 전체 프로필 2 | `theme_profile_02_image_full.png` |
| 전체 프로필 3 | `theme_profile_03_image_full.png` |
채팅 말풍선 이미지:
| 목적 | 파일명 |
| --- | --- |
| 보낸 말풍선 첫 번째 | `theme_chatroom_bubble_me_01_image.9.png` |
| 보낸 말풍선 그룹화 | `theme_chatroom_bubble_me_02_image.9.png` |
| 받은 말풍선 첫 번째 | `theme_chatroom_bubble_you_01_image.9.png` |
| 받은 말풍선 그룹화 | `theme_chatroom_bubble_you_02_image.9.png` |
패스코드 이미지:
| 목적 | 파일명 |
| --- | --- |
| 패스코드 배경 | `theme_passcode_background_image.png` |
| 패스코드 불릿 1 | `theme_passcode_01_image.png` |
| 패스코드 불릿 2 | `theme_passcode_02_image.png` |
| 패스코드 불릿 3 | `theme_passcode_03_image.png` |
| 패스코드 불릿 4 | `theme_passcode_04_image.png` |
| 패스코드 불릿 1 선택됨 | `theme_passcode_01_checked_image.png` |
| 패스코드 불릿 2 선택됨 | `theme_passcode_02_checked_image.png` |
| 패스코드 불릿 3 선택됨 | `theme_passcode_03_checked_image.png` |
| 패스코드 불릿 4 선택됨 | `theme_passcode_04_checked_image.png` |
## 에셋이 나타나는 위치
### iOS
| 파일명 | 사용 위치 | 참고 |
| --- | --- | --- |
| `commonIcoTheme.png` | 카카오톡 테마 목록/설정 | 테마 선택 목록에 보이는 대표 아이콘 |
| `maintabIcoFriends.png` | 메인 탭 바 | 친구 탭 일반 상태 |
| `maintabIcoFriendsSelected.png` | 메인 탭 바 | 친구 탭 선택된 상태 |
| `maintabIcoChats.png` | 메인 탭 바 | 채팅 탭 일반 상태 |
| `maintabIcoChatsSelected.png` | 메인 탭 바 | 채팅 탭 선택된 상태 |
| `maintabIcoNow.png` | 메인 탭 바 | 현재/열린 채팅 탭 일반 상태 |
| `maintabIcoNowSelected.png` | 메인 탭 바 | 현재/열린 채팅 탭 선택된 상태 |
| `maintabIcoShopping.png` | 메인 탭 바 | 쇼핑 탭 일반 상태 |
| `maintabIcoShoppingSelected.png` | 메인 탭 바 | 쇼핑 탭 선택된 상태 |
| `maintabIcoMore.png` | 메인 탭 바 | 더보기 탭 일반 상태 |
| `maintabIcoMoreSelected.png` | 메인 탭 바 | 더보기 탭 선택된 상태 |
| `maintabIcoPiccoma.png` | 메인 탭 바 | 픽콤마 탭 일반 상태, 지역별 |
| `maintabIcoPiccomaSelected.png` | 메인 탭 바 | 픽콤마 탭 선택된 상태, 지역별 |
| `maintabIcoCall.png` | 메인 탭 바 | 통화 탭 일반 상태 |
| `maintabIcoCallSelected.png` | 메인 탭 바 | 통화 탭 선택된 상태 |
| `findBtnAddFriend.png` | 친구/프로필 관련 UI | 친구 추가 버튼 이미지 |
| `mainBgImage.png` | 친구/채팅/더보기 메인 화면 | 메인 배경 이미지, 색상만 사용 가능 |
| `chatroomBgImage.png` | 채팅방 | 채팅방 배경 이미지 |
| `profileImg01.png` | 기본 프로필/아바타 | 기본 프로필 이미지 |
| `chatroomBubbleSend01.png` | 채팅방 보낸 메시지 | 첫 번째 보낸 말풍선 이미지 |
| `chatroomBubbleSend02.png` | 채팅방 보낸 메시지 | 그룹화된 보낸 말풍선 이미지 |
| `chatroomBubbleReceive01.png` | 채팅방 받은 메시지 | 첫 번째 받은 말풍선 이미지 |
| `chatroomBubbleReceive02.png` | 채팅방 받은 메시지 | 그룹화된 받은 말풍선 이미지 |
| `passcodeBgImage.png` | 패스코드 화면 | 패스코드 배경 |
| `passcodeKeypadPressed.png` | 패스코드 화면 | 눌린 키패드 상태 |
| `passcodeBullet01.png` ~ `passcodeBullet04.png` | 패스코드 화면 | 빈/일반 패스코드 불릿 |
| `passcodeBulletSelected01.png` ~ `passcodeBulletSelected04.png` | 패스코드 화면 | 채워진/선택된 패스코드 불릿 |
| `maintabBgImage.png` | 메인 탭 바 | 선택적 탭 바 배경 이미지 |
### Android
| 파일명 | 사용 위치 | 참고 |
| --- | --- | --- |
| `ic_launcher.png` | Android 런처 및 앱 설치 UI | 주요 앱 아이콘 |
| `ic_launcher_round.png` | 원형 아이콘이 사용되는 Android 런처 | 원형 앱 아이콘 |
| `ic_launcher_foreground.png` | Android 적응형 런처 아이콘 | 전경 레이어 |
| `ic_launcher_background.png` | Android 적응형 런처 아이콘 | 배경 레이어 |
| `ic_launcher-web.png` | 고해상도 앱 아이콘 컨텍스트 | 웹/스토어 스타일 미리보기 에셋 샘플에서 |
| `theme_maintab_ico_friends_image.png` | 메인 탭 바 | 친구 탭 일반 상태 |
| `theme_maintab_ico_friends_focused_image.png` | 메인 탭 바 | 친구 탭 선택된 상태 |
| `theme_maintab_ico_chats_image.png` | 메인 탭 바 | 채팅 탭 일반 상태 |
| `theme_maintab_ico_chats_focused_image.png` | 메인 탭 바 | 채팅 탭 선택된 상태 |
| `theme_maintab_ico_now_image.png` | 메인 탭 바 | 현재 탭 일반 상태 |
| `theme_maintab_ico_now_focused_image.png` | 메인 탭 바 | 현재 탭 선택된 상태 |
| `theme_maintab_ico_shopping_image.png` | 메인 탭 바 | 쇼핑 탭 일반 상태 |
| `theme_maintab_ico_shopping_focused_image.png` | 메인 탭 바 | 쇼핑 탭 선택된 상태 |
| `theme_maintab_ico_more_image.png` | 메인 탭 바 | 더보기 탭 일반 상태 |
| `theme_maintab_ico_more_focused_image.png` | 메인 탭 바 | 더보기 탭 선택된 상태 |
| `theme_maintab_ico_piccoma_image.png` | 메인 탭 바 | 픽콤마 탭 일반 상태, 지역별 |
| `theme_maintab_ico_piccoma_focused_image.png` | 메인 탭 바 | 픽콤마 탭 선택된 상태, 지역별 |
| `theme_maintab_ico_call_image.png` | 메인 탭 바 | 통화 탭 일반 상태 |
| `theme_maintab_ico_call_focused_image.png` | 메인 탭 바 | 통화 탭 선택된 상태 |
| `theme_background_image.png` | 메인 화면 | 메인 배경 이미지, 색상만 사용 가능 |
| `theme_chatroom_background_image.png` | 채팅방 | 채팅방 배경 이미지 |
| `theme_splash_image.png` | 테마 앱 스플래시 화면 | Android OS 12 이하에서만 적용될 수 있음 |
| `theme_maintab_cell_image.9.png` | 메인 탭 바 | 스트레처블 탭 바 배경 |
| `theme_find_add_friend_button_image.png` | 친구/프로필 관련 UI | 친구 추가 버튼 일반 상태 |
| `theme_find_add_friend_button_pressed_image.png` | 친구/프로필 관련 UI | 친구 추가 버튼 눌림 상태 |
| `theme_profile_01_image.png` ~ `theme_profile_03_image.png` | 기본 프로필/아바타 | 기본 프로필 이미지 변형 |
| `theme_profile_01_image_full.png` ~ `theme_profile_03_image_full.png` | 프로필 상세 보기 | 전체 크기 기본 프로필 변형 |
| `theme_chatroom_bubble_me_01_image.9.png` | 채팅방 보낸 메시지 | 첫 번째 보낸 말풍선 9-patch |
| `theme_chatroom_bubble_me_02_image.9.png` | 채팅방 보낸 메시지 | 그룹화된 보낸 말풍선 9-patch |
| `theme_chatroom_bubble_you_01_image.9.png` | 채팅방 받은 메시지 | 첫 번째 받은 말풍선 9-patch |
| `theme_chatroom_bubble_you_02_image.9.png` | 채팅방 받은 메시지 | 그룹화된 받은 말풍선 9-patch |
| `theme_passcode_background_image.png` | 패스코드 화면 | 패스코드 배경 |
| `theme_passcode_01_image.png` ~ `theme_passcode_04_image.png` | 패스코드 화면 | 빈/일반 패스코드 불릿 |
| `theme_passcode_01_checked_image.png` ~ `theme_passcode_04_checked_image.png` | 패스코드 화면 | 채워진/선택된 패스코드 불릿 |
## Codex 등록
Codex를 사용하려면 `~/.codex/config.toml`에 아래 블록을 추가합니다.
`<REPO_PATH>`는 이 저장소를 클론한 절대 경로로 바꿔주세요.
```toml
[mcp_servers.kakaotalk_theme_local]
command = "python3"
args = ["<REPO_PATH>/mcp/kakaotalk_theme_mcp.py"]
startup_timeout_sec = 30
[mcp_servers.kakaotalk_theme_local.env]
KAKAOTALK_THEME_ALLOWED_ROOTS = "<REPO_PATH>:/private/tmp"
```
예를 들어 이 저장소가 `/Users/kaae/dev/projects/카톡 테마 메이커`에 있다면:
```toml
[mcp_servers.kakaotalk_theme_local]
command = "python3"
args = ["/Users/kaae/dev/projects/카톡 테마 메이커/mcp/kakaotalk_theme_mcp.py"]
startup_timeout_sec = 30
[mcp_servers.kakaotalk_theme_local.env]
KAKAOTALK_THEME_ALLOWED_ROOTS = "/Users/kaae/dev/projects/카톡 테마 메이커:/private/tmp:/Users/kaae/Downloads/kakaotalk_theme_user_guide"
```
설정 후 Codex 앱을 재시작하거나 새 세션을 열면 MCP 서버가 로드됩니다.
## 다른 MCP 클라이언트에 등록
JSON 설정을 사용하는 MCP 클라이언트에서는 아래 형식을 사용합니다.
```json
{
"mcpServers": {
"kakaotalk-theme-local": {
"command": "python3",
"args": [
"<REPO_PATH>/mcp/kakaotalk_theme_mcp.py"
],
"env": {
"KAKAOTALK_THEME_ALLOWED_ROOTS": "<REPO_PATH>:/private/tmp"
}
}
}
}
```
같은 예시는 `mcp/config.example.json`에도 포함되어 있습니다.
## 사용 가능한 도구
### `read_theme_guide`
iOS, Android, 듀얼 플랫폼 가이드를 읽습니다.
입력:
```json
{
"guide": "android"
}
```
`guide` 값:
- `ios`
- `android`
- `dual-platform`
### `create_theme_brief`
테마 생성을 위한 브리프 템플릿을 만듭니다.
입력:
```json
{
"platform": "dual",
"name": "Soft Peach",
"concept": "warm peach stationery",
"mode": "light"
}
```
### `list_required_assets`
사용자가 직접 생성해야 하는 아이콘, 탭 아이콘, 배경 이미지, 말풍선, 패스코드 이미지 목록을 반환합니다.
입력:
```json
{
"platform": "dual",
"format": "markdown"
}
```
`platform` 값:
- `ios`
- `android`
- `dual`
`format` 값:
- `markdown`
- `json`
### `validate_android_theme`
Android 카카오톡 테마 프로젝트 또는 APK를 검증합니다.
입력:
```json
{
"path": "/path/to/android-theme-project"
}
```
검증 항목에는 `AndroidManifest.xml`, `colors.xml`, `strings.xml`, 테마 권한, 카카오톡 테마 인텐트 필터, 셀렉터 리소스 참조 등이 포함됩니다.
### `validate_ios_theme`
iOS 카카오톡 테마 폴더 또는 `.ktheme` 파일을 간단 검증합니다.
입력:
```json
{
"path": "/path/to/ios-theme-folder"
}
```
검증 항목에는 `KakaoTalkTheme.css`, `Images/`, `.ktheme` 아카이브 루트 구조, macOS 메타데이터 포함 여부 등이 포함됩니다.
### `package_ios_ktheme`
iOS 테마 폴더를 `.ktheme` 파일로 패키징합니다.
입력:
```json
{
"theme_dir": "/path/to/ios-theme-folder",
"output_path": "/path/to/output/theme.ktheme"
}
```
### `list_theme_assets`
현재 저장소 안의 테마 관련 파일 목록을 확인합니다.
입력:
```json
{
"max_depth": 4
}
```
## 사용 가능한 리소스
MCP 리소스로 아래 문서를 읽을 수 있습니다.
- `kakaotalk://design/ios`
- `kakaotalk://design/android`
- `kakaotalk://guide/android`
- `kakaotalk://guide/dual-platform`
- `kakaotalk://repo/llms`
- `kakaotalk://repo/illustrators`
- `kakaotalk://repo/faq`
- `kakaotalk://repo/discoverability`
## 사용 가능한 프롬프트
- `new-dual-platform-theme`: iOS/Android 동시 테마 제작 브리프 시작
- `android-theme-check`: Android 테마 프로젝트 검증 및 리뷰 시작
## FAQ
### 카카오톡 테마를 만들려면 어떤 이미지를 준비해야 하나요?
iOS는 테마 대표 아이콘, 메인 탭 아이콘 normal/selected 상태, 메인 배경, 채팅방 배경, 기본 프로필, 보낸 말풍선, 받은 말풍선, 패스코드 이미지를 준비합니다. Android는 런처 아이콘, 메인 탭 아이콘 normal/focused 상태, 배경, 스플래시, 프로필, 채팅 말풍선 9-patch, 패스코드 불릿 이미지를 준비합니다.
### 일러스트 작가가 이 MCP를 왜 써야 하나요?
카카오톡 테마는 예쁜 그림만으로 끝나지 않고 파일명, 해상도, 상태별 아이콘, iOS/Android별 구조가 맞아야 설치됩니다. 이 MCP는 필요한 에셋 목록과 사용 위치를 알려주고, 완성된 폴더를 검증해 누락 파일을 줄여줍니다.
### iOS와 Android 카카오톡 테마는 같은 파일을 쓰나요?
아니요. iOS는 `KakaoTalkTheme.css`와 `Images/`를 `.ktheme`으로 패키징하고, Android는 Android 프로젝트의 `src/main/theme` 리소스를 APK로 빌드합니다. 같은 콘셉트와 원본 아트를 쓰되 플랫폼별 파일명과 리소스 구조를 따로 맞춰야 합니다.
### 카톡 테마 말풍선 이미지는 왜 따로 준비해야 하나요?
채팅 말풍선은 메시지 길이에 따라 늘어납니다. iOS는 캡 인셋이 필요할 수 있고, Android는 `.9.png` 9-patch 이미지가 필요합니다. 그래서 보낸 말풍선/받은 말풍선, 첫 메시지/연속 메시지 이미지를 나눠 준비합니다.
### 이 프로젝트가 자동으로 그림을 그려주나요?
아니요. 이 프로젝트는 작가가 그려야 할 에셋 목록, 사용 위치, 구조 검증, 패키징을 돕습니다. 실제 일러스트와 아이콘은 사용자가 직접 제작하거나 별도 이미지 생성/편집 도구로 준비해야 합니다.
자세한 Q&A는 [docs/faq.md](docs/faq.md)를 참고하세요.
## 권장 GitHub 토픽
GitHub 저장소 설정에서 아래 토픽을 추가하면 GitHub 검색과 추천 노출에 도움이 됩니다.
```text
kakaotalk-theme
kakaotalk
theme-maker
mcp-server
illustration-tools
digital-goods
ios-theme
android-theme
ktheme
design-tools
creator-tools
chat-theme
```
## 허용 경로
보안을 위해 서버는 기본적으로 아래 경로 안의 파일만 다룹니다.
- 저장소 루트
- `/tmp`
- `/private/tmp`
- `~/Downloads/kakaotalk_theme_user_guide`
추가 경로가 필요하면 `KAKAOTALK_THEME_ALLOWED_ROOTS`에 `:`로 구분해서 넣습니다.
```toml
[mcp_servers.kakaotalk_theme_local.env]
KAKAOTALK_THEME_ALLOWED_ROOTS = "<REPO_PATH>:/private/tmp:/path/to/sample/themes"
```
## 제안된 워크플로우
1. `create_theme_brief`로 테마 브리프를 만듭니다.
2. `list_required_assets`로 사용자가 만들어야 하는 아이콘/이미지 목록을 확인합니다.
3. `read_theme_guide`로 플랫폼별 가이드를 확인합니다.
4. iOS는 `KakaoTalkTheme.css`와 `Images/`를 준비합니다.
5. Android는 샘플 테마 프로젝트의 `src/main/theme` 리소스를 교체합니다.
6. `validate_ios_theme` 또는 `validate_android_theme`로 검증합니다.
7. iOS는 `package_ios_ktheme`로 `.ktheme`을 만듭니다.
8. Android는 Gradle로 APK를 빌드합니다.
## 문제 해결
### Codex에서 도구가 보이지 않음
- `~/.codex/config.toml`에 MCP 서버 블록이 들어갔는지 확인합니다.
- `args`의 경로가 절대 경로인지 확인합니다.
- Codex 앱을 재시작하거나 새 세션을 엽니다.
### Path is outside allowed roots 오류
검증하거나 패키징하려는 파일 경로가 `KAKAOTALK_THEME_ALLOWED_ROOTS`에 포함되어야 합니다.
### Python 캐시 권한 오류
일부 환경에서 Python이 홈 캐시 폴더에 `.pyc`를 쓰지 못할 수 있습니다. 이때는 아래처럼 캐시 위치를 바꿔 테스트합니다.
```bash
PYTHONPYCACHEPREFIX=/tmp/kakaotalk_theme_pycache python3 -m py_compile mcp/kakaotalk_theme_mcp.py
```
### Android 빌드까지 하고 싶음
이 MCP는 Android 테마 소스 검증만을 제공합니다. APK 빌드는 Android 샘플 프로젝트 루트에서 Gradle로 수행합니다.
```bash
./gradlew assembleDebug
```
릴리즈 서명은 각 사용자의 키스토어 정책에 맞게 별도로 설정해야 합니다.
MCP 配置
以下是此 MCP Server 的配置信息,可直接复制到 Cursor 或其他 MCP 客户端中使用。
mcp.json
连接信息
猜你喜欢
暂无推荐服务器