← Back to search

google-workspace-mcp-server

nityesh Scanned 3d ago

MCP server for Google Workspace APIs - Docs, Sheets, Drive, Gmail, and Calendar

npm
B
86.2 / 100

Versions

1.4.3latest
Mar 10, 2026
1.4.2
Jan 29, 2026
1.4.1
Jan 27, 2026
1.4.0
Jan 27, 2026
1.3.0
Jan 17, 2026
+ show 4 moreshow less
1.2.0
Jan 16, 2026
1.1.1
Jan 16, 2026
1.1.0
Jan 16, 2026
1.0.0
Jan 16, 2026
PermissionsTool SafetyAuthAnnotationsCode QualityStabilitySpecVuln HistoryAuthorTransparencyCommunity

Tools 34

calendar_list_calendars
annotations: verified low

List all calendars accessible to the user. Args: - response_format ('markdown' | 'json'): Output format (default: 'markdown') Returns: List of calendars with their IDs, names, and access roles.

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
calendar_list_events
annotations: verified low

List events from a calendar within an optional time range. Args: - calendar_id (string): Calendar ID (default: 'primary' for main calendar) - time_min (string, optional): Start of time range in ISO 8601 format (e.g., '2024-01-01T00:00:00Z') - time_max (string, optional): End of time range in ISO 8601 format - max_results (number): Maximum events to return, 1-250 (default: 10) - query (string, optional): Free text search to filter events - single_events (boolean): Expand recurring events into instances (default: true) - order_by ('startTime' | 'updated'): Sort order (default: 'startTime') - page_token (string, optional): Token for pagination - response_format ('markdown' | 'json'): Output format (default: 'markdown') Returns: List of events with title, time, location, and attendees. Examples: - Today's events: time_min="2024-01-15T00:00:00Z", time_max="2024-01-16T00:00:00Z" - Search meetings: query="standup" - Next 7 days: time_min=(now), time_max=(now + 7 days)

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
calendar_get_event
annotations: verified low

Get detailed information about a specific calendar event. Args: - calendar_id (string): Calendar ID (default: 'primary') - event_id (string): The event ID to retrieve - response_format ('markdown' | 'json'): Output format (default: 'markdown') Returns: Full event details including description, attendees, and conference info.

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
calendar_freebusy_query
annotations: verified low

Check availability (free/busy times) for one or more calendars within a time range. This is useful for finding available meeting times across multiple people. It only returns busy time blocks (not event details) for privacy. Args: - time_min (string): Start of the time range (ISO 8601 format, e.g., '2024-01-15T00:00:00Z') - time_max (string): End of the time range (ISO 8601 format, e.g., '2024-01-22T00:00:00Z') - calendar_ids (string[]): Array of calendar IDs or email addresses to check (e.g., ['primary', 'colleague@company.com']) - response_format ('markdown' | 'json'): Output format (default: 'markdown') Returns: For each calendar, a list of busy time blocks within the range. Requirements for checking other people's calendars: - Same Google Workspace organization, OR - They have shared their calendar with you, OR - Their calendar is public Examples: - Check your availability: calendar_ids=["primary"], time_min="2024-01-15T09:00:00Z", time_max="2024-01-15T18:00:00Z" - Check team availability: calendar_ids=["alice@company.com", "bob@company.com"]

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
gmail_list_messages
annotations: verified low

List messages from Gmail with optional search filters. Args: - query (string, optional): Gmail search query (e.g., 'from:boss@company.com is:unread', 'subject:invoice after:2024/01/01') - max_results (number): Maximum messages to return, 1-100 (default: 10) - label_ids (string[]): Filter by labels like 'INBOX', 'UNREAD', 'STARRED', 'SENT' - page_token (string, optional): Token for pagination - response_format ('markdown' | 'json'): Output format (default: 'markdown') Returns: List of message summaries with ID, subject, from, date, and snippet. Examples: - Unread emails: query="is:unread" - From specific sender: query="from:notifications@github.com" - Recent with attachment: query="has:attachment newer_than:7d"

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
gmail_get_message
annotations: verified low

Get the full content of a specific Gmail message. Args: - message_id (string): The message ID to retrieve - response_format ('markdown' | 'json'): Output format (default: 'markdown') Returns: Full message content including headers and body text.

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
gmail_list_threads
annotations: verified low

