Skip to main content
Glama

browser_export_gsuite

Read-onlyIdempotent

Export the open Google Docs, Sheets, or Slides tab to Markdown, CSV, PDF, DOCX, or other formats using the user's browser session, with text returned and binary files saved to disk.

Instructions

Exports the Google Docs, Sheets or Slides file open in the tab through Google's official export URL, with the user's session (fetch from the page, cookies never read or returned).

format: Docs md (default), txt, html, docx, pdf, odt, rtf, epub; Sheets csv (default), tsv, xlsx, pdf, ods (csv/tsv: one sheet, the URL's gid or the gid parameter); Slides txt (default), pdf, pptx, odp. Text (md, txt, html, csv, tsv) returned in text (max_chars; truncation reported, the full text then written to disk, output_path); binaries (docx, xlsx, pdf, pptx...) written to ~/.nexus/nexus-browser/exports/, path in output_path (at most 8 MB). Clear error if the tab is not a Google document or if the export is refused (permissions, download disabled by the owner, expired session).

Input Schema

NameRequiredDescriptionDefault
gidNo
formatNo
tab_idYesYour tab's id (from browser_new_tab, or a tab adopted with browser_adopt_tab).
max_charsNo

Output Schema

NameRequiredDescriptionDefault
dataYes
statusYes
warningNoEmergency stop hotkey not held, or similar notice
untrusted_noteNoPage text that looks like instructions aimed at an AI

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed10 schema fields changedv2.31.6
    • addedOutput schema / $defs
      Added value: +{
      +  "GoogleExport": {
      +    "additionalProperties": true,
      +    "description": "Text formats in text (cut to max_chars, then the whole file in output_path); binaries in output_path.",
      +    "properties": {
      +      "binary": {
      +        "type": "boolean"
      +      },
      +      "bytes": {
      +        "type": "number"
      +      },
      +      "dialog": {
      +        "$ref": "#/$defs/PageDialog"
      +      },
      +      "dialogOpened": {
      +        "type": "boolean"
      +      },
      +      "document_id": {
      +        "type": "string"
      +      },
      +      "export_url": {
      +        "type": "string"
      +      },
      +      "extension": {
      +        "type": "string"
      +      },
      +      "filename": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "format": {
      +        "type": "string"
      +      },
      +      "gid": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "kind": {
      +        "type": "string"
      +      },
      +      "label": {
      +        "type": "string"
      +      },
      +      "message": {
      +        "type": "string"
      +      },
      +      "mime": {
      +        "type": "string"
      +      },
      +      "note": {
      +        "type": "string"
      +      },
      +      "output_path": {
      +        "type": "string"
      +      },
      +      "pendingDialogs": {
      +        "items": {
      +          "$ref": "#/$defs/PageDialog"
      +        },
      +        "type": "array"
      +      },
      +      "size_bytes": {
      +        "type": "integer"
      +      },
      +      "text": {
      +        "type": "string"
      +      },
      +      "title": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "total_chars": {
      +        "type": "integer"
      +      },
      +      "truncated": {
      +        "type": "boolean"
      +      },
      +      "via": {
      +        "type": "string"
      +      }
      +    },
      +    "title": "GoogleExport",
      +    "type": "object"
      +  },
      +  "PageDialog": {
      +    "additionalProperties": true,
      +    "description": "Dialog opened by the page (never accepted by the agent: browser_handle_dialog).",
      +    "properties": {
      +      "defaultPrompt": {
      +        "type": "string"
      +      },
      +      "message": {
      +        "type": "string"
      +      },
      +      "tabId": {
      +        "type": "integer"
      +      },
      +      "type": {
      +        "type": "string"
      +      },
      +      "url": {
      +        "type": "string"
      +      }
      +    },
      +    "title": "PageDialog",
      +    "type": "object"
      +  }
      +}
    • addedOutput schema / additionalProperties
      Added value: +true
    • addedOutput schema / description
      Added value: +"Google Docs, Sheets or Slides export."
    • addedOutput schema / properties / data
      Added value: +{
      +  "$ref": "#/$defs/GoogleExport"
      +}
    • removedOutput schema / properties / result
      Removed value: -{
      -  "title": "Result",
      -  "type": "string"
      -}
    • addedOutput schema / properties / status
      Added value: +{
      +  "const": "success",
      +  "type": "string"
      +}
    • addedOutput schema / properties / untrusted_note
      Added value: +{
      +  "description": "Page text that looks like instructions aimed at an AI",
      +  "type": "string"
      +}
    • addedOutput schema / properties / warning
      Added value: +{
      +  "description": "Emergency stop hotkey not held, or similar notice",
      +  "type": "string"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "result"
      -]New value: +[
      +  "status",
      +  "data"
      +]
    • changedOutput schema / title
      Previous value: -"browser_export_gsuiteOutput"New value: +"GoogleExportAnswer"
  2. First observedv0.1.0

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already cover read-only/idempotent/non-destructive, and the description still adds substantial behavior: the user's session is reused but cookies are never read or returned, binaries land in ~/.nexus/nexus-browser/exports/ capped at 8 MB, and refusal causes are enumerated (permissions, download disabled by owner, expired session).

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?

Front-loaded with the core action, then organized into labeled blocks for format, output destination, and errors — no filler. The per-type format enumerations are dense but each carries invocation-relevant detail, so the length is mostly earned.

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

Completeness5/5

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

Even though an output schema exists, the description explains the text-vs-binary split, where each lands, truncation reporting, size limits, and error conditions. An agent has everything needed to choose a format and predict the result without inspecting the schema.

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

Parameters5/5

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

Schema coverage is only 25% (tab_id alone), yet the description fully compensates: it enumerates valid `format` values per document type with defaults (Docs md, Sheets csv, Slides txt), explains `gid` as selecting a single sheet via URL gid or parameter, and clarifies `max_chars` truncation behavior.

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?

States a specific verb (exports) and a precise resource (the Google Docs/Sheets/Slides file open in the tab), plus the mechanism (Google's official export URL). This immediately distinguishes it from generic siblings like browser_export, browser_pdf, or browser_content.

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

Usage Guidelines4/5

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

The precondition is explicit: the tab must hold an open Google document, and the description says a clear error is returned if it is not. It does not, however, route the agent to alternatives (e.g. browser_export for non-GSuite files) or mention prerequisites such as navigating to the doc first.

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