Skip to main content
Glama
stevebi88

wechat-gateway-mcp

by stevebi88

Шлюз WeChat Work · MCP Server

Открытый MCP (Model Context Protocol) сервер, который позволяет AI-агенту (например, WorkBuddy) управлять вашим развёрнутым «шлюзом клиентского менеджмента WeChat Work» с помощью команд на естественном языке:

  • Поиск клиентов / тегов / библиотеки контента

  • Предпросмотр и создание задач корпоративной рассылки

  • Предпросмотр и создание правил SOP для моментов (朋友圈)

  • Запрос статуса задач, отмена задач

⚠️ Этот репозиторий — только MCP-клиент. Он не содержит сам бэкенд-шлюз WeChat Work — вам нужно сначала самостоятельно развернуть бэкенд «шлюза WeChat Work» (см. «Развёртывание бэкенд-шлюза (обзор)» ниже), а затем подключить к нему этот репозиторий. Все реальные действия по отправке по умолчанию выполняют только предпросмотр; для фактического вызова API шлюза требуется явный confirm=true, чтобы избежать случайных массовых рассылок.


Архитектура

┌──────────────┐   stdio + MCP    ┌──────────────────┐   HTTPS (Bearer)   ┌──────────────────────┐
│  AI Agent     │ ───────────────▶ │  wechat-gateway   │ ─────────────────▶ │  企业微信网关后端       │
│ (WorkBuddy)  │                  │  MCP Server       │                    │  (FastAPI 等,自部署)  │
└──────────────┘                  └──────────────────┘                    └──────────────────────┘
                                        ↑
                                   WG_BASE_URL / WG_API_TOKEN
                                   (你的 .env,不提交)
  • MCP-сервер (этот репозиторий): читает WG_BASE_URL / WG_API_TOKEN, преобразует намерения агента в вызовы API шлюза.

  • Бэкенд-шлюз (самостоятельное развёртывание): взаимодействует с API «контактов с клиентами» WeChat Work, отвечает за реальную синхронизацию клиентов, массовые рассылки, моменты и т. д., проверяет личность этого сервера с помощью MCP_API_TOKEN.


Related MCP server: wx4py-mcp

Функции и список инструментов

Только чтение / обнаружение

Инструмент

Описание

list_accounts

Список настроенных учётных записей WeChat Work в шлюзе (список corpid)

list_members(corpid)

Список участников (userID) в учётной записи, кандидаты на отправителя рассылки/момента

list_tags(corpid)

Список тегов клиентов (tag_id + название)

search_contacts(corpid, keyword, tag_id, userid, page, size)

Поиск клиентов (external_userid + название + теги)

list_contents(corpid, kind, tag, scene, kw, page, size)

Просмотр библиотеки контента (изображения/видео/ссылки)

get_content(cid)

Получение деталей одного элемента контента

list_group_send_tasks(corpid, page, size, status)

Список исторических задач массовой рассылки

get_task_status(task_id, corpid)

Запрос статуса выполнения и квитанций задачи массовой рассылки

list_moment_rules(corpid)

Список правил SOP для моментов

Действия (по умолчанию только предпросмотр, реальная отправка только при confirm=true)

Инструмент

Описание

preview_group_send(...)

Предпросмотр рассылки: проверка параметров + оценка количества получателей, без отправки

create_group_send(confirm, ...)

Создание корпоративной рассылки; confirm=false — только предпросмотр

create_moment_rule(confirm, ...)

Создание SOP для моментов; confirm=false — только предпросмотр

cancel_group_send(task_id, account)

Остановка ожидающей отправки задачи массовой рассылки

cancel_moment_task(task_id)

Остановка незавершённой задачи момента

get_moment_task_result(task_id)

Запрос окончательного статуса публикации задачи момента

resolve_content(cid, target)

Преобразование элемента библиотеки контента в структуру, готовую к отправке (автоматическое получение media_id)


