KakaoTalk消息服务

通过Kakao OAuth认证提供KakaoTalk消息发送及好友列表查询功能的FastMCP服务器。

  • by MorningNembi
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 MorningNembi/kakao-mcp

使用说明

Kakaotalk远程MCP服务器

基于FastMCP的MCP服务器,通过Kakao OAuth认证提供Kakao Talk消息发送和朋友列表查询功能。
连接MCP服务器后,会自动重定向到Kakao登录页面。通过登录和授权,代理可以发送KakaoTalk消息。

🎯 刀具清单

  • send_message_to_me:向我的聊天室发送信息
  • send_message:通过UUID向特定朋友发送消息
  • search_kakao_friends:返回朋友名、UUID、配置文件昵称

🛠️ 技术堆栈

  • FastMCP、Starlette、httpx
  • Kakao OAuth 2.0+OpenID Connect

📦 安装

# 의존성 설치
pip install requirements.txt

# .env 파일 생성
KAKAO_CLIENT_ID=your_rest_api_key
KAKAO_CLIENT_SECRET=your_client_secret
BASE_URL=https://your-ngrok-url
# 클라이언트에서 네이버 HCX-005 모델 사용
CLOVA_API_KEY=your_clova_studio_api_key

🚀 执行

运行FastMCP服务器

python remote_auth_server.py

运行FastMCP客户端

python fastmcp_client.py

ngrok设置(同时在其他终端上):

ngrok http 8000

📋 Kakao Developers设置

1.创建应用程序并设置首选项

  • https://developers.kakao.com/连接
  • “我的应用程序”→“添加应用程序”→创建应用程序
  • 从“应用程序设置”→“基本信息” REST API密钥 복사 (=KAKAO_CLIENT_ID)
  • 业务设置:个人开发者https://business.kakao.com/cold-start/check-business-number在中设置商务应用程序

2.激活Kakao登录

  • “Kakao登录”→“启用设置”→“启用”
  • 启用OpenID Connect

3.注册Redirect URI

  • “Kakao登录”→“设置”→“Redirect URI”→添加以下两个:
https://your-ngrok-url/auth/callback
https://your-ngrok-url/friends/callback

4.创建Client Secret

  • “安全”选项卡→“客户端机密”→“创建”
  • 将颁发的密钥保存到KAKAO_CLIENT_SECRET

5.设置同意项目

  • “Kakao登录”→“同意项目”
  • 必需: openid, profile
  • 选择: talk_message (发送给我), friends (好友列表)
  • talk_message,friends选择“使用中同意”

6.添加测试程序(必需)

  • “设置应用程序”→“管理团队”→“邀请测试人员”
  • 通过您的Kakao账号电子邮件接受邀请
  • 收到消息的朋友也需要添加测试程序(朋友在REST API测试中设置权限)

7.(选择)审核应用程序

  • “分发”→“申请应用程序审查”→验收批准后所有用户均可使用

💡 使用方法

1.MCP客户端设置

运行FastMCP服务器后,将以下内容添加到MCP客户端的配置文件中,如Claude Desktop:

{
  "mcpServers": {
    "kakao-remote-mcp": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://your-ngrok-url/mcp"]
    }
  }
}

2.基本流程

给朋友发信息:

  1. search_kakao_friends(limit=10) →获得朋友UUID
  2. send_message(uuid="...", message="내용") →发送消息
  3. 收件人单击链接→ /message 在端点显示完整消息

给我发信息:

  • send_message_to_me(message="내용") →立即发送

🏗️ 技术结构

kakao.py

KakaoTokenVerifier:根据OIDC标准验证JWT令牌

  • Kakao公钥签名验证
  • 确认索赔有效性

运营商:继承OAuthProxy,实现Kakao OAuth

  • 支持PKCE(Proof Key for Code Exchange)
  • 遵守OpenID Connect协议
  • 令牌存储/续订管理
  • 提取用户信息

remote_auth_server.py

MCP服务器 (基于FastMCP)

  • 三种工具: send_message_to_me, send_message, search_kakao_friends
  • 自定义端点:
    • GET /message:将消息显示为HTML(移动/桌面响应)
    • GET /friends/callback:OAuth回调处理→自动保存friends Scope令牌

fastmcp_client.py

FastMCP OAuth支持的客户端

  • 适用于OAuth的fastmcp服务器的兼容fastmcp客户端
  • NAVER的 HCX-005 利用模型

⚙ENT主要特点

✅ 自动同意处理:如果没有friends权限,将自动弹出浏览器
✅ 长文信息:以200个字符以上的链接显示Web
✅ 响应式HTML:优化移动/桌面
✅ 管理环境变量令牌:同意后自动保存/使用令牌
✅ OIDC合规性:实现Kakao OAuth标准