K

Kakao Bot模型上下文协议服务器

@inspirit941/kakao-bot-mcp-server
0 Stars 9 次浏览 inspirit941 更新于 2026-08-23

Model Context Protocol 的一种实现方式,该方式将 AI 代理连接到 Kakao 官方账号,使用户能够通过 Kakao Developers API 发送各种消息模板。

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "mcp-kakao": {
      "args": [
        "--directory",
        "your-project-path/kakao-bot-mcp-server",
        "run",
        "mcp-kakao"
      ],
      "command": "uv"
    }
  }
}

该服务需要配置环境变量:KAKAO_API_KEY、KAKAO_CLIENT_SECRET

服务介绍

Kakao Bot MCP Server

Model Context Protocol (MCP) 服务器实现,集成了 Kakao Developers API 以将 AI 代理连接到 Kakao 官方账号。

这是一个 MCP 服务器的实现示例,展示了如何将 Kakao Developers API 集成到 AI 代理中。

[!NOTE]
该存储库并非由 Kakao 官方提供或维护。
可能不包含完整功能或全面支持。
对于 Kakao 而言,大多数 API 都需要包含商业注册的业务应用程序级别的权限管理,
因此个人使用可能会受到限制。

参考文档: https://developers.kakao.com/docs/latest/ko/kakaotalk-message/rest-api


示例

使用 claude desktop 运行 MCP 工具

向我发送消息的结果

工具

