Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

io.github.aaronsb/google-workspace

NPM · @AARONSB/GOOGLE-WORKSPACE-MCP · SCANNED AUG 3

Give AI agents access to Gmail, Calendar, Drive, and more — multi-account, manifest-driven

+15 this week 59 Trust /100
Trust breakdown (6 categories)

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. How we score →

Supply Chain Security87
  • No malware found by supply-chain analysis.Pass
  • Only part of the dependency tree could be resolved (112 of 116), so this covers what we could see, not the whole tree.Partial
  • No install/post-install scripts declared.Pass
  • Only part of the dependency tree could be resolved (112 of 116), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency19
Schema Quality & AI Usability71
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 4213 tokens (~280/item across 15 items; 11 tools + 4 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass

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

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · @aaronsb/google-workspace-mcp

# add to Claude Code
claude mcp add aaronsb-google-workspace -- npx -y @aaronsb/google-workspace-mcp
# add to Codex CLI
codex mcp add aaronsb-google-workspace -- npx -y @aaronsb/google-workspace-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "aaronsb-google-workspace": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@aaronsb/google-workspace-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add aaronsb-google-workspace --command npx --arg -y --arg @aaronsb/google-workspace-mcp
# ~/.hermes/config.yaml
mcp_servers:
  aaronsb-google-workspace:
    command: "npx"
    args: ["-y", "@aaronsb/google-workspace-mcp"]
// mcp.json
{
  "mcpServers": {
    "aaronsb-google-workspace": {
      "command": "npx",
      "args": [
        "-y",
        "@aaronsb/google-workspace-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 3 Aug 26 +25
    • Provenance: unverified → fail security
    • Install scripts: unverified → pass security
    • Known CVEs: unverified → partial security
    • Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
    • Security disclosure: unverified → fail functional
    • License: unverified → pass functional
    • Dependency health: unverified → partial functional
    • Maintenance: unverified → pass functional
    • MCP protocol: unverified → pass functional
    • Schema quality: unverified → good functional
    • Licence: Apache-2.0 functional
  • 1 Aug 26 +8
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 31 Jul 26 −18
    • Malware scan: pass → unverified security
  • 30 Jul 26 +26
    • Tool coverage: unverified → 100 functional
    • Schema quality: unverified → 100 functional
  • 28 Jul 26 −26
    • Tool coverage: 100 → unverified functional
    • Schema quality: 100 → unverified functional
  • 27 Jul 26 44

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Analysed npm/@aaronsb/[email protected]

Provenance none

Ecosystem: npm · Outcome: none

Dependencies 112 packages

112 packages in the resolved dependency tree · 112 deprecated · 33 stale.

The dependency tree was only partially resolved, so these counts may be incomplete.

MCP tools — 11 exposed · ~4,148 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
manage_accounts ~160

Manage Google Workspace account lifecycle: list, authenticate, check status, refresh credentials, update scopes, or remove accounts.

NameTypeReqDescription
categorystringFor authenticate (default: personal)
descriptionstringFor authenticate — optional label
emailstringRequired for remove, status, refresh, scopes
operationstringyeslist: show all accounts | authenticate: add new account (opens browser) | remove: delete account and credentials | status: check token validity and scopes | refresh: renew credentials | scopes: re-au…
servicesstringFor scopes — comma-separated service names (e.g. gmail,drive,calendar,sheets)

No output schema declared.

No examples provided.

manage_calendar ~457

List events, view agenda, check availability, or manage calendar events.

NameTypeReqDescription
attendeesstringComma-separated attendee emails
calendarIdstringCalendar ID to query (default: 'primary'). Use 'calendars' operation to list available IDs.
daysnumberNumber of days ahead to show (default: today only)
descriptionstringEvent description or notes
emailstringyesAccount email address
endstringEnd time (ISO 8601)
eventIdstringEvent ID
locationstringEvent location
maxResultsnumberMax events (default: 10, max: 50)
meetbooleanAdd a Google Meet video conference link to the event
operationstringyeslist: upcoming events — defaults to primary calendar, use calendarId to target a specific calendar (use 'calendars' operation to discover IDs) | agenda: today's schedule at a glance (all calendars).…
querystringFree-text search terms to filter events
startstringStart time (ISO 8601)
summarystringEvent title
textstringNatural language event description
timeMaxstringEnd of range (ISO 8601)
timeMinstringStart of range (ISO 8601) — defaults to today
tomorrowbooleanShow tomorrow's events instead of today
weekbooleanShow this week's events

No output schema declared.

No examples provided.

manage_docs ~184

Read, write, insert, and find-replace text in Google Docs documents.

NameTypeReqDescription
documentIdstringDocument ID
emailstringyesAccount email address
findTextstringText to find
indexnumberCharacter index to insert at (1 = start of document body)
matchCasebooleanCase-sensitive match (default: true)
operationstringyesget: get document content and metadata | create: create a new document | write: append text to the end of a document | insertText: insert text at a specific position in a document | replaceText: find…
replaceWithstringReplacement text
textstringText to append (plain text)
titlestringDocument title (default: 'Untitled document')

No output schema declared.

No examples provided.

manage_drive ~678

Search, upload, download, share, comment on, or manage files in Google Drive.

NameTypeReqDescription
addParentsstringComma-separated folder ID(s) to add as parents (move into a folder)
commentIdstringComment ID
contentstringComment text
domainstringDomain name (required when type is 'domain').
emailstringyesAccount email address
fileIdstringFile ID
filePathstringLocal file path to upload
includeDeletedbooleanInclude deleted comments (default: false)
maxResultsnumberMax results (default: 10, max: 50)
mimeTypestringTarget format (e.g. application/pdf, text/csv, text/plain, application/vnd.openxmlformats-officedocument.wordprocessingml.document)
namestringFile name in Drive (defaults to local name)
operationstringyessearch: find files by query | get: get file metadata | upload: upload a local file to Drive | viewImage: view an image file inline without saving to workspace (png, jpg, gif, webp). Use for quick pre…
outputPathstringLocal path to save the file
parentFolderIdstringDestination folder ID
permissionIdstringPermission ID to remove (from listPermissions)
querystringDrive search query (e.g. "name contains 'budget'" or "mimeType='application/pdf'")
quotedTextstringText to anchor the comment to (optional — if provided, comment is anchored to first occurrence)
removeParentsstringComma-separated folder ID(s) to remove as parents (move out of a folder)
resolvedbooleantrue to resolve, false to reopen
rolestringPermission level
shareEmailstringEmail address (required when type is 'user' or 'group'). Omit for 'domain' (use 'domain' param) or 'anyone'.
typestringPermission type (default: 'user'). Use 'group' for Google Groups, 'domain' to share with an entire G Suite domain, 'anyone' for public links.

No output schema declared.

No examples provided.

manage_email ~677

Search, read, send, forward, or manage emails in a Google Workspace account. Supports Gmail search syntax.

NameTypeReqDescription
addLabelIdsstringComma-separated label IDs to add (e.g. STARRED, IMPORTANT, Label_123)
attachmentsstringWorkspace filenames to attach, comma-separated (files must exist in workspace via manage_workspace). Creates draft when present.
bccstringBCC email(s), comma-separated
bodystringEmail body text
bodyFormatstringHow to render the message body. 'plain' (default) returns text/plain or a crude HTML-strip fallback. 'html' returns the text/html part sanitized — useful when the plain-text part is empty/stub.
ccstringCC email(s), comma-separated
draftbooleanSave as draft instead of sending (default: false, forced true when attachments present)
emailstringyesAccount email address
filenamestringFilename to save as (from the read response, e.g. 'invoice_template.md')
fromstringSender email or RFC 2822 mailbox for a verified Gmail Send As alias
htmlbooleanTreat body as HTML content (default: plain text)
maxResultsnumberMax results (default: 10, max: 50)
messageIdstringEmail message ID
operationstringyessearch: find emails by query | read: get full email by ID. Pass bodyFormat: 'html' when the plain-text part is a stub (marketing email, invitations, booking confirmations) and the dates/codes you nee…
querystringGmail search query (e.g. "from:alice subject:meeting has:attachment")
removeLabelIdsstringComma-separated label IDs to remove (e.g. UNREAD, INBOX to archive)
subjectstringEmail subject line
threadIdstringThread ID to retrieve
tostringRecipient email(s), comma-separated

No output schema declared.

No examples provided.

manage_meet ~381

Browse past Google Meet conferences, participants, transcripts, recordings, and AI-generated smart notes. Requires Workspace Business Standard+ for transcripts/recordings.

NameTypeReqDescription
conferenceIdstringConference record ID (from listConferences)
emailstringyesAccount email address
filterstringEBNF filter (e.g. 'space.meeting_code = "abc-mnop-xyz"' or 'start_time>="2026-01-01T00:00:00Z"')
maxResultsnumberMax conferences to return (default: 25, max: 100)
operationstringyeslistConferences: list recent meeting conferences (default: descending by start time) | getConference: get details of a specific conference | listParticipants: list who attended a conference | listTra…
pageTokenstringPage token from a previous getFullTranscript call to continue reading
recordingNamestringRecording resource name (from listRecordings)
smartNoteNamestringSmart note resource name (from listSmartNotes)
transcriptNamestringTranscript resource name (from listTranscripts)

No output schema declared.

No examples provided.

manage_scratchpad ~570

Compose, edit, and deliver text content. Use for any multi-line content: emails, documents, descriptions. Compose in the scratchpad, edit by line or JSON path, attach files, then send to any target. For short one-liners, use the service tool directly instead.

NameTypeReqDescription
afterLinenumberInsert after this line number (0 = prepend). For insert_lines, copy_lines, attach.
contentstringText content. For create (pre-fill), insert_lines, append_lines, replace_lines.
endLinenumberEnd of line range (inclusive). For replace_lines, remove_lines, copy_lines, view.
fileIdstringFor attach (drive source): Drive file ID
filenamestringFor attach (workspace source): filename in workspace
formatstringFor create: content format (default: text). Controls validation and addressing mode.
fromScratchpadIdstringFor copy_lines: source scratchpad ID
keepbooleanFor send: keep scratchpad after successful send (default: true)
labelstringFor create: optional human-readable label
operationstringyescreate: new buffer | view: show content | discard: free buffer | list: show all | insert_lines/append_lines/replace_lines/remove_lines: line editing | copy_lines: copy from another scratchpad | json_…
pathstringFor json_* ops: JSON path (e.g., $.config.name, $.items[0].value)
refIdstringFor detach: attachment reference ID (att-1, att-2, etc.)
scratchpadIdstringScratchpad ID (sp-XXXX). Required for all operations except create and list.
sourcestringFor attach: file source (workspace or drive). For import: resource type (doc, email, sheet, drive_file).
sourceParamsobjectFor import: source-specific parameters (e.g., { documentId, mode } for doc, { messageId } for email)
startLinenumberStart of line range (1-based). For replace_lines, remove_lines, copy_lines, view.
targetstringFor send: delivery target
targetParamsobjectFor send: target-specific parameters (e.g., { email, to, subject } for email, { filename } for workspace)
valueFor json_set, json_insert: value to set or insert (any JSON type)

No output schema declared.

No examples provided.

manage_sheets ~480

Read, write, and manage Google Sheets spreadsheets.

NameTypeReqDescription
columnCountnumberInitial column count (default 26)
destinationSpreadsheetIdstringDestination spreadsheet ID
emailstringyesAccount email address
indexnumberPosition among tabs (0-based). Appended at the end if omitted.
jsonValuesstringJSON 2D array of rows for bulk insert (e.g. '[["a","b"],["c","d"]]')
operationstringyesget: get spreadsheet metadata and sheet names | create: create a new spreadsheet (optionally with a title) | read: read cell values from a range; rendered rows are prefixed with their sheet row numbe…
rangestringRange to read (e.g. 'Sheet1!A1:D10' or just 'Sheet1')
rowCountnumberInitial row count (default 1000)
sheetIdnumberSheet ID of the tab to rename (from manage_sheets get)
spreadsheetIdstringSpreadsheet ID
titlestringSpreadsheet title (defaults to 'Untitled spreadsheet')
valueInputOptionstringHow input is interpreted: USER_ENTERED (default, parses formulas/types) or RAW
valuesstringComma-separated values for a single row (e.g. 'Alice,100,true')

No output schema declared.

No examples provided.

manage_tasks ~263

Manage task lists and tasks in Google Tasks.

NameTypeReqDescription
duestringDue date (RFC 3339, e.g. 2026-07-20T00:00:00.000Z — Google stores the date, not the time)
emailstringyesAccount email address
maxResultsnumberMax tasks to return (default: 20, max: 100)
notesstringTask notes / details
operationstringyeslistTaskLists: list all task lists | getTaskList: get a task list by ID | createTaskList: create a new task list | deleteTaskList: delete a task list and all its tasks | list: list tasks in a task li…
showCompletedbooleanInclude completed tasks (default: true)
statusstringTask status
taskIdstringTask ID
taskListIdstringTask list ID
titlestringTask list name

No output schema declared.

No examples provided.

manage_workspace ~225

Manage files and directories in the workspace sandbox. Supports nested paths (e.g. "reports/q1/summary.csv"). The workspace is the exchange point for file operations (attachments, downloads, exports).

NameTypeReqDescription
contentstringFile content to write (for write)
destinationstringDestination path (for move, compress, decompress). Defaults to filename.gz for compress, strips .gz for decompress.
filenamestringFile path, may include directories (for read, write, delete, compress, decompress). E.g. "reports/q1/summary.csv"
operationstringyeslist: show files (recursive) | read: get file content | write: save content to file | delete: remove file or directory | move: move or rename a file/directory | mkdir: create a directory | compress:…
pathstringDirectory path (for list: scope to subdirectory, for mkdir: directory to create)
sourcestringSource path (for move)

No output schema declared.

No examples provided.

queue_operations ~73

Execute multiple operations in sequence. Operations run in order with result references ($0.field) to chain outputs. Use for multi-step workflows.

NameTypeReqDescription
detailstringsummary: one-line status per operation (default) | full: include complete output from each operation
operationsarrayyesOperations to execute sequentially

No output schema declared.

No examples provided.