GrokBot ↔ Hermes Bridge
Provides a bridge between Grok Bot and a Hermes Agent, exposing tools to send user requests to Hermes and return its replies as bounded responses.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@GrokBot ↔ Hermes BridgeAsk Hermes to summarize the latest changes in my project."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
GrokBot ↔ Hermes Bridge
A self-hosted MCP gateway and Agent Plugin template that lets Grok Bot talk to your existing Hermes Agent. Grok Bot remains the chat interface; Hermes runs on your machine and produces the answer.
The repository is operator-agnostic: it contains no live endpoint, token, hostname, private address, user path, account handle, or conversation.

Quick start
Linux or macOS, in one auditable command:
git clone https://github.com/iamsupersocks/grokbot-hermes-bridge.git && cd grokbot-hermes-bridge && ./scripts/install.shAlready cloned:
./scripts/install.sh
python3 scripts/doctor.pyThe installer is local and auditable. It does not download a remote shell,
does not use sudo, does not start the gateway, and does not write a real
public hostname unless you pass one. Non-interactive and dry-run modes are
available for review and tests:
./scripts/install.sh --dry-run --non-interactive
./scripts/install.sh --non-interactive --endpoint https://mcp.example.com/mcpThen fill the remaining local paths in .env.local (mode 600, never commit
it). The owner code is generated on disk; do not paste it into chat. See
docs/TUTORIAL.md for the illustrated walkthrough.
Doctor deliberately stays red while the example hostname or Hermes paths are
still placeholders.
Related MCP server: lighthouse-mcp-oauth
How it works
The gateway runs beside your Hermes installation and exposes exactly two MCP tools:
hermes_askandhermes_status.An HTTPS reverse proxy or tunnel makes
/mcpreachable from Grok Bot.Grok Bot discovers the gateway's OAuth flow. You approve the connection in a browser with a private owner code stored only in the server environment.
The plugin sends user requests to Hermes and returns the bounded reply.
There is no SSH endpoint, generic shell tool, environment dump, or committed credential. The owner code is not accepted as an MCP bearer token.
Requirements
Python 3.11+
A working
hermesCLI and Hermes home directory on the gateway machineA public HTTPS hostname or tunnel that forwards to
127.0.0.1:8099Grok Bot, Codex, Cursor, or another Streamable HTTP MCP client with OAuth
Run the gateway
After the installer (or the equivalent local venv + .env.local setup):
. .venv/bin/activate
set -a
. ./.env.local
set +a
python -m hermes_gateway.mcp --host 127.0.0.1 --port 8099At minimum .env.local must contain:
HERMES_BRIDGE_SECRET=<64-random-hex-characters>
HERMES_BRIDGE_PUBLIC_BASE_URL=https://mcp.example.com
HERMES_BRIDGE_ALLOWED_HOSTS=localhost,127.0.0.1,mcp.example.com
HERMES_BRIDGE_HERMES_BIN=/absolute/path/to/hermes
HERMES_BRIDGE_HERMES_HOME=/absolute/path/to/hermes-homeGET /health should return {"status":"ok"}. Put HTTPS in front of the
service; do not expose port 8099 directly. See deploy/ for generic examples.
Configure the plugin
The installer calls scripts/configure_plugin.py for you. To repeat it:
python scripts/configure_plugin.py https://mcp.example.com/mcpThe generated config contains only the URL. Do not add an Authorization
header: Grok Bot uses OAuth discovery and PKCE to obtain its own access token.
Install or package this folder as a plugin, restart Grok Bot, then enable the
connector. The first connection opens the approval page. Enter the same owner
code stored in HERMES_BRIDGE_SECRET.
Add Composio beside this bridge
Corey Ganim's Grok Bot tip uses Composio Connect to go beyond a client's native connector catalog. Composio describes Connect as one hosted MCP endpoint for 1000+ apps through 7 meta-tools. It is not literally every MCP server, and it is not bundled with this repository.
Keep the two connections separate:
Client | This repository | Optional Composio connection |
Grok Bot | Install the Grok plugin and connect | Add Composio Connect as a second MCP connector |
Cursor | Install the Cursor plugin or add this MCP URL | Add Composio Connect as a second MCP server |
Codex | Install the Codex plugin or add this MCP URL | Prefer Composio's native Codex plugin, or choose Connect MCP explicitly |
The .grok-plugin, .cursor-plugin, and .codex-plugin manifests here install
only the Hermes bridge. Composio traffic does not pass through Hermes and
Composio does not replace this bridge. See the
tutorial for
the complete setup model and safety boundaries.
Grok Bot's visible-message limitation
Grok Bot currently emits a short visible message before every tool call, such as “I’ll pass that to Hermes.” The plugin cannot hide or remove that host-level step. The bundled skill keeps it brief and prevents Grok Bot from impersonating Hermes.
Security model
fixed Hermes executable; no shell invocation
bounded prompt, output, turns, timeout, payload, rate, and concurrency
minimal child-process environment
OAuth discovery, dynamic client registration, authorization code + PKCE, signed access tokens, and refresh tokens
owner approval required; owner code never works as a bearer token
host/origin checks, DNS-rebinding protection, localhost-only bind, log redaction, and filtered status output
fail-closed startup if the endpoint, owner code, Hermes binary, or Hermes home is invalid
The OAuth provider is intentionally single-owner. Registered clients persist
locally in a mode-0600 JSON file; pending approvals and authorization codes are
in memory. Rotating HERMES_BRIDGE_SECRET invalidates issued tokens.
Test and audit
python -m pip install -e '.[dev]'
python -m unittest discover -s tests -v
python src/privacy_scan.py --root .
python scripts/audit_git_history.py
python3 scripts/doctor.pyAlso read SECURITY.md before exposing the endpoint. This repository started
with a fresh public Git history; it does not inherit the private implementation
history.
License
MIT. See LICENSE.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables interaction with the Grok AI through an MCP server, supporting chat completions, text completions, embeddings, and model operations with streaming capabilities.5337MIT
- FlicenseNot gradedqualityBmaintenanceEnables Claude.ai to connect to a Hermes MCP server via OAuth 2.1 authorization code flow with PKCE, acting as a reverse proxy and single-user authorization gateway.
- AlicenseBqualityBmaintenanceEnables local MCP clients to interact with xAI Grok through OAuth PKCE, supporting chat, X search, image/video generation, TTS, and transcription.9122MIT
- AlicenseNot gradedqualityCmaintenanceEnables MCP agents to delegate tasks to a local Hermes Agent for terminal, file, browser, and coding operations, and schedule recurring jobs.MIT
Related MCP Connectors
MCP server for Argo RPG Platform — connects AI assistants to campaign data via OAuth2
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
Browser MCP for logged-in tasks. Uses your Chrome — credentials stay local. Zero-token replay.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/iamsupersocks/grokbot-hermes-bridge'
If you have feedback or need assistance with the MCP directory API, please join our Discord server