Skip to main content
Glama
yfmeii

WeChat Mini Program Dev MCP

by yfmeii

element_getData

Retrieve rendered data from custom components in WeChat Mini Programs using ID selectors to inspect component state during development.

Instructions

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

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
connectionNo
selectorYes
innerSelectorNo
pathNo

Implementation Reference

  • The handler function createGetElementDataTool that creates the tool object with name, description, parameters schema, and the execute logic which resolves the element and fetches its data using element.data().
    function createGetElementDataTool(manager: WeappAutomatorManager): AnyTool {
      return {
        name: "element_getData",
        description: "获取组件实例渲染数据,仅自定义组件可以使用。需要 automator 0.6.0 和基础库 2.9.0 及以上版本。使用 ID 选择器(如 #my-component)定位自定义组件。",
        parameters: getElementDataParameters,
        execute: async (rawArgs, context: ToolContext) => {
          const args = getElementDataParameters.parse(rawArgs ?? {});
          return manager.withPage(
            context.log,
            { overrides: args.connection },
            async (page) => {
              const element = await resolveElement(
                page,
                args.selector,
                args.innerSelector
              );
    
              const data = await element.data(args.path);
              return toTextResult(
                formatJson({
                  selector: args.selector,
                  innerSelector: args.innerSelector ?? null,
                  path: args.path ?? null,
                  data: toSerializableValue(data),
                })
              );
            }
          );
        },
      };
    }
  • Zod schema defining the input parameters: selector, optional innerSelector, and optional path for the data.
    const getElementDataParameters = connectionContainerSchema.extend({
      selector: z.string().trim().min(1),
      innerSelector: z.string().trim().min(1).optional(),
      path: z.string().trim().min(1).optional(),
    });
  • Local registration of element_getData tool within the createElementTools function, which returns an array of element-related 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 registration where createElementTools is called to include the element tools, including element_getData, in the overall tools array.
    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