Skip to main content
Glama
hoaaah
by hoaaah

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
GOOGLE_WORKSPACE_MCP_CLIENT_IDNoOAuth client ID (Option A). Use with GOOGLE_WORKSPACE_MCP_CLIENT_SECRET to bypass credentials.json file.
GOOGLE_WORKSPACE_MCP_CREDENTIALSNoPath to the OAuth credentials.json file (overrides default location).
GOOGLE_WORKSPACE_MCP_CLIENT_SECRETNoOAuth client secret (Option A). Use with GOOGLE_WORKSPACE_MCP_CLIENT_ID to bypass credentials.json file.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
drive_search_filesA

Search for files and folders in Google Drive.

Accepts either plain text (matched against file names) or a raw Drive query string for advanced filtering by MIME type, folder, date, etc.

Returns: str: JSON with keys files (list of {id, name, mimeType, size, modifiedTime, webViewLink, parents, owners}) and next_page_token (str or null) for pagination via a follow-up call.

drive_get_file_metadataA

Get full metadata for a single Drive file or folder.

Returns: str: JSON object with id, name, mimeType, size, modifiedTime, createdTime, webViewLink, parents, owners, and permissions summary.

drive_read_file_contentA

Read the text content of a Drive file directly into the conversation.

Google Docs export as plain text, Google Sheets as CSV, Google Slides as plain text. Other text-based files (txt, md, csv, json, code files) are read directly. Binary files (images, PDFs, etc.) are not supported here — use drive_download_file to save them locally instead.

Returns: str: The file's text content (truncated to max_chars), or an error message explaining why the file couldn't be read as text.

drive_upload_fileB

Upload a local file to Google Drive.

Returns: str: JSON with the created file's id, name, mimeType, and webViewLink.

drive_create_folderA

Create a new folder in Google Drive.

Returns: str: JSON with the created folder's id, name, and webViewLink.

drive_download_fileA

Download a Drive file to a local path, exporting Google-native files if needed.

Returns: str: JSON with the saved local path and byte size, or an error message (e.g. if export_mime_type is required but missing).

drive_trash_fileA

Move a Drive file to the trash (recoverable, not permanent deletion).

Returns: str: JSON confirming the file id and its new trashed status.

sheets_read_rangeA

Read cell values from a range in a Google Sheet.

Returns: str: JSON with range (the resolved range) and values (2D array of row data as returned by the Sheets API; empty trailing cells are omitted by Google's API).

sheets_write_rangeA

Write values into a range, overwriting whatever is currently there.

The number of rows/columns in values determines how much of the sheet is overwritten starting at the top-left of range. Use sheets_append_values instead if you want to add new rows without overwriting existing data.

Returns: str: JSON with updated_range, updated_rows, and updated_cells.

sheets_append_valuesA

Append rows after the last row of existing data in a table/range.

Unlike sheets_write_range, this never overwrites existing rows — the Sheets API finds the end of the data and inserts after it.

Returns: str: JSON with updated_range describing where the new rows landed.

sheets_clear_rangeA

Clear all values in a range, leaving cell formatting intact.

Returns: str: JSON confirming the cleared range.

sheets_create_spreadsheetA

Create a new Google Sheets spreadsheet, optionally with named tabs.

The new file lands in the account's 'My Drive' root; use drive_upload_file's sibling tools (e.g. a follow-up move) if it needs to live in a specific folder.

Returns: str: JSON with spreadsheet_id, title, and url.

sheets_list_tabsA

List all sheet tabs in a spreadsheet with their IDs and dimensions.

Returns: str: JSON list of {sheet_id, title, index, row_count, column_count}.

docs_create_documentA

Create a new Google Doc, optionally with initial plain-text content.

The new file lands in the account's 'My Drive' root.

Returns: str: JSON with document_id, title, and url.

docs_read_documentA

Read the plain-text content of a Google Doc.

Tables, images, and rich formatting are not preserved — only the text content of paragraphs is extracted, in reading order.

Returns: str: JSON with title, content (plain text, truncated to max_chars), and truncated (bool).

docs_append_textA

Append plain text to the end of an existing Google Doc.

Returns: str: JSON confirming the document_id and number of characters appended.

docs_replace_textA

Replace all occurrences of a text string throughout a Google Doc.

Returns: str: JSON with the number of replacements made (occurrences_changed).

calendar_list_calendarsA

List all calendars the authenticated account can access.

Returns: str: JSON list of {id, summary, primary, access_role}.

calendar_list_eventsA

List upcoming or date-ranged events on a calendar, optionally filtered by text.

Returns: str: JSON list of events with id, summary, description, location, start, end, attendees, organizer, status, and htmlLink.

calendar_create_eventA

Create a new calendar event, optionally inviting attendees.

Attendees receive an email invitation automatically from Google Calendar; there's no separate send step.

Returns: str: JSON with the created event's id, htmlLink, and summary.

calendar_update_eventA

Update fields on an existing calendar event. Only provided fields change.

Returns: str: JSON with the updated event's id, summary, start, and end.

calendar_delete_eventA

Permanently delete a calendar event (attendees are notified of cancellation).

Returns: str: JSON confirming deletion.

gmail_search_messagesA

Search or list Gmail messages using Gmail's search syntax.

Returns lightweight results (id, threadId, snippet, from, subject, date) — use gmail_get_message for the full body of a specific message.

Returns: str: JSON list of message summaries.

gmail_get_messageA

Get the full content of a single Gmail message, including plain-text body.

Returns: str: JSON with from, to, subject, date, body (plain text), and labels.

gmail_send_messageA

Send an email immediately from the authenticated Gmail account.

This sends right away with no draft/confirmation step on the API side — confirm intent with the user before calling this tool.

Returns: str: JSON with the sent message's id and threadId.

gmail_create_draftA

Create a draft email without sending it.

Returns: str: JSON with the draft's id and message id.

gmail_list_labelsA

List all Gmail labels (system labels like INBOX plus user-created ones).

Returns: str: JSON list of {id, name, type}.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/hoaaah/Google-Workspace-MCP-Server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server