项目简介
该项目主要是一个用于与WhatsApp Cloud API交互的Go语言客户端库。在其'extras/mcp/message'子目录中,包含了一个基于Model Context Protocol (MCP) 的服务器实现。这个MCP服务器旨在以标准化的方式,为大型语言模型(LLM)客户端提供发送WhatsApp文本消息的功能,通过定义明确的工具和Prompt模板来实现LLM与WhatsApp平台的集成。
主要功能点
- 发送WhatsApp文本消息: LLM可以通过调用名为'whatsapp-send-text'的MCP工具,向指定的WhatsApp联系人发送文本消息,支持设置URL预览和回复特定消息。
- Prompt模板支持: 提供名为'whatsapp-send-text'的Prompt模板,LLM可以根据此模板生成定制化的WhatsApp消息发送指令。
- 标准化通信: 服务器通过HTTP协议暴露MCP的JSON-RPC接口,实现与MCP客户端的安全、可扩展通信。
- 可配置性: 支持配置HTTP服务器参数(如监听地址、超时等)和日志级别,并可通过中间件进行扩展。
安装步骤
-
克隆仓库: 首先,您需要将该GitHub仓库克隆到您的本地机器:
git clone https://github.com/piusalfred/whatsapp.git cd whatsapp -
获取Go依赖: 进入项目根目录后,获取Go模块依赖:
go mod tidy -
WhatsApp Cloud API配置: 该MCP服务器需要连接到WhatsApp Cloud API。您需要创建一个'.env'文件(例如在项目根目录或'_examples'目录下),并配置以下必要的WhatsApp API凭证。这些凭证是MCP服务器内部调用WhatsApp API时所需的。
WHATSAPP_CLOUD_API_BASE_URL="https://graph.facebook.com" WHATSAPP_CLOUD_API_API_VERSION="v20.0" # 根据您的API版本调整 WHATSAPP_CLOUD_API_ACCESS_TOKEN="YOUR_WHATSAPP_ACCESS_TOKEN" WHATSAPP_CLOUD_API_PHONE_NUMBER_ID="YOUR_PHONE_NUMBER_ID" WHATSAPP_CLOUD_API_BUSINESS_ACCOUNT_ID="YOUR_BUSINESS_ACCOUNT_ID" WHATSAPP_CLOUD_API_APP_SECRET="YOUR_APP_SECRET" # 如果启用了安全请求 WHATSAPP_CLOUD_API_APP_ID="YOUR_APP_ID" # 如果需要 WHATSAPP_CLOUD_API_SECURE_REQUESTS="true" # 或 "false"请将'YOUR_...'替换为您的实际凭证。
-
运行MCP服务器示例: 要启动MCP服务器,请在项目根目录运行示例程序:
go run ./_examples/mcp/main.go服务器将默认监听'http://localhost:9099'。
服务器配置
您的MCP客户端需要配置连接到这个MCP服务器的信息。以下是一个示例JSON配置,用于指导MCP客户端如何连接并启动WhatsApp MCP服务。请将'working_directory'替换为您的实际项目路径。
{ "server_name": "whatsapp-mcp", "description": "通过MCP协议连接WhatsApp消息服务,支持LLM发送文本消息。", "transport": { "protocol": "http", "endpoint": "http://localhost:9099", "healthCheckPath": "/mcp/v1/meta" }, "startup_command": { "command": "go", "args": [ "run", "./_examples/mcp/main.go" ], "working_directory": "/path/to/your/cloned/whatsapp/repo", "environment_variables": { "WHATSAPP_CLOUD_API_BASE_URL": "您的WhatsApp Cloud API基础URL(例如:https://graph.facebook.com)", "WHATSAPP_CLOUD_API_API_VERSION": "您的WhatsApp API版本(例如:v20.0)", "WHATSAPP_CLOUD_API_ACCESS_TOKEN": "用于WhatsApp API调用的访问令牌", "WHATSAPP_CLOUD_API_PHONE_NUMBER_ID": "您的WhatsApp电话号码ID", "WHATSAPP_CLOUD_API_BUSINESS_ACCOUNT_ID": "您的WhatsApp商业账号ID", "WHATSAPP_CLOUD_API_APP_SECRET": "您的WhatsApp应用密钥(如果启用了安全请求)", "WHATSAPP_CLOUD_API_APP_ID": "您的WhatsApp应用ID(如果需要)", "WHATSAPP_CLOUD_API_SECURE_REQUESTS": "是否启用安全请求('true' 或 'false')" } }, "capabilities": { "tools": [ { "name": "whatsapp-send-text", "description": "向WhatsApp联系人发送文本消息。输入包括文本内容、收件人号码、是否预览URL和回复消息ID。输出包含消息的产品信息、输入、WhatsApp ID、消息状态和消息ID。", "input_schema_example": { "text": "你好,这是一个测试消息。", "recipient": "+1234567890", "preview_url": true, "reply_to": "消息ID(可选)" }, "output_schema_example": { "product": "whatsapp", "input": "1234567890", "whatsapp_id": "abjbv12uyt627r56r2", "message_status": "DELIVERED", "message_id": "message.response.id" } } ], "prompts": [ { "name": "whatsapp-send-text", "description": "用于生成WhatsApp文本消息的Prompt模板。LLM可以定制消息内容、收件人等。例如:'请发送一条包含“Hello World”的文本消息给 +1234567890。'" } ] } }
基本使用方法
一旦MCP服务器成功启动并通过您的MCP客户端连接,您的LLM或AI代理就可以开始利用其提供的功能:
-
调用Tool发送消息: LLM可以通过'whatsapp-send-text'工具,传递必要的JSON参数来发送消息。例如,一个LLM可能会生成以下调用:
{ "method": "tool_code_call", "params": { "tool_name": "whatsapp-send-text", "input": { "text": "您好,您的订单已发货!", "recipient": "+1234567890", "preview_url": false } }, "id": "call_123" }服务器会处理此请求,通过WhatsApp Cloud API发送消息,并返回相应的JSON-RPC响应。
-
使用Prompt模板进行交互: LLM可以请求'whatsapp-send-text' Prompt模板,获取指导信息以生成更自然、更符合用户意图的消息内容。LLM可以根据模板的描述和示例,构建其发送消息的逻辑。
关键词
WhatsApp消息, LLM工具, AI通信, 文本消息发送, 云API集成
信息
分类
AI与计算