MCP server giving AI assistants real write access to Google Drive: in-place edits that preserve file IDs, revision history, comments, and sharing.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · http counts 9 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
append_to_file
-
create_file
-
get_file_metadata
-
list_revisions
-
prepend_to_file
-
read_file
-
replace_in_file
-
search_files
-
update_file_content
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit b931890 · analyzer v33 · 4d ago
danger signals4
- over-broad OAuth scope https://www.googleapis.com/auth/drive
expected for this server's purpose
anaborne-gdrive-write-mcp-b931890/scripts/authorize.mjs :25
const DRIVE_SCOPE = 'https://www.googleapis.com/auth/drive'; - over-broad OAuth scope https://www.googleapis.com/auth/drive
expected for this server's purpose
anaborne-gdrive-write-mcp-b931890/src/auth.ts :14
export const DRIVE_SCOPE = 'https://www.googleapis.com/auth/drive'; - over-broad OAuth scope https://www.googleapis.com/auth/drive
expected for this server's purpose
anaborne-gdrive-write-mcp-b931890/src/errors.ts :92
'https://www.googleapis.com/auth/drive scope rather than drive.file or a read-only scope.' - credential in logs credential in log anaborne-gdrive-write-mcp-b931890/scripts/authorize.mjs :173
console.log(` GOOGLE_REFRESH_TOKEN=${tokens.refresh_token}\n`);
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 14
filesystem 2
- fs (weak) anaborne-gdrive-write-mcp-b931890/scripts/authorize.mjs :14
import { readFileSync, existsSync } from 'node:fs'; - fs (weak) anaborne-gdrive-write-mcp-b931890/scripts/verify.mjs :13
import { readFileSync, existsSync } from 'node:fs';
shell / exec 1
- shell (weak) anaborne-gdrive-write-mcp-b931890/scripts/verify.mjs :12
import { spawn } from 'node:child_process';
network 1
- net (weak) anaborne-gdrive-write-mcp-b931890/scripts/authorize.mjs :13
import { createServer } from 'node:http';
secrets 2
- secrets (weak) anaborne-gdrive-write-mcp-b931890/scripts/authorize.mjs :73
const clientSecret = process.env.GOOGLE_CLIENT_SECRET?.trim(); - secrets (weak) anaborne-gdrive-write-mcp-b931890/scripts/verify.mjs :104
GOOGLE_CLIENT_SECRET: process.env.GOOGLE_CLIENT_SECRET,
tool registrations 9
- read_file anaborne-gdrive-write-mcp-b931890/src/tools.ts :38
- get_file_metadata anaborne-gdrive-write-mcp-b931890/src/tools.ts :79
- search_files anaborne-gdrive-write-mcp-b931890/src/tools.ts :93
- list_revisions anaborne-gdrive-write-mcp-b931890/src/tools.ts :118
- update_file_content anaborne-gdrive-write-mcp-b931890/src/tools.ts :152
- replace_in_file anaborne-gdrive-write-mcp-b931890/src/tools.ts :199
- append_to_file anaborne-gdrive-write-mcp-b931890/src/tools.ts :253
- prepend_to_file anaborne-gdrive-write-mcp-b931890/src/tools.ts :292
- create_file anaborne-gdrive-write-mcp-b931890/src/tools.ts :327
install hooks 1
- prepublishOnly anaborne-gdrive-write-mcp-b931890/package.json :43
npm run build
declared dependencies 5
- @modelcontextprotocol/sdk@^1.0.4
- googleapis@^176.0.0
- zod@^3.23.8
- @types/node@^22.10.2
- typescript@^5.7.2