所有工具都需要 __email_address__ 输入来识别用户的凭证。

  1. send_text_template_to_me

    • 描述:向我发送一条 Kakao Talk 文本消息。
    • 输入:
      • __email_address__ (字符串, 必填): 与 Kakao 账户关联的电子邮件地址。
      • text (字符串, 必填, 最大 200 个字符): 消息的文本内容。
      • link (对象, 必填): 定义与文本关联的链接。
        • web_url (字符串, 可选, URI 格式)
        • mobile_web_url (字符串, 可选, URI 格式)
      • button_title (字符串, 可选): 按钮的标题。
  2. send_feed_template_to_me

    • 描述:向我发送一条 Kakao Talk 动态消息。
    • 输入:
      • __email_address__ (字符串, 必填)
      • content (对象, 必填): 动态消息的主要内容块。
        • title (字符串, 必填)
        • description (字符串, 必填)
        • image_url (字符串, 必填, URI 格式)
        • image_width (整数, 可选)
        • image_height (整数, 可选)
        • link (对象, 必填) - 定义内容的链接
          • web_url (字符串, 可选, URI 格式)
          • mobile_web_url (字符串, 可选, URI 格式)
          • android_execution_params (字符串, 可选)
          • ios_execution_params (字符串, 可选)
      • item_content (对象, 可选): 动态消息的附加项内容。(请参阅 API 文档了解嵌套结构)
      • social (对象, 可选): 社交信息,如点赞、评论等。(请参阅 API 文档了解嵌套结构)
      • buttons (对象数组, 可选): 包含的消息按钮。(每个对象需要 titlelink
  3. send_list_template_to_me* 说明:向我发送一条Kakao Talk列表消息。

    • 输入:
      • __email_address__ (字符串,必填)
      • header_title (字符串,必填):列表顶部显示的标题。
      • contents (对象数组,必填):内容项列表。每个项目需要:
        • title (字符串,必填)
        • description (字符串,必填)
        • image_url (字符串,必填,URI格式)
        • image_width (整数,可选)
        • image_height (整数,可选)
        • link (对象,必填) - 定义列表项的链接
          • web_url (字符串,可选,URI格式)
          • mobile_web_url (字符串,可选,URI格式)
          • android_execution_params (字符串,可选)
          • ios_execution_params (字符串,可选)
      • header_link (对象,可选):头部区域的链接。(请参阅API文档了解嵌套结构)
      • buttons (对象数组,可选):随消息包含的按钮。(每个对象需要titlelink
  4. send_location_template_to_me

    • 说明:向我发送一条Kakao Talk位置消息。
    • 输入:
      • __email_address__ (字符串,必填)
      • content (对象,必填):位置消息的主要内容块。
        • title (字符串,必填)
        • description (字符串,必填)
        • image_url (字符串,必填,URI格式)
        • image_width (整数,可选)
        • image_height (整数,可选)
        • link (对象,必填) - 定义内容的链接
          • web_url (字符串,可选,URI格式)
          • mobile_web_url (字符串,可选,URI格式)
          • android_execution_params (字符串,可选)
          • ios_execution_params (字符串,可选)
      • address (字符串,必填):位置的地址。
      • buttons (对象数组,可选):随消息包含的按钮。(每个对象需要titlelink
      • address_title (字符串,可选):地址的标题。
  5. send_calendar_template_to_me

    • 说明:向我发送一条Kakao Talk日历消息。
    • 输入:
      • __email_address__ (字符串,必填)
      • content (对象,必填):日历消息的主要内容块。
        • title (字符串,必填)
        • description (字符串,必填)
        • link (对象,必填) - 定义内容的链接
          • web_url (字符串,可选,URI格式)
          • mobile_web_url (字符串,可选,URI格式)
          • android_execution_params (字符串,可选)
          • ios_execution_params (字符串,可选)
        • image_url (字符串,可选,URI格式)
      • id_type (字符串,必填,枚举:"event"):日历项目的类型。
      • id (字符串,必填):日历项目的ID。
      • buttons (对象数组,可选):随消息包含的按钮。(每个对象需要titlelink
  6. send_commerce_template_to_me

    • 说明:向我发送一条Kakao Talk商务消息。
    • 输入:
      • __email_address__ (字符串,必填)
      • content (对象,必填):商务消息的主要内容块。
        • title (字符串,必填)
        • image_url (字符串,必填,URI格式)
        • image_width (整数,可选)
        • image_height (整数,可选)
        • link (对象,必填) - 定义内容的链接
          • web_url (字符串,可选,URI格式)
          • mobile_web_url (字符串,可选,URI格式)* android_execution_params (字符串,可选)
          • ios_execution_params (字符串,可选)
      • commerce (对象,必填): 与商务相关的信息。
        • regular_price (整数,必填)
        • discount_price (整数,可选)
        • discount_rate (整数,可选,0-100)
      • buttons (对象数组,可选): 消息中包含的按钮。 (每个对象需要 titlelink)

安装

要求: Python 3.13+

需要 Kakao 账号

步骤 1. 在 developers.kakao.com 上创建 Kakao 应用程序

有关如何创建新的 Kakao 应用程序,请参阅 快速入门 文档。

站点注册

在 "我的应用程序 > 应用设置 > 平台" 的 Web 中将站点域名注册为 http://localhost:8000

企业应用注册

注册企业应用。即使没有商业登记号,也可以注册“个人开发者企业应用”。

激活Kakao登录

激活Kakao登录。

同意项设置

  • 产品设置 > Kakao 登录 > 同意项中激活 昵称, Kakao账号(电子邮件), 发送KakaoTalk消息
  • 激活OpenID

步骤 2. 设置本地环境

本地需要安装 uv。

sh
git clone git@github.com:inspirit941/kakao-bot-mcp-server.git
cd kakao-bot-mcp-server
pip install uv
uv sync

运行 inspector

npx @modelcontextprotocol/inspector uv --directory . run mcp-kakao

运行 MCP server

uv run mcp-kakao

要正常运行,需要两个文件:.accounts.json.kauth.json。在项目根目录下创建这些文件。

.accounts.json
json
{
"accounts": [
{
"email": "your-email@kakao.com",
"account_type": "personal",
"extra_info": "您想告诉Claude的附加信息:例如 包含家庭日历"
}
]
}

  • email: Kakao账户的电子邮件地址。
  • account_type: 固定为 personal。
  • extra_info: 传递给MCP服务器的附加信息。

.kauth.json
json
{
"web": {
"client_id": "rest-api-key",
"auth_uri": "https://kauth.kakao.com/oauth/authorize",
"token_uri": "https://kauth.kakao.com/oauth/token",
"client_secret": "your_client_secret",
"redirect_uris": ["http://localhost:8000/code"],
"revoke_uri": "https://kapi.kakao.com/v2/user/revoke/scopes",
"token_info_uri": "https://kauth.kakao.com/oauth/tokeninfo"
}
}

  • client_id: Kakao应用程序提供的REST_API key
  • client_secret: 可以从Kakao应用程序获取的client_secret。即使使用任意字符串也能工作
  • 其他字段是固定的。

claude桌面配置

json
{
"mcpServers": {
"mcp-kakao": {
"command": "uv",
"args": [
"--directory",
"your-project-path/kakao-bot-mcp-server",
"run",
"mcp-kakao"
]
}
}
}工作原理

当LLM运行MCP Tool时:

  • 检查项目根路径下是否存在.oauth2.<卡卡奥邮箱地址>.json文件。
    • 如果文件不存在,则会在网页浏览器中弹出卡卡奥OAuth2服务器的登录界面。(https://accounts.kakao.com/login?continue=...)
    • 如果文件存在,则会检查令牌是否已过期。如果已过期,将使用刷新令牌重新获取。如果刷新令牌也已过期,工具将返回一个可以用于登录的URL地址。
  • 登录成功后,将以.oauth2.<卡卡奥邮箱地址>.json为名,在项目根路径下保存访问令牌信息。

MCP Tool使用JSON文件中的访问令牌进行操作。