Applied Hermes

Extension taxonomy and connection Independent guide

Hermes Agent tools and integrations

Separate tools, toolsets, skills, integrations, and MCP servers, connect one with least privilege, and verify what it returns.

Published by Applied Hermes. Checked against Hermes Agent v0.20.5 on .
Direct answer

Hermes Agent has five different kinds of extension and they are not synonyms. A tool is a single callable function. A toolset is a named bundle of tools you enable or disable per interface. A skill is a procedure document loaded on demand. An integration connects an external service. An MCP server is an external process or endpoint that supplies its own tools. Connect each with the narrowest permission that still completes the task, then verify the output.

Checked against Hermes Agent v0.20.5 on . Re-check when a tool or toolset is renamed, MCP configuration keys change, or the skill trust model changes.

Tools, toolsets, skills, integrations, and MCP are different

The five extension typesUnit = what the thing actually is. Where it lives = what you configure to get it. Trust question = the risk you are accepting when you enable it.
TypeUnitWhere it livesTrust question
ToolOne callable function, for example terminal or read_fileBuilt into Hermes AgentWhat can this function reach on this machine?
ToolsetA named bundle of toolsEnabled per interface with hermes tools or --toolsetsIs this bundle wider than the task needs?
SkillA procedure document with front matter, loaded on demand~/.hermes/skills/, installed or agent-authoredWhose instructions are entering the agent's context?
IntegrationA connection to an external serviceCredentials in .env plus service-specific configurationWhat does that service let the credential do?
MCP serverAn external process or endpoint that publishes its own toolsAn mcp_servers block in config.yamlWhat is that server authorised to do on my behalf?

Source: Nous Research Tools and Toolsets, Skills System, and MCP Integration documentation, checked 25 August 2026 against v0.20.5.

Getting this taxonomy right matters practically: enabling a toolset changes what the model can attempt, installing a skill changes what it is told to do, and adding an MCP server changes who else is in the loop.

Built-in tool categories

The documented built-in tools group like this:

  • Web: web_search, web_extract.
  • Terminal and files: terminal, process, read_file, patch.
  • Browser: browser_navigate, browser_snapshot, browser_vision.
  • Media: vision_analyze, image_generate, text_to_speech.
  • Orchestration: todo, clarify, execute_code, delegate_task.
  • Recall: memory, session_search.
  • Automation: cronjob.

Those are bundled into toolsets — including web, search, terminal, file, browser, vision, image_gen, skills, tts, todo, memory, session_search, cronjob, code_execution, delegation, messaging, debugging, and safe — plus dynamic mcp-<server> toolsets for each connected MCP server.

Enable them per interface:

bashmacOS, Linux, WSL2, Windows PowerShell
hermes tools

Expected result: An interactive view of available tools and per-platform tool configuration.

Source: Nous Research Tools and Toolsets documentation, checked 25 August 2026

For a single session, restrict the surface directly:

bashmacOS, Linux, WSL2, Windows PowerShell
hermes chat --toolsets "web,terminal"

Expected result: A session where only the named toolsets are available to the model.

Source: Nous Research Tools and Toolsets documentation, checked 25 August 2026

Choose an extension by task

Pick the extension type that matches the jobReach for = the extension type that solves this class of problem with the least new surface.
You want to…Reach forWhy not the alternative
Run commands or edit filesThe terminal and file toolsetsA skill cannot execute anything on its own
Pull current information from the webThe web toolsetAn MCP server adds a process you now have to trust and maintain
Repeat a procedure the same way every timeA skillRe-prompting from scratch is where inconsistency comes from
Reach a specific SaaS product or databaseAn MCP server or integrationA generic browser session is slower and harder to scope than an API with a scoped token
Act on a scheduleThe cronjob toolsetAn interactive session cannot run while you are away
Deliver results into a chat platformA messaging integrationLocal-only output does not reach the people who need it

Source: Nous Research features and tools documentation, checked 25 August 2026.

Permission and credential requirements

Work through this least-privilege checklist before enabling anything:

  • Enable the narrowest toolset that completes the task. Browser and messaging can wait until they are needed.
  • Choose the execution backend deliberately. local runs on your machine; container and cloud-sandbox backends treat the sandbox as the boundary and skip the dangerous-command check inside it.
  • Scope every credential at the service. A read-only token is a smaller incident than an admin one.
  • Do not rely on ambient environment variables. Sandboxes deliberately do not inherit your shell environment; execute_code blocks variables whose names look like secrets, and MCP subprocesses receive only a safe baseline plus what you explicitly declare.
  • Filter MCP tools. tools.include and tools.exclude limit which of a server's tools are exposed at all.
  • Keep the approval gate on while you are still learning what an extension does.
Apply least-privilege tool setup

Connect external services

Two connection patterns cover almost everything.

Credential-based integrations. Put the service key in ~/.hermes/.env and configure the feature that uses it. Documented examples include search and extraction backends, browser automation services, image generation, and text-to-speech.

MCP servers. Declared in config.yaml, over stdio for local processes or HTTP for remote endpoints:

mcp_servers:
  filesystem:
    command: npx
    args: ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"]
    tools:
      include: [read_file, list_directory]
mcp_servers:
  example-http:
    url: https://mcp.example.com/mcp
    auth: oauth

Tools from a server are registered as mcp_<server>_<tool>, so their origin stays visible in the transcript. hermes mcp browses and installs catalog entries, hermes mcp login <server> completes an OAuth flow, and /reload-mcp refreshes servers inside a session.

Skills and MCP boundaries

These two are the ones most often confused, because both extend what the agent does.

  • A skill adds instructions. It is a document; it cannot reach anything by itself. Its risk is content — someone else's procedure entering your agent's context.
  • An MCP server adds capability. It is a running process or a remote endpoint with its own credentials. Its risk is access.

Skills live in ~/.hermes/skills/, install through hermes skills install with a security scan, and carry trust levels from built-in through official, trusted registries, and community. Agent-authored skills can be gated with skills.write_approval: true and scanned with skills.guard_agent_created. Project-local skills must be trusted explicitly with hermes skills trust before they load.

Verify tool calls and outputs

Enabling something is not the same as it working. Verify each new extension:

  • The tool appears in the session's available tools.
  • A task that needs it shows an actual tool call, not a prose answer.
  • The returned data matches the source when you check one value by hand.
  • The credential has the scope you intended — try an action you expect to be denied and confirm it is.
  • For MCP, the tool name carries its mcp_<server>_ prefix, so you can see which server answered.

Route tool/integration failures

Take the failure to the layer that owns it. If a tool never appears, it is a toolset or MCP registration problem. If it appears and errors, it is a credential or permission problem. If it returns wrong data, it is the upstream service. Cross-component diagnosis, including MCP connection failures and sandbox errors, belongs to tool and integration troubleshooting.

Choose a deeper operational guide

  • To see which capabilities exist at all before wiring anything up, start from the capability overview.
  • To constrain what an enabled extension may do, work through the security guide.