Token导航 LogoToken导航

MCP Server · 数据服务

Whatsapp AI Bot

一个基于Spring AI、OpenAI GPT-4和Model Context Protocol (MCP)的智能WhatsApp聊天机器人,用于动态工具管理和员工数据查询。

stdio官方级别未说明来源级核验工具 2@modelcontextprotocol/inspector
Java数据分析API集成

快速开始

作者 / 组织
YOUHAD08
提供方
YOUHAD08
运行时
Node.js

工具数量

2

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

Whatsapp AI Bot 属于数据服务类 MCP Server,公开资料标注 2 个工具,通过stdio 本地进程接入,客户端适配情况以官方文档为准,有可以直接复制的安装命令;接入前要先准备 访问 Token。

分类

数据服务

传输方式

stdio

认证方式

访问 Token

部署方式

公开资料未说明

安装与配置

安装命令

npx @modelcontextprotocol/inspector http://localhost:8989/mcp

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Node.js,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 2 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

🤖 WhatsApp AI BOT

一个由Spring AI、OpenAI的GPT-4和模型上下文协议(MCP)支持的智能WhatsApp聊天机器人,用于动态工具管理和员工数据查询。

🌟 特性

  • 智能对话 -使用OpenAI的GPT-4模型和上下文感知的AI驱动响应
  • 对话记忆 -维护聊天历史记录,以便进行连贯的多回合对话
  • 工具集成 -通过MCP服务器动态调用工具以查找员工信息
  • 实时消息 -通过Meta的Graph API实现双向WhatsApp集成
  • Webhook验证 -使用ngrok隧道支持进行安全的Meta webhook验证
  • 模块化架构 -与专用MCP服务器模块分离的问题
  • MCP检查员 -内置调试和工具检查界面
  • 生产就绪 -与ngrok一起部署,以便在开发过程中为公众提供无障碍服务

🏗️ 建筑

┌─────────────────────────────────────────────────────────────────┐
│                         WhatsApp Users                           │
└────────────────────┬────────────────────────────────────────────┘
                     │
                     │ Messages
                     ▼
┌─────────────────────────────────────────────────────────────────┐
│                    Meta WhatsApp API                             │
│              (Webhook for incoming messages)                     │
└────────────────────┬────────────────────────────────────────────┘
                     │
          ngrok Tunnel (Public URL)
                     │
                     ▼
┌──────────────────────────────────────────────────────────────────┐
│            WhatsApp Bot Service (Port 8080)                      │
│  ┌──────────────────────────────────────────────────────────┐   │
│  │         WebhookController                                │   │
│  │  • Receives messages from Meta API                       │   │
│  │  • Verifies webhook integrity                            │   │
│  └────────┬─────────────────────────────────────────────────┘   │
│           │                                                      │
│  ┌────────▼─────────────────────────────────────────────────┐   │
│  │         AIAgent                                          │   │
│  │  • Maintains conversation memory                         │   │
│  │  • Calls MCP tools dynamically                           │   │
│  │  • Generates intelligent responses via GPT-4             │   │
│  └────────┬─────────────────────────────────────────────────┘   │
│           │                                                      │
│  ┌────────▼─────────────────────────────────────────────────┐   │
│  │         WhatsAppService                                  │   │
│  │  • Formats and sends messages back via Meta API          │   │
│  └──────────────────────────────────────────────────────────┘   │
└──────────────────────────┬───────────────────────────────────────┘
                           │
                           │ HTTP Calls
                           ▼
┌──────────────────────────────────────────────────────────────────┐
│            MCP Server Service (Port 8989)                        │
│  ┌──────────────────────────────────────────────────────────┐   │
│  │         MCPTools                                         │   │
│  │  • getEmployee(name) - Retrieve employee info            │   │
│  │  • getAllEmployees() - List all employees                │   │
│  └──────────────────────────────────────────────────────────┘   │
│                                                                  │
│  ┌──────────────────────────────────────────────────────────┐   │
│  │    MCP Inspector (Debugging Interface)                   │   │
│  │  • Tool inspection and testing                           │   │
│  │  • Connection monitoring                                 │   │
│  └──────────────────────────────────────────────────────────┘   │
└──────────────────────────────────────────────────────────────────┘