List conversation threads from Gmail. Args: - query (string, optional): Gmail search query to filter threads - max_results (number): Maximum threads to return, 1-100 (default: 10) - label_ids (string[]): Filter by labels - page_token (string, optional): Token for pagination - response_format ('markdown' | 'json'): Output format (default: 'markdown') Returns: List of threads with message count and snippet.

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
gmail_get_thread
annotations: verified low

Get all messages in a conversation thread. Args: - thread_id (string): The thread ID to retrieve - response_format ('markdown' | 'json'): Output format (default: 'markdown') Returns: All messages in the thread with full content.

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
gmail_list_labels
annotations: verified low

List all labels (folders) in Gmail. Args: - response_format ('markdown' | 'json'): Output format (default: 'markdown') Returns: List of all labels with their IDs and types.

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
gmail_create_draft
annotations: verified low

Create a new email draft in Gmail. The draft is saved but NOT sent automatically. Args: - to (string[]): Array of recipient email addresses (required) - subject (string): Email subject line - body (string): Email body content (plain text or HTML depending on content_type) - content_type (string, optional): MIME content type - "text/plain" (default) or "text/html" - cc (string[], optional): Array of CC recipient email addresses - bcc (string[], optional): Array of BCC recipient email addresses - reply_to_message_id (string, optional): Message ID to reply to (for creating reply drafts) Returns: { "draftId": string, "messageId": string, "threadId": string } Examples: - Simple draft: to=["bob@example.com"], subject="Hello", body="Hi Bob!" - Reply draft: to=["bob@example.com"], subject="Re: Meeting", body="Sounds good!", reply_to_message_id="abc123"

readOnlyHint false openWorldHint true idempotentHint false destructiveHint false
gmail_list_attachments
annotations: verified low

List all attachments in a specific Gmail message. Args: - message_id (string): The ID of the message to list attachments from - response_format ('markdown' | 'json'): Output format (default: 'markdown') Returns: { "attachments": [ { "attachmentId": string, "filename": string, "mimeType": string, "size": number } ] }

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
gmail_get_attachment
annotations: verified low

Download an attachment from a Gmail message. Args: - message_id (string): The ID of the message containing the attachment - attachment_id (string): The ID of the attachment to download (from gmail_list_attachments) - filename (string, optional): Filename for the attachment (for display purposes) Returns: The attachment content. For images, returns the image directly. For other files, provides download info. Examples: - Download attachment: message_id="abc123", attachment_id="xyz789"

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
docs_get_document
annotations: verified low

Retrieve the content of a Google Doc by its ID. Args: - document_id (string): The ID of the Google Doc (found in the URL after /d/) - response_format ('markdown' | 'json'): Output format (default: 'markdown') Returns: Document title, content, and metadata. For JSON format: { "documentId": string, "title": string, "textContent": string, "revisionId": string } Examples: - Get doc content: document_id="1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
docs_create_document
annotations: verified low

Create a new Google Doc with an optional initial body. Args: - title (string): The title for the new document - body_content (string, optional): Initial text content for the document body Returns: { "documentId": string, "title": string, "revisionId": string } Examples: - Create empty doc: title="Meeting Notes" - Create with content: title="Draft", body_content="Hello World"

readOnlyHint false openWorldHint true idempotentHint false destructiveHint false
docs_batch_update
annotations: verified low

Apply batch updates to a Google Doc (insert/update/delete text, formatting, images, tables). Args: - document_id (string): The ID of the Google Doc to update - requests (array): Array of batch update request objects Common request types: - insertText: { insertText: { location: { index: 1 }, text: "Hello" } } - deleteContentRange: { deleteContentRange: { range: { startIndex: 1, endIndex: 10 } } } - updateTextStyle: { updateTextStyle: { range: {...}, textStyle: {...}, fields: "bold" } } - insertInlineImage: { insertInlineImage: { location: {...}, uri: "https://..." } } - insertTable: { insertTable: { rows: 3, columns: 3, location: {...} } } See Google Docs API batchUpdate documentation for full request schema. Returns: { "documentId": string, "replies": array, "writeControl": object }

readOnlyHint false openWorldHint true idempotentHint false destructiveHint true
sheets_get_spreadsheet
annotations: verified low

