WeChat Mini Program Dev MCP
Servidor MCP para Mini Programas de WeChat
Un servidor basado en FastMCP que automatiza las Herramientas de Desarrollo de WeChat a través de miniprogram-automator. Este servidor proporciona herramientas MCP que permiten a los asistentes de IA navegar, inspeccionar y manipular páginas de mini programas, similar a playwright-mcp, pero personalizado para el ecosistema de WeChat.
Requisitos previos
Tener instaladas las Herramientas de Desarrollo de WeChat con soporte para acceso por línea de comandos (
cli/cli.bat).Node.js 18+ y
npminstalados localmente.Un proyecto de mini programa que se pueda abrir en las herramientas de desarrollo.
Inicio rápido (paquete npm)
@yfme/weapp-dev-mcp ha sido publicado en npm; los usuarios comunes no necesitan clonar el repositorio ni ejecutar manualmente node dist/index.js.
Ejecutar con npx
npx -y @yfme/weapp-dev-mcpInstalar en el proyecto/globalmente
npm install -g @yfme/weapp-dev-mcp
weapp-dev-mcpO como dependencia del proyecto:
npm install --save-dev @yfme/weapp-dev-mcp
npx weapp-dev-mcpSolo se recomienda ejecutar
node dist/index.jsdirectamente cuando se desarrolla dentro de este repositorio. Los usuarios generales deben iniciar siguiendo el método del paquete npm anterior.
Integración con clientes MCP
Configuración
Para usar este servidor en Claude Desktop u otros clientes MCP, añada lo siguiente al archivo de configuración:
{
"mcpServers": {
"weapp-dev": {
"command": "npx",
"args": [
"-y",
"@yfme/weapp-dev-mcp"
],
"env": {
"WEAPP_WS_ENDPOINT": "ws://localhost:9420"
}
}
}
}Autorización automática de herramientas en Claude Code
Debido a que al usar Claude Code para invocar herramientas MCP se solicita permiso de ejecución, esto puede provocar la pérdida del estado de conexión entre el MCP y las Herramientas de Desarrollo de WeChat. Dado que la obtención de la salida de la consola depende en gran medida del estado de la conexión, no será posible obtener registros de forma coherente, por lo que se recomienda añadir permisos manualmente:
Cree un archivo .claude/settings.local.json en el directorio del proyecto, o añada el siguiente contenido a un archivo existente para permitir la invocación directa sin confirmación, o añada las herramientas que desee permitir:
{
"permissions": {
"allow": [
"mcp__weapp-dev-mcp__mp_ensureConnection",
"mcp__weapp-dev-mcp__mp_navigate",
"mcp__weapp-dev-mcp__mp_screenshot",
"mcp__weapp-dev-mcp__mp_callWx",
"mcp__weapp-dev-mcp__mp_getLogs",
"mcp__weapp-dev-mcp__mp_currentPage",
"mcp__weapp-dev-mcp__mp_listProjects",
"mcp__weapp-dev-mcp__mp_setDefaultProject",
"mcp__weapp-dev-mcp__page_getElement",
"mcp__weapp-dev-mcp__page_getElements",
"mcp__weapp-dev-mcp__page_waitElement",
"mcp__weapp-dev-mcp__page_waitTimeout",
"mcp__weapp-dev-mcp__page_getData",
"mcp__weapp-dev-mcp__page_setData",
"mcp__weapp-dev-mcp__page_callMethod",
"mcp__weapp-dev-mcp__element_tap",
"mcp__weapp-dev-mcp__element_input",
"mcp__weapp-dev-mcp__element_callMethod",
"mcp__weapp-dev-mcp__element_getData",
"mcp__weapp-dev-mcp__element_setData",
"mcp__weapp-dev-mcp__element_getInnerElement",
"mcp__weapp-dev-mcp__element_getInnerElements",
"mcp__weapp-dev-mcp__element_getWxml",
"mcp__weapp-dev-mcp__element_getStyles",
"mcp__weapp-dev-mcp__element_scrollTo",
"mcp__weapp-dev-mcp__element_getAttributes",
"mcp__weapp-dev-mcp__element_getBoundingClientRect"
]
}
}Nota: El formato del nombre de la herramienta es
mcp__<nombre-servidor>__<nombre-herramienta>. Asegúrese de que el nombre del servidor coincida con el de su configuración MCP.
Iniciar las Herramientas de Desarrollo de WeChat
Antes de usar el servidor MCP, debe iniciar las Herramientas de Desarrollo de WeChat y habilitar el servicio WebSocket.
💡 Antes de comenzar:
Abra las Herramientas de Desarrollo de WeChat.
Vaya a Configuración → Configuración de seguridad → Puerto de servicio.
Habilite "Depuración HTTP" y "Pruebas automatizadas".
Iniciar mediante línea de comandos
Use la línea de comandos para iniciar las Herramientas de Desarrollo de WeChat y habilitar automáticamente el servicio WebSocket:
macOS/Linux:
/Applications/wechatwebdevtools.app/Contents/MacOS/cli auto --project /path/to/your/project --auto-port 9420Windows:
"C:\Program Files (x86)\Tencent\微信web开发者工具\cli.bat" auto --project C:\path\to\your\project --auto-port 9420Donde:
El parámetro
--projectespecifica la ruta del directorio del proyecto del mini programa (reemplácelo por la ruta real).El parámetro
--auto-portespecifica el puerto del servicio WebSocket (por defecto 9420).
⚠️ Advertencia Debido al mecanismo de sandbox, algunos clientes no permiten que el MCP acceda al CLI de las Herramientas de Desarrollo de WeChat fuera del directorio del proyecto, por lo que aquí solo se ha introducido el uso del servicio WebSocket.
Configuración de variables de entorno
Controle cómo la herramienta de automatización se conecta a las Herramientas de Desarrollo de WeChat mediante variables de entorno:
Variable | Descripción |
| 【Recomendado】 Punto final WebSocket de las herramientas de desarrollo ya en ejecución. Si se establece, el servidor usa el modo |
| Ruta del CLI de las Herramientas de Desarrollo de WeChat (opcional si la ruta por defecto es válida). |
| Fuerza el uso del modo |
| Puerto preferido al iniciar las herramientas de desarrollo (vuelve a un puerto disponible). |
| Tiempo de espera de inicio (ms, por defecto 30000). |
| Pasado a |
| Pasado a |
| Establecer en |
| Argumentos CLI adicionales al iniciar (separados por espacios). |
| Directorio de trabajo pasado al proceso de las herramientas de desarrollo. |
| Si se establece en |
| Si se establece en |
| Tiempo de espera de inicio (ms, por defecto 45000). |
| Tiempo de espera de conexión (ms, por defecto 45000). |
| Ruta del proyecto del mini programa (opcional). |
Nota: Al iniciar las herramientas de desarrollo (modo
launch), debe proporcionar el directorio del proyecto del mini programa a través de los parámetros de la herramienta MCP: proporciónelo a través deconnection.projectPathantes de realizar operaciones (por ejemplo, mediantemp_ensureConnection). Una vez establecido, este valor persistirá en llamadas posteriores.
Las llamadas a herramientas pueden sobrescribir la mayoría de estos valores predeterminados a través del objeto connection.
Herramientas disponibles
Herramientas de aplicación (Application Tools)
mp_ensureConnection– Asegura que la sesión de automatización esté lista; permite forzar la reconexión o sobrescribir la configuración de conexión.mp_navigate– Navega dentro del mini programa, admitenavigateTo,redirectTo,reLaunch,switchTabonavigateBack.mp_screenshot– Captura una captura de pantalla y la devuelve (o la guarda en el disco).mp_callWx– Llama a métodos de la API de mini programas de WeChat (comowx.showToast).mp_getLogs– Obtiene los registros de la consola del mini programa, con opción de borrarlos después de obtenerlos.mp_currentPage– Obtiene información de la página actual (ruta, parámetros de consulta, dimensiones, posición de desplazamiento); siwithDataes true, devuelve adicionalmente los datos de la página.mp_listProjects– Lista los proyectos recientes en las Herramientas de Desarrollo de WeChat para facilitar la selección del directorio del proyecto.mp_setDefaultProject– Establece la ruta predeterminada del proyecto del mini programa; una vez establecida, la próxima conexión usará automáticamente este proyecto.
Herramientas de página (Page Tools)
page_getElement– Obtiene un elemento de la página mediante un selector, devuelve un resumen del elemento (tagName, text, value, size, offset); establecerwithWxml: truedevuelve adicionalmente el outerWxml completo; admite la sintaxis [index=N] para seleccionar el N-ésimo elemento.page_getElements– Obtiene una matriz de elementos de la página mediante un selector, devuelve un resumen de cada elemento; establecerwithWxml: truedevuelve adicionalmente el outerWxml completo de cada elemento; admite la sintaxis [index=N].page_waitElement– Espera a que un elemento aparezca en la página (⚠️ no aplicable a elementos dentro de componentes personalizados); admite la sintaxis [index=N]; añade parámetros de tiempo de espera e intervalo de reintento.page_waitTimeout– Espera un número específico de milisegundos.page_getData– Obtiene el objeto de datos de la página actual, se puede especificar una ruta (admite rutas anidadas como 'user.name').page_setData– Actualiza los datos de la página actual usandosetData; añade la opción verify para verificar si los datos se actualizaron correctamente.page_callMethod– Llama a un método expuesto en la instancia de la página actual.
Herramientas de elemento (Element Tools)
element_tap– Simula un clic en un elemento WXML mediante un selector CSS; admite la sintaxis [index=N] para seleccionar el N-ésimo elemento; admite clics con desplazamiento de coordenadas x/y; mayor estabilidad: espera a que el elemento sea interactivo y verifica automáticamente si la ruta de la página cambió después del clic.element_input– Introduce texto en un elemento (aplicable a componentesinputytextarea).element_callMethod– Llama a un método de una instancia de componente personalizado.element_getData– Obtiene los datos de renderizado de una instancia de componente personalizado.element_setData– Establece los datos de renderizado de una instancia de componente personalizado.element_getInnerElement– Obtiene un elemento dentro de otro elemento (equivalente aelement.$(selector)), devuelve un resumen del elemento; establecerwithWxml: truedevuelve adicionalmente el outerWxml completo.element_getInnerElements– Obtiene una matriz de elementos dentro de otro elemento (equivalente aelement.$$(selector)), devuelve un resumen del elemento; establecerwithWxml: truedevuelve adicionalmente el outerWxml completo de cada elemento.element_getWxml– Obtiene el WXML de un elemento (interno o externo).element_getStyles– Obtiene los valores de estilo CSS de un elemento, el parámetro names es una matriz de nombres de estilo (como['color', 'fontSize']).element_scrollTo– Desplaza un componente scroll-view a una posición específica (x, y).element_getAttributes– Obtiene los valores de los atributos de un elemento, el parámetro names es una matriz de nombres de atributos (como['class', 'id', 'data-index']).element_getBoundingClientRect– Obtiene información del rectángulo delimitador del elemento en relación con la ventana gráfica (left, top, width, height, right, bottom), considerando transformaciones CSS (actualmente solo admite selectores de ID y clase).
Cada herramienta acepta un bloque connection opcional para sobrescribir los valores predeterminados del entorno (ruta del proyecto, ruta del CLI, punto final WebSocket, etc.).
Consejos de uso
Consejos generales
Antes de conectar, habilite la automatización en las Herramientas de Desarrollo de WeChat (
Configuración → Configuración de seguridad → Puerto de servicio).Se recomienda llamar primero a
mp_ensureConnectionpara verificar la conexión y ver los detalles del sistema/página.Usar
WEAPP_AUTOCLOSE=truees adecuado para interacciones únicas sin estado.Use siempre rutas absolutas al navegar (comenzando con
/):/pages/mine/mine.Use
switchTabpara páginas de la barra de pestañas (tabBar) ynavigateTopara páginas normales.
Operar con componentes personalizados
Al operar con componentes personalizados, hay dos métodos:
Método 1: Usar el parámetro innerSelector (recomendado)
Aplicable a herramientas como element_tap, element_input, element_getWxml, etc.:
{
"selector": "#my-component",
"innerSelector": ".inner-button"
}selector: Selector del componente personalizado.innerSelector: Selector del elemento dentro del componente.
Método 2: Usar herramientas de consulta dentro de elementos
Aplicable a element_getInnerElement y element_getInnerElements:
{
"selector": "#my-component",
"targetSelector": ".inner-button"
}Limitaciones
page_waitElementno es aplicable a elementos dentro de componentes personalizados. Utilicepage_waitTimeoutjunto con herramientas de consulta de elementos para realizar comprobaciones de sondeo.
Función de inicio automático (AutoLaunch)
Cuando se configura WEAPP_AUTOLAUNCH=true, el servidor MCP puede detectar e iniciar automáticamente las Herramientas de Desarrollo de WeChat:
Detección automática de puerto: Detecta si hay un servicio ejecutándose en el puerto 9420.
Iniciar si no hay servicio: Si el puerto no está ocupado, llama automáticamente al CLI para iniciar las herramientas de desarrollo.
Selección de proyecto:
Si hay una configuración de proyecto predeterminada, se usa automáticamente.
Si no hay un proyecto predeterminado, se listan automáticamente los proyectos recientes para elegir.
Admite ingresar el número de proyecto (por ejemplo,
1) o la ruta completa.
Ejemplo de configuración
{
"mcpServers": {
"weapp-dev": {
"command": "npx",
"args": ["-y", "weapp-dev-mcp"],
"env": {
"WEAPP_AUTOLAUNCH": "true",
"WEAPP_PROJECT_PATH": "D:\\path\\to\\your\\project"
}
}
}
}Flujo de trabajo
En la primera conexión, se detecta
WEAPP_AUTOLAUNCH=true.Se comprueba si hay un servicio en el puerto 9420.
Si no hay servicio, se inician automáticamente las herramientas de desarrollo (usando
cli.bat auto --project <path> --auto-port 9420).Se esperan 45 segundos para que las herramientas de desarrollo estén listas.
Se establece la conexión WebSocket.
Las conexiones posteriores reutilizan automáticamente la conexión existente.
Sugerencia: Después de configurar el proyecto predeterminado con
mp_setDefaultProject, no es necesario volver a seleccionar el proyecto en la próxima conexión.
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Appeared in Searches
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/yfmeii/weapp-dev-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server