Предварительные требования

  1. Развёрнут бэкенд-шлюза WeChat Work, и получены:

    • Адрес admin API бэкенда (например, https://gateway.your-domain.com/api/v1/admin)

    • Сервисный токен MCP_API_TOKEN, выданный бэкендом

  2. Локально Python 3.10+

  3. MCP-совместимый клиент агента (например, WorkBuddy)


Быстрый старт

# 1) 克隆
git clone https://github.com/stevebi88/wecom-gateway-mcp.git
cd wecom-gateway-mcp

# 2) 配置环境变量(复制模板,填入你自己的网关地址与令牌)
cp .env.example .env
#   编辑 .env:
#     WG_BASE_URL=https://gateway.your-domain.com/api/v1/admin
#     WG_API_TOKEN=你网关后端分配的令牌

# 3) 安装并注册到 WorkBuddy(自动建 venv + 装依赖 + 写 mcp.json)
python3 install.py

После завершения найдите wechat-gateway в разделе «Коннекторы» слева в WorkBuddy и нажмите Trust для включения. После включения просто скажите ИИ:

«Отправь всем клиентам с тегом VIP эту рассылку с текстом о весеннем равноденствии»

Агент сам: найдёт тег → оценит количество → предпросмотр → (после вашего подтверждения) создаст задачу массовой рассылки.


Параметры конфигурации

Переменная

Обязательно

По умолчанию

Описание

WG_BASE_URL

Да

https://your-wechat-gateway.example.com/api/v1/admin

Базовый адрес admin API шлюза (без завершающего слэша)

WG_API_TOKEN

Да

пусто

MCP_API_TOKEN бэкенда шлюза, для Bearer-аутентификации


Ручное подключение (без использования установщика)

В «Управлении коннекторами» WorkBuddy вручную добавьте MCP типа stdio:

{
  "mcpServers": {
    "wechat-gateway": {
      "command": "/绝对路径/wechat-gateway-mcp/.venv/bin/python",
      "args": ["/绝对路径/wechat-gateway-mcp/server.py"],
      "env": {
        "WG_BASE_URL": "https://gateway.your-domain.com/api/v1/admin",
        "WG_API_TOKEN": "你网关后端分配的令牌"
      },
      "disabled": false
    }
  }
}

Или запустите напрямую через run.sh (он читает .env из той же директории).


Защитные барьеры

  • Все реальные отправки (create_group_send / create_moment_rule) по умолчанию confirm=falseтолько предпросмотр, без отправки.

  • Только когда агент явно указывает confirm=true, происходит реальный вызов API шлюза.

  • Бэкенд-шлюз аутентифицируется сервисным токеном MCP_API_TOKEN; этот сервер и токен используются только между вашим собственным шлюзом и локальной машиной.

  • .env содержит токен, он игнорируется .gitignore; храните его надёжно, никогда не коммитьте и не раскрывайте.


Развёртывание бэкенд-шлюза (обзор)

Код бэкенда не в этом репозитории. Ниже — референсная архитектура для развёртывания шлюза, к которому подключается этот MCP, чтобы вы могли самостоятельно его построить или проверить окружение.

Рекомендуемый стек (пример): FastAPI (ASGI) + gunicorn + Nginx + Redis + SQLAlchemy, Python 3.12.

Ключевые возможности / конфигурация, которые должен предоставлять бэкенд:

  • Учётные данные «контактов с клиентами» WeChat Work (corpid / secret / agentid и т. д.), хранятся самим бэкендом, не кладите их в этот MCP-репозиторий.

  • Предоставление admin API (пути, которые вызывает этот сервер: /accounts, /tags, /contacts, /contents, /group_send/*, /moment/*, /media/{id}/media_id и т. д.).

  • В .env бэкенда должен быть MCP_API_TOKEN, значение которого совпадает с WG_API_TOKEN этого сервера, для проверки личности вызывающего.

  • Медиа-материалы рекомендуется переносить в объектное хранилище (например, COS), чтобы resolve_content не выдавал ошибку при получении media_id из-за истечения срока действия материала.

После развёртывания получите базовый адрес admin и MCP_API_TOKEN и заполните их в .env этого репозитория.


Известные проблемы с данными

Если исторические мигрированные материалы не перенесены в объектное хранилище, при отправке изображений/видео resolve_content при получении media_id может выдавать ошибку «материал истёк». Отправка чистого текста / ссылок не затрагивается; для отправки изображений бэкенду нужно заново загрузить материал или перенести его в объектное хранилище.


Лицензия

MIT# Шлюз WeChat Work · MCP Server

Открытый MCP (Model Context Protocol) сервер, который позволяет AI-агенту (например, WorkBuddy) управлять вашим развёрнутым «шлюзом управления клиентами WeChat Work» с помощью команд на естественном языке:

  • Поиск клиентов / тегов / библиотеки контента

  • Предпросмотр и создание задач корпоративной рассылки

  • Предпросмотр и создание правил SOP для моментов

  • Запрос статуса задач, отмена задач

⚠️ Этот репозиторий — только MCP-клиент. Он не содержит сам бэкенд-шлюз WeChat Work — вам нужно сначала самостоятельно развернуть бэкенд «шлюза WeChat Work» (см. «Развёртывание бэкенд-шлюза (обзор)» ниже), а затем подключить к нему этот репозиторий. Все реальные отправки по умолчанию выполняют только предпросмотр; для реального вызова API шлюза требуется явный confirm=true, чтобы избежать случайных массовых рассылок.


Архитектура

┌──────────────┐   stdio + MCP    ┌──────────────────┐   HTTPS (Bearer)   ┌──────────────────────┐
│  AI Agent     │ ───────────────▶ │  wechat-gateway   │ ─────────────────▶ │  企业微信网关后端       │
│ (WorkBuddy)  │                  │  MCP Server       │                    │  (FastAPI 等,自部署)  │
└──────────────┘                  └──────────────────┘                    └──────────────────────┘
                                        ↑
                                   WG_BASE_URL / WG_API_TOKEN
                                   (你的 .env,不提交)
  • MCP-сервер (этот репозиторий): читает WG_BASE_URL / WG_API_TOKEN, преобразует намерения агента в вызовы API шлюза.

  • Бэкенд-шлюз (самостоятельное развёртывание): взаимодействует с API «контактов с клиентами» WeChat Work, отвечает за реальную синхронизацию клиентов, массовые рассылки, моменты и т. д., проверяет личность этого сервера через MCP_API_TOKEN.


Функции и список инструментов

Только чтение / обнаружение

Инструмент

Описание

list_accounts

Список настроенных учётных записей WeChat Work в шлюзе (список corpid)

list_members(corpid)

Список участников (userID) в учётной записи, кандидаты на отправителя рассылки/момента

list_tags(corpid)

Список тегов клиентов (tag_id + название)

search_contacts(corpid, keyword, tag_id, userid, page, size)

Поиск клиентов (external_userid + название + теги)

list_contents(corpid, kind, tag, scene, kw, page, size)

Просмотр библиотеки контента (изображения/видео/ссылки)

get_content(cid)

Получение деталей одного элемента контента

list_group_send_tasks(corpid, page, size, status)

Список исторических задач массовой рассылки

get_task_status(task_id, corpid)

Запрос статуса выполнения и квитанций задачи массовой рассылки

list_moment_rules(corpid)

Список правил SOP для моментов

Действия (по умолчанию только предпросмотр, реальная отправка только при confirm=true)

Инструмент

Описание

preview_group_send(...)

Предпросмотр рассылки: проверка параметров + оценка количества получателей, без отправки

create_group_send(confirm, ...)

Создание корпоративной рассылки; confirm=false — только предпросмотр

create_moment_rule(confirm, ...)

Создание SOP для моментов; confirm=false — только предпросмотр

cancel_group_send(task_id, account)

Остановка ожидающей отправки задачи массовой рассылки

cancel_moment_task(task_id)

Остановка незавершённой задачи момента

get_moment_task_result(task_id)

Запрос окончательного статуса публикации задачи момента

resolve_content(cid, target)

Преобразование элемента библиотеки контента в структуру, готовую к отправке (автоматическое получение media_id)


Предпосылки

  1. Развёрнут бэкенд-шлюз WeChat Work, и получены:

    • Адрес admin API бэкенда (в виде https://gateway.your-domain.com/api/v1/admin)

    • Сервисный токен MCP_API_TOKEN, выданный бэкендом

  2. Локально Python 3.10+

  3. MCP-совместимый клиент агента (например, WorkBuddy)


Быстрый старт

# 1) 克隆
git clone https://github.com/stevebi88/wecom-gateway-mcp.git
cd wecom-gateway-mcp

# 2) 配置环境变量(复制模板,填入你自己的网关地址与令牌)
cp .env.example .env
#   编辑 .env:
#     WG_BASE_URL=https://gateway.your-domain.com/api/v1/admin
#     WG_API_TOKEN=你网关后端分配的令牌

# 3) 安装并注册到 WorkBuddy(自动建 venv + 装依赖 + 写 mcp.json)
python3 install.py

После завершения найдите wechat-gateway в разделе «Коннекторы» слева в WorkBuddy и нажмите Trust, чтобы включить. После включения можно сразу сказать ИИ:

«Отправь всем клиентам с тегом VIP эту массовую рассылку с текстом о весеннем равноденствии»

Агент сам: найдёт тег → оценит количество → предпросмотр → (после вашего подтверждения) создаст задачу массовой рассылки.


Параметры конфигурации

Переменная

Обязательно

По умолчанию

Описание

WG_BASE_URL

Да

https://your-wechat-gateway.example.com/api/v1/admin

Базовый адрес admin API шлюза (без завершающего слэша)

WG_API_TOKEN

Да

пусто

MCP_API_TOKEN бэкенда шлюза, для Bearer-аутентификации


Ручное подключение (без использования установщика)

В «Управлении коннекторами» WorkBuddy вручную добавьте MCP- stdio:

{
  "mcpServers": {
    "wechat-gateway": {
      "command": "/绝对路径/wechat-gateway-mcp/.venv/bin/python",
      "args": ["/绝对路径/wechat-gateway-mcp/server.py"],
      "env": {
        "WG_BASE_URL": "https://gateway.your-domain.com/api/v1/admin",
        "WG_API_TOKEN": "你网关后端分配的令牌"
      },
      "disabled": false
    }
  }
}

Или запустите напрямую через run.sh (он читает .env из той же директории).


Защитные барьеры

  • Все реальные отправки (create_group_send / create_moment_rule) по умолчанию имеют confirm=falseтолько предпросмотр, без отправки.

  • Только когда агент явно указывает confirm=true, происходит реальный вызов API шлюза.

  • Бэкенд-шлюз аутентифицируется сервисным токеном MCP_API_TOKEN; этот сервер и токен используются только между вашим собственным шлюзом и локальной машиной.

  • .env содержит токен, он игнорируется .gitignore; храните его надёжно, никогда не коммитьте и не раскрывайте.


Развёртывание бэкенд-шлюза (обзор)

Код бэкенда не в этом репозитории. Ниже — референсная архитектура для развёртывания шлюза, к которому подключается этот MCP, чтобы вы могли самостоятельно его построить или проверить окружение.

Рекомендуемый стек (пример): FastAPI (ASGI) + gunicorn + Nginx + Redis + SQLAlchemy, Python 3.12.

Ключевые возможности / конфигурации, которые должен предоставлять бэкенд:

  • Учётные данные «контактов с клиентами» WeChat Work (corpid / secret / agentid и т. д.), хранятся самим бэкендом, не кладите их в этот MCP-репозиторий.

  • Предоставление admin API (пути, которые вызывает этот сервер: /accounts, /tags, /contacts, /contents, /group_send/*, /moment/*, /media/{id}/media_id и т. д.).

  • В .env бэкенда должен быть MCP_API_TOKEN, значение которого совпадает с WG_API_TOKEN этого сервера, для проверки личности вызывающего.

  • Медиа-материалы рекомендуется переносить в объектное хранилище (например, COS), чтобы resolve_content не выдавал ошибку при получении media_id из-за истечения срока действия материала.

После развёртывания получите базовый адрес admin и MCP_API_TOKEN и заполните их в .env этого репозитория.


Известные проблемы с данными

Если исторические мигрированные материалы не перенесены в объектное хранилище, при отправке изображений/видео resolve_content при получении media_id может выдавать ошибку «материал истёк». Отправка чистого текста / ссылок не затрагивается; для отправки изображений бэкенду нужно повторно загрузить материал или перенести его в объектное хранилище.


Лицензия

MIT

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    C
    quality
    C
    maintenance
    MCP server for WeCom customer contact API, enabling LLMs to manage customers, tags, group chats, moments, and mass-send messages.
    13
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server that connects AI agents to WhatsApp using the multi-device API, enabling messaging, group management, and more as a regular user.
    15
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server for WeChat automation, supporting message sending, chat history retrieval, and contact list management via SSE protocol.
    5

View all related MCP servers

Related MCP Connectors

  • Managed LinkedIn MCP server for AI agents: search, connect, message and enrich on accounts you own.

  • MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.

  • Self-hosted MCP gateway: turn any API, database or MCP server into AI connectors — no code.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/stevebi88/wecom-gateway-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server