Retrieve metadata and optionally cell data from a Google Spreadsheet. Args: - spreadsheet_id (string): The ID of the Google Spreadsheet (found in the URL after /d/) - include_grid_data (boolean): Whether to include cell data (default: false) - response_format ('markdown' | 'json'): Output format (default: 'markdown') Returns: Spreadsheet title, sheets info, and metadata. For JSON format: { "spreadsheetId": string, "title": string, "locale": string, "sheets": [{ "sheetId": number, "title": string, "rowCount": number, "columnCount": number }], "spreadsheetUrl": string } Examples: - Get spreadsheet info: spreadsheet_id="1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
sheets_get_values
annotations: verified low

Read cell values from a specific range in a Google Spreadsheet. Args: - spreadsheet_id (string): The ID of the Google Spreadsheet - range (string): The A1 notation range to read (e.g., 'Sheet1!A1:D10' or 'A1:D10') - major_dimension ('ROWS' | 'COLUMNS'): Return data by rows or columns (default: 'ROWS') - response_format ('markdown' | 'json'): Output format (default: 'markdown') Returns: For JSON format: { "range": string, "majorDimension": string, "values": [[cell values...], ...] } Examples: - Read range: spreadsheet_id="...", range="Sheet1!A1:D10" - Read specific column: spreadsheet_id="...", range="Sheet1!A:A"

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
sheets_batch_get_values
annotations: verified low

Read cell values from multiple ranges in a Google Spreadsheet in a single request. Args: - spreadsheet_id (string): The ID of the Google Spreadsheet - ranges (string[]): Array of A1 notation ranges to read (e.g., ['Sheet1!A1:D10', 'Sheet2!A1:B5']) - major_dimension ('ROWS' | 'COLUMNS'): Return data by rows or columns (default: 'ROWS') - response_format ('markdown' | 'json'): Output format (default: 'markdown') Returns: For JSON format: { "spreadsheetId": string, "valueRanges": [{ "range": string, "values": [[...]] }, ...] } Examples: - Read multiple ranges: ranges=["Sheet1!A1:D10", "Sheet2!A:B"]

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
sheets_update_values
annotations: verified low

Write cell values to a specific range in a Google Spreadsheet. Args: - spreadsheet_id (string): The ID of the Google Spreadsheet - range (string): The A1 notation range to update (e.g., 'Sheet1!A1:D10') - values (array): 2D array of values to write (rows of cells) - value_input_option ('RAW' | 'USER_ENTERED'): How to interpret input (default: 'USER_ENTERED') - 'RAW': Values are stored as-is - 'USER_ENTERED': Values are parsed as if typed by user (formulas, dates work) Returns: { "spreadsheetId": string, "updatedRange": string, "updatedRows": number, "updatedColumns": number, "updatedCells": number } Examples: - Write data: range="Sheet1!A1", values=[["Name", "Age"], ["Alice", 30]] - Write formula: range="Sheet1!C1", values=[["=SUM(A1:B1)"]]

readOnlyHint false openWorldHint true idempotentHint false destructiveHint true
sheets_append_values
annotations: verified low

Append rows of data to the end of a table in a Google Spreadsheet. Args: - spreadsheet_id (string): The ID of the Google Spreadsheet - range (string): The A1 notation range defining the table to append to (e.g., 'Sheet1!A:D') - values (array): 2D array of values to append (rows of cells) - value_input_option ('RAW' | 'USER_ENTERED'): How to interpret input (default: 'USER_ENTERED') - insert_data_option ('OVERWRITE' | 'INSERT_ROWS'): How to insert data (default: 'INSERT_ROWS') Returns: { "spreadsheetId": string, "tableRange": string, "updates": { "updatedRange": string, "updatedRows": number, "updatedCells": number } } Examples: - Append rows: range="Sheet1!A:D", values=[["Alice", 30, "Engineer", "NYC"]]

readOnlyHint false openWorldHint true idempotentHint false destructiveHint false
sheets_create_spreadsheet
annotations: verified low

