掘金 人工智能 5小时前
基于Dify+MCP实现通过微信发送天气信息给好友
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文介绍了如何利用MCP Server实现微信消息的发送以及天气信息的查询功能,并结合Dify平台搭建智能体,实现自动获取天气并通过微信发送给好友。文章详细阐述了开发环境的设置、Server代码的编写以及启动方法,为开发者提供了清晰的实践指南。通过MCP协议,降低了开发成本,加速了AI应用落地。

💻 **环境设置:** 在Windows环境下,文章首先介绍了如何安装uv,并使用uv创建和激活Python虚拟环境。同时,还说明了安装必要的依赖包,如mcp、wxauto和httpx,为后续功能的实现打下基础。

💬 **微信消息发送实现:** 通过mcp python SDK结合wxauto库,可以轻松开发自动发送微信消息的MCP Server。文章提供了详细的main.py代码示例,展示了如何调用wxauto库发送消息。

☁️ **天气查询实现:** 文章同样给出了实现天气查询的MCP Server代码,该代码使用httpx库向天气API发送请求,获取指定位置的天气信息。并提供了启动Server的命令。

🤖 **Dify智能体集成:** 结合Dify平台,文章演示了如何通过MCP插件调用已开发的MCP Server,实现获取天气信息并通过微信发送给好友的功能。这展示了MCP协议在降低开发成本和加速应用落地方面的优势。

开发MCP Server实现微信消息发送

以windows开发环境为例:

1) 设置开发环境

安装uv。uv是一个用Rust编写的极其快速的Python包和项目管理器。

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

创建python虚拟环境(假设项目目录为wechat)

# Create a new directory for our projectuv init wechatcd wechat# Create virtual environment and activate ituv venv.venv\Scripts\activate# Install dependenciesuv add mcp[cli] wxauto

如果在执行.venv\Scripts\activate时报错“无法加载.venv\Scripts\activate.ps1,因为在此系统上禁止运行脚本”,需要以管理员权限在终端执行Set-ExecutionPolicy RemoteSigned更改执行策略后再重新执行。

2) Server实现代码

wxauto是一个基于UIAutomation的开源Python微信自动化库。你需要在本机安装微信PC版本并完成扫码登录(注意wxauto只兼容3.9.x的微信PC版本)

通过mcp python SDK结合wxauto开发自动发送微信消息的MCP Server是很容易的。

main.py的代码如下(注意mcp server端口用默认的8000):

from mcp.server.fastmcp import FastMCPfrom wxauto import WeChat# Initialize FastMCP servermcp = FastMCP(port=8000)wx = WeChat()@mcp.tool()async def send_wechat_msg(msg: str, who: str) -> str:    """send wechat text message"""    wx.ChatWith(who)    wx.SendMsg(msg, who)    return "success"if __name__ == "__main__":    # Initialize and run the server    mcp.run(transport="sse")

3) 启动Server

复制

uv run main.py1.

开发MCP Server实现获取天气

1) 设置开发环境

创建python虚拟环境(假设项目目录为weather)

# Create a new directory for our projectuv init weathercd weather# Create virtual environment and activate ituv venv.venv\Scripts\activate# Install dependenciesuv add mcp[cli] httpx

2) Server实现代码

main.py的代码如下(注意mcp server端口调整为8001):

import httpximport urllib.parsefrom mcp.server.fastmcp import FastMCP# Initialize FastMCP servermcp = FastMCP(port=8001)@mcp.tool()async def get_weather(location: str) -> str:    """Get weather for a location."""    url = "http://weather.cma.cn/api/autocomplete?q=" + urllib.parse.quote(location)    async with httpx.AsyncClient() as client:        try:            response = await client.get(url, timeout=10.0)            response.raise_for_status()            data = response.json()            if data["code"] != 0:                return "系统错误,请稍后重试"            location_code = ""            for item in data["data"]:                str_array = item.split("|")                if (                    str_array[1] == location                    or str_array[1] + "市" == location                    or str_array[2] == location                ):                    location_code = str_array[0]                    break            if location_code == "":                return "没找到该位置的信息"            url = f"http://weather.cma.cn/api/now/{location_code}"            response = await client.get(url, timeout=10.0)            response.raise_for_status()            return response.json()        except Exception:            return "系统错误,请稍后重试"if __name__ == "__main__":    # Initialize and run the server    mcp.run(transport="sse")

3) 启动Server

uv run main.py

基于Dify搭建智能体实现获取天气并通过微信发送给好友

Dify是一款开源的大语言模型应用开发平台,旨在降低AI应用的开发门槛,帮助开发者和企业快速构建、部署及管理生成式AI应用。

假设已经通过Docker Desktop for Windows安装Dify。

1) 安装MCP插件

点击右上角“插件”按钮,进入插件页面,选择“探索Marketplace”,搜索mcp,选择插件"MCP SSE / StreamableHTTP"进行安装。

2) 设置MCP服务

切换到"插件"tab,选择已经安装的插件"MCP SSE / StreamableHTTP",点击“去授权”

填上MCP服务配置:

获取天气和发送微信消息是两个独立的mcp server,配置如下:

{"wechat_server":{"url":"http://host.docker.internal:8000/sse","headers":{},"timeout":50,"sse_read_timeout":50},"weather_searver":{"url":"http://host.docker.internal:8001/sse","headers":{},"timeout":50,"sse_read_timeout":50}}

3) 创建Agent应用

你是一个超级助理,可以通过调用MCP工具完成各种任务。为了获得MCP工具列表,必须先通过mcp_sse_list_tools获取

输入“把广州的天气情况通过微信发送给张三”,Agent会查询天气,并将天气信息通过微信发送给张三

总结

基于Dify搭建的智能体案例,不仅展示了从语义理解到工具调用的完整决策链路,更印证了MCP协议在降低开发成本和加速应用落地方面的工程意义。

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

MCP Server 微信消息发送 天气查询 Dify 智能体
相关文章