返回市场
微信OA管理控制台

微信OA管理控制台

作者:kakaxi301918 星标更新:2025-11-22

项目介绍

微信官方账号MCP服务器

这是一个基于FastMCP框架的微信官方账号MCP服务器,提供了包括草稿创建、发布、删除等一系列实用的微信官方账号API接口封装。

项目介绍

该项目使用Python和FastMCP框架,通过模型控制协议(MCP)规范提供微信官方账号管理API,可以轻松集成到各种AI系统和自动化工作流中,帮助用户方便地管理微信官方账号的内容。

微信公众平台

微信公众平台官方网站:https://mp.weixin.qq.com

在使用此工具之前,您需要在微信公众平台上注册并创建一个官方账号,以获取开发者ID(AppID)和密钥(AppSecret)。

安装方法

使用pip安装

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          # 主要功能代码

依赖项

  • Python 3.10+
  • fastmcp
  • requests

功能列表

该服务器提供以下功能:

  • 获取微信AccessToken:获取接口调用凭证
  • 创建微信官方账号草稿:创建图文消息草稿
  • 发布微信官方账号草稿:将草稿发布到官方账号
  • 删除微信官方账号草稿:删除未发布的草稿
  • 删除永久素材:删除官方账号中的永久素材

API接口描述

1. 获取AccessToken

WeChat_get_access_token

输入参数:

AppID: String·第三方用户唯一凭证(公众号-设置与开发-开发接口管理中获取)
AppSecret: String·第三方用户唯一凭证密钥(公众号-设置与开发-开发接口管理中获取)

输出:

{
  "success": true,
  "error": null,
  "access_token": "获取到的access_token",
  "expires_in": 7200
}

2. 创建草稿

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"
}

3. 发布草稿

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"
}

4. 删除草稿

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"
}

5. 删除永久素材

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"
}

使用说明

1. 安装服务器

# 通过pip安装
pip install wechat_oa_mcp

2. 调用MCP服务器的几种方式

2.1 通过代码调用

您可以直接在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']}")

2.2 通过MCP Inspector调试

完成安装步骤后,可以通过以下命令进行交互式测试:

npx @modelcontextprotocol/inspector python -m wechat_oa_mcp

然后访问 http://localhost:6274 进行交互式测试

2.3 通过JSON添加MCP服务器

注意:此方法需要先启动MCP服务器

  1. 首先,通过命令行启动服务:
# 直接启动(默认端口8000)
wechat-oa-mcp
# 或者
python -m wechat_oa_mcp 

# 指定端口启动
wechat-oa-mcp --port 8123
# 或者
python -m wechat_oa_mcp --port 8123
  1. 然后将微信MCP服务器添加到其他兼容MCP的应用程序配置中(如cursor):
{
    "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每分钟最多可以调用同一接口五次。

IP白名单配置

根据微信公众平台开发接口管理规定,通过开发者ID和密码调用访问_token接口时,需要将访问源IP设置为白名单。请将以下IP添加到微信公众平台-设置与开发-开发接口管理IP白名单中:

106.15.125.133

致谢

  • 感谢FastMCP项目提供的框架支持

免责声明:此MCP服务器仅供研究用途,禁止用于商业用途。