Create a new Google Spreadsheet with optional sheet names. Args: - title (string): The title for the new spreadsheet - sheet_titles (string[], optional): Array of sheet names to create Returns: { "spreadsheetId": string, "title": string, "spreadsheetUrl": string, "sheets": [{ "sheetId": number, "title": string }] } Examples: - Create basic: title="My Spreadsheet" - With sheets: title="Budget", sheet_titles=["Income", "Expenses", "Summary"]

readOnlyHint false openWorldHint true idempotentHint false destructiveHint false
sheets_batch_update
annotations: verified low

Apply batch updates to a Google Spreadsheet (formatting, charts, filters, conditional formatting, etc.). Args: - spreadsheet_id (string): The ID of the Google Spreadsheet to update - requests (array): Array of batch update request objects Common request types: - updateCells: Update cell data and formatting - addSheet: Add a new sheet - deleteSheet: Delete a sheet - updateSheetProperties: Rename sheet, change grid size - mergeCells: Merge cell ranges - addConditionalFormatRule: Add conditional formatting - addChart: Add a chart - setDataValidation: Add data validation rules - addFilterView: Add filter views - repeatCell: Apply formatting to a range See Google Sheets API batchUpdate documentation for full request schema. Returns: { "spreadsheetId": string, "replies": array } Examples: - Add sheet: requests=[{ "addSheet": { "properties": { "title": "NewSheet" } } }] - Bold range: requests=[{ "repeatCell": { "range": {...}, "cell": { "userEnteredFormat": { "textFormat": { "bold": true } } }, "fields": "userEnteredFormat.textFormat.bold" } }]

readOnlyHint false openWorldHint true idempotentHint false destructiveHint true
sheets_clear_values
annotations: verified low

Clear cell values from a specific range in a Google Spreadsheet (keeps formatting). Args: - spreadsheet_id (string): The ID of the Google Spreadsheet - range (string): The A1 notation range to clear (e.g., 'Sheet1!A1:D10') Returns: { "spreadsheetId": string, "clearedRange": string } Examples: - Clear range: range="Sheet1!A1:D10" - Clear entire sheet: range="Sheet1"

readOnlyHint false openWorldHint true idempotentHint true destructiveHint true
sheets_duplicate_sheet
annotations: verified low

Duplicate a sheet within the same spreadsheet. Args: - spreadsheet_id (string): The ID of the Google Spreadsheet - sheet_id (number): The ID of the sheet to duplicate (use sheets_get_spreadsheet to find sheet IDs) - new_sheet_name (string, optional): Name for the new sheet (defaults to 'Copy of [original name]') Returns: { "sheetId": number, "title": string, "index": number } Examples: - Duplicate sheet: spreadsheet_id="...", sheet_id=0 - Duplicate with new name: spreadsheet_id="...", sheet_id=0, new_sheet_name="January Data"

readOnlyHint false openWorldHint true idempotentHint false destructiveHint false
sheets_create_pivot_table
annotations: verified low

Create a pivot table from spreadsheet data with full Google Sheets UI feature support. Args: - spreadsheet_id (string): The ID of the Google Spreadsheet - source_range (string): A1 notation range (e.g., 'Sheet1!A1:E100', 'Sales!A:F') - destination_sheet_id (number, optional): Sheet ID for pivot (default: creates new sheet) - destination_sheet_name (string): Name for new sheet (default: 'Pivot Table') - rows/columns (array): Groupings (at least one row OR column required) - source_column: Column letter ('A') or index (0) - label: Custom display name - show_totals: Show subtotals (default: true) - sort_order: 'ASCENDING' or 'DESCENDING' - sort_by_value: { value_index: 0 } - Sort by aggregated value instead of alphabetically - group_rule: Bucketing options (pick one): - { date_time: { type: 'MONTH' } } - Group dates (YEAR, QUARTER, MONTH, DAY_OF_WEEK, etc.) - { histogram: { interval: 100, start: 0, end: 1000 } } - Numeric buckets - { manual: { groups: [{ group_name: 'West', items: ['CA', 'WA', 'OR'] }] } } - group_limit: Max groups to display - values (array, required): Aggregations - source_column: Column to aggregate (or use formula) - formula: Custom formula like '=Revenue/Quantity' (use with summarize_function: 'CUSTOM') - summarize_function: SUM, COUNT, COUNTA, COUNTUNIQUE, AVERAGE, MAX, MIN, MEDIAN, PRODUCT, STDEV, STDEVP, VAR, VARP, CUSTOM - name: Display name - calculated_display_type: 'PERCENT_OF_ROW_TOTAL', 'PERCENT_OF_COLUMN_TOTAL', 'PERCENT_OF_GRAND_TOTAL' - filters (array, optional): Filter source data - source_column: Column to filter - visible_values: ['Active', 'Pending'] - Show only these values - condition: { type: 'NUMBER_GREATER', values: [100] } - Filter by condition - value_layout: 'HORIZONTAL' or 'VERTICAL' (default: 'HORIZONTAL') Examples: - Date grouped: rows=[{source_column: "A", group_rule: {date_time: {type: "MONTH"}}}], values=[{source_column: "E", summarize_function: "SUM"}] - Sorted by value: rows=[{source_column: "A", sort_by_value: {value_index: 0}, sort_order: "DESCENDING"}], values=[{source_column: "E", summarize_function: "SUM"}] - Filtered: filters=[{source_column: "B", visible_values: ["Active"]}], rows=[{source_column: "A"}], values=[{source_column: "E", summarize_function: "SUM"}] - Percentage: values=[{source_column: "E", summarize_function: "SUM", calculated_display_type: "PERCENT_OF_GRAND_TOTAL"}]

