多能力提供服务器

Puch AI的多能力提供服务器(MCP)是一个后端服务,用于连接Puch AI与外部服务如WhatsApp、网页内容抓取和产品搜索,扩展AI在现实世界中的任务执行能力。

  • by alok-ahirrao
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 alok-ahirrao/Puch-AI-WhatsApp-Integration-MCP-Server

使用说明

Puch AI-WhatsApp集成MCP服务器🚀

此存储库包含 MCP(多功能提供商)服务器,一个强大的后端服务,旨在桥接 Puch AI 通过WhatsApp、网络内容获取和产品搜索等外部服务。它充当一个工具中心,允许人工智能在现实世界中执行复杂的任务。

图像结果

输出1

产出2

✨ 概述

Puch AI是一种能够自动化任务和检索信息的智能助手。该MCP服务器通过提供一个安全、经过验证的API端点来扩展其功能,Puch AI可以调用该端点来执行特定的“工具”

该服务器使Puch AI能够:

  • 🌐 获取Web内容:从互联网上的任何URL中抓取和处理信息。
  • 🛒 搜索产品:使用Google Shopping进行实时产品搜索,为用户提供最新建议。
  • 📱 与WhatsApp集成:该服务器的架构是完整的WhatsApp集成的支柱。

🏗️ 运作原理

服务器提供了一个单一的、功能强大的API端点,该端点接受使用给定参数运行特定工具的请求。工艺流程如下:

  1. Puch AI收到用户提示 (例如,“给我找一台1000美元以下的好笔记本电脑”)。
  2. Puch AI确定需要工具 (例如。, search_for_products).
  3. Puch AI发送POST请求 此MCP服务器的 /mcp/ 端点,指定 tool_name 和 arguments.
  4. MCP服务器对请求进行身份验证 使用承载令牌。
  5. 服务器执行请求的工具 (例如,调用SerpApi以获取产品结果)。
  6. 服务器格式化并返回结果 以结构化JSON格式传输到Puch AI。
  7. Puch AI使用这些信息 为用户制定自然语言响应。

🔧 安装和设置

按照以下步骤使MCP服务器在本地计算机上运行。

先决条件

  • Python 3.11+
  • 点 (Python包安装程序)
  • Git

分步指南

  1. 克隆存储库 打开终端并将存储库克隆到本地计算机。

    git clone https://github.com/alok-ahirrao/Puch-AI-WhatsApp-Integration-MCP-Server.git
    cd Puch-AI-WhatsApp-Integration-MCP-Server
    
  2. 创建虚拟环境(推荐) 最好的做法是创建一个虚拟环境来管理项目依赖关系。

    # For macOS/Linux
    python3 -m venv venv
    source venv/bin/activate
    
    # For Windows
    python -m venv venv
    .\venv\Scripts\activate
    
  3. 再进行 从以下位置安装所有必需的Python包 requirements.txt 文件。

    pip install -r requirements.txt
    
  4. 创建和配置 .env 文件 创建一个名为的文件 .env 在项目的根目录中。此文件将存储您的密钥和配置变量。复制以下内容并替换占位符值。

    # Get your API key from https://serpapi.com/
    SERPAPI_API_KEY=YOUR_SERPAPI_API_KEY
    
    # Your WhatsApp phone number (e.g., 919876543210)
    MY_NUMBER=YOUR_PHONE_NUMBER
    
    # A strong, secret token for authenticating API requests
    TOKEN=YOUR_SECURE_BEARER_TOKEN
    
  5. 运行服务器 使用Uvicorn启动FastAPI服务器。

    python main.py
    

    服务器现在应该在以下位置运行 http://127.0.0.1:8085.


MCP服务器设置说明

按照以下说明设置MCP服务器并完成申请过程。

  1. 获取应用程序密钥:

    使用提供的启动代码启动本地MCP服务器。运行后 /apply <TWITTER/LINKEDIN REPLY URL>,您将获得一个应用程序密钥。

  2. 创建MCP服务器:

    现在,您需要使用本要点中给出的启动代码创建一个MCP服务器来提交简历。

  3. 将Puch连接到您的MCP服务器:

    使用此命令将Puch与您的MCP服务器连接: /mcp connect <SERVER URL (should be publicly accesible)>/mcp <AUTH TOKEN>

  4. 验证身份验证令牌和电话号码:

    Puch将对您的Auth令牌(应用程序密钥)和电话号码进行验证检查。验证需要密钥和电话号码,格式为{country_code}{number},不带+符号。例如:919876543210代表一个印度号码。

  5. 创建简历工具:

    将简历发送给Puch:创建一个工具,以适合LLM的格式发送简历。

    • 简历工具要求:您的服务器必须包含一个简历工具,该工具:
      • 接受本地文件(您的简历)。
      • 将其转换为markdown文本
      • 将数据以字符串形式提交给Puch AI MCP端点。
  6. 设置ngrok服务器:

    要使您的本地服务器可公开访问,您可以使用ngrok。运行以下命令: ngrok http 8085


