Skip to main content
Glama
jumodada

DrissionPage MCP Server

by jumodada

Get Text

element_get_text
Read-onlyIdempotent

Extract text from a web page element or the entire page using CSS, XPath, or accessibility targets. Retrieve visible content for scraping and verification without vision models.

Instructions

Get text from an element or the whole page

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tab_idNoOptional MCP or native DrissionPage tab id. When omitted, the current tab is captured at call start.
selectorNoCSS selector or XPath; empty means whole page. Bare selectors are CSS; use text:... for text matching.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.8.8
    • addedInput schema / properties / tab_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maxLength": 128,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Optional MCP or native DrissionPage tab id. When omitted, the current tab is captured at call start.",
      +  "title": "Tab Id"
      +}
    • changedOutput schema / oneOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "data": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "exact": {
      -            "anyOf": [
      -              {
      -                "type": "boolean"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null,
      -            "title": "Exact"
      -          },
      -          "frame_selectors": {
      -            "items": {
      -              "type": "string"
      -            },
      -            "title": "Frame Selectors",
      -            "type": "array"
      -          },
      -          "locator": {
      -            "title": "Locator",
      -            "type": "string"
      -          },
      -          "name": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null,
      -            "title": "Name"
      -          },
      -          "role": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null,
      -            "title": "Role"
      -          },
      -          "selector": {
      -            "title": "Selector",
      -            "type": "string"
      -          },
      -          "selector_normalized": {
      -            "title": "Selector Normalized",
      -            "type": "boolean"
      -          },
      -          "selector_strategy": {
      -            "title": "Selector Strategy",
      -            "type": "string"
      -          },
      -          "shadow_hosts": {
      -            "items": {
      -              "type": "string"
      -            },
      -            "title": "Shadow Hosts",
      -            "type": "array"
      -          },
      -          "target_kind": {
      -            "default": "selector",
      -            "enum": [
      -              "selector",
      -              "accessibility"
      -            ],
      -            "title": "Target Kind",
      -            "type": "string"
      -          },
      -          "text": {
      -            "title": "Text",
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "selector",
      -          "locator",
      -          "selector_strategy",
      -          "selector_normalized",
      -          "text"
      -        ],
      -        "title": "ElementGetTextData",
      -        "type": "object"
      -      },
      -      "message": {
      -        "type": "string"
      -      },
      -      "ok": {
      -        "const": true
      -      }
      -    },
      -    "required": [
      -      "ok",
      -      "message",
      -      "data"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "data": {
      -        "additionalProperties": true,
      -        "type": "object"
      -      },
      -      "error": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "code": {
      -            "type": "string"
      -          },
      -          "details": {
      -            "additionalProperties": true,
      -            "type": "object"
      -          },
      -          "message": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "code",
      -          "message"
      -        ],
      -        "type": "object"
      -      },
      -      "message": {
      -        "type": "string"
      -      },
      -      "ok": {
      -        "const": false
      -      }
      -    },
      -    "required": [
      -      "ok",
      -      "message",
      -      "error"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "data": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "exact": {
      +            "anyOf": [
      +              {
      +                "type": "boolean"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null,
      +            "title": "Exact"
      +          },
      +          "frame_selectors": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "title": "Frame Selectors",
      +            "type": "array"
      +          },
      +          "locator": {
      +            "title": "Locator",
      +            "type": "string"
      +          },
      +          "name": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null,
      +            "title": "Name"
      +          },
      +          "role": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null,
      +            "title": "Role"
      +          },
      +          "selector": {
      +            "title": "Selector",
      +            "type": "string"
      +          },
      +          "selector_normalized": {
      +            "title": "Selector Normalized",
      +            "type": "boolean"
      +          },
      +          "selector_strategy": {
      +            "title": "Selector Strategy",
      +            "type": "string"
      +          },
      +          "shadow_hosts": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "title": "Shadow Hosts",
      +            "type": "array"
      +          },
      +          "tab_id": {
      +            "description": "MCP tab id captured for this operation.",
      +            "maxLength": 128,
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "target_kind": {
      +            "default": "selector",
      +            "enum": [
      +              "selector",
      +              "accessibility"
      +            ],
      +            "title": "Target Kind",
      +            "type": "string"
      +          },
      +          "text": {
      +            "title": "Text",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "selector",
      +          "locator",
      +          "selector_strategy",
      +          "selector_normalized",
      +          "text",
      +          "tab_id"
      +        ],
      +        "title": "ElementGetTextData",
      +        "type": "object"
      +      },
      +      "message": {
      +        "type": "string"
      +      },
      +      "ok": {
      +        "const": true
      +      }
      +    },
      +    "required": [
      +      "ok",
      +      "message",
      +      "data"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "data": {
      +        "additionalProperties": true,
      +        "type": "object"
      +      },
      +      "error": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "code": {
      +            "type": "string"
      +          },
      +          "details": {
      +            "additionalProperties": true,
      +            "type": "object"
      +          },
      +          "message": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "code",
      +          "message"
      +        ],
      +        "type": "object"
      +      },
      +      "message": {
      +        "type": "string"
      +      },
      +      "ok": {
      +        "const": false
      +      }
      +    },
      +    "required": [
      +      "ok",
      +      "message",
      +      "error"
      +    ],
      +    "type": "object"
      +  }
      +]
  2. Changed4 schema fields changedv0.8.0
    • addedInput schema / $defs
      Added value: +{
      +  "AccessibilityTargetInput": {
      +    "additionalProperties": false,
      +    "description": "A unique accessibility role/name target within an optional DOM scope.",
      +    "properties": {
      +      "exact": {
      +        "default": true,
      +        "title": "Exact",
      +        "type": "boolean"
      +      },
      +      "frame_selectors": {
      +        "description": "Ordered outer-to-inner frame selectors resolved by DrissionPage.",
      +        "items": {
      +          "maxLength": 500,
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "maxItems": 4,
      +        "title": "Frame Selectors",
      +        "type": "array"
      +      },
      +      "kind": {
      +        "const": "accessibility",
      +        "title": "Kind",
      +        "type": "string"
      +      },
      +      "name": {
      +        "anyOf": [
      +          {
      +            "maxLength": 500,
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "title": "Name"
      +      },
      +      "role": {
      +        "maxLength": 500,
      +        "minLength": 1,
      +        "title": "Role",
      +        "type": "string"
      +      },
      +      "shadow_hosts": {
      +        "description": "Ordered outer-to-inner shadow host selectors resolved by DrissionPage.",
      +        "items": {
      +          "maxLength": 500,
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "maxItems": 8,
      +        "title": "Shadow Hosts",
      +        "type": "array"
      +      }
      +    },
      +    "required": [
      +      "kind",
      +      "role"
      +    ],
      +    "title": "AccessibilityTargetInput",
      +    "type": "object"
      +  },
      +  "SelectorTargetInput": {
      +    "additionalProperties": false,
      +    "description": "A selector target with optional frame and shadow-root scope.",
      +    "properties": {
      +      "frame_selectors": {
      +        "description": "Ordered outer-to-inner frame selectors resolved by DrissionPage.",
      +        "items": {
      +          "maxLength": 500,
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "maxItems": 4,
      +        "title": "Frame Selectors",
      +        "type": "array"
      +      },
      +      "kind": {
      +        "const": "selector",
      +        "title": "Kind",
      +        "type": "string"
      +      },
      +      "selector": {
      +        "maxLength": 500,
      +        "minLength": 1,
      +        "title": "Selector",
      +        "type": "string"
      +      },
      +      "shadow_hosts": {
      +        "description": "Ordered outer-to-inner shadow host selectors resolved by DrissionPage.",
      +        "items": {
      +          "maxLength": 500,
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "maxItems": 8,
      +        "title": "Shadow Hosts",
      +        "type": "array"
      +      }
      +    },
      +    "required": [
      +      "kind",
      +      "selector"
      +    ],
      +    "title": "SelectorTargetInput",
      +    "type": "object"
      +  }
      +}
    • addedInput schema / properties / selector / anyOf
      Added value: +[
      +  {
      +    "const": "",
      +    "type": "string"
      +  },
      +  {
      +    "maxLength": 500,
      +    "minLength": 1,
      +    "type": "string"
      +  },
      +  {
      +    "discriminator": {
      +      "mapping": {
      +        "accessibility": "#/$defs/AccessibilityTargetInput",
      +        "selector": "#/$defs/SelectorTargetInput"
      +      },
      +      "propertyName": "kind"
      +    },
      +    "oneOf": [
      +      {
      +        "$ref": "#/$defs/SelectorTargetInput"
      +      },
      +      {
      +        "$ref": "#/$defs/AccessibilityTargetInput"
      +      }
      +    ]
      +  }
      +]
    • removedInput schema / properties / selector / type
      Removed value: -"string"
    • changedOutput schema / oneOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "data": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "locator": {
      -            "title": "Locator",
      -            "type": "string"
      -          },
      -          "selector": {
      -            "title": "Selector",
      -            "type": "string"
      -          },
      -          "selector_normalized": {
      -            "title": "Selector Normalized",
      -            "type": "boolean"
      -          },
      -          "selector_strategy": {
      -            "title": "Selector Strategy",
      -            "type": "string"
      -          },
      -          "text": {
      -            "title": "Text",
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "text",
      -          "selector",
      -          "locator",
      -          "selector_strategy",
      -          "selector_normalized"
      -        ],
      -        "title": "ElementGetTextData",
      -        "type": "object"
      -      },
      -      "message": {
      -        "type": "string"
      -      },
      -      "ok": {
      -        "const": true
      -      }
      -    },
      -    "required": [
      -      "ok",
      -      "message",
      -      "data"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "data": {
      -        "additionalProperties": true,
      -        "type": "object"
      -      },
      -      "error": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "code": {
      -            "type": "string"
      -          },
      -          "details": {
      -            "additionalProperties": true,
      -            "type": "object"
      -          },
      -          "message": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "code",
      -          "message"
      -        ],
      -        "type": "object"
      -      },
      -      "message": {
      -        "type": "string"
      -      },
      -      "ok": {
      -        "const": false
      -      }
      -    },
      -    "required": [
      -      "ok",
      -      "message",
      -      "error"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "data": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "exact": {
      +            "anyOf": [
      +              {
      +                "type": "boolean"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null,
      +            "title": "Exact"
      +          },
      +          "frame_selectors": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "title": "Frame Selectors",
      +            "type": "array"
      +          },
      +          "locator": {
      +            "title": "Locator",
      +            "type": "string"
      +          },
      +          "name": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null,
      +            "title": "Name"
      +          },
      +          "role": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null,
      +            "title": "Role"
      +          },
      +          "selector": {
      +            "title": "Selector",
      +            "type": "string"
      +          },
      +          "selector_normalized": {
      +            "title": "Selector Normalized",
      +            "type": "boolean"
      +          },
      +          "selector_strategy": {
      +            "title": "Selector Strategy",
      +            "type": "string"
      +          },
      +          "shadow_hosts": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "title": "Shadow Hosts",
      +            "type": "array"
      +          },
      +          "target_kind": {
      +            "default": "selector",
      +            "enum": [
      +              "selector",
      +              "accessibility"
      +            ],
      +            "title": "Target Kind",
      +            "type": "string"
      +          },
      +          "text": {
      +            "title": "Text",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "selector",
      +          "locator",
      +          "selector_strategy",
      +          "selector_normalized",
      +          "text"
      +        ],
      +        "title": "ElementGetTextData",
      +        "type": "object"
      +      },
      +      "message": {
      +        "type": "string"
      +      },
      +      "ok": {
      +        "const": true
      +      }
      +    },
      +    "required": [
      +      "ok",
      +      "message",
      +      "data"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "data": {
      +        "additionalProperties": true,
      +        "type": "object"
      +      },
      +      "error": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "code": {
      +            "type": "string"
      +          },
      +          "details": {
      +            "additionalProperties": true,
      +            "type": "object"
      +          },
      +          "message": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "code",
      +          "message"
      +        ],
      +        "type": "object"
      +      },
      +      "message": {
      +        "type": "string"
      +      },
      +      "ok": {
      +        "const": false
      +      }
      +    },
      +    "required": [
      +      "ok",
      +      "message",
      +      "error"
      +    ],
      +    "type": "object"
      +  }
      +]
  3. Changed1 schema field changedv0.7.2
    • changedOutput schema / oneOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "data": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "locator": {
      -            "type": "string"
      -          },
      -          "selector": {
      -            "type": "string"
      -          },
      -          "selector_normalized": {
      -            "type": "boolean"
      -          },
      -          "selector_strategy": {
      -            "type": "string"
      -          },
      -          "text": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "text",
      -          "selector",
      -          "locator",
      -          "selector_strategy",
      -          "selector_normalized"
      -        ],
      -        "title": "ElementGetTextData",
      -        "type": "object"
      -      },
      -      "message": {
      -        "type": "string"
      -      },
      -      "ok": {
      -        "const": true
      -      }
      -    },
      -    "required": [
      -      "ok",
      -      "message",
      -      "data"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "data": {
      -        "additionalProperties": true,
      -        "type": "object"
      -      },
      -      "error": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "code": {
      -            "type": "string"
      -          },
      -          "details": {
      -            "additionalProperties": true,
      -            "type": "object"
      -          },
      -          "message": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "code",
      -          "message"
      -        ],
      -        "type": "object"
      -      },
      -      "message": {
      -        "type": "string"
      -      },
      -      "ok": {
      -        "const": false
      -      }
      -    },
      -    "required": [
      -      "ok",
      -      "message",
      -      "error"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "data": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "locator": {
      +            "title": "Locator",
      +            "type": "string"
      +          },
      +          "selector": {
      +            "title": "Selector",
      +            "type": "string"
      +          },
      +          "selector_normalized": {
      +            "title": "Selector Normalized",
      +            "type": "boolean"
      +          },
      +          "selector_strategy": {
      +            "title": "Selector Strategy",
      +            "type": "string"
      +          },
      +          "text": {
      +            "title": "Text",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "text",
      +          "selector",
      +          "locator",
      +          "selector_strategy",
      +          "selector_normalized"
      +        ],
      +        "title": "ElementGetTextData",
      +        "type": "object"
      +      },
      +      "message": {
      +        "type": "string"
      +      },
      +      "ok": {
      +        "const": true
      +      }
      +    },
      +    "required": [
      +      "ok",
      +      "message",
      +      "data"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "data": {
      +        "additionalProperties": true,
      +        "type": "object"
      +      },
      +      "error": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "code": {
      +            "type": "string"
      +          },
      +          "details": {
      +            "additionalProperties": true,
      +            "type": "object"
      +          },
      +          "message": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "code",
      +          "message"
      +        ],
      +        "type": "object"
      +      },
      +      "message": {
      +        "type": "string"
      +      },
      +      "ok": {
      +        "const": false
      +      }
      +    },
      +    "required": [
      +      "ok",
      +      "message",
      +      "error"
      +    ],
      +    "type": "object"
      +  }
      +]
  4. Changed2 schema fields changedv0.5.0
    • addedInput schema / additionalProperties
      Added value: +false
    • removedOutput schema / additionalProperties
      Removed value: -false
  5. First observedv0.4.1

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, so the safety profile is fully covered. The description adds no behavioral context beyond them — nothing about what text is returned (visible text vs. textContent), whitespace handling, or behavior on multiple matches.

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

Conciseness4/5

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

A single front-loaded sentence with zero waste, but that brevity is achieved by omitting rather than compressing useful information. Efficient, though borderline under-specified.

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

Completeness3/5

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

An output schema exists so return values need not be described, and the input schema is fully annotated. However, for a tool with rich selector/accessibility targeting options, the description leaves routing and matching behavior entirely to the schema, making it only minimally adequate.

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

Parameters3/5

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

Schema description coverage is 100% and the schema itself documents tab_id and the selector semantics (CSS/XPath, empty = whole page, text:... matching, accessibility targets). The description adds no parameter detail on top of that, so the baseline of 3 applies.

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

Purpose4/5

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

Specific verb+resource ('Get text') with a stated scope: an element or the whole page. It is clear what the tool does, but it does nothing to distinguish itself from close siblings like element_get_html or element_get_attribute, which an agent could easily confuse it with.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no mention of alternatives (e.g. use element_get_html for markup, element_get_attribute for attributes), and no prerequisites or preconditions. The agent must infer routing from the name alone.

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