Skip to main content
Glama
jumodada

DrissionPage MCP Server

by jumodada

Export Page Artifact

page_export_artifact
Destructive

Export the current page as a managed PDF or MHTML file under DP_MCP_ARTIFACT_ROOT, returning safe relative path, checksum, and exact-once receipt evidence.

Instructions

Generate one PDF or MHTML file under DP_MCP_ARTIFACT_ROOT and return checksum, safe relative path, and exact-once receipt evidence.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
scaleNo
formatYes
tab_idNoOptional MCP or native DrissionPage tab id. When omitted, the current tab is captured at call start.
filenameNo
landscapeNo
margin_topNo
margin_leftNo
page_rangesNo
paper_widthNo
margin_rightNo
paper_heightNo
margin_bottomNo
operation_keyNo
print_backgroundNo
prefer_css_page_sizeNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 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"
      +}
    • addedOutput schema / $defs / PageExportArtifactReceipt / properties / tab_id / description
      Added value: +"MCP tab id captured for this operation."
    • removedOutput schema / $defs / PageExportArtifactReceipt / properties / tab_id / title
      Removed value: -"Tab Id"
    • changedOutput schema / oneOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "data": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "artifact": {
      -            "$ref": "#/$defs/ArtifactRef"
      -          },
      -          "format": {
      -            "enum": [
      -              "pdf",
      -              "mhtml"
      -            ],
      -            "title": "Format",
      -            "type": "string"
      -          },
      -          "operation_key": {
      -            "title": "Operation Key",
      -            "type": "string"
      -          },
      -          "receipt": {
      -            "$ref": "#/$defs/PageExportArtifactReceipt"
      -          }
      -        },
      -        "required": [
      -          "operation_key",
      -          "format",
      -          "artifact",
      -          "receipt"
      -        ],
      -        "title": "PageExportArtifactData",
      -        "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": {
      +          "artifact": {
      +            "$ref": "#/$defs/ArtifactRef"
      +          },
      +          "format": {
      +            "enum": [
      +              "pdf",
      +              "mhtml"
      +            ],
      +            "title": "Format",
      +            "type": "string"
      +          },
      +          "operation_key": {
      +            "title": "Operation Key",
      +            "type": "string"
      +          },
      +          "receipt": {
      +            "$ref": "#/$defs/PageExportArtifactReceipt"
      +          },
      +          "tab_id": {
      +            "description": "MCP tab id captured for this operation.",
      +            "maxLength": 128,
      +            "minLength": 1,
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "operation_key",
      +          "format",
      +          "artifact",
      +          "receipt",
      +          "tab_id"
      +        ],
      +        "title": "PageExportArtifactData",
      +        "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. Addedv0.8.0

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=false and openWorldHint=true, so the safety profile is partly covered. The description adds useful context the annotations lack: output is written under DP_MCP_ARTIFACT_ROOT and a checksum, safe relative path and receipt evidence are returned. However it does not explain overwrite/duplicate-file behavior, why an export is flagged destructive, or how operation_key relates to the 'exact-once' claim.

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 well-formed sentence, front-loaded with the action and artifact type. Most clauses earn their place by naming the output location and return payload, though 'exact-once receipt evidence' is jargon that is not self-explanatory and slightly inflates the sentence.

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

Completeness2/5

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

For a 15-parameter write tool the description is far too thin. An output schema exists, so it legitimately need not describe return values, but it should still clarify the idempotency/operation_key contract and the layout/paper/margin parameters that drive the export. As written, the agent must rely almost entirely on bare schema keys.

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?

Only tab_id carries a schema description (7% coverage across 15 params), so the schema leaves scale, margins, page_ranges, paper size, filename, operation_key and print flags undocumented. The description only echoes the pdf/mhtml format choices and mentions a filename-adjacent artifact root; it compensates for none of the remaining parameter ambiguity, and 'operation_key' / 'page_ranges' syntax is left entirely unexplained.

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?

States a specific verb and resource: 'Generate one PDF or MHTML file'. The format enum is named, so the agent knows it produces a document artifact rather than a screenshot/image like page_screenshot_save. It does not explicitly contrast itself with siblings such as page_screenshot or page_screenshot_save, but the artifact type is distinctive enough to be unambiguous.

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?

The description gives no when-to-use guidance and never names an alternative (e.g. page_screenshot_save for images vs this for PDF/MHTML). There is no indication of prerequisites, when it should be preferred, or when it should be avoided. Usage must be inferred entirely from the name and format options.

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