Connect Hermes to Google Sheets and Slack
What happens next
Set up in minutes
Choose where it runs
On your computer through your own Hermes, or hosted in the cloud. The rest of setup adapts to your choice:
Pick what it can do in Google Sheets
A preset of real Google Sheets operations. Each one becomes a tool the agent can call, and it can't touch anything outside the list.
Pick what it can do in Slack
A preset of real Slack operations. Each one becomes a tool the agent can call, and it can't touch anything outside the list.
Connect Google Sheets
One sign-in. The agent acts through your account, scoped to the operations you picked.
Connect Slack
One sign-in. The agent acts through your account, scoped to the operations you picked.
Add your personal MCP link
The last step mints a private MCP URL for this agent and walks you through exactly this, with your real link filled in. The page flips to Connected the moment your Hermes first calls in. Hermes connects when it next starts a session.
1. Run this in your terminal
2. Answer no when asked if the server requires authentication — the link itself is the key
<your-link> is your personal server URL — setup mints it for you.
Exact capabilities
Tools Hermes gets
Google Sheets
85 toolsConfiguration for reading data from a Google Sheet
Configuration for writing data to a Google Sheet
Configuration for appending rows to a Google Sheet
Configuration for clearing values from a range
Configuration for creating a new spreadsheet
Configuration for getting spreadsheet metadata
Configuration for reading multiple ranges at once
Configuration for writing to multiple ranges at once
Configuration for adding a new sheet/tab
Configuration for deleting a sheet/tab
Configuration for copying a sheet to another spreadsheet
Configuration for renaming a sheet/tab
Configuration for duplicating a sheet within the same spreadsheet
Configuration for find and replace in a spreadsheet
Configuration for inserting rows
Configuration for deleting rows
Configuration for clearing multiple ranges at once
Configuration for inserting columns
Configuration for deleting columns
Configuration for formatting a range of cells
Configuration for sheet-level display properties
Configuration for auto-sizing columns or rows to fit their contents
Configuration for setting an explicit column width or row height
Configuration for merging cells
Configuration for unmerging cells
Configuration for drawing borders on a range
Configuration for alternating row colours
Configuration for adding a filter to a range
Configuration for removing a filter
Configuration for a conditional formatting rule
Configuration for sorting a range
Configuration for adding a dropdown or input rule to a range
Configuration for removing dropdowns / input rules from a range
Configuration for removing conditional formatting rules
Configuration for removing alternating row colours
Configuration for turning a range into a Sheets table
Configuration for removing a table
Configuration for editing or reordering a conditional formatting rule
Configuration for recolouring existing banding in place
Configuration for changing a table's name, range or column types
Configuration for spreadsheet-level properties
Configuration for naming a range
Configuration for changing a named range
Configuration for removing a named range
Configuration for protecting a range from edits
Configuration for changing a protected range
Configuration for removing range protection
Configuration for putting a hover note on cells
Configuration for inserting people or link smart chips
Configuration for anchoring a pivot table
Configuration for copying a range onto another
Configuration for moving a range
Configuration for pasting delimited text
Configuration for extending a series
Configuration for splitting a column of text
Configuration for trimming whitespace
Configuration for removing duplicate rows
Configuration for shuffling rows
Configuration for inserting cells and shifting the rest
Configuration for deleting cells and shifting the rest
Configuration for moving rows or columns
Configuration for appending blank rows or columns
Configuration for adding a chart
Configuration for changing an existing chart
Configuration for moving or resizing a chart
Configuration for a chart's border colour
Configuration for removing a chart
Configuration for appending rows of cells after the last row of data
Configuration for creating a saved filter view
Configuration for changing a filter view
Configuration for copying a filter view
Configuration for removing a filter view
Configuration for grouping rows or columns
Configuration for collapsing or expanding a group
Configuration for ungrouping rows or columns
Configuration for adding a slicer control
Configuration for changing a slicer
Configuration for tagging a sheet, row or column with durable metadata
Configuration for changing developer metadata
Configuration for removing developer metadata
Configuration for connecting a BigQuery data source
Configuration for repointing a data source
Configuration for disconnecting a data source
Configuration for refreshing connected data
Configuration for cancelling a running refresh
Slack
207 toolsPost a message to a channel
Update an existing message
Delete a message
Send an ephemeral message (only visible to one user)
Schedule a message for later
Get a permalink URL for a message
List channels in the workspace
Get information about a channel
Get messages from a channel
Get members of a channel
Join a public channel
Leave a channel
Create a new channel
Archive a channel
Unarchive a channel
Invite users to a channel
Remove a user from a channel
Set the topic of a channel
Set the purpose of a channel
Rename a channel
Get thread replies
Open or resume a direct message or multi-person DM
Close a direct message or multi-person DM
Mark a channel as read
List all users in the workspace
Get information about a user
Find a user by their email address
Get a user's presence status
List conversations the calling user may access
Add a bookmark to a channel
Edit an existing bookmark
List bookmarks in a channel
Remove a bookmark from a channel
List user groups in the workspace
Create a new user group
Disable an existing user group
Enable a disabled user group
Update an existing user group
List users in a user group
Update the list of users in a user group
Turn on Do Not Disturb for the current user
End the current user's snooze mode
End the current user's Do Not Disturb session
Get Do Not Disturb status for a user
Get Do Not Disturb status for users on a team
List custom emoji in the workspace
Star a message, file, or channel
Remove a star from an item
List starred items for the current user
Get information about a bot
Create a reminder
Mark a reminder as complete
Delete a reminder
Get information about a reminder
List all reminders for the current user
Add an emoji reaction to a message
Remove an emoji reaction from a message
Get reactions on a message
Pin a message to a channel
Unpin a message from a channel
List pinned items in a channel
List files in the workspace
Get information about a file
Delete a file
Upload a file to Slack
Create a public URL for a file (files.sharedPublicURL)
Revoke public URL for a file (files.revokePublicURL)
Search for messages in the workspace
Search for files in the workspace (search.files)
Search for messages and files (search.all)
Delete a scheduled message (chat.deleteScheduledMessage)
List scheduled messages (chat.scheduledMessages.list)
Share a /me message into a channel (chat.meMessage)
Provide custom unfurl behavior for URLs (chat.unfurl)
Get a user's profile information (users.profile.get)
Set user presence (users.setPresence)
Test authentication and get info about the token
Get information about the workspace
Test the API connection (api.test)
Revoke an OAuth token (auth.revoke)
Uninstall an app from a workspace (apps.uninstall)
Get billable info for team members (team.billableInfo)
Get access logs for the workspace (team.accessLogs)
Get integration logs for the workspace (team.integrationLogs)
Accept a shared channel invite (conversations.acceptSharedInvite)
Decline a shared channel invite (conversations.declineSharedInvite)
List Slack Connect invites (conversations.listConnectInvites)
Get URL for uploading a file externally (files.getUploadURLExternal)
Complete a file upload after uploading to external URL (files.completeUploadExternal)
Set user profile fields (users.profile.set)
Approve an invitation to a Slack Connect channel (conversations.approveSharedInvite)
Invite a user to a Slack Connect channel (conversations.inviteShared)
Add a remote file (files.remote.add)
Remove a remote file (files.remote.remove)
Share a remote file to a channel (files.remote.share)
List remote files (files.remote.list)
List reactions for an item (reactions.list)
Get information about a remote file (files.remote.info)
Update a remote file (files.remote.update)
Delete a file comment (files.comments.delete)
Delete the user's profile photo (users.deletePhoto)
Mark user as active (users.setActive) - Deprecated but still functional
Create a canvas in a channel (conversations.canvases.create)
Set external invite permissions for a channel (conversations.externalInvitePermissions.set)
Approve a Slack Connect invite request (conversations.requestSharedInvite.approve)
Deny a Slack Connect invite request (conversations.requestSharedInvite.deny)
List Slack Connect invite requests (conversations.requestSharedInvite.list)
Get analytics data for a given date (admin.analytics.getFile)
Get logs for app activities (admin.apps.activities.list)
Approve an app for installation (admin.apps.approve)
List approved apps (admin.apps.approved.list)
Clear app resolution (admin.apps.clearResolution)
Look up app config (admin.apps.config.lookup)
Set app config (admin.apps.config.set)
Cancel an app request (admin.apps.requests.cancel)
List app requests (admin.apps.requests.list)
Restrict an app (admin.apps.restrict)
List restricted apps (admin.apps.restricted.list)
Uninstall an app (admin.apps.uninstall)
Get allowed audit anomaly item (admin.audit.anomaly.allow.getItem)
Update allowed audit anomaly item (admin.audit.anomaly.allow.updateItem)
Assign entities to auth policy (admin.auth.policy.assignEntities)
Get entities for auth policy (admin.auth.policy.getEntities)
Remove entities from auth policy (admin.auth.policy.removeEntities)
Create an information barrier (admin.barriers.create)
Delete an information barrier (admin.barriers.delete)
List information barriers (admin.barriers.list)
Update an information barrier (admin.barriers.update)
Archive a conversation (admin.conversations.archive)
Bulk archive conversations (admin.conversations.bulkArchive)
Bulk delete conversations (admin.conversations.bulkDelete)
Bulk move conversations to a team (admin.conversations.bulkMove)
Convert public channel to private (admin.conversations.convertToPrivate)
Convert private channel to public (admin.conversations.convertToPublic)
Create a conversation (admin.conversations.create)
Delete a conversation (admin.conversations.delete)
Disconnect a shared channel (admin.conversations.disconnectShared)
List original connected channel info for EKM (admin.conversations.ekm.listOriginalConnectedChannelInfo)
Get conversation preferences (admin.conversations.getConversationPrefs)
Get custom retention settings (admin.conversations.getCustomRetention)
Get teams for a conversation (admin.conversations.getTeams)
Invite users to a conversation (admin.conversations.invite)
Look up conversations (admin.conversations.lookup)
Remove custom retention settings (admin.conversations.removeCustomRetention)
Rename a conversation (admin.conversations.rename)
Add IDP group to channel (admin.conversations.restrictAccess.addGroup)
List IDP groups for channel (admin.conversations.restrictAccess.listGroups)
Remove IDP group from channel (admin.conversations.restrictAccess.removeGroup)
Search for conversations (admin.conversations.search)
Set conversation preferences (admin.conversations.setConversationPrefs)
Set custom retention settings (admin.conversations.setCustomRetention)
Set teams for a conversation (admin.conversations.setTeams)
Unarchive a conversation (admin.conversations.unarchive)
Add custom emoji (admin.emoji.add)
Add emoji alias (admin.emoji.addAlias)
List custom emoji (admin.emoji.list)
Remove custom emoji (admin.emoji.remove)
Rename custom emoji (admin.emoji.rename)
List functions (admin.functions.list)
Look up function permissions (admin.functions.permissions.lookup)
Set function permissions (admin.functions.permissions.set)
Approve invite request (admin.inviteRequests.approve)
List approved invite requests (admin.inviteRequests.approved.list)
List denied invite requests (admin.inviteRequests.denied.list)
Deny invite request (admin.inviteRequests.deny)
List invite requests (admin.inviteRequests.list)
Add role assignments (admin.roles.addAssignments)
List role assignments (admin.roles.listAssignments)
Remove role assignments (admin.roles.removeAssignments)
List team admins (admin.teams.admins.list)
Create a team (admin.teams.create)
List teams (admin.teams.list)
List team owners (admin.teams.owners.list)
Get team settings info (admin.teams.settings.info)
Set default channels for team (admin.teams.settings.setDefaultChannels)
Set team description (admin.teams.settings.setDescription)
Set team discoverability (admin.teams.settings.setDiscoverability)
Set team icon (admin.teams.settings.setIcon)
Set team name (admin.teams.settings.setName)
Add channels to usergroup (admin.usergroups.addChannels)
Add teams to usergroup (admin.usergroups.addTeams)
List channels in usergroup (admin.usergroups.listChannels)
Remove channels from usergroup (admin.usergroups.removeChannels)
Assign a user to a team (admin.users.assign)
Get expiration for a user (admin.users.getExpiration)
Invite a user to a team (admin.users.invite)
List users in a team (admin.users.list)
Remove a user from a team (admin.users.remove)
Clear session settings (admin.users.session.clearSettings)
Get session settings (admin.users.session.getSettings)
Invalidate user session (admin.users.session.invalidate)
List user sessions (admin.users.session.list)
Reset user session (admin.users.session.reset)
Bulk reset user sessions (admin.users.session.resetBulk)
Set session settings (admin.users.session.setSettings)
Set a user as admin (admin.users.setAdmin)
Set expiration for a user (admin.users.setExpiration)
Set a user as owner (admin.users.setOwner)
Set a user as regular (admin.users.setRegular)
Export unsupported version users (admin.users.unsupportedVersions.export)
Add workflow collaborators (admin.workflows.collaborators.add)
Remove workflow collaborators (admin.workflows.collaborators.remove)
Look up workflow permissions (admin.workflows.permissions.lookup)
Search workflows (admin.workflows.search)
Look up workflow trigger type permissions (admin.workflows.triggers.types.permissions.lookup)
Set workflow trigger type permissions (admin.workflows.triggers.types.permissions.set)
Unpublish a workflow (admin.workflows.unpublish)
Starting points
What you can build
Meet the runner
About Hermes
Good to know
Frequently asked questions
Keep exploring
More ways to connect
More tools for Hermes
Popular Hermes pairs
Make it yours
Open your Hermes agent in one click.
NoClick runs Hermes for you with Google Sheets and Slack wired in as tools. Connect your account and run.