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
Available components
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
- Repository check failed: no source repository is declared. See how to fix → View diagnostics → Fail
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (Apache-2.0).Pass
- Actively maintained (last published 21 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
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.
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
claude mcp add aaronsb-google-workspace -- npx -y @aaronsb/google-workspace-mcp
codex mcp add aaronsb-google-workspace -- npx -y @aaronsb/google-workspace-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"aaronsb-google-workspace": {
"type": "local",
"command": [
"npx",
"-y",
"@aaronsb/google-workspace-mcp"
],
"enabled": true
}
}
} openclaw mcp add aaronsb-google-workspace --command npx --arg -y --arg @aaronsb/google-workspace-mcp
mcp_servers:
aaronsb-google-workspace:
command: "npx"
args: ["-y", "@aaronsb/google-workspace-mcp"] {
"mcpServers": {
"aaronsb-google-workspace": {
"command": "npx",
"args": [
"-y",
"@aaronsb/google-workspace-mcp"
]
}
}
} 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.
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.
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.
manage_accounts ~160
Manage Google Workspace account lifecycle: list, authenticate, check status, refresh credentials, update scopes, or remove accounts.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | — | For authenticate (default: personal) |
| description | string | — | For authenticate — optional label |
| string | — | Required for remove, status, refresh, scopes | |
| operation | string | yes | list: 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… |
| services | string | — | For 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.
| Name | Type | Req | Description |
|---|---|---|---|
| attendees | string | — | Comma-separated attendee emails |
| calendarId | string | — | Calendar ID to query (default: 'primary'). Use 'calendars' operation to list available IDs. |
| days | number | — | Number of days ahead to show (default: today only) |
| description | string | — | Event description or notes |
| string | yes | Account email address | |
| end | string | — | End time (ISO 8601) |
| eventId | string | — | Event ID |
| location | string | — | Event location |
| maxResults | number | — | Max events (default: 10, max: 50) |
| meet | boolean | — | Add a Google Meet video conference link to the event |
| operation | string | yes | list: 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).… |
| query | string | — | Free-text search terms to filter events |
| start | string | — | Start time (ISO 8601) |
| summary | string | — | Event title |
| text | string | — | Natural language event description |
| timeMax | string | — | End of range (ISO 8601) |
| timeMin | string | — | Start of range (ISO 8601) — defaults to today |
| tomorrow | boolean | — | Show tomorrow's events instead of today |
| week | boolean | — | Show 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.
| Name | Type | Req | Description |
|---|---|---|---|
| documentId | string | — | Document ID |
| string | yes | Account email address | |
| findText | string | — | Text to find |
| index | number | — | Character index to insert at (1 = start of document body) |
| matchCase | boolean | — | Case-sensitive match (default: true) |
| operation | string | yes | get: 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… |
| replaceWith | string | — | Replacement text |
| text | string | — | Text to append (plain text) |
| title | string | — | Document 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.
| Name | Type | Req | Description |
|---|---|---|---|
| addParents | string | — | Comma-separated folder ID(s) to add as parents (move into a folder) |
| commentId | string | — | Comment ID |
| content | string | — | Comment text |
| domain | string | — | Domain name (required when type is 'domain'). |
| string | yes | Account email address | |
| fileId | string | — | File ID |
| filePath | string | — | Local file path to upload |
| includeDeleted | boolean | — | Include deleted comments (default: false) |
| maxResults | number | — | Max results (default: 10, max: 50) |
| mimeType | string | — | Target format (e.g. application/pdf, text/csv, text/plain, application/vnd.openxmlformats-officedocument.wordprocessingml.document) |
| name | string | — | File name in Drive (defaults to local name) |
| operation | string | yes | search: 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… |
| outputPath | string | — | Local path to save the file |
| parentFolderId | string | — | Destination folder ID |
| permissionId | string | — | Permission ID to remove (from listPermissions) |
| query | string | — | Drive search query (e.g. "name contains 'budget'" or "mimeType='application/pdf'") |
| quotedText | string | — | Text to anchor the comment to (optional — if provided, comment is anchored to first occurrence) |
| removeParents | string | — | Comma-separated folder ID(s) to remove as parents (move out of a folder) |
| resolved | boolean | — | true to resolve, false to reopen |
| role | string | — | Permission level |
| shareEmail | string | — | Email address (required when type is 'user' or 'group'). Omit for 'domain' (use 'domain' param) or 'anyone'. |
| type | string | — | Permission 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.
| Name | Type | Req | Description |
|---|---|---|---|
| addLabelIds | string | — | Comma-separated label IDs to add (e.g. STARRED, IMPORTANT, Label_123) |
| attachments | string | — | Workspace filenames to attach, comma-separated (files must exist in workspace via manage_workspace). Creates draft when present. |
| bcc | string | — | BCC email(s), comma-separated |
| body | string | — | Email body text |
| bodyFormat | string | — | How 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. |
| cc | string | — | CC email(s), comma-separated |
| draft | boolean | — | Save as draft instead of sending (default: false, forced true when attachments present) |
| string | yes | Account email address | |
| filename | string | — | Filename to save as (from the read response, e.g. 'invoice_template.md') |
| from | string | — | Sender email or RFC 2822 mailbox for a verified Gmail Send As alias |
| html | boolean | — | Treat body as HTML content (default: plain text) |
| maxResults | number | — | Max results (default: 10, max: 50) |
| messageId | string | — | Email message ID |
| operation | string | yes | search: 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… |
| query | string | — | Gmail search query (e.g. "from:alice subject:meeting has:attachment") |
| removeLabelIds | string | — | Comma-separated label IDs to remove (e.g. UNREAD, INBOX to archive) |
| subject | string | — | Email subject line |
| threadId | string | — | Thread ID to retrieve |
| to | string | — | Recipient 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.
| Name | Type | Req | Description |
|---|---|---|---|
| conferenceId | string | — | Conference record ID (from listConferences) |
| string | yes | Account email address | |
| filter | string | — | EBNF filter (e.g. 'space.meeting_code = "abc-mnop-xyz"' or 'start_time>="2026-01-01T00:00:00Z"') |
| maxResults | number | — | Max conferences to return (default: 25, max: 100) |
| operation | string | yes | listConferences: list recent meeting conferences (default: descending by start time) | getConference: get details of a specific conference | listParticipants: list who attended a conference | listTra… |
| pageToken | string | — | Page token from a previous getFullTranscript call to continue reading |
| recordingName | string | — | Recording resource name (from listRecordings) |
| smartNoteName | string | — | Smart note resource name (from listSmartNotes) |
| transcriptName | string | — | Transcript 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.
| Name | Type | Req | Description |
|---|---|---|---|
| afterLine | number | — | Insert after this line number (0 = prepend). For insert_lines, copy_lines, attach. |
| content | string | — | Text content. For create (pre-fill), insert_lines, append_lines, replace_lines. |
| endLine | number | — | End of line range (inclusive). For replace_lines, remove_lines, copy_lines, view. |
| fileId | string | — | For attach (drive source): Drive file ID |
| filename | string | — | For attach (workspace source): filename in workspace |
| format | string | — | For create: content format (default: text). Controls validation and addressing mode. |
| fromScratchpadId | string | — | For copy_lines: source scratchpad ID |
| keep | boolean | — | For send: keep scratchpad after successful send (default: true) |
| label | string | — | For create: optional human-readable label |
| operation | string | yes | create: 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_… |
| path | string | — | For json_* ops: JSON path (e.g., $.config.name, $.items[0].value) |
| refId | string | — | For detach: attachment reference ID (att-1, att-2, etc.) |
| scratchpadId | string | — | Scratchpad ID (sp-XXXX). Required for all operations except create and list. |
| source | string | — | For attach: file source (workspace or drive). For import: resource type (doc, email, sheet, drive_file). |
| sourceParams | object | — | For import: source-specific parameters (e.g., { documentId, mode } for doc, { messageId } for email) |
| startLine | number | — | Start of line range (1-based). For replace_lines, remove_lines, copy_lines, view. |
| target | string | — | For send: delivery target |
| targetParams | object | — | For send: target-specific parameters (e.g., { email, to, subject } for email, { filename } for workspace) |
| value | — | — | For 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.
| Name | Type | Req | Description |
|---|---|---|---|
| columnCount | number | — | Initial column count (default 26) |
| destinationSpreadsheetId | string | — | Destination spreadsheet ID |
| string | yes | Account email address | |
| index | number | — | Position among tabs (0-based). Appended at the end if omitted. |
| jsonValues | string | — | JSON 2D array of rows for bulk insert (e.g. '[["a","b"],["c","d"]]') |
| operation | string | yes | get: 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… |
| range | string | — | Range to read (e.g. 'Sheet1!A1:D10' or just 'Sheet1') |
| rowCount | number | — | Initial row count (default 1000) |
| sheetId | number | — | Sheet ID of the tab to rename (from manage_sheets get) |
| spreadsheetId | string | — | Spreadsheet ID |
| title | string | — | Spreadsheet title (defaults to 'Untitled spreadsheet') |
| valueInputOption | string | — | How input is interpreted: USER_ENTERED (default, parses formulas/types) or RAW |
| values | string | — | Comma-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.
| Name | Type | Req | Description |
|---|---|---|---|
| due | string | — | Due date (RFC 3339, e.g. 2026-07-20T00:00:00.000Z — Google stores the date, not the time) |
| string | yes | Account email address | |
| maxResults | number | — | Max tasks to return (default: 20, max: 100) |
| notes | string | — | Task notes / details |
| operation | string | yes | listTaskLists: 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… |
| showCompleted | boolean | — | Include completed tasks (default: true) |
| status | string | — | Task status |
| taskId | string | — | Task ID |
| taskListId | string | — | Task list ID |
| title | string | — | Task 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).
| Name | Type | Req | Description |
|---|---|---|---|
| content | string | — | File content to write (for write) |
| destination | string | — | Destination path (for move, compress, decompress). Defaults to filename.gz for compress, strips .gz for decompress. |
| filename | string | — | File path, may include directories (for read, write, delete, compress, decompress). E.g. "reports/q1/summary.csv" |
| operation | string | yes | list: 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:… |
| path | string | — | Directory path (for list: scope to subdirectory, for mkdir: directory to create) |
| source | string | — | Source 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.
| Name | Type | Req | Description |
|---|---|---|---|
| detail | string | — | summary: one-line status per operation (default) | full: include complete output from each operation |
| operations | array | yes | Operations to execute sequentially |
No output schema declared.
No examples provided.