📋 项目结构

whatsapp_bot/
├── whatsapp_bot/                    # Main bot service (Port 8080)
│   ├── src/main/java/ma/youhad/whatsapp_bot/
│   │   ├── agents/
│   │   │   └── AIAgent.java        # Core AI logic with MCP integration
│   │   ├── service/
│   │   │   └── WhatsAppService.java # Meta API integration
│   │   ├── web/
│   │   │   └── WebhookController.java # Webhook endpoints
│   │   └── WhatsappBotApplication.java
│   ├── src/main/resources/
│   │   └── application.properties   # Bot configuration
│   └── pom.xml
│
├── mcp_server/                      # Separate MCP Server (Port 8989)
│   ├── src/main/java/ma/youhad/mcp_server/
│   │   ├── tools/
│   │   │   ├── MCPTools.java       # Tool definitions
│   │   │   └── Employee.java       # Data model
│   │   └── McpServerApplication.java
│   ├── src/main/resources/
│   │   └── application.properties   # MCP configuration
│   └── pom.xml
│
├── .gitignore
├── node_modules/
├── pom.xml                          # Parent POM
└── README.md

🚀 快速开始

先决条件

  • Java 17+
  • Maven 3.8+
  • Node.js 16+(用于MCP检查器)
  • OpenAI API密钥
  • 使用WhatsApp Business API访问的Meta Business帐户
  • WhatsApp商务电话号码ID
  • Webhook验证令牌

安装

  1. 克隆存储库
   git clone https://github.com/youhad/whatsapp_bot.git
   cd whatsapp_bot
  1. 设置环境变量
   # Windows (PowerShell)
   $env:OPENAI_API_KEY = "your_openai_api_key"
   $env:WHATSAPP_ACCESS_TOKEN = "your_meta_access_token"
   $env:WHATSAPP_VERIFY_TOKEN = "your_webhook_verification_token"

   # macOS/Linux
   export OPENAI_API_KEY=your_openai_api_key
   export WHATSAPP_ACCESS_TOKEN=your_meta_access_token
   export WHATSAPP_VERIFY_TOKEN=your_webhook_verification_token
  1. 启动MCP服务器(终端1)
   cd mcp_server
   mvn spring-boot:run

MCP服务器将启动 http://localhost:8989

  1. 启动MCP检查器(端子2)-可选,但建议
   npx @modelcontextprotocol/inspector http://localhost:8989/mcp

这将为测试工具打开一个交互式调试界面

- 访问地址: http://localhost:6274 (带身份验证令牌)

  1. 启动主机器人服务(终端3)
   cd whatsapp_bot
   mvn spring-boot:run

机器人服务将于启动 http://localhost:8080

  1. 使用ngrok暴露本地服务器(终端4)
   ngrok http 8080

这将生成一个公共URL,如下所示: https://your-unique-id.ngrok-free.dev

  1. 在Meta Dashboard中配置Webhook

- 前往元应用仪表板>WhatsApp>配置 - 设置回调URL: https://your-unique-id.ngrok-free.dev/webhook - 验证令牌:使用来自的相同令牌 WHATSAPP_VERIFY_TOKEN - 订阅webhook字段: messages, message_status

🔧 配置

机器人服务(whatsapp_bot/application.properties)

spring.application.name=whatsapp_bot
spring.ai.openai.api-key=${OPENAI_API_KEY}
spring.ai.openai.chat.options.model=gpt-4o

# MCP Server Connection
spring.ai.mcp.client.streamable-http.connections.mcprh.url=http://localhost:8989

# WhatsApp Configuration
whatsapp.access.token=${WHATSAPP_ACCESS_TOKEN}
whatsapp.phone.number.id=806864275852077
whatsapp.verify.token=${WHATSAPP_VERIFY_TOKEN}

server.port=8080

MCP服务器(mcp_server/application.properties)