🔑 认证

所有请求 /mcp/ 必须使用 承载令牌。将令牌包含在 Authorization 您的请求的标题。

Authorization: Bearer YOUR_SECURE_BEARER_TOKEN

替换 YOUR_SECURE_BEARER_TOKEN 根据您设置的值 TOKEN 在你的 .env 文件。带有丢失或无效令牌的请求将导致 401 Unauthorized 错误。


🛠️ 可用工具

服务器通过一组工具公开其功能。您可以通过向发送POST请求来调用工具 /mcp/ 终点。

fetch

获取并解析给定URL的文本内容。这对于总结文章、提取数据或阅读文档非常有用。

参数:

参数 类型 必填 默认 说明
url 字符串 是 N/A 要获取的网页的完整URL。
max_length integer 否 5000 要返回的最大字符数。
start_index integer 否 0 从中开始提取内容的字符索引。可用于分页。
raw boolean 否 假 如果 true,返回原始HTML。如果 false,返回已清理的文本内容。

示例请求(curl):

curl -X POST http://127.0.0.1:8085/mcp/ \
-H "Authorization: Bearer YOUR_SECURE_BEARER_TOKEN" \
-H "Content-Type: application/json" \
-d '{
    "tool_name": "fetch",
    "arguments": {
        "url": "https://en.wikipedia.org/wiki/Artificial_intelligence",
        "max_length": 250
    }
}'

示例响应:

{
  "content": "Artificial intelligence (AI) is the intelligence of machines or software, as opposed to the intelligence of living beings, primarily of humans. It is a field of computer science that develops and studies intelligent machines. Such machines may be called AIs."
}

search_for_products

使用SerpApi服务,根据查询在谷歌购物中搜索产品。

参数:

参数 类型 必填 默认 说明
query 字符串 是 N/A 产品的描述性搜索查询。

示例请求(curl):

curl -X POST http://127.0.0.1:8085/mcp/ \
-H "Authorization: Bearer YOUR_SECURE_BEARER_TOKEN" \
-H "Content-Type: application/json" \
-d '{
    "tool_name": "search_for_products",
    "arguments": {
        "query": "wireless noise cancelling headphones"
    }
}'

示例响应:

{
  "search_results": [
    {
      "position": 1,
      "title": "Sony WH-1000XM5 Wireless Noise-Canceling Over-the-Ear Headphones",
      "price": "$399.99",
      "extracted_price": 399.99,
      "link": "https://www.bestbuy.com/...",
      "source": "Best Buy",
      "rating": 4.7,
      "reviews": 1250,
      "thumbnail": "https://i5.walmartimages.com/..."
    },
    {
      "position": 2,
      "title": "Bose QuietComfort 45 headphones",
      "price": "$329.00",
      "extracted_price": 329,
      "link": "https://www.bose.com/...",
      "source": "Bose",
      "rating": 4.6,
      "reviews": 890,
      "thumbnail": "https://assets.bose.com/..."
    }
  ]
}

🗺️ 路线图和未来发展

此服务器是为扩展而设计的。未来的计划包括:

  • 完整的双向WhatsApp集成:实现webhook端点,在WhatsApp上接收来自用户的消息,并通过WhatsApp Business API发送回复的机制。
  • 支持更多工具:为以下功能添加新工具:
    • 发送电子邮件。
    • 管理日历事件。
    • 与其他第三方API(如Spotify、谷歌地图)交互。
  • 交互式消息:利用WhatsApp的交互式消息组件,如按钮和列表,以获得更丰富的用户体验。
  • 增强的错误处理:向调用AI提供更具描述性的错误消息。

🤝 贡献

贡献使开源社区成为一个学习、激励和创造的好地方。你所做的任何贡献都是 非常感谢.

  1. 分叉项目
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交您的更改 (git commit -m 'Add some AmazingFeature')
  4. 推到分支机构 (git push origin feature/AmazingFeature)
  5. 打开拉取请求

如果您发现错误或有建议,请随时打开问题。


📜 许可证

版权所有©2025,阿洛克·亚希劳

根据 知识共享署名-非商业4.0国际许可。您只能出于个人或教育目的使用或修改此项目。商业用途需要明确许可。

如有疑问,请联系 alokahirrao.ai@gmail.com.