Skip to main content
Glama
yfmeii

WeChat Mini Program Dev MCP

by yfmeii

element_setData

Update rendering data for custom components in WeChat Mini Programs using selector targeting to modify component states during development.

Instructions

设置组件实例渲染数据,仅自定义组件可以使用。需要 automator 0.6.0 和基础库 2.9.0 及以上版本。使用 ID 选择器(如 #my-component)定位自定义组件。

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
connectionNo
selectorYes
innerSelectorNo
dataYes

Implementation Reference

  • Full tool object returned by createSetElementDataTool, including the execute handler that resolves the element using resolveElement, calls element.setData with the provided data, computes updated data keys, and returns a textual confirmation.
    return {
      name: "element_setData",
      description: "设置组件实例渲染数据,仅自定义组件可以使用。需要 automator 0.6.0 和基础库 2.9.0 及以上版本。使用 ID 选择器(如 #my-component)定位自定义组件。",
      parameters: setElementDataParameters,
      execute: async (rawArgs, context: ToolContext) => {
        const args = setElementDataParameters.parse(rawArgs ?? {});
        return manager.withPage(
          context.log,
          { overrides: args.connection },
          async (page) => {
            const element = await resolveElement(
              page,
              args.selector,
              args.innerSelector
            );
    
            await element.setData(args.data);
            const dataKeys = Object.keys(args.data ?? {});
            return toTextResult(
              `已更新组件数据键: ${dataKeys.length ? dataKeys.join(", ") : "(无)"}。`
            );
          }
        );
      },
    };
  • Zod schema for tool parameters: connection container, selector (required string), optional innerSelector (string), and data (record of unknown).
    const setElementDataParameters = connectionContainerSchema.extend({
      selector: z.string().trim().min(1),
      innerSelector: z.string().trim().min(1).optional(),
      data: z.record(z.unknown()),
    });
  • The createElementTools function registers the element_setData tool by including createSetElementDataTool(manager) in its returned array of tools.
    export function createElementTools(
      manager: WeappAutomatorManager
    ): AnyTool[] {
      return [
        createTapElementTool(manager),
        createInputTextTool(manager),
        createCallElementMethodTool(manager),
        createGetElementDataTool(manager),
        createSetElementDataTool(manager),
        createGetInnerElementTool(manager),
        createGetInnerElementsTool(manager),
        createGetElementSizeTool(manager),
        createGetElementWxmlTool(manager),
      ];
  • src/tools.ts:7-13 (registration)
    Top-level createTools function registers all tools, including element tools (thus element_setData) by spreading createElementTools(manager).
    export function createTools(manager: WeappAutomatorManager): AnyTool[] {
      return [
        ...createApplicationTools(manager),
        ...createPageTools(manager),
        ...createElementTools(manager),
      ];
    }

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