readOnlyHint false openWorldHint true idempotentHint false destructiveHint false
drive_list_comments
annotations: verified low

List comments on a Google Doc. Args: - file_id (string): The ID of the Google Doc - include_deleted (boolean): Include deleted comments (default: false) - page_size (number): Max comments to return, 1-100 (default: 20) - page_token (string, optional): Pagination token for next page - response_format ('markdown' | 'json'): Output format (default: 'markdown') Returns: For JSON format: { "comments": [ { "id": string, "content": string, "author": string, "createdTime": string, "resolved": boolean, "quotedFileContent": string, "replies": [{ "id", "content", "author", "createdTime" }] } ], "next_page_token": string | null }

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
drive_create_comment
annotations: verified low

Add a comment to a Google Doc. Can be anchored to specific text or unanchored. Args: - file_id (string): The ID of the Google Doc - content (string): The text content of the comment - quoted_text (string, optional): Text to anchor the comment to (for anchored comments) Returns: { "id": string, "content": string, "author": string, "createdTime": string } Examples: - Unanchored: file_id="...", content="Please review this section" - Anchored: file_id="...", content="Typo here", quoted_text="teh"

readOnlyHint false openWorldHint true idempotentHint false destructiveHint false
drive_reply_to_comment
annotations: verified low

Reply to an existing comment on a Google Doc. Args: - file_id (string): The ID of the Google Doc - comment_id (string): The ID of the comment to reply to - content (string): The text content of the reply Returns: { "id": string, "content": string, "author": string, "createdTime": string }

readOnlyHint false openWorldHint true idempotentHint false destructiveHint false
drive_resolve_comment
annotations: verified low

Mark a comment as resolved on a Google Doc. Args: - file_id (string): The ID of the Google Doc - comment_id (string): The ID of the comment to resolve Returns: { "id": string, "resolved": true }

readOnlyHint false openWorldHint true idempotentHint true destructiveHint false
drive_delete_comment
annotations: verified low

Delete a comment from a Google Doc. Args: - file_id (string): The ID of the Google Doc - comment_id (string): The ID of the comment to delete Returns: { "deleted": true, "comment_id": string } Note: This action cannot be undone.

readOnlyHint false openWorldHint true idempotentHint true destructiveHint true
drive_list_files
annotations: verified low

List files in your Google Drive. Args: - page_size (number): Max files to return, 1-100 (default: 20) - page_token (string, optional): Pagination token for next page - order_by (string): Sort order (default: 'modifiedTime desc') - mime_type ('all' | 'documents' | 'spreadsheets' | 'presentations' | 'folders'): Filter by type (default: 'all') - response_format ('markdown' | 'json'): Output format (default: 'markdown') Returns: For JSON format: { "files": [ { "id": string, "name": string, "mimeType": string, "createdTime": string, "modifiedTime": string, "size": string, "webViewLink": string, "owners": string[] } ], "next_page_token": string | null }

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
drive_search_files
annotations: verified low

