gogcli-mcp-docs
npm
v2.29.0
Source verified
Published by chrischall — publish provenance cryptographically ties this package to that repository. That is proof of origin, not an official vendor package.
Extended Google Docs MCP server via gogcli — all base tools plus full Docs support
The grade answers one question — how safe is this server for you to adopt — so it is computed in two auditable stages. Nothing below is an opinion or an LLM's guess; every line is a real term the deterministic engine applied, and the same input always yields the same number.
1. Threat score — 100 − 0 = 100. What the published surface and source actually contain:
The deterministic scan raised no scored threat in the surface it inspected — the threat score stayed at 100. Capability observations and advisory notes are recorded but never lower it.
2. Client adoption risk — 100 − 6 = 94. Three small, subtract-only factors that reflect your risk in adopting it — a clean scan proves less on a powerful, unverified or barely-inspectable package, so the grade says so plainly:
| Points | Adoption-risk factor |
|---|---|
| −6 | capability blast radius (high) — client exposure if the model is manipulated |
Capability observations and info notes are shown under Findings but never scored.
Open any row's finding below for the file, line and evidence behind a deduction.
In the server's implementation (`dist/index.js:2946`): Evaluating strings as code is the most direct RCE primitive; if any tool input reaches it, the server executes attacker-chosen code. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: const makeValidate = new Function(`${names_1.default.self}`, `${names_1.default.scope}`, sourceCode); const v
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server dist/index.js
In the server's implementation (`dist/index.js:31646`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: ?? (await import("node:child_process")).spawn; const effectiveTimeout = timeout ?? TIMEOUT_MS; return new Promise((
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server dist/index.js
Tool "gog_docs_insert_image" takes a URL/host parameter "url" with no allowlist/pattern. An outbound-request tool with an unbounded destination enables SSRF and cloud-metadata access (e.g. 169.254.169.254).
Fix: Allowlist destinations or constrain the parameter; block private/link-local addresses server-side.
Location: tool gog_docs_insert_image · inputSchema.properties.url
Each tool and what it can reach — statically extracted from the published source.
gog_docs_insert_imageingests untrusted inputgog_batch_abortno sensitive capabilitygog_batch_beginno sensitive capabilitygog_batch_endno sensitive capabilitygog_batch_listno sensitive capabilitygog_batch_pruneno sensitive capabilitygog_batch_showno sensitive capabilitygog_docs_add_tabno sensitive capabilitygog_docs_appendno sensitive capabilitygog_docs_cell_styleno sensitive capabilitygog_docs_cell_updateno sensitive capabilitygog_docs_clearno sensitive capabilitygog_docs_comments_addno sensitive capabilitygog_docs_comments_deleteno sensitive capabilitygog_docs_comments_getno sensitive capabilitygog_docs_comments_listno sensitive capabilitygog_docs_comments_locateno sensitive capabilitygog_docs_comments_reopenno sensitive capabilitygog_docs_comments_replyno sensitive capabilitygog_docs_comments_resolveno sensitive capabilitygog_docs_copyno sensitive capabilitygog_docs_deleteno sensitive capabilitygog_docs_delete_tabno sensitive capabilitygog_docs_editno sensitive capabilitygog_docs_exportno sensitive capabilitygog_docs_find_rangeno sensitive capabilitygog_docs_footer_createno sensitive capabilitygog_docs_footer_deleteno sensitive capabilitygog_docs_footer_listno sensitive capabilitygog_docs_formatno sensitive capabilitygog_docs_header_createno sensitive capabilitygog_docs_header_deleteno sensitive capabilitygog_docs_header_listno sensitive capabilitygog_docs_headings_listno sensitive capabilitygog_docs_images_listno sensitive capabilitygog_docs_insertno sensitive capabilitygog_docs_insert_date_chipno sensitive capabilitygog_docs_insert_footnoteno sensitive capabilitygog_docs_insert_horizontal_ruleno sensitive capabilitygog_docs_insert_page_breakno sensitive capabilitygog_docs_insert_personno sensitive capabilitygog_docs_insert_section_breakno sensitive capabilitygog_docs_insert_tableno sensitive capabilitygog_docs_list_tabsno sensitive capabilitygog_docs_named_range_createno sensitive capabilitygog_docs_named_range_deleteno sensitive capabilitygog_docs_named_range_listno sensitive capabilitygog_docs_named_range_replaceno sensitive capabilitygog_docs_page_layoutno sensitive capabilitygog_docs_paragraphs_listno sensitive capabilitygog_docs_readno sensitive capabilitygog_docs_rename_tabno sensitive capabilitygog_docs_replace_imageno sensitive capabilitygog_docs_section_columnsno sensitive capabilitygog_docs_sedno sensitive capabilitygog_docs_suggestions_listno sensitive capabilitygog_docs_table_column_deleteno sensitive capabilitygog_docs_table_column_insertno sensitive capabilitygog_docs_table_column_widthno sensitive capabilitygog_docs_table_mergeno sensitive capabilitygog_docs_table_row_deleteno sensitive capabilitygog_docs_table_row_insertno sensitive capabilitygog_docs_table_row_pin_headerno sensitive capabilitygog_docs_table_row_styleno sensitive capabilitygog_docs_table_unmergeno sensitive capabilitygog_docs_tables_listno sensitive capabilitygog_docs_trashno sensitive capabilitygog_docs_updateno sensitive capabilityScan history per published version. The engine is deterministic — the same version always yields the same score, so a changed score means the package itself changed.
| Version | Score | Findings | Engine | Scanned |
|---|---|---|---|---|
v2.29.0 latest |
A 94/100 | 3 | 1.13.0 | 2026-09-07 |
v2.27.1 |
A 94/100 | 3 | 1.13.0 | 2026-09-04 |
v2.27.0 |
A 94/100 | 3 | 1.13.0 | 2026-09-01 |
v2.26.0 |
A 94/100 | 3 | 1.13.0 | 2026-08-29 |
v2.25.0 |
A 94/100 | 3 | 1.13.0 | 2026-08-28 |
v2.24.0 |
A 94/100 | 3 | 1.12.1 | 2026-08-15 |
v2.23.2 |
A 94/100 | 3 | 1.12.1 | 2026-08-14 |
v2.23.1 |
A 94/100 | 3 | 1.12.1 | 2026-08-13 |
v2.22.0 |
A 94/100 | 3 | 1.12.1 | 2026-08-10 |
v2.20.0 |
A 94/100 | 3 | 1.12.1 | 2026-08-09 |
Show this server's live Trust Score in your README, docs or website. The badge is served straight from the registry and updates automatically after every rescan — no API key needed. It links back to this page, so anyone who sees the grade can also read the findings behind it instead of taking a number on faith.
The score above is reproducible: the same package version always yields the same result. Run it locally or over the free API — no account, no LLM, fully deterministic.
npx mcptrustchecker scan gogcli-mcp-docs --online
stdio compatibility bridge for the hosted AgentMail MCP server
MCP server for Alfa documentation retrieval
MCP server providing Alpine.js documentation and reference
Search the official Astro framework documentation.
MCP server providing ATAG 2.0 (Authoring Tool Accessibility Guidelines) guidance for authoring tool developers
Aurais Research Reader as an MCP server — paste a paper or article, get a structured read with verbatim-verified quotes + a signed Vorion proof chain (via @vorionsys/aurais-core).