Skip to main content
Glama
yfmeii

WeChat Mini Program Dev MCP

by yfmeii

element_input

Input text into specific elements in WeChat Mini Program pages, including nested components using inner selector parameters for precise targeting.

Instructions

向指定元素输入文本。如需向自定义组件内部的元素输入,请使用 innerSelector 参数:selector 设为组件 ID 选择器(如 #my-component),innerSelector 设为组件内部元素的选择器。

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
connectionNo
selectorYes
innerSelectorNo
valueYes

Implementation Reference

  • The createInputTextTool function returns the tool definition including the execute handler which parses args, resolves the element using resolveElement, calls element.input(value), and returns a success message.
    function createInputTextTool(manager: WeappAutomatorManager): AnyTool {
      return {
        name: "element_input",
        description: "向指定元素输入文本。如需向自定义组件内部的元素输入,请使用 innerSelector 参数:selector 设为组件 ID 选择器(如 #my-component),innerSelector 设为组件内部元素的选择器。",
        parameters: inputTextParameters,
        execute: async (rawArgs, context: ToolContext) => {
          const args = inputTextParameters.parse(rawArgs ?? {});
          return manager.withPage(
            context.log,
            { overrides: args.connection },
            async (page) => {
              const element = await resolveElement(
                page,
                args.selector,
                args.innerSelector
              );
    
              await element.input(args.value);
              return toTextResult(
                `已向元素 "${args.selector}"${args.innerSelector ? ` -> "${args.innerSelector}"` : ""} 输入值 "${args.value}"。`
              );
            }
          );
        },
      };
    }
  • Zod schema defining the input parameters for the element_input tool: selector (required string), innerSelector (optional string), value (string or number).
    const inputTextParameters = connectionContainerSchema.extend({
      selector: z.string().trim().min(1),
      innerSelector: z.string().trim().min(1).optional(),
      value: z.union([z.string(), z.coerce.number()]),
    });
  • The element_input tool (via createInputTextTool) is registered in the array returned by createElementTools.
    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)
    createTools includes the tools from createElementTools, which contains element_input.
    export function createTools(manager: WeappAutomatorManager): AnyTool[] {
      return [
        ...createApplicationTools(manager),
        ...createPageTools(manager),
        ...createElementTools(manager),
      ];
    }
  • src/index.ts:17-17 (registration)
    Final registration of all tools, including element_input, to the FastMCP server.
    server.addTools(createTools(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