Search for files in your Google Drive by name or content. Args: - query (string): Search query - searches file names and content - page_size (number): Max files to return, 1-100 (default: 20) - page_token (string, optional): Pagination token for next page - mime_type ('all' | 'documents' | 'spreadsheets' | 'presentations' | 'folders'): Filter by type (default: 'all') - response_format ('markdown' | 'json'): Output format (default: 'markdown') Returns: For JSON format: { "files": [ { "id": string, "name": string, "mimeType": string, "createdTime": string, "modifiedTime": string, "size": string, "webViewLink": string, "owners": string[] } ], "next_page_token": string | null } Examples: - Search by name: query="budget 2024" - Search spreadsheets: query="sales", mime_type="spreadsheets"

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
drive_get_file
annotations: verified low

Download and return the content of a file from Google Drive. Supports PDFs, images, and other binary files. Args: - file_id (string): The ID of the file to download (found in the URL after /d/) Returns: The file content. For PDFs and images, returns the binary content that Claude can read directly. Examples: - Get PDF: file_id="1Q3BmlH3_sII1VGf0-GYXSiLGTZstM-l1" - From URL https://drive.google.com/file/d/ABC123/view -> file_id="ABC123"

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
drive_copy_file
annotations: verified low

Create a copy of a file in Google Drive. Args: - file_id (string): The ID of the file to copy - name (string, optional): New name for the copied file (defaults to 'Copy of [original name]') - parent_folder_id (string, optional): ID of the folder to copy the file into (defaults to same location as original) Returns: { "id": string, "name": string, "mimeType": string, "webViewLink": string } Examples: - Copy file: file_id="1abc123" - Copy with new name: file_id="1abc123", name="Budget 2025" - Copy to folder: file_id="1abc123", parent_folder_id="0xyz789"

readOnlyHint false openWorldHint true idempotentHint false destructiveHint false

Permissions 2

filesystem low
Server uses filesystem capabilities via: fs, fs sync ops, path
env_vars low
Server uses env_vars capabilities via: process.env

Scan Findings 83

