KakaoTalk MCP服务器
  
使用Win32 API控制KakaoTalk PC MCP(模型上下文协议) 服务器。
您可以在Claude Desktop、Claude Code等MCP客户端上发送、阅读和管理聊天室。
主要功能
基本工具
| 工具 | 说明 |
|---|---|
kakao_health_check | 确认KakaoTalk PC运行状态 |
kakao_list_open_rooms | 查看打开的聊天室列表 |
kakao_open_room | 搜索并打开聊天室 |
kakao_send_message | 向聊天室发送消息 |
kakao_send_bulk | 向多个聊天室批量发送相同消息 |
kakao_send_mention 发送带有@评论的消息 | |
kakao_read_messages | 阅读聊天室消息 |
kakao_extract_links | 提取聊天室共享的URL |
kakao_send_image | 将图像文件发送到聊天室 |
kakao_download_images | 从KakaoTalk缓存下载最新图像 |
监视工具
| 工具 | 说明 |
|---|---|
kakao_start_monitor | 开始监控聊天室关键字 |
kakao_stop_monitor | 停止监视 |
kakao_get_monitor_events | 查看检测到的关键字事件 |
要求
- Windows 10/11 (基于Win32 API,仅限Windows)
- KakaoTalk PC 安装和登录状态
- Python 3.10 异常
安装
uvx(建议)
无需单独安装即可运行:
uvx kakaotalk-mcp点
pip install kakaotalk-mcp从源安装
git clone https://github.com/kronenz/kakaotalk-mcp.git
cd kakaotalk-mcp
pip install -e .设置
克劳德桌面版
%APPDATA%\Claude\claude_desktop_config.json 添加到文件:
使用uvx时:
{
"mcpServers": {
"kakao": {
"command": "uvx",
"args": ["kakaotalk-mcp"]
}
}
}安装pip后:
{
"mcpServers": {
"kakao": {
"command": "kakaotalk-mcp"
}
}
}直接从源运行:
{
"mcpServers": {
"kakao": {
"command": "python",
"args": ["C:/경로/kakaotalk-mcp/src/kakao_mcp/server.py"],
"env": {
"PYTHONPATH": "C:/경로/kakaotalk-mcp/src"
}
}
}
}克劳德代码
在Claude Code设置中添加MCP服务器:
claude mcp add kakao -- uvx kakaotalk-mcp或 .claude/settings.json直接添加到:
{
"mcpServers": {
"kakao": {
"command": "uvx",
"args": ["kakaotalk-mcp"]
}
}
}使用示例
用自然语言要求Claude:
- “请确认KakaoTalk是否在运行”
- “给我看看开放的聊天室列表”
- “请打开洪吉童的聊天室”
- “发给洪吉童‘会议10分钟后开始’”
- “请向洪吉童发送@Mention‘请确认’”
- “读一下洪吉童聊天室最近的对话”
- “帮我提取洪吉童聊天室共享的链接”
- “把这个图片发给洪吉童:C:\\Users\\Users\\Pictures\\photo.jpg”
- “下载最近的KakaoTalk图片”
- “请给洪吉童、金哲秀、李英姬发‘明天请参加会议’。”
- “工程师们在群里监控‘会议’、‘午餐’关键词,如果检测到了请回复”
- “请停止监控”
限制和注意事项
- 仅Windows:由于使用Win32 API,因此在MacOS/Linux上不起作用。
- 需要前台:读取消息(
kakao_read_messages),打开聊天室(kakao_open_room),发送评论(kakao_send_mention)时KakaoTalk窗口暂时显示在最前面。 - Mention(@)功能:
kakao_send_mention通过键盘模拟激活@Mention弹出窗口。使用韩文两套键盘输入,因此系统键盘布局必须为韩文。 - 使用剪贴板:读取/发送消息时使用系统剪贴板。操作期间剪贴板内容可能会发生更改。
- 请输入正确的聊天室名称:
kakao_send_message,kakao_read_messages必须与聊天室窗口标题完全匹配。首先kakao_list_open_rooms请用确认正确的名字。 - 图像传输:
kakao_send_image将文件复制到剪贴板,然后用Ctrl+V粘贴。将自动处理传输确认对话框。支持JPG、PNG、GIF、BMP和WebP格式。 - 下载图像:从KakaoTalk本地缓存获取,不分聊天室下载最近缓存的图像。
- 监控功能:
kakao_start_monitor定期轮询后台的聊天室。每轮询一次,KakaoTalk窗口会暂时显示在最前面,轮询间隔最小为3秒。
路线图
v0.2.0-服务器端自动响应(预定)
为了解决客户端轮询方式的令牌效率低下问题,我们将在MCP服务器内部添加聊天检测+AI回复生成+处理传输的功能。
| 工具 | 说明 |
|---|---|
kakao_start_auto_reply 开始AI自动响应监控(服务器端) | |
kakao_stop_auto_reply | 停止自动响应 |
kakao_get_auto_reply_log | 自动查看响应历史记录 |
关键改进:
- 将新消息检测作为服务器内部hash比较处理(令牌0)
- 只有在需要AI回复时,才通过最少上下文(最近10条消息)调用Claude API
- 客户端轮询对比 代币减少99%
项目结构
kakaotalk-mcp/
├── pyproject.toml
├── README.md
├── CHANGELOG.md
├── LICENSE
├── requirements.txt
├── src/
│ └── kakao_mcp/
│ ├── __init__.py
│ ├── __main__.py # python -m kakao_mcp 지원
│ ├── server.py # MCP 서버 + 13개 도구 정의
│ ├── controller.py # Win32 API 래퍼
│ ├── parser.py # 클립보드 텍스트 파싱
│ └── config.py # 상수 및 설정
└── tests/
├── test_parser.py # 파서 단위 테스트
└── test_controller.py # 컨트롤러 mock 테스트