WeChat Official Account MCP Server (Go)

Um servidor Go de alto desempenho para gerenciar Contas Oficiais do WeChat, com suporte a rascunhos, publicação e gerenciamento de materiais.

Documentação

Servidor MCP para Contas Oficiais do WeChat (Versão Go)

Este é um servidor Model Context Protocol (MCP) para Contas Oficiais do WeChat, reimplementado em Go, desenvolvido com o framework mark3labs/mcp-go.

✨ Recursos

  • 🚀 Alto desempenho: Implementado em Go, com inicialização rápida e baixo consumo de memória
  • 📦 Containerizado: Suporte completo a Docker, implantação com um clique
  • 🔧 Implantação simples: Arquivo binário único, sem dependências
  • 🛡️ Segurança de tipos: Verificação de erros em tempo de compilação
  • 🔄 Totalmente compatível: API totalmente compatível com a versão Python
  • 📊 Logs estruturados: Facilita depuração e monitoramento

📋 Lista de recursos

Suporta 5 ferramentas principais de gerenciamento de Contas Oficiais do WeChat:

  1. WeChat_get_access_token - Obtém o access_token da Conta Oficial do WeChat
  2. WeChat_create_draft - Cria rascunho de mensagem de imagem e texto
  3. WeChat_publish_draft - Publica rascunho na Conta Oficial
  4. WeChat_del_draft - Exclui rascunho não publicado
  5. WeChat_del_material - Exclui material permanente

🚀 Início rápido

Opção 1: Usando Docker (recomendado)

# 1. 构建并运行
make docker-run

# 2. 查看日志
docker logs wechat-oa-mcp-server

Opção 2: Build local

# 1. 安装依赖
make deps

# 2. 构建
make build

# 3. 运行
make run

🐳 Uso com Docker

Criar imagem

docker build -t wechat-oa-mcp-go:latest .

Executar contêiner

docker run -it --name wechat-oa-mcp-server wechat-oa-mcp-go:latest

Usar docker-compose

# 启动服务
docker-compose up -d

# 查看日志
docker-compose logs -f

# 停止服务
docker-compose down

🎛️ Configuração no Cursor

Adicione a seguinte configuração às configurações de MCP do Cursor:

{
  "mcpServers": {
    "wechat-oa-mcp-go": {
      "command": "/path/to/wechat-oa-mcp-go/bin/wechat-oa-mcp",
      "env": {
        "LOG_LEVEL": "info"
      }
    }
  }
}

Ou use o método com Docker:

{
  "mcpServers": {
    "wechat-oa-mcp-go": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "wechat-oa-mcp-go:latest"]
    }
  }
}

🔧 Notas de desenvolvimento

Estrutura do projeto

wechat-oa-mcp-go/
├── cmd/main.go              # 主程序入口
├── internal/handlers/       # MCP 工具处理器
├── pkg/wechat/             # 微信 API 客户端
├── Dockerfile              # 容器构建文件
├── Makefile               # 构建脚本
├── go.mod                 # Go 模块依赖
└── README.md              # 本文档

Adicionar nova ferramenta

  1. Adicione funções do cliente de API em pkg/wechat/
  2. Implemente os manipuladores de ferramentas MCP em internal/handlers/
  3. Registre a nova ferramenta em cmd/main.go

Comandos de build

# 查看所有可用命令
make help

# 构建二进制文件
make build

# 运行测试
make test

# 清理构建文件
make clean

# 下载依赖
make deps

# Docker 相关
make docker-build    # 构建镜像
make docker-run      # 运行容器
make docker-clean    # 清理容器和镜像

🌟 Vantagens de desempenho

Comparado à versão Python:

  • Velocidade de inicialização: 20 a 30 vezes mais rápida
  • Consumo de memória: redução de 60 a 70%
  • Tempo de resposta: 2 a 4 vezes mais rápido
  • Implantação simples: binário de arquivo único, sem dependências de runtime

🔄 Compatibilidade de API

A versão Go é totalmente compatível com a API da versão Python:

  • Mesmos nomes e parâmetros de ferramentas
  • Mesmo formato de resposta
  • Mesmo tratamento de erros

Pode substituir perfeitamente a implementação Python existente.

🔍 Depuração e logs

O servidor gera logs detalhados no stderr durante a inicialização, incluindo:

  • Status de registro das ferramentas
  • Processo de tratamento de solicitações
  • Mensagens de erro e stack traces

Defina a variável de ambiente LOG_LEVEL=debug para obter informações de depuração mais detalhadas.

📄 Licença

Este projeto está sob a mesma licença da versão Python original.

🤝 Contribuições

Issues e Pull Requests são bem-vindos!

📞 Suporte

Em caso de dúvidas, consulte:

  • IMPLEMENTATION.md - Explicação detalhada da implementação
  • README-GO.md - Documentação específica da versão Go