spring.application.name=mcp_server
spring.ai.mcp.server.protocol=streamable
spring.ai.mcp.server.name=RH-MCP-SERVER
server.port=8989

📡 API终点

Webhook端点

GET/webhook -Webhook验证

curl "http://localhost:8080/webhook?hub.mode=subscribe&hub.challenge=test123&hub.verify_token=YOUR_VERIFY_TOKEN"

POST/webhook -接收传入消息

  • Meta API自动触发
  • 处理短信并生成人工智能响应
  • 成功时返回HTTP 200

💬 运作原理

  1. 用户发送消息 通过WhatsApp
  2. Meta API 将webhook发送到 /webhook 经由ngrok隧道的终点
  3. Webhook控制器 接收并解析消息
  4. A代理人 使用以下方式处理查询:

- 对话记忆(维护消息之间的上下文) - MCP工具调用(如果需要,获取员工数据) - GPT-4模型(生成智能响应)

  1. WhatsAppService 通过Meta Graph API发回响应
  2. 用户收到 人工智能实时生成回复

🛠️ 可用工具

MCP服务器为AI代理提供以下工具:

getEmployee(姓名)

检索特定员工的信息。

参数:

  • name (string):员工姓名

例子:

User: "Tell me about Hassan"
AI: [Calls getEmployee("Hassan")] 
Response: "Hassan has a salary of 1,274 and 3 years of seniority."

获取所有员工()

列出所有员工及其信息。

例子:

User: "Who are the employees?"
AI: [Calls getAllEmployees()]
Response: "We have Hassan (salary: 1,274, seniority: 3), Jacklin (salary: 6,789, seniority: 8), and Ahmed (salary: 9,234, seniority: 23)."

🔍 使用MCP检查器进行调试

MCP检查器提供了一个web界面来测试和调试您的工具:

  1. 启动MCP检查器: npx @modelcontextprotocol/inspector http://localhost:8989/mcp
  2. 在浏览器中打开提供的URL
  3. 使用 工具 选项卡指向:

- 列出可用工具 - 使用参数测试单个工具 - 查看工具描述和模式

  1. 实时监控工具调用和响应
  2. 检查连接状态和服务器通知

特征:

  • 工具检查和参数验证
  • 直接执行工具进行测试
  • 连接历史和日志记录
  • 服务器通知监控

📊 Webhook验证流程

webhook验证可确保与Meta的安全通信:

Meta Dashboard → ngrok → WhatsApp Bot (Port 8080)
                           ↓
                    WebhookController
                           ↓
                    Verify Token Match?
                           ↓
              YES: Return challenge token (HTTP 200)
              NO: Return error (HTTP 403)

🔐 安全

  • 敏感凭据的环境变量(API密钥、令牌)
  • 对所有请求进行元webhook令牌验证
  • WhatsApp API呼叫的承载令牌身份验证
  • 消息内容的输入验证和JSON转义
  • 用于调试的错误处理和日志记录
  • ngrok为开发提供加密隧道

📝 系统提示

AI代理按照以下系统指令进行操作:

你是一个有用的WhatsApp机器人助手。根据提供的上下文回答用户问题。如果你没有足够的上下文来准确回答,礼貌地让用户知道你需要更多的信息,而不是猜测。

📦 依赖项

主机器人服务

  • 弹簧靴3.x
  • Spring AI(OpenAI集成)
  • Spring AI社区MCP客户端
  • 项目反应器(反应流)
  • Jackson(JSON处理)

MCP服务器

  • 弹簧靴3.x
  • Spring AI社区MCP服务器
  • Java记录(数据模型)

开发工具

  • MCP检查器(调试接口)
  • ngrok(webhooks隧道)
  • Maven(构建管理)

🧪 测试

测试Webhook验证

curl -X GET "http://localhost:8080/webhook?hub.mode=subscribe&hub.challenge=test_challenge&hub.verify_token=YOUR_VERIFY_TOKEN"

预期响应:

200 OK
test_challenge

手动消息模拟

使用Postman或curl对示例webhook进行POST:

curl -X POST http://localhost:8080/webhook \
  -H "Content-Type: application/json" \
  -d '{
    "entry": [{
      "changes": [{
        "value": {
          "messages": [{
            "from": "212696376120",
            "type": "text",
            "text": {"body": "Tell me about Hassan"}
          }]
        }
      }]
    }]
  }'

通过检查员测试MCP工具

  1. 打开MCP检查器 http://localhost:6274
  2. 导航至 工具 标签
  3. 选择 getEmployee 或 getAllEmployees
  4. 带参数测试或无参数运行
  5. 查看结果和执行时间

🐛 故障排除

问题解决方案
MCP服务器连接被拒绝确保MCP服务器在端口8989上运行: mvn spring-boot:run
Webhook未收到消息验证ngrok是否正在运行,以及Meta仪表板中是否配置了URL
“验证令牌不匹配”检查 WHATSAPP_VERIFY_TOKEN 匹配Meta仪表板配置
OpenAI API错误验证 OPENAI_API_KEY 已设置且有效
MCP检查器连接问题清除浏览器缓存并重新启动检查器
未发送邮件检查 WHATSAPP_ACCESS_TOKEN 和 whatsapp.phone.number.id
重复响应在Meta仪表板中检查多个webhook订阅

🚢 部署

发展

  • 使用ngrok隧道在当地运行
  • 使用MCP检查器进行调试
  • 监控日志中的错误

生产

  • 将机器人服务部署到云平台(AWS、Azure、GCP)
  • 在同一网络上或公开部署MCP服务器
  • 将Meta仪表板中的webhook URL更新到生产端点
  • 对所有凭据使用环境变量
  • 启用正确的日志记录和监控
  • 为HTTPS设置SSL/TLS证书

机器人交互示例

以下GIF演示了消息流、使用其内部工具的AI以及在WhatsApp上响应的机器人。

📚 资源

🤝 贡献

欢迎投稿!请按照以下步骤操作:

📄 许可证

该项目根据麻省理工学院许可证获得许可-

✨ 未来的增强功能

  • 员工数据的数据库集成
  • 支持媒体消息(图像、文档)
  • 多语言支持
  • 速率限制和使用分析
  • 消息加密

👨‍💻 作者

阿尤布·尤哈德

  • github: @你有08
  • 电子邮件:ayoubyouhad79@gmail.com

______________________________________________________________________

内置于❤️ 使用Spring AI、OpenAI和模型上下文协议

工具与能力

工具数量

2

资源数量

0

提示词数量

0

能力标签

智能对话Java本地部署WhatsApp集成员工数据查询MCP工具实时消息

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

用自然语言查库

不用手写 SQL,直接问数据,让模型组织查询语句。

数据巡检

定期拉指标、做对比,把异常项整理成一段说明。

打通业务数据

把数据库、数仓和接口接进同一个上下文,减少导出再上传。

选择建议

值得选的地方

  • 只提供 2 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 Node.js,换机器要重新装一遍。
  • 需要自备访问 Token,没有凭据没法直接试。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在数据服务场景里让模型直接调用外部能力的人。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到访问 Token的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Whatsapp AI Bot

MCP World · 本页

2stdio有1 个2026-05-17
Memory 9d25f64e

MCP World

9未说明未标注1 个2026-05-17
Prisma MCP Server

MCP World

0stdio有3 个2026-05-17
Astr Bot

MCP World

0stdio有1 个2026-05-17
Getzep MCP

MCP World

9stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Whatsapp AI Bot 怎么安装?

公开资料给出的安装命令是 npx @modelcontextprotocol/inspector http://localhost:8989/mcp,运行环境为 Node.js。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Whatsapp AI Bot 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Node.js;保存后完全退出客户端再打开,配置才会生效。

Whatsapp AI Bot 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Whatsapp AI Bot 需要 API Key 吗?

公开资料标注的认证方式是访问 Token,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

Whatsapp AI Bot 支持哪些客户端?

公开资料没有标注具体客户端;能配置本地 MCP 命令的客户端都能接,配置方式参照官方文档。

来源信息

继续浏览同类 MCP