# io.github.dasasian/gdocs-mcp (npm · @dasasian/gdocs-mcp)

Treat a Google Doc like a local file: content editing, tracked-changes review, comments, tables.

- Trust score: 64/100 (medium)
- Change this week: +43
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-07

## Components

- npm · `@dasasian/gdocs-mcp`: 64/100 (this document), [markdown](https://verifymcp.io/servers/dasasian-gdocs-mcp/dasasian-gdocs-mcp.md), [page](https://verifymcp.io/servers/dasasian-gdocs-mcp/dasasian-gdocs-mcp)

## Channel facts

- Registry: `npm`
- Package: `@dasasian/gdocs-mcp`
- Version: `0.1.1`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-07.

- **Supply Chain Security**: 89/100
  - No malware found by supply-chain analysis.
  - CVE check failed: a known high-severity CVE affects uuid 9.0.1, reached via google-auth-library > gaxios > uuid. A fixed version is available.
  - No install/post-install scripts declared.
  - 43 of 131 dependencies flagged as unhealthy (1 deprecated).
- **Provenance & Transparency**: 48/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 6 days ago).
  - Publishes a security disclosure policy (SECURITY.md).
- **Schema Quality & AI Usability**: 68/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 4731 tokens (~152/item across 31 items; 31 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 93/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 78% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### Claude

```bash
claude mcp add dasasian-gdocs-mcp -- npx -y @dasasian/gdocs-mcp
```

### Codex

```bash
codex mcp add dasasian-gdocs-mcp -- npx -y @dasasian/gdocs-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "dasasian-gdocs-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@dasasian/gdocs-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add dasasian-gdocs-mcp --command npx --arg -y --arg @dasasian/gdocs-mcp
```

### Hermes

```yaml
mcp_servers:
  dasasian-gdocs-mcp:
    command: "npx"
    args: ["-y", "@dasasian/gdocs-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "dasasian-gdocs-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@dasasian/gdocs-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-07 (score 64, +3)

- [functional improvement] Security disclosure: fail → pass
- [functional] Dependency health: partial → 0.84

### 2026-08-05 (score 61, 0)

- [security improvement] CVE-2026-69207 no longer affects this package

### 2026-08-04 (score 61, 0)

- [security regression] CVE-2026-69207 affects this package: high

### 2026-08-02 (score 61, +35)

- [security regression] Known CVEs: unverified → fail
- [security regression] Provenance: fail → unverified
- [security regression] Install scripts: pass → unverified
- [security improvement] Malware scan: unverified → pass
- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional regression] Tool coverage: 100 → unverified
- [functional regression] Security disclosure: fail → unverified
- [functional regression] License: pass → unverified
- [functional regression] Maintenance: pass → unverified
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Schema quality: unverified → excellent
- [functional] Licence: MIT

### 2026-08-01 (score 26, +5)

- [security regression] Known CVEs: fail → unverified
- [functional regression] Dependency health: partial → unverified
- [functional improvement] Tool coverage: unverified → 100
- [functional] First check of Schema quality: unverified
- [functional] First check of Schema quality: fail
- [functional] First check of Tool coverage: 78
- [functional] First check of Schema quality: fail

### 2026-07-31 (score 21)

First indexed and scored.

## MCP tools (31)

### `list_accounts` (~20 tokens)

List authorized Google accounts

List the Google accounts that have been authorized for this server.

### `set_project_default` (~105 tokens)

Set this project’s default account/folder

Write this project’s defaults to a .gdocs-mcp.json in the current working directory (or update an existing one up the tree). Set a default account and/or a default folder (URL or id) for new docs. To set a folder by name, search_drive for it first and pass its id.

Input parameters:

- `account` (string): default Google account email (must be authorized)
- `folder` (string): default Drive folder (URL or id) for new docs

### `get_project_config` (~36 tokens)

Show this project’s gdocs defaults

Show the effective .gdocs-mcp.json defaults (account/folder) for the current working directory, and where the file is.

### `read_doc` (~119 tokens)

Read a Google Doc

Read a Google Doc as markdown + inline HTML. mode: clean (committed text, default) · tracked (suggestions shown as <ins>/<del>) · accepted · rejected.

Input parameters:

- `account` (string): Google account email to use. Defaults to GDOCS_DEFAULT_ACCOUNT, or the sole account.
- `documentId` (string, required): Google Doc id
- `mode` (string): read mode (default clean)
- `tab` (string): Target a specific tab by tabId or title (from list_tabs). Defaults to the first tab.

### `edit_doc` (~226 tokens)

Edit a Google Doc

Replace an exact unique snippet of text in a Google Doc (like a local file Edit). old_string is matched markup-tolerantly; ambiguous matches return surrounding context to disambiguate. new_string is interpreted as inline markdown (**bold**, *italic*, `code`, [text](url)). NOTE: this is a direct edit — the change is applied as live text, not a tracked suggestion (the Docs API cannot create suggestions). If the doc has pending suggestions from other reviewers, flag to the user that your edit will sit alongside them as an accepted change.

Input parameters:

- `account` (string): Google account email to use. Defaults to GDOCS_DEFAULT_ACCOUNT, or the sole account.
- `documentId` (string, required): Google Doc id
- `new_string` (string, required): replacement text
- `old_string` (string, required): exact text to replace (quote a unique slice from read_doc)
- `replace_all` (boolean): replace every occurrence (default false)
- `tab` (string): Target a specific tab by tabId or title (from list_tabs). Defaults to the first tab.

### `set_style` (~356 tokens)

Style text in a doc

Apply styling to existing text in place (no content change), the way you select text in Docs and apply formatting. Pick ONE target: `from` (+ optional `to`) to style a selection — from the start of the unique `from` snippet to the end of the unique `to` snippet (omit `to` to style just `from`); or `whole_document: true` to style the entire doc/tab (e.g. one font throughout, without per-paragraph calls). Styles: bold/italic/underline/strikethrough, color (hex), fontSize (pt), fontFamily, link, paragraph alignment, and paragraph spacing (spaceBefore/spaceAfter in pt, lineSpacing %). Use inspect_style first to read current spacing/fonts. NOTE: a direct style change, not a tracked suggestion.

Input parameters:

- `account` (string): Google account email to use. Defaults to GDOCS_DEFAULT_ACCOUNT, or the sole account.
- `documentId` (string, required): Google Doc id
- `from` (string): start anchor: a unique text snippet to style from (quote a slice from read_doc). Required unless whole_document is set.
- `style` (object, required): styles to apply
- `tab` (string): Target a specific tab by tabId or title (from list_tabs). Defaults to the first tab.
- `to` (string): optional end anchor: a unique snippet; styles the whole span from the start of `from` to the end of `to` (a selection). Must appear after `from`.
- `whole_document` (boolean): style the entire document (or tab) instead of a selection — e.g. to set one font throughout. Mutually exclusive with from/to.

### `get_page_setup` (~129 tokens)

Read document page setup

Read a doc’s (or tab’s) page setup — margins, page size (in points, plus a preset name if it matches letter/legal/a4/tabloid), and orientation. The read counterpart to set_page_setup; use it to mirror another document’s layout onto a new doc.

Input parameters:

- `account` (string): Google account email to use. Defaults to GDOCS_DEFAULT_ACCOUNT, or the sole account.
- `documentId` (string, required): Google Doc id
- `tab` (string): Target a specific tab by tabId or title (from list_tabs). Defaults to the first tab.

### `set_page_setup` (~255 tokens)

Set document page setup

Set document-level page setup for a doc (or tab): page margins, page size, and orientation — the File > Page setup controls, which set_style can’t reach. Margins and explicit page sizes are in points (72 pt = 1 inch). pageSize is a preset (letter/legal/a4/tabloid) or an explicit {width,height} in points; orientation (portrait/landscape) swaps the page dimensions. A direct change, not a tracked suggestion.

Input parameters:

- `account` (string): Google account email to use. Defaults to GDOCS_DEFAULT_ACCOUNT, or the sole account.
- `documentId` (string, required): Google Doc id
- `marginBottom` (number): bottom margin in points
- `marginLeft` (number): left margin in points
- `marginRight` (number): right margin in points
- `marginTop` (number): top margin in points (72 = 1 inch)
- `orientation` (string): portrait or landscape (orders the page width/height)
- `pageSize`: a preset name, or {width,height} in points
- `tab` (string): Target a specific tab by tabId or title (from list_tabs). Defaults to the first tab.

### `get_style` (~219 tokens)

Read computed style at a text anchor

Read the effective (inherited-resolved) style at a unique text snippet — read_doc’s markdown can’t express these; the read counterpart to set_style. Returns paragraph style (namedStyleType, alignment, spaceBefore/spaceAfter in pt, lineSpacing %, and whether spacing is inherited) and text style (bold/italic/underline/strikethrough, fontSize pt, fontFamily, color hex, link). Use it to diagnose things markdown hides — e.g. an unexpected gap between paragraphs is spacing (spaceAfter>0), not a blank line, and is fixed with set_style’s spaceAfter, not edit_doc.

Input parameters:

- `account` (string): Google account email to use. Defaults to GDOCS_DEFAULT_ACCOUNT, or the sole account.
- `documentId` (string, required)
- `tab` (string): Target a specific tab by tabId or title (from list_tabs). Defaults to the first tab.
- `target_string` (string, required): exact text to read the style of (quote a unique slice from read_doc)

### `download_images` (~137 tokens)

Download a doc’s images

Download every embedded image in a Google Doc to a local folder. Returns the objectId→filename mapping, which correlates with read_doc’s `![](image:<objectId>)` markers so you can rewrite them to local paths (the inverse of publishing).

Input parameters:

- `account` (string): Google account email to use. Defaults to GDOCS_DEFAULT_ACCOUNT, or the sole account.
- `dir` (string, required): absolute local folder to save images into (created if missing)
- `documentId` (string, required)
- `tab` (string): Target a specific tab by tabId or title (from list_tabs). Defaults to the first tab.

### `insert_image` (~184 tokens)

Insert an image

Insert an inline image from a public URL. Position via at (top/end/or a unique text anchor), size via width/height (points), and align left/center/right. A direct edit, not a tracked suggestion. Note: floating/text-wrapped images are not supported by the Docs API.

Input parameters:

- `account` (string): Google account email to use. Defaults to GDOCS_DEFAULT_ACCOUNT, or the sole account.
- `align` (string)
- `at` (string): "top", "end", or a unique text snippet to insert after (default top)
- `documentId` (string, required)
- `height` (number): points
- `tab` (string): Target a specific tab by tabId or title (from list_tabs). Defaults to the first tab.
- `uri` (string, required): public image URL
- `width` (number): points

### `insert_table` (~214 tokens)

Insert a table

Insert a rows×columns table, optionally populated from a 2D array of cell text. Position via at (top/end/or a unique text anchor, default end). A direct edit, not a tracked suggestion.

Input parameters:

- `account` (string): Google account email to use. Defaults to GDOCS_DEFAULT_ACCOUNT, or the sole account.
- `at` (string): "top", "end", or a unique text snippet to insert after (default end)
- `columnWidths` (array): fixed width per column, in points
- `columns` (integer, required)
- `data` (array): row-major cell text, e.g. [["A","B"],["1","2"]]
- `documentId` (string, required)
- `headerShade` (string): hex background color for the first row, e.g. #f1f3f4
- `rows` (integer, required)
- `tab` (string): Target a specific tab by tabId or title (from list_tabs). Defaults to the first tab.

### `list_suggestions` (~139 tokens)

List suggestions in a doc

List pending suggestions (tracked changes) in a Google Doc as before→after diffs, in document order. Returns the doc `title` and, per suggestion, a human-readable `preview` — pass these verbatim as documentTitle/expectedChange to apply_suggestion. Note: the Docs API exposes no author or timestamp for suggestions.

Input parameters:

- `account` (string): Google account email to use. Defaults to GDOCS_DEFAULT_ACCOUNT, or the sole account.
- `documentId` (string, required): Google Doc id
- `tab` (string): Target a specific tab by tabId or title (from list_tabs). Defaults to the first tab.

### `apply_suggestions` (~305 tokens)

Accept/reject one or more suggestions

Resolve one or more pending suggestions (from list_suggestions) in ONE atomic update: accept keeps the proposed text, reject keeps the original. Pass one resolution to resolve a single suggestion, or several at once — required for suggestions that overlap or adjoin each other (a "cluster"), which cannot be resolved one at a time without corrupting neighbours. You MUST include every suggestion in any cluster you touch; a partially-resolved cluster is refused (status "incomplete"). documentTitle is checked against the live document first (status "wrong_doc" on mismatch, e.g. an id from a different, similarly-titled document). Copy each suggestion's `preview` from list_suggestions into its `expectedChange` (verified before applying). If the result includes a `conflicts` array, two suggestions genuinely conflicted (one inserts text inside another's deletion, both accepted) — it was auto-resolved by keeping the insertion; surface this to the user as NOT a clean merge.

Input parameters:

- `account` (string): Google account email to use. Defaults to GDOCS_DEFAULT_ACCOUNT, or the sole account.
- `documentId` (string, required): Google Doc id
- `documentTitle` (string, required): The document's title, from list_suggestions. Shown for confirmation only.
- `resolutions` (array, required): one entry per suggestion to resolve
- `tab` (string): Target a specific tab by tabId or title (from list_tabs). Defaults to the first tab.

### `list_comments` (~75 tokens)

List comments on a doc

List comments on a Google Doc (author display name, quoted text, body, resolved status, replies). Author email is not available via the Drive API.

Input parameters:

- `account` (string): Google account email to use. Defaults to GDOCS_DEFAULT_ACCOUNT, or the sole account.
- `documentId` (string, required): Google Doc id

### `add_comment` (~130 tokens)

Add a comment or reply

Add a comment to a Google Doc, or reply to an existing comment thread by passing replyTo (a comment id from list_comments). A new comment (no replyTo) is not anchored to specific text — the Docs/Drive API cannot anchor programmatically-created comments.

Input parameters:

- `account` (string): Google account email to use. Defaults to GDOCS_DEFAULT_ACCOUNT, or the sole account.
- `content` (string, required)
- `documentId` (string, required)
- `replyTo` (string): a comment id (from list_comments) to reply to; omit to start a new top-level comment

### `resolve_comment` (~137 tokens)

Resolve or reopen a comment

Resolve (or reopen) a comment thread by comment id. Pass expectQuote (a snippet of the comment’s quoted text or body, from list_comments) — shown for confirmation and verified against the live comment, so a wrong/stale id is refused instead of resolving the wrong thread.

Input parameters:

- `account` (string): Google account email to use. Defaults to GDOCS_DEFAULT_ACCOUNT, or the sole account.
- `commentId` (string, required)
- `documentId` (string, required)
- `expectQuote` (string): snippet of the comment’s quoted text/body; verified before resolving
- `reopen` (boolean): reopen instead of resolve

### `create_doc` (~230 tokens)

Create a new Google Doc

Create a new Google Doc with a title and optional initial content (rendered as markdown). Optionally place it in a Drive folder (by folder URL or id); otherwise it goes to My Drive root. For long documents, pass contentFile (a local path) instead of content so the server reads the body directly — retyping a long doc inline can silently drop or fuse text.

Input parameters:

- `account` (string): Google account email to use. Defaults to GDOCS_DEFAULT_ACCOUNT, or the sole account.
- `baseDir` (string): absolute dir to resolve relative local image paths against (e.g. the markdown file’s folder)
- `content` (string)
- `contentFile` (string): path to a local markdown/text file to use as the body, read directly by the server — preferred for long documents so the body is passed through mechanically rather than retyped inline (which can sile…
- `folder` (string): Drive folder URL or id to create the doc in
- `title` (string, required)

### `update_doc` (~178 tokens)

Update a doc’s name and/or folder

Update a Google Doc’s metadata: rename it (name) and/or move it to a Drive folder (folder, by URL or id). Provide name, folder, or both. When moving, pass expectTitle (the doc’s title) — shown for confirmation and verified against the live doc before moving; if it doesn’t match, nothing is changed. (Content edits use edit_doc/overwrite_doc, not this.)

Input parameters:

- `account` (string): Google account email to use. Defaults to GDOCS_DEFAULT_ACCOUNT, or the sole account.
- `documentId` (string, required)
- `expectTitle` (string): the doc’s current title; verified before moving so a wrong id is refused
- `folder` (string): Drive folder URL or id to move the doc into
- `name` (string): new name/title for the doc

### `overwrite_doc` (~305 tokens)

Overwrite a doc (guarded)

Replace the entire body of a doc (or one tab) with markdown-rendered content. Refuses if comments/suggestions are present (would orphan them) unless force=true. Pass expectTitle (the doc’s title) — shown for confirmation and verified against the live doc before replacing. For long documents, pass contentFile instead of content so the server reads the body directly (retyping a long doc inline can silently drop text). A direct edit, not a tracked suggestion.

Input parameters:

- `account` (string): Google account email to use. Defaults to GDOCS_DEFAULT_ACCOUNT, or the sole account.
- `baseDir` (string): absolute dir to resolve relative local image paths against (e.g. the markdown file’s folder)
- `content` (string): markdown content (or use contentFile)
- `contentFile` (string): path to a local markdown/text file to use as the new body, read directly by the server — preferred for long documents so the body is passed through mechanically rather than retyped inline (which can…
- `documentId` (string, required)
- `expectTitle` (string): the doc’s title; verified before overwriting so a wrong id is refused
- `force` (boolean): proceed even if comments/suggestions would be lost
- `tab` (string): Target a specific tab by tabId or title (from list_tabs). Defaults to the first tab.

### `edit_table` (~221 tokens)

Insert or delete a table row/column

Structurally edit the table containing the given cell text: insert or delete a row or column. `op` picks the operation; `side` picks which side an insert goes on (for rows: after=below (default)/before=above; for columns: after=right (default)/before=left) and is ignored for deletes. Deletes remove the row/column that contains `cell`.

Input parameters:

- `account` (string): Google account email to use. Defaults to GDOCS_DEFAULT_ACCOUNT, or the sole account.
- `cell` (string, required): text identifying a cell in the target table
- `documentId` (string, required)
- `op` (string, required): the structural edit to perform
- `side` (string): for inserts: which side of `cell` to add on — rows after=below (default)/before=above; columns after=right (default)/before=left. Ignored for deletes.
- `tab` (string): Target a specific tab by tabId or title (from list_tabs). Defaults to the first tab.

### `set_table_style` (~230 tokens)

Style an existing table

Edit style/layout of an existing table (located by any cell’s text): cell padding (pt), background color (hex), and column widths (pt). scope selects which cells padding/background hit — table (default), row, column, or cell (the row/column of the matched cell). Fixes e.g. thin left padding that clips the first letter of cells. A direct edit, not a tracked suggestion.

Input parameters:

- `account` (string): Google account email to use. Defaults to GDOCS_DEFAULT_ACCOUNT, or the sole account.
- `backgroundColor` (string): hex, e.g. #f1f3f4
- `cell` (string, required): text of any cell in the target table (locates the table)
- `columnWidths` (array): set specific column widths (points) by column index
- `documentId` (string, required)
- `padding` (object): cell padding in points
- `scope` (string): default table
- `tab` (string): Target a specific tab by tabId or title (from list_tabs). Defaults to the first tab.

### `list_folder` (~72 tokens)

List a Drive folder

List the files and subfolders directly inside a Drive folder (by URL or id). Defaults to My Drive root.

Input parameters:

- `account` (string): Google account email to use. Defaults to GDOCS_DEFAULT_ACCOUNT, or the sole account.
- `folder` (string): folder URL or id (default My Drive root)

### `search_drive` (~70 tokens)

Search Drive by name

Find files/folders whose name contains the query. Optionally restrict to folders or documents.

Input parameters:

- `account` (string): Google account email to use. Defaults to GDOCS_DEFAULT_ACCOUNT, or the sole account.
- `query` (string, required)
- `type` (string): restrict results (default any)

### `list_permissions` (~63 tokens)

List who a doc is shared with

List the permissions on a Google Doc (people, groups, domain, anyone-with-link) with their roles.

Input parameters:

- `account` (string): Google account email to use. Defaults to GDOCS_DEFAULT_ACCOUNT, or the sole account.
- `documentId` (string, required)

### `share_doc` (~169 tokens)

Share a doc (person or link)

Grant access to a Google Doc. With `email`, share with that person as reader/commenter/writer (optionally sending a notification). Without `email`, set anyone-with-link access to that role, or role "none" to disable link sharing. (To revoke a specific person’s access, use unshare_doc.)

Input parameters:

- `account` (string): Google account email to use. Defaults to GDOCS_DEFAULT_ACCOUNT, or the sole account.
- `documentId` (string, required)
- `email` (string): person to share with; omit to set anyone-with-link access instead
- `notify` (boolean): when sharing with a person, send a notification email (default true)
- `role` (string): access level; default writer. "none" (link only) disables link sharing.

### `unshare_doc` (~63 tokens)

Remove someone’s access

Revoke a person’s direct access to a Google Doc by email.

Input parameters:

- `account` (string): Google account email to use. Defaults to GDOCS_DEFAULT_ACCOUNT, or the sole account.
- `documentId` (string, required)
- `email` (string, required)

### `list_tabs` (~58 tokens)

List document tabs

List the tabs in a Google Doc (tabId, title, index, nesting).

Input parameters:

- `account` (string): Google account email to use. Defaults to GDOCS_DEFAULT_ACCOUNT, or the sole account.
- `documentId` (string, required)

### `add_tab` (~99 tokens)

Add a tab

Add a new tab to a Google Doc. Returns the new tabId. Optionally set position (index) and parent tab for nesting.

Input parameters:

- `account` (string): Google account email to use. Defaults to GDOCS_DEFAULT_ACCOUNT, or the sole account.
- `documentId` (string, required)
- `index` (number): position among tabs
- `parentTabId` (string): nest under this tab
- `title` (string, required)

### `rename_tab` (~63 tokens)

Rename a tab

Rename a tab by tabId.

Input parameters:

- `account` (string): Google account email to use. Defaults to GDOCS_DEFAULT_ACCOUNT, or the sole account.
- `documentId` (string, required)
- `tabId` (string, required)
- `title` (string, required)

### `delete_tab` (~124 tokens)

Delete a tab

Delete a tab by tabId (cascades to child tabs). expectTitle (the tab’s title from list_tabs) is REQUIRED — it is shown in the confirmation and verified against the live tab, so an opaque/stale tabId cannot silently delete the wrong tab.

Input parameters:

- `account` (string): Google account email to use. Defaults to GDOCS_DEFAULT_ACCOUNT, or the sole account.
- `documentId` (string, required)
- `expectTitle` (string, required): the tab’s title (from list_tabs); verified before deleting
- `tabId` (string, required)

## Diagnostics

Captured diagnostic sections: Provenance, Vulnerabilities, Dependencies. The full working is on the page: https://verifymcp.io/servers/dasasian-gdocs-mcp/dasasian-gdocs-mcp#diagnostics

## Score history

- 2026-08-07: 64
- 2026-08-06: 61
- 2026-08-05: 61
- 2026-08-04: 61
- 2026-08-03: 61
- 2026-08-02: 61
- 2026-08-01: 26
- 2026-07-31: 21

## Links

- npm package: https://www.npmjs.com/package/@dasasian/gdocs-mcp
- Socket report: https://socket.dev/npm/package/@dasasian/gdocs-mcp
- Repository: https://github.com/dasasian/gdocs-mcp
- Changelog RSS feed: https://verifymcp.io/servers/dasasian-gdocs-mcp/dasasian-gdocs-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/dasasian-gdocs-mcp/dasasian-gdocs-mcp.json
- HTML version of this page: https://verifymcp.io/servers/dasasian-gdocs-mcp/dasasian-gdocs-mcp
