WeChat Mini Program Dev MCP
WeChat Mini Program MCP Server
Ein auf FastMCP basierender Server, der die WeChat Developer Tools über miniprogram-automator automatisiert. Der Server stellt MCP-Tools bereit, mit denen KI-Assistenten Mini-Programm-Seiten navigieren, prüfen und bearbeiten können – ähnlich wie playwright-mcp, aber speziell für das WeChat-Ökosystem angepasst.
Voraussetzungen
WeChat Developer Tools sind installiert und unterstützen den Befehlszeilenzugriff (
cli/cli.bat)Node.js 18+ und
npmsind lokal installiertEin Mini-Programm-Projekt, das in den Developer Tools geöffnet werden kann
Related MCP server: miniprogram-automator-mcp
Schnellstart (npm-Paket)
@yfme/weapp-dev-mcp wurde auf npm veröffentlicht. Normale Benutzer müssen das Repository nicht klonen oder node dist/index.js manuell ausführen.
Ausführung mit npx
npx -y @yfme/weapp-dev-mcpInstallation im Projekt/Global
npm install -g @yfme/weapp-dev-mcp
weapp-dev-mcpOder als Projektabhängigkeit:
npm install --save-dev @yfme/weapp-dev-mcp
npx weapp-dev-mcpNur bei der Entwicklung innerhalb dieses Repositorys wird empfohlen,
node dist/index.jsdirekt auszuführen. Allgemeine Benutzer sollten den oben genannten npm-Paket-Weg verwenden.
MCP-Client-Integration
Konfiguration
Um diesen Server in Claude Desktop oder anderen MCP-Clients zu verwenden, fügen Sie Folgendes zur Konfigurationsdatei hinzu:
{
"mcpServers": {
"weapp-dev": {
"command": "npx",
"args": [
"-y",
"@yfme/weapp-dev-mcp"
],
"env": {
"WEAPP_WS_ENDPOINT": "ws://localhost:9420"
}
}
}
}Claude Code automatische Tool-Genehmigung
Da beim Aufruf von MCP-Tools mit Claude Code eine Genehmigungsanfrage für Tool-Aufrufe ausgelöst wird, kann dabei der Verbindungsstatus zwischen MCP und den WeChat Developer Tools verloren gehen. Da der Abruf von Konsolenausgaben stark vom Verbindungsstatus abhängt, kann es zu Problemen beim konsistenten Abruf von Protokollen kommen. Daher wird empfohlen, Berechtigungen manuell hinzuzufügen:
Erstellen Sie im Projektverzeichnis eine .claude/settings.local.json-Datei oder fügen Sie den folgenden Inhalt zu einer bestehenden Datei hinzu, um Tools ohne Bestätigung direkt aufzurufen, oder fügen Sie nach Bedarf die Tools hinzu, die Sie ohne Bestätigung aufrufen möchten:
{
"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"
]
}
}Hinweis: Das Tool-Namensformat ist
mcp__<Servername>__<Toolname>. Stellen Sie sicher, dass der Servername mit dem Namen in Ihrer MCP-Konfiguration übereinstimmt.
Starten der WeChat Developer Tools
Bevor Sie den MCP-Server verwenden, müssen Sie die WeChat Developer Tools starten und den WebSocket-Dienst aktivieren.
💡 Bevor Sie beginnen:
Öffnen Sie die WeChat Developer Tools
Gehen Sie zu Einstellungen → Sicherheitseinstellungen → Dienst-Port
Aktivieren Sie "HTTP-Debugging" und "Automatisierte Tests"
Starten über die Befehlszeile
Verwenden Sie die Befehlszeile, um die WeChat Developer Tools zu starten und den WebSocket-Dienst automatisch zu aktivieren:
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 9420Dabei gilt:
Der Parameter
--projectgibt den Pfad zum Mini-Programm-Projektverzeichnis an (bitte durch den tatsächlichen Projektpfad ersetzen)Der Parameter
--auto-portgibt den WebSocket-Dienst-Port an (Standard 9420)
⚠️ Warnung Aufgrund des Sandbox-Mechanismus erlauben einige Clients MCP nicht, auf die CLI der WeChat Developer Tools außerhalb des Projektverzeichnisses zuzugreifen, daher wurde hier nur die Verwendung des WebSocket-Dienstes beschrieben.
Umgebungsvariablen-Konfiguration
Steuern Sie über Umgebungsvariablen, wie das Automatisierungstool eine Verbindung zu den WeChat Developer Tools herstellt:
Variable | Beschreibung |
| [Empfohlen] WebSocket-Endpunkt der bereits laufenden Developer Tools. Nach der Einstellung verwendet der Server den |
| Pfad zur CLI der WeChat Developer Tools (optional, falls der Standardpfad funktioniert). |
| Erzwingt den |
| Bevorzugter Port beim Starten der Developer Tools (fällt auf verfügbare Ports zurück). |
| Start-Timeout in Millisekunden (Standard 30000). |
| Wird an |
| Wird beim Start an |
| Auf |
| Zusätzliche CLI-Argumente beim Start (durch Leerzeichen getrennt). |
| Arbeitsverzeichnis, das an den Prozess der Developer Tools übergeben wird. |
| Wenn auf |
| Wenn auf |
| Start-Timeout in Millisekunden (Standard 45000). |
| Verbindungs-Timeout in Millisekunden (Standard 45000). |
| Pfad zum Mini-Programm-Projekt (optional). |
Hinweis: Beim Starten der Developer Tools (
launch-Modus) muss das Mini-Programm-Projektverzeichnis über die MCP-Tool-Parameter bereitgestellt werden: Geben Sie es vor der Ausführung überconnection.projectPathan (z. B. übermp_ensureConnection). Dieser Wert bleibt nach der Einrichtung für nachfolgende Aufrufe bestehen.
Tool-Aufrufe können die meisten dieser Standardwerte über das connection-Objekt überschreiben.
Verfügbare Tools
Anwendungstools (Application Tools)
mp_ensureConnection– Stellt sicher, dass die Automatisierungssitzung bereit ist; optionales Erzwingen einer Neuverbindung oder Überschreiben der Verbindungseinstellungenmp_navigate– Navigation innerhalb des Mini-Programms, unterstütztnavigateTo,redirectTo,reLaunch,switchTabodernavigateBackmp_screenshot– Erfasst einen Screenshot und gibt ihn zurück (oder speichert ihn auf der Festplatte)mp_callWx– Ruft WeChat Mini-Programm-API-Methoden auf (z. B.wx.showToast)mp_getLogs– Ruft Konsolenprotokolle des Mini-Programms ab, optional mit Löschung nach dem Abrufmp_currentPage– Ruft Informationen zur aktuellen Seite ab (Pfad, Abfrageparameter, Abmessungen, Scroll-Position); beiwithData: truewerden zusätzlich Seitendaten zurückgegebenmp_listProjects– Listet die letzten Projekte in den WeChat Developer Tools auf, um die Auswahl des Projektverzeichnisses zu erleichternmp_setDefaultProject– Legt den Standardpfad für das Mini-Programm-Projekt fest; nach der Einstellung wird dieses Projekt bei der nächsten Verbindung automatisch verwendet
Seitentools (Page Tools)
page_getElement– Ruft ein Seitenelement über einen Selektor ab und gibt eine Zusammenfassung des Elements zurück (tagName, text, value, size, offset); beiwithWxml: truewird zusätzlich das vollständige outerWxml zurückgegeben; unterstützt die [index=N]-Syntax zur Auswahl des N-ten Elementspage_getElements– Ruft ein Array von Seitenelementen über einen Selektor ab; beiwithWxml: truewird zusätzlich das vollständige outerWxml für jedes Element zurückgegeben; unterstützt die [index=N]-Syntaxpage_waitElement– Wartet darauf, dass ein Element auf der Seite erscheint (⚠️ nicht für Elemente innerhalb benutzerdefinierter Komponenten geeignet); unterstützt die [index=N]-Syntax; zusätzliche Parameter für Timeout und Wiederholungsintervallpage_waitTimeout– Wartet für eine angegebene Anzahl von Millisekundenpage_getData– Ruft das Datenobjekt der aktuellen Seite ab, Pfad kann angegeben werden (unterstützt verschachtelte Pfade wie 'user.name')page_setData– Aktualisiert die Daten der aktuellen Seite mitsetData; zusätzliche verify-Option zur Überprüfung, ob die Daten erfolgreich aktualisiert wurdenpage_callMethod– Ruft eine Methode auf, die auf der aktuellen Seiteninstanz verfügbar ist
Elementtools (Element Tools)
element_tap– Simuliert einen Klick auf ein WXML-Element über einen CSS-Selektor; unterstützt die [index=N]-Syntax zur Auswahl des N-ten Elements; unterstützt Klicks mit x/y-Koordinaten-Offset; verbesserte Stabilität: wartet auf den interaktiven Status des Elements und überprüft nach dem Klick automatisch, ob sich der Seitenpfad geändert hatelement_input– Gibt Text in ein Element ein (geeignet fürinput- undtextarea-Komponenten)element_callMethod– Ruft eine Methode einer Instanz einer benutzerdefinierten Komponente aufelement_getData– Ruft die Rendering-Daten einer Instanz einer benutzerdefinierten Komponente abelement_setData– Legt die Rendering-Daten einer Instanz einer benutzerdefinierten Komponente festelement_getInnerElement– Ruft ein Element innerhalb eines Elements ab (entsprichtelement.$(selector)) und gibt eine Zusammenfassung zurück; beiwithWxml: truewird zusätzlich das vollständige outerWxml zurückgegebenelement_getInnerElements– Ruft ein Array von Elementen innerhalb eines Elements ab (entsprichtelement.$$(selector)) und gibt eine Zusammenfassung zurück; beiwithWxml: truewird zusätzlich das vollständige outerWxml für jedes Element zurückgegebenelement_getWxml– Ruft das WXML eines Elements ab (intern oder extern)element_getStyles– Ruft CSS-Stilwerte eines Elements ab, der Parameternamesist ein Array von Stilnamen (z. B.['color', 'fontSize'])element_scrollTo– Scrollt einescroll-view-Komponente an eine angegebene Position (x, y)element_getAttributes– Ruft Attributwerte eines Elements ab, der Parameternamesist ein Array von Attributnamen (z. B.['class', 'id', 'data-index'])element_getBoundingClientRect– Ruft Informationen zum Begrenzungsrechteck eines Elements relativ zum Viewport ab (left, top, width, height, right, bottom), unter Berücksichtigung von CSS-Transform-Transformationen (derzeit nur ID-Selektoren und Klassenselektoren unterstützt)
Jedes Tool akzeptiert einen optionalen connection-Block, um die Standardwerte der Umgebung (Projektpfad, CLI-Pfad, WebSocket-Endpunkt usw.) zu überschreiben.
Tipps zur Verwendung
Allgemeine Hinweise
Aktivieren Sie vor der Verbindung die Automatisierung in den WeChat Developer Tools (
Einstellungen → Sicherheitseinstellungen → Dienst-Port)Es wird empfohlen, zuerst
mp_ensureConnectionaufzurufen, um die Verbindung zu überprüfen und System-/Seiten-Details anzuzeigenDie Verwendung von
WEAPP_AUTOCLOSE=trueeignet sich für zustandslose Einmal-InteraktionenVerwenden Sie bei der Navigation immer absolute Pfade (beginnend mit
/):/pages/mine/mineVerwenden Sie
switchTabfür tabBar-Seiten undnavigateTofür normale Seiten
Bedienung benutzerdefinierter Komponenten
Es gibt zwei Methoden zur Bedienung benutzerdefinierter Komponenten:
Methode 1: Verwendung des innerSelector-Parameters (empfohlen)
Geeignet für Tools wie element_tap, element_input, element_getWxml usw.:
{
"selector": "#my-component",
"innerSelector": ".inner-button"
}selector: Selektor der benutzerdefinierten KomponenteinnerSelector: Selektor des internen Elements der Komponente
Methode 2: Verwendung von Element-Abfragetools
Geeignet für element_getInnerElement und element_getInnerElements:
{
"selector": "#my-component",
"targetSelector": ".inner-button"
}Einschränkungen
page_waitElementist nicht für Elemente innerhalb benutzerdefinierter Komponenten geeignet. Bitte verwenden Siepage_waitTimeoutin Verbindung mit Element-Abfragetools für eine Polling-Überprüfung.
Automatische Startfunktion (AutoLaunch)
Wenn WEAPP_AUTOLAUNCH=true konfiguriert ist, kann der MCP-Server die WeChat Developer Tools automatisch erkennen und starten:
Automatische Port-Erkennung: Erkennt, ob auf Port 9420 ein Dienst läuft
Starten, wenn kein Dienst vorhanden ist: Wenn der Port nicht belegt ist, wird die CLI automatisch aufgerufen, um die Developer Tools zu starten
Projektauswahl:
Wenn eine Standardprojektkonfiguration vorhanden ist, wird diese automatisch verwendet
Wenn kein Standardprojekt vorhanden ist, werden die letzten Projekte automatisch zur Auswahl aufgelistet
Unterstützt die Eingabe von Projektnummern (z. B.
1) oder vollständigen Pfaden
Konfigurationsbeispiel
{
"mcpServers": {
"weapp-dev": {
"command": "npx",
"args": ["-y", "weapp-dev-mcp"],
"env": {
"WEAPP_AUTOLAUNCH": "true",
"WEAPP_PROJECT_PATH": "D:\\path\\to\\your\\project"
}
}
}
}Arbeitsablauf
Bei der ersten Verbindung wird
WEAPP_AUTOLAUNCH=trueerkanntÜberprüfung, ob auf Port 9420 ein Dienst läuft
Wenn kein Dienst vorhanden ist, werden die Developer Tools automatisch gestartet (mit
cli.bat auto --project <path> --auto-port 9420)Warten von 45 Sekunden, bis die Developer Tools bereit sind
Aufbau der WebSocket-Verbindung
Nachfolgende Verbindungen verwenden automatisch die bestehende Verbindung
Tipp: Nachdem Sie mit
mp_setDefaultProjectein Standardprojekt festgelegt haben, müssen Sie bei der nächsten Verbindung kein Projekt mehr auswählen.
Available Tools
27 toolselement_callMethodB
调用组件实例指定方法,仅自定义组件可以使用。
Inputs: selector (required), method (required), connection, innerSelector, +1 more.
element_getAttributesC
获取元素的特性值。names 为特性名数组(如 ['class', 'id', 'data-index'])。
Inputs: selector (required), names (required), connection, innerSelector.
element_getBoundingClientRectA
获取元素相对于视口的边界矩形信息(left、top、width、height、right、bottom)。此方法返回的是考虑 CSS transform 变换后的实际渲染尺寸和位置。支持跨组件查询:若需获取自定义组件内部元素,可将 selector 设为组件选择器,innerSelector 设为内部元素选择器。注意:目前仅支持 ID 选择器、类选择器。
Inputs: selector (required), connection, innerSelector.
element_getDataC
获取组件实例渲染数据,仅自定义组件可以使用。
Inputs: selector (required), connection, innerSelector, path.
element_getInnerElementD
在元素范围内获取元素,相当于 element.$(selector)。设置 withWxml 为 true 可额外返回每个元素的完整 outerWxml。
Inputs: selector (required), targetSelector (required), connection, innerSelector, +1 more.
element_getInnerElementsC
在元素范围内获取元素数组,相当于 element.$$(selector)。设置 withWxml 为 true 可额外返回每个元素的完整 outerWxml。
Inputs: selector (required), targetSelector (required), connection, innerSelector, +1 more.
element_getStylesC
获取元素的样式值。names 为样式名数组(如 ['color', 'fontSize', 'backgroundColor'])。
Inputs: selector (required), names (required), connection, innerSelector.
element_getWxmlC
获取元素 WXML。默认获取内部 WXML(element.wxml()),设置 outer 为 true 可获取包含元素本身的 WXML(element.outerWxml())。
Inputs: selector (required), connection, innerSelector, outer.
element_inputC
向指定元素输入文本。
Inputs: selector (required), value (required), connection, innerSelector.
element_scrollToA
滚动 scroll-view 组件到指定位置。仅适用于 scroll-view 组件。
Inputs: selector (required), x (required), y (required), connection, +1 more.
element_setDataB
设置组件实例渲染数据,仅自定义组件可以使用。
Inputs: selector (required), data (required), connection, innerSelector.
element_tapA
通过 CSS 选择器模拟点击 WXML 元素。支持 [index=N] 语法选择第 N 个元素。如需点击自定义组件内部的元素,请使用 innerSelector 参数:selector 设为组件 ID 选择器(如 #my-component)或标签选择器,innerSelector 设为组件内部元素的选择器。
Inputs: selector (required), connection, innerSelector, waitMs.
mp_callWxC
调用微信小程序 API 方法,(如 wx.pageScrollTo)。
Inputs: method (required), connection, args.
mp_currentPageA
获取当前页面的信息,包括路径、查询参数、尺寸和滚动位置。通常在 mp_ensureConnection 成功后立即调用,用于确认当前页面。withData 为 true 时额外返回页面数据。
Inputs: connection, withData.
mp_ensureConnectionA
检查小程序自动化会话是否就绪。先调用这个工具,再调用 mp_screenshot、page_* 或 element_* 工具。若失败,优先用 reconnect=true 重试一次;若返回项目选择提示,则传 projectSelection。
Inputs: connection, reconnect, projectSelection.
mp_getLogsC
获取小程序控制台日志。可选择在获取后清空日志。
Inputs: connection, clear.
mp_listProjectsB
列出微信开发者工具中的最近项目,方便在 mp_ensureConnection 返回项目选择提示后继续选择项目。
Inputs: no named parameters.
mp_screenshotA
截取当前小程序视口的截图。需要已有活动会话;若提示没有活动会话,请先调用 mp_ensureConnection。默认返回内联图片,或保存到文件路径。
Inputs: connection, path.
mp_setDefaultProjectA
设置默认的小程序项目路径,设置后下次连接会优先使用该项目。通常用于修复项目选择失败后的后续重试。
Inputs: projectPath (required).
page_callMethodC
调用当前页面实例上暴露的方法。参数可以作为数组提供。
Inputs: method (required), connection, args.
page_getDataC
获取当前页面的数据对象,可选择指定子数据路径。
Inputs: connection, path.
page_getElementB
通过选择器获取页面元素,相当于 page.$(selector)。返回每个元素的摘要信息(tagName、text、value、size、offset);设置 withWxml 为 true 可额外返回元素的完整 outerWxml。支持 [index=N] 语法选择第 N 个元素。
Inputs: selector (required), connection, innerSelector, withWxml.
page_getElementsA
通过选择器获取页面元素数组,相当于 page.$$(selector)。返回每个元素的摘要信息(tagName、text、value、size、offset);设置 withWxml 为 true 可额外返回每个元素的完整 outerWxml。支持 [index=N] 语法选择第 N 个元素。
Inputs: selector (required), connection, withWxml.
page_setDataC
使用 setData 更新当前页面的数据。
Inputs: data (required), connection.
page_waitElementC
等待指定选择器的元素出现在页面上。支持 [index=N] 语法选择第 N 个元素。增强版:增加了超时和重试间隔参数。
Inputs: selector (required), connection, timeout, retryInterval.
page_waitTimeoutC
等待指定的毫秒数。
Inputs: milliseconds (required), connection.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 27 tools
Each tool targets a distinct action within its category (element, mp, page). Within each group, operations like getAttributes, getBoundingClientRect, getData are clearly different. No two tools overlap in purpose.
All tools follow a consistent pattern: category_verbNoun (e.g., element_tap, mp_navigate, page_setData). Underscore separation and camelCase for the verb+noun are uniform across all 27 tools.
With 27 tools, the count is on the higher side but well-justified by the broad scope (element manipulation, page control, and mini-program API calls). It's reasonably scoped for a comprehensive development assistant.
The tool set covers core operations: element querying/interaction, page data management, and mini-program API invocation. Minor gaps like gesture simulation or file operations exist, but the essential CRUD and lifecycle actions are present.
Maintenance
Related MCP Connectors
Live browser debugging for AI assistants — DOM, console, network via MCP.
Control a real browser from AI agents: navigate, click, type, screenshot, read the page.
AI-powered web automation. Navigate websites using AI agents for one page or a thousand
AI-powered web automation. Navigate websites using AI agents for one page or a thousand
Related MCP Servers
- AlicenseBqualityCmaintenanceEnables automated testing of WeChat mini-programs via Model Context Protocol, providing tools for connecting to WeChat Developer Tools, querying and interacting with page elements, making assertions, navigating, and debugging.2032 npm78MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to automate WeChat mini-programs via launch or connect modes, providing a stable interaction tree for observation and operation.17 npmMIT
- AlicenseBqualityCmaintenanceEnables AI assistants to control WeChat mini-programs running in WeChat Developer Tools through MCP tools. Provides automation capabilities for launching, navigating, querying, and interacting with pages and elements.6126 npm1MIT
- -licenseNot gradedqualityNot gradedmaintenanceEnables AI agents to debug and control WeChat Mini Programs through WeChat DevTools, including direct automator operations and CLI-backed features like screenshots, logs, previews, and uploads.-