website/docs/guides/use-mcp-with-hermes.md
This guide shows how to actually use MCP with Hermes Agent in day-to-day workflows.
If the feature page explains what MCP is, this guide is about how to get value from it quickly and safely.
Use MCP when:
Do not use MCP when:
Think of MCP as an adapter layer:
That last part matters. Good MCP usage is not just “connect everything.” It is “connect the right thing, with the smallest useful surface.”
If you installed Hermes with the standard install script, MCP support is already included (the installer runs uv pip install -e ".[all]").
If you installed without extras and need to add MCP separately:
cd ~/.hermes/hermes-agent
uv pip install -e ".[mcp]"
For npm-based servers, make sure Node.js and npx are available.
For many Python MCP servers, uvx is a nice default.
Start with a single, safe server.
Example: filesystem access to one project directory only.
mcp_servers:
project_fs:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/my-project"]
Then start Hermes:
hermes chat
Now ask something concrete:
Inspect this project and summarize the repo layout.
You can verify MCP in a few ways:
/reload-mcp after config changesA practical test prompt:
Tell me which MCP-backed tools are available right now.
Do not wait until later if the server exposes a lot of tools.
mcp_servers:
github:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-github"]
env:
GITHUB_PERSONAL_ACCESS_TOKEN: "***"
tools:
include: [list_issues, create_issue, search_code]
This is usually the best default for sensitive systems.
This is the practical setup when:
/browser connect is awkward or unreliable from WSLIn this setup, Hermes does not connect to Chrome directly. Instead:
cmd.exe or powershell.exe)Mental model:
Hermes (WSL) -> MCP stdio bridge -> Windows Chrome
Use chrome-devtools-mcp.
If your Windows Chrome already has live remote debugging enabled from chrome://inspect/#remote-debugging, add it like this from WSL:
hermes mcp add chrome-devtools-win --command cmd.exe --args /c npx -y chrome-devtools-mcp@latest --autoConnect --no-usage-statistics
After saving the server:
hermes mcp test chrome-devtools-win
Then start a fresh Hermes session or run:
/reload-mcp
Once loaded, Hermes can use the MCP-prefixed browser tools directly. For example:
调用 MCP 工具 mcp_chrome_devtools_win_list_pages,列出当前浏览器标签页。
/browser connect is the wrong toolIf Hermes runs in WSL and Chrome runs on Windows, /browser connect may fail even though Chrome is open and debuggable.
Common reasons:
ws://localhost:9222chrome-devtools-mcpIn those cases, keep /browser connect for same-environment setups and use MCP for WSL-to-Windows browser bridging.
/mnt/c/Users/<you> or /mnt/c/workspace/... when using Windows stdio executables through MCP./root or /home/..., Windows may emit a UNC current-directory warning before the MCP server starts.chrome-devtools-mcp --autoConnect times out while enumerating pages, reduce background/frozen tabs in Chrome and retry.mcp_servers:
stripe:
url: "https://mcp.stripe.com"
headers:
Authorization: "Bearer ***"
tools:
exclude: [delete_customer, refund_payment]
mcp_servers:
docs:
url: "https://mcp.docs.example.com"
tools:
prompts: false
resources: false
There are two categories of MCP-exposed functionality in Hermes:
tools.includetools.excludetools.resourcestools.promptsResources:
list_resourcesread_resourcePrompts:
list_promptsget_promptThese wrappers only appear if:
So Hermes will not pretend a server has resources/prompts if it does not.
Use MCP for a repo-local filesystem or git server when you want Hermes to reason over a bounded workspace.
mcp_servers:
fs:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/project"]
git:
command: "uvx"
args: ["mcp-server-git", "--repository", "/home/user/project"]
Good prompts:
Review the project structure and identify where configuration lives.
Check the local git state and summarize what changed recently.
mcp_servers:
github:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-github"]
env:
GITHUB_PERSONAL_ACCESS_TOKEN: "***"
tools:
include: [list_issues, create_issue, update_issue, search_code]
prompts: false
resources: false
Good prompts:
List open issues about MCP, cluster them by theme, and draft a high-quality issue for the most common bug.
Search the repo for uses of _discover_and_register_server and explain how MCP tools are registered.
mcp_servers:
internal_api:
url: "https://mcp.internal.example.com"
headers:
Authorization: "Bearer ***"
tools:
include: [list_customers, get_customer, list_invoices]
resources: false
prompts: false
Good prompts:
Look up customer ACME Corp and summarize recent invoice activity.
This is the sort of place where a strict whitelist is far better than an exclude list.
Some MCP servers expose prompts or resources that are more like shared knowledge assets than direct actions.
mcp_servers:
docs:
url: "https://mcp.docs.example.com"
tools:
prompts: true
resources: true
Good prompts:
List available MCP resources from the docs server, then read the onboarding guide and summarize it.
List prompts exposed by the docs server and tell me which ones would help with incident response.
Here is a practical progression.
mcp_servers:
github:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-github"]
env:
GITHUB_PERSONAL_ACCESS_TOKEN: "***"
tools:
include: [list_issues, create_issue, search_code]
prompts: false
resources: false
Start Hermes and ask:
Search the codebase for references to MCP and summarize the main integration points.
If you later need issue updates too:
tools:
include: [list_issues, create_issue, update_issue, search_code]
Then reload:
/reload-mcp
mcp_servers:
github:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-github"]
env:
GITHUB_PERSONAL_ACCESS_TOKEN: "***"
tools:
include: [list_issues, create_issue, update_issue, search_code]
prompts: false
resources: false
filesystem:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/project"]
Now Hermes can combine them:
Inspect the local project files, then create a GitHub issue summarizing the bug you find.
That is where MCP gets powerful: multi-system workflows without changing Hermes core.
For anything financial, customer-facing, or destructive:
tools.includeIf you do not want the model browsing server-provided resources/prompts, turn them off:
tools:
resources: false
prompts: false
Examples:
/reload-mcp
Do this after changing:
Possible causes:
tools.includetools.excluderesources: false or prompts: falseCheck:
enabled: false was not left in confignpx, uvx, etc.)Because Hermes now respects your per-server policy and capability-aware registration. That is expected, and usually desirable.
Use:
enabled: false
That keeps the config around but prevents connection and registration.
Good first servers for most users:
Not-great first servers: