这是一个基于FastMCP框架的微信官方账号MCP服务器,提供了包括草稿创建、发布、删除等一系列实用的微信官方账号API接口封装。
该项目使用Python和FastMCP框架,通过模型控制协议(MCP)规范提供微信官方账号管理API,可以轻松集成到各种AI系统和自动化工作流中,帮助用户方便地管理微信官方账号的内容。
微信公众平台官方网站:https://mp.weixin.qq.com
在使用此工具之前,您需要在微信公众平台上注册并创建一个官方账号,以获取开发者ID(AppID)和密钥(AppSecret)。
pip install wechat_oa_mcp
./
├── README.md # 项目文档
├── examples/ # 使用示例
│ └── simple_usage.py # 简单使用示例
├── setup.py # 安装配置
├── pyproject.toml # Python项目配置
└── wechat_oa_mcp/ # 包主目录
├── __init__.py # 包初始化文件
├── __main__.py # 模块直接执行入口
├── cli.py # 命令行工具入口
└── server.py # 主要功能代码
该服务器提供以下功能:
WeChat_get_access_token
输入参数:
AppID: String·第三方用户唯一凭证(公众号-设置与开发-开发接口管理中获取)
AppSecret: String·第三方用户唯一凭证密钥(公众号-设置与开发-开发接口管理中获取)
输出:
{
"success": true,
"error": null,
"access_token": "获取到的access_token",
"expires_in": 7200
}
WeChat_create_draft
输入参数:
access_token: String·你的access_token,调用接口凭证,可通过WeChat_get_access_token获取
image_url: String·封面图片URL
title: String·文章标题
content: String·图文消息的具体内容,支持HTML标签,必须少于2万字符,小于1M
author: String·(可选)作者名称
digest: String·(可选)图文消息的摘要,仅有单图文消息才有摘要,多图文此处为空。如果本字段为没有填写,则默认抓取正文前54个字。
content_source_url: String·(可选)图文消息的原文地址,即点击"阅读原文"后的URL
need_open_comment: Integer·(可选)Uint32 是否打开评论,0不打开(默认),1打开
输出:
{
"success": true,
"error": null,
"draft_media_id": "草稿的media_id",
"image_media_id": "封面图片的media_id"
}
WeChat_publish_draft
输入参数:
access_token: String·调用接口凭证,可通过WeChat_get_access_token获取
draft_media_id: String·在之前调用WeChat_create_draft之后返回的draft_media_id
输出:
{
"success": true,
"error": null,
"errmsg": "ok",
"publish_id": "发布任务id"
}
WeChat_del_draft
输入参数:
access_token: String·调用接口凭证,可通过WeChat_get_access_token获取
media_id: String·草稿对应凭证,也就是WeChat_create_draft返回的draft_media_id
输出:
{
"success": true,
"error": null,
"errcode": 0,
"errmsg": "ok"
}
WeChat_del_material
输入参数:
access_token: String·调用接口凭证,可通过WeChat_get_access_token获取
media_id: String·永久素材对应凭证,也就是WeChat_create_draft返回的image_media_id
输出:
{
"success": true,
"error": null,
"errcode": 0,
"errmsg": "ok"
}
# 通过pip安装
pip install wechat_oa_mcp
您可以直接在Python代码中调用微信MCP API,完成安装步骤:
from wechat_oa_mcp import (
WeChat_get_access_token,
WeChat_create_draft,
WeChat_publish_draft,
WeChat_del_draft,
WeChat_del_material
)
# 获取access_token
token_result = WeChat_get_access_token({
"AppID": "您的微信AppID",
"AppSecret": "您的微信AppSecret"
})
if token_result["success"]:
access_token = token_result["access_token"]
# 创建草稿
draft_result = WeChat_create_draft({
"access_token": access_token,
"image_url": "https://example.com/image.jpg",
"title": "测试文章标题",
"content": "<p>这是文章内容</p>",
"author": "作者名称"
})
if draft_result["success"]:
draft_id = draft_result["draft_media_id"]
image_id = draft_result["image_media_id"]
# 发布草稿
publish_result = WeChat_publish_draft({
"access_token": access_token,
"draft_media_id": draft_id
})
if publish_result["success"]:
print(f"发布成功!发布ID: {publish_result['publish_id']}")
# 删除草稿示例
# 注意:通常在发布后才会删除草稿,这里仅为演示API用法
del_draft_result = WeChat_del_draft({
"access_token": access_token,
"media_id": draft_id
})
if del_draft_result["success"]:
print(f"删除草稿成功:{del_draft_result['errmsg']}")
# 删除素材示例
# 注意:通常在不需要图片素材时才会删除,这里仅为演示API用法
del_material_result = WeChat_del_material({
"access_token": access_token,
"media_id": image_id
})
if del_material_result["success"]:
print(f"删除素材成功:{del_material_result['errmsg']}")
完成安装步骤后,可以通过以下命令进行交互式测试:
npx @modelcontextprotocol/inspector python -m wechat_oa_mcp
然后访问 http://localhost:6274 进行交互式测试
注意:此方法需要先启动MCP服务器
# 直接启动(默认端口8000)
wechat-oa-mcp
# 或者
python -m wechat_oa_mcp
# 指定端口启动
wechat-oa-mcp --port 8123
# 或者
python -m wechat_oa_mcp --port 8123
{
"mcpServers": {
"wechat_oa_mcp": {
"type": "sse",
"url": "http://localhost:8000/sse"
}
}
}
配置参数说明:
type通信协议类型,支持 "sse" (Server Send Events)url服务器地址,默认端口是8000。如果之前指定了端口,则以指定的端口号为准wechat_oa_mcp: 服务器名称,可自定义该项目基于FastMCP框架,并通过MCP协议提供与微信官方账号相关的服务。服务器采用模块化设计,每个功能都被封装成独立的MCP工具,可以单独调用。
服务器通过HTTP请求与微信官方账号API进行通信,处理认证、参数验证等细节,使用户能够专注于业务逻辑而不是底层实现。
为了分发服务器压力,每个IP每分钟最多可以调用同一接口五次。
根据微信公众平台开发接口管理规定,通过开发者ID和密码调用访问_token接口时,需要将访问源IP设置为白名单。请将以下IP添加到微信公众平台-设置与开发-开发接口管理IP白名单中:
106.15.125.133
免责声明:此MCP服务器仅供研究用途,禁止用于商业用途。