info
Tool 'calendar_list_calendars' annotations are consistent annotation_checker · 80%
info
Tool 'calendar_list_events' annotations are consistent annotation_checker · 80%
info
Tool 'calendar_get_event' annotations are consistent annotation_checker · 80%
info
Tool 'calendar_freebusy_query' annotations are consistent annotation_checker · 80%
info
Tool 'gmail_list_messages' annotations are consistent annotation_checker · 80%
info
Tool 'gmail_get_message' annotations are consistent annotation_checker · 80%
info
Tool 'gmail_list_threads' annotations are consistent annotation_checker · 80%
info
Tool 'gmail_get_thread' annotations are consistent annotation_checker · 80%
info
Tool 'gmail_list_labels' annotations are consistent annotation_checker · 80%
info
Tool 'gmail_create_draft' annotations are consistent annotation_checker · 80%
info
Tool 'gmail_list_attachments' annotations are consistent annotation_checker · 80%
info
Tool 'gmail_get_attachment' annotations are consistent annotation_checker · 80%
info
Tool 'docs_get_document' annotations are consistent annotation_checker · 80%
info
Tool 'docs_create_document' annotations are consistent annotation_checker · 80%
info
Tool 'docs_batch_update' annotations are consistent annotation_checker · 80%
info
Tool 'sheets_get_spreadsheet' annotations are consistent annotation_checker · 80%
info
Tool 'sheets_get_values' annotations are consistent annotation_checker · 80%
info
Tool 'sheets_batch_get_values' annotations are consistent annotation_checker · 80%
info
Tool 'sheets_update_values' annotations are consistent annotation_checker · 80%
info
Tool 'sheets_append_values' annotations are consistent annotation_checker · 80%
info
Tool 'sheets_create_spreadsheet' annotations are consistent annotation_checker · 80%
info
Tool 'sheets_batch_update' annotations are consistent annotation_checker · 80%
info
Tool 'sheets_clear_values' annotations are consistent annotation_checker · 80%
info
Tool 'sheets_duplicate_sheet' annotations are consistent annotation_checker · 80%
info
Tool 'sheets_create_pivot_table' annotations are consistent annotation_checker · 80%
info
Tool 'drive_list_comments' annotations are consistent annotation_checker · 80%
info
Tool 'drive_create_comment' annotations are consistent annotation_checker · 80%
info
Tool 'drive_reply_to_comment' annotations are consistent annotation_checker · 80%
info
Tool 'drive_resolve_comment' annotations are consistent annotation_checker · 80%
info
Tool 'drive_delete_comment' annotations are consistent annotation_checker · 80%
info
Tool 'drive_list_files' annotations are consistent annotation_checker · 80%
info
Tool 'drive_search_files' annotations are consistent annotation_checker · 80%
info
Tool 'drive_get_file' annotations are consistent annotation_checker · 80%
info
Tool 'drive_copy_file' annotations are consistent annotation_checker · 80%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
medium
Vulnerable dependency: @modelcontextprotocol/sdk@1.6.1 (GHSA-46jr-4wx8-v453) dependency_analyzer · 95%
medium
Vulnerable dependency: @modelcontextprotocol/sdk@1.6.1 (GHSA-6prh-2h8m-c8cw) dependency_analyzer · 95%
medium
Vulnerable dependency: @modelcontextprotocol/sdk@1.6.1 (GHSA-8r9q-7v3j-jr4g) dependency_analyzer · 95%
medium
Vulnerable dependency: @modelcontextprotocol/sdk@1.6.1 (GHSA-rvq5-wwqv-78pq) dependency_analyzer · 95%
medium
Vulnerable dependency: @modelcontextprotocol/sdk@1.6.1 (GHSA-w48q-cv73-mx4w) dependency_analyzer · 95%
medium
Buffer.from base64 in EveryInc-google-workspace-mcp-server-60413ef/src/tools/gmail.ts:837 entropy_analyzer · 75%
info
package.json metadata manifest_parser · 100%
info
Tool: calendar_list_calendars manifest_parser · 85%
info
Tool: calendar_list_events manifest_parser · 85%
info
Tool: calendar_get_event manifest_parser · 85%
info
Tool: calendar_freebusy_query manifest_parser · 85%
info
Tool: gmail_list_messages manifest_parser · 85%
info
Tool: gmail_get_message manifest_parser · 85%
info
Tool: gmail_list_threads manifest_parser · 85%
info
Tool: gmail_get_thread manifest_parser · 85%
info
Tool: gmail_list_labels manifest_parser · 85%
info
Tool: gmail_create_draft manifest_parser · 85%
info
Tool: gmail_list_attachments manifest_parser · 85%
info
Tool: gmail_get_attachment manifest_parser · 85%
info
Tool: docs_get_document manifest_parser · 85%
info
Tool: docs_create_document manifest_parser · 85%
info
Tool: docs_batch_update manifest_parser · 85%
info
Tool: sheets_get_spreadsheet manifest_parser · 85%
info
Tool: sheets_get_values manifest_parser · 85%
info
Tool: sheets_batch_get_values manifest_parser · 85%
info
Tool: sheets_update_values manifest_parser · 85%
info
Tool: sheets_append_values manifest_parser · 85%
info
Tool: sheets_create_spreadsheet manifest_parser · 85%
info
Tool: sheets_batch_update manifest_parser · 85%
info
Tool: sheets_clear_values manifest_parser · 85%
info
Tool: sheets_duplicate_sheet manifest_parser · 85%
info
Tool: sheets_create_pivot_table manifest_parser · 85%
info
Tool: drive_list_comments manifest_parser · 85%
info
Tool: drive_create_comment manifest_parser · 85%
info
Tool: drive_reply_to_comment manifest_parser · 85%
info
Tool: drive_resolve_comment manifest_parser · 85%
info
Tool: drive_delete_comment manifest_parser · 85%
info
Tool: drive_list_files manifest_parser · 85%
info
Tool: drive_search_files manifest_parser · 85%
info
Tool: drive_get_file manifest_parser · 85%
info
Tool: drive_copy_file manifest_parser · 85%
info
Transport: stdio manifest_parser · 90%
info
Required env vars (3) manifest_parser · 80%
info
Sandbox failed to start for output poisoning scan output_poisoning · 100%
low
Permission: filesystem access detected permission_analyzer · 90%
low
Permission: env_vars access detected permission_analyzer · 90%
info
SBOM generated: 149 components sbom_generator · 100%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%