项目简介
本项目是一个基于Model Context Protocol (MCP) 的服务器实现,旨在将AI智能体(如支持MCP协议的LLM客户端)与您的Kakao账户服务连接起来。它通过MCP协议向AI智能体暴露Kakao API的功能,允许AI智能体调用工具来执行特定的Kakao操作。
主要功能点
- 发送KakaoTalk消息:支持发送多种格式的消息给您自己的KakaoTalk账户,包括文本、Feed、列表、位置、日历事件邀请、电商产品等模板消息。
- 管理Kakao Talk日历:支持获取您Kakao账户下的日历列表,以及创建、更新和删除子日历。
- OAuth2认证流程集成:项目内置了与Kakao OAuth2流程交互的逻辑,安全地引导用户完成认证,获取并管理访问Kakao API所需的凭证。
安装步骤
-
准备环境:
- 确保您的系统已安装 Python 3.13 或更高版本。
- 安装 uv 包管理工具:'pip install uv'。
- 您需要一个有效的 Kakao账户。
-
创建Kakao应用:
- 访问 developers.kakao.com。
- 创建一个新的Kakao应用(参见快速开始文档)。
- 在“我的应用 > 应用设置 > 平台”中,添加 Web 平台,并将 网站域名 设置为 'http://localhost:8000'。
- 在“我的应用 > 应用设置 > 고급”中,注册为“个人开发者 비즈 앱”(即使没有사업자등록)。
- 在“产品设置 > Kakao登录”中,激活Kakao登录。
- 在“产品设置 > Kakao登录 > 同意项目”中,激活此MCP服务器所需的权限,至少包括 ''닉네임'', ''카카오계정(이메일)'', ''카카오톡 메시지 전송''。同时,激活OpenID。
- (可选)如果需要使用日历功能,根据文档申请Talk日历API的使用权限。
-
克隆仓库并安装依赖:
git clone [email protected]:inspirit941/kakao-bot-mcp-server.git cd kakao-bot-mcp-server # 安装依赖 pip install uv uv sync -
创建配置文件:
- 在 'kakao-bot-mcp-server' 项目的根目录下,创建两个新的JSON文件:
- '.accounts.json':用于配置MCP服务器知道的Kakao账户信息。
请将 '"您的Kakao账户邮箱@kakao.com"' 替换为您实际的Kakao账户邮箱。{ "accounts": [ { "email": "您的Kakao账户邮箱@kakao.com", "account_type": "personal", "extra_info": "给AI智能体的账户额外描述(可选)" } ] } - '.kauth.json':用于配置您的Kakao应用信息。
请将 '"您的Kakao REST API Key"' 替换为您Kakao应用的 REST API Key。'client_secret' 如果您在Kakao应用设置中为其生成并设置了(推荐出于安全考虑),则填写对应的值;否则可以填写任意字符串(本项目中的代码逻辑允许这样,但不推荐)。{ "web": { "client_id": "您的Kakao REST API Key", "auth_uri": "https://kauth.kakao.com/oauth/authorize", "token_uri": "https://kauth.kakao.com/oauth/token", "client_secret": "您的Kakao 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" } }
- '.accounts.json':用于配置MCP服务器知道的Kakao账户信息。
- 在 'kakao-bot-mcp-server' 项目的根目录下,创建两个新的JSON文件:
服务器配置
MCP服务器是为MCP客户端(如支持MCP的LLM应用)提供服务的。您需要在MCP客户端中配置此MCP服务器的启动命令和参数。典型的MCP客户端配置(JSON格式)会包含如下结构:
{ "mcpServers": { "mcp-kakao": { // 为您的MCP服务器指定一个标识名称,客户端通过这个名称引用它 "command": "uv", // 启动服务器的可执行命令,这里是uv "args": [ // 传递给command命令的参数列表 "--directory", "您的kakao-bot-mcp-server项目在文件系统中的完整路径", // uv运行时需要知道项目根目录 "run", "mcp-kakao" // 指定uv运行本项目的主入口模块 ] } } }
请将 '"您的kakao-bot-mcp-server项目在文件系统中的完整路径"' 替换为您克隆 'kakao-bot-mcp-server' 仓库的实际路径。具体的配置方式请参考您使用的MCP客户端的文档(例如Claude desktop的MCP设置)。
基本使用方法
- 根据您的MCP客户端文档,完成上述MCP服务器的配置。
- 启动您的MCP客户端。客户端会自动检测并启动配置好的MCP服务器。
- 服务器启动时,如果检测到您的Kakao账户尚未认证或凭证已过期,它会通过浏览器自动打开Kakao OAuth2登录和授权页面。请按照页面提示完成登录并授权此应用访问您的Kakao信息(包括发送消息、查看邮箱、OpenID等您在步骤2中配置的权限)。
- 认证成功后,MCP服务器会将获取到的OAuth2凭证保存在项目根目录下的一个文件中(格式为 '.oauth2.您的Kakao账户邮箱.json'),供后续使用。
- 现在,您的AI智能体应该能够通过MCP协议识别并调用本项目暴露的Kakao工具了。您可以通过自然语言向AI智能体发出指令,例如:“请使用'send_text_template_to_me'工具,给我自己的KakaoTalk发送一条消息,内容是‘这是一条AI发送的测试消息’。” AI智能体将解析您的指令,构造相应的工具调用请求发送给MCP服务器,MCP服务器将使用您已认证的Kakao账户凭证去调用Kakao API执行操作,并将结果返回给AI智能体。
信息
分类
AI与计算