hermes-google
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| auth_statusA | Report whether stored credentials are valid and loaded. Returns dict with keys: |
| mail_list_pendingA | List unread forwarded emails in Hermes's inbox, newest first. Returns a list of dicts, each with keys: |
| mail_searchA | Search emails in Hermes's Gmail using Gmail search syntax. Supports the same operators as the Gmail search bar (e.g., Returns a list of dicts, each with keys: |
| mail_getA | Fetch a single email by ID. Unwraps forwarded messages to extract the original. Returns dict with keys: |
| mail_send_draftA | Send a draft email from Hermes's account. The destination should be the Returns dict with key: |
| mail_mark_readA | Mark a message as read in Hermes's inbox (removes the UNREAD label). Returns dict with key: |
| mail_archiveA | Archive a message in Hermes's inbox (removes the INBOX label). Never call without user confirmation.
Returns dict with key: |
| cal_list_calendarsA | List all calendars visible to Hermes (own calendar + any shared with Hermes). Returns a list of dicts, each with keys: |
| cal_list_eventsA | List events in a calendar within a time range, sorted chronologically.
Returns a list of dicts, each with keys: |
| cal_create_eventA | Create a calendar event. Requires user confirmation before calling.
Returns dict with key: |
| cal_update_eventA | Patch specific fields of a calendar event. Requires user confirmation before calling.
Returns dict with key: |
| cal_delete_eventA | Delete a calendar event. Requires user confirmation before calling.
Returns dict with key: |
| drive_searchA | Search Drive files visible to Hermes by filename. Optionally filter by MIME type (e.g., 'application/pdf', 'application/vnd.google-apps.spreadsheet'). Returns a list of dicts, each with keys: |
| drive_listA | List children of a Drive folder by folder ID. Returns a list of dicts, each with keys: |
| drive_getA | Download a Drive file to the local cache directory. The file is saved to ~/.cache/hermes-google/drive//. Use Claude Code's Read tool on the returned path to view the contents. Returns dict with key: |
| drive_uploadA | Upload a local file to Drive. Requires user confirmation before calling. If Returns dict with key: |
| drive_updateA | Replace a Drive file's contents with a local file. Requires user confirmation before calling. Returns dict with key: |
| drive_moveA | Move a Drive file into a different parent folder. Requires user confirmation before calling. Returns dict with key: |
| drive_deleteA | Delete a Drive file. Requires user to have used an explicit 'delete' verb. Returns dict with key: |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 19 tools
Tools are cleanly namespaced by domain prefixes (mail_, cal_, drive_, auth_) and each targets a distinct operation: search vs. get vs. list, and create vs. update vs. delete. No two tools appear to overlap in purpose or cause meaningful selection ambiguity.
All tool names use lowercase snake_case with a consistent domain-prefix pattern, and most follow a predictable action-object structure. Minor deviations like mail_list_pending and auth_status are still readable and do not break the overall naming logic.
With 19 tools, the server is slightly above the ideal 3-15 range, but the count is justified by covering three distinct Google subsystems plus authentication. Each tool earns its place, and there are no redundant or filler tools.
Calendar has full CRUD, Drive has search/list/get/upload/update/move/delete, and mail covers search, read, archive, mark-read, and sending a draft. Minor gaps such as no explicit create-draft or folder-creation tool are workable omissions rather than critical dead ends.