Skip to main content
Glama

wavexis_shadow_eval

Run custom JavaScript inside a shadow DOM by navigating a selector chain across shadow boundaries. Returns status and result, enabling direct evaluation when standard actions fall short.

Instructions

Evaluate a JavaScript expression inside a shadow DOM tree.

Pierces shadow boundaries using the provided selector chain: selectors[0] is in the main document, selectors[1] in selectors[0].shadowRoot, and so on. Use wavexis_shadow_click or wavexis_shadow_fill for standard interactions instead of raw JS.

Side effects: Arbitrary; executes user-supplied JavaScript within the shadow DOM context. Returns: JSON string with keys: 'status' ('ok'/'error'), 'result' (any).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
inputYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed2 schema fields changedv1.6.24
    • addedInput schema / $defs / ShadowEvalInput / properties / await_promise / description
      Added value: +"Whether to await the returned promise"
    • addedInput schema / $defs / ShadowEvalInput / properties / session_id / description
      Added value: +"Active session ID from wavexis_session_open"
  2. Addedv1.2.0

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description clearly discloses the important behavioral trait: side effects are arbitrary because it executes user-supplied JavaScript in a shadow DOM context. It also states the return format. It does not describe closed shadow-root behavior or detailed error semantics, but the core risk is communicated well.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured: core verb, traversal mechanism, sibling-tool routing, then side effects and return shape. Every sentence adds useful information and there is no filler or redundant restating of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an arbitrary-JS tool, it covers the essential operational context: what is evaluated, how the shadow path is resolved, what side effects to expect, and what the result shape is. It would be more complete if it clarified what the expression is bound to—for example, whether the selected element is the this or argument of the expression.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The prose explains the selectors chain, but that largely mirrors the input schema. It adds little about session_id, expression context, or await_promise. Given the low schema description coverage reported, the description does not sufficiently compensate for understanding how to correctly construct all parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence states a specific action and resource: evaluate a JavaScript expression inside a shadow DOM tree. The selector-chain description makes the traversal model explicit, and the explicit mention of shadow_click/shadow_fill helps distinguish this tool from the interaction siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a direct routing rule: use wavexis_shadow_click or wavexis_shadow_fill for standard interactions instead of raw JS. This is an explicit when-not condition and names the relevant alternatives, which is exactly what an agent needs to avoid misuse.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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/MathiasPaulenko/wavexis-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server