hermes-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HERMES_API_KEY | No | Credential. Setting it alone turns on bearer auth. | |
| HERMES_TIMEOUT | No | Per-request timeout in seconds. Default: 30. | |
| HERMES_BASE_URL | Yes | Required. Root URL of the deployment, e.g. https://hermes.example.com. | |
| HERMES_READ_ONLY | No | Blocks every tool that changes the deployment. Default: false. | |
| HERMES_AUTH_STYLE | No | bearer, header, query, or none. Default is bearer when a key is set, else none. | |
| HERMES_VERIFY_TLS | No | Set false only for a self-signed staging host. Default: true. | |
| HERMES_ROUTES_FILE | No | JSON file of route overrides. Individual overrides can also be set via HERMES_ROUTE_<NAME> environment variables, e.g. HERMES_ROUTE_STATUS='GET /v1/state'. | |
| HERMES_EXTRA_HEADERS | No | Static headers, Name: value per line. Useful for Cloudflare Access. | |
| HERMES_MCP_TRANSPORT | No | stdio, http, or sse. Default: stdio. | |
| HERMES_API_KEY_HEADER | No | Header (or query parameter) name when style is header/query. Default: X-API-Key. | |
| HERMES_MAX_RESPONSE_CHARS | No | Truncation ceiling. Default: 20000. |
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 |
|---|---|
| healthA | Check whether the Hermes deployment is reachable and healthy. Use this first when something looks wrong — it separates "the agent is down" from "the agent is up but misbehaving". |
| statusA | Read the Hermes agent's current run state. Returns whatever the deployment reports: process state, uptime, version,
queue depth. Prefer this over |
| startA | Start the Hermes agent. Safe to call when the agent is already running — most deployments treat it
as a no-op — but check |
| stopA | Stop the Hermes agent. This takes the agent offline: in-flight work may be dropped and the agent will not accept new tasks until it is started again. Confirm with the user before calling this against a production deployment. |
| restartA | Restart the Hermes agent. Use this after a deploy or a config change that needs a fresh process. Causes a brief outage; in-flight work may be dropped. |
| logsA | Read recent Hermes logs. |
| metricsA | Read resource and throughput metrics from the Hermes deployment. |
| describe_apiA | Show how this server is configured and which endpoints Hermes actually has. Returns the active base URL, auth style, and route table, plus the
deployment's own OpenAPI schema when it publishes one. Run this first
against a new deployment: the built-in route paths are conventional
defaults, and any that do not match can be corrected with
|
| detect_routesB | Work out this deployment's real endpoints and emit the overrides for them. |
| send_taskB | Send the Hermes agent a task to work on. |
| get_taskA | Read one Hermes task: its state, result, and any error it recorded. |
| list_tasksA | List recent Hermes tasks, newest first. |
| cancel_taskA | Cancel a running Hermes task. Whatever the task had already done externally is not undone — this stops further work, it does not roll back. |
| deployA | Deploy Hermes on the host — pull new code and bring it up. |
| get_configA | Read the Hermes deployment's current configuration. Values the deployment considers secret are usually returned masked. Do not assume anything here is safe to echo back into a shared channel. |
| set_configC | Update Hermes configuration values. |
| requestA | Call any Hermes endpoint directly, for anything the named tools miss. |
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 17 tools
Most tools target distinct resources and actions, but health/status and describe_api/detect_routes have overlapping purposes; descriptions generally mitigate confusion.
Mix of single-word nouns (health, status, logs, metrics) and verb_noun forms (get_task, send_task, set_config); the pattern is readable but not consistently applied.
At 17 tools, the set sits at the borderline upper end of typical scope; some redundancy (health/status, describe_api/detect_routes) adds bulk, but each tool has a clear role.
The surface covers lifecycle, monitoring, task management, configuration, and API introspection, with a request fallback for gaps; minor redundancy but no major missing operations.