en un clic
native-mcp
MCP client: connect servers, register tools (stdio/HTTP).
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Menu
MCP client: connect servers, register tools (stdio/HTTP).
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Basé sur la classification professionnelle SOC
Run automated WCAG 2.1 AA accessibility audits against local dev servers using Lighthouse CLI and axe-core. Parse JSON reports, identify contrast/label/semantic violations, and output structured remediation with exact code fixes.
Generate images, video, and audio with ComfyUI — install, launch, manage nodes/models, run workflows with parameter injection. Uses the official comfy-cli for lifecycle and direct REST/WebSocket API for execution.
Hermes Kanban multi-agent orchestration — task lifecycle, decomposition playbook, worker pitfalls, Codex lane isolation, and board operations.
Firecrawl gives AI agents and apps fast, reliable web context with strong search, scraping, and interaction tools. One install command sets up three skill segments: live CLI tools, app-integration build skills, and outcome-focused workflow skills. Route the reader to the right usage path after install.
Guide for evaluating AABB collision logic on a live development server using browser tools.
Workflow for building 2D Canvas game components using class-based architecture and Test-Driven Development (TDD).
| name | native-mcp |
| description | MCP client: connect servers, register tools (stdio/HTTP). |
| version | 1.0.0 |
| author | Hermes Agent |
| license | MIT |
| platforms | ["linux","macos","windows"] |
| metadata | {"hermes":{"tags":["MCP","Tools","Integrations"],"related_skills":["mcporter"]}} |
Hermes Agent has a built-in MCP client that connects to MCP servers at startup, discovers their tools, and makes them available as first-class tools the agent can call directly. No bridge CLI needed -- tools from MCP servers appear alongside built-in tools like terminal, read_file, etc.
Use this whenever you want to:
For ad-hoc, one-off MCP tool calls from the terminal without configuring anything, see the mcporter skill instead.
pip install mcp. If not installed, MCP support is silently disabled.npx-based MCP servers (most community servers)uvx-based MCP servers (Python-based servers)Install the MCP SDK:
pip install mcp
Add MCP servers to ~/.hermes/config.yaml under the mcp_servers key:
mcp_servers:
time:
command: "uvx"
args: ["mcp-server-time"]
Restart Hermes Agent. On startup it will:
mcp_time_*Each entry under mcp_servers is a server name mapped to its config. There are two transport types: stdio (command-based) and HTTP (url-based).
mcp_servers:
server_name:
command: "npx" # (required) executable to run
args: ["-y", "pkg-name"] # (optional) command arguments, default: []
env: # (optional) environment variables for the subprocess
SOME_API_KEY: "value"
timeout: 120 # (optional) per-tool-call timeout in seconds, default: 120
connect_timeout: 60 # (optional) initial connection timeout in seconds, default: 60
mcp_servers:
server_name:
url: "https://my-server.example.com/mcp" # (required) server URL
headers: # (optional) HTTP headers
Authorization: "Bearer sk-..."
timeout: 180 # (optional) per-tool-call timeout in seconds, default: 120
connect_timeout: 60 # (optional) initial connection timeout in seconds, default: 60
| Option | Type | Default | Description |
|---|---|---|---|
command | string | -- | Executable to run (stdio transport, required) |
args | list | [] | Arguments passed to the command |
env | dict | {} | Extra environment variables for the subprocess |
url | string | -- | Server URL (HTTP transport, required) |
headers | dict | {} | HTTP headers sent with every request |
timeout | int | 120 | Per-tool-call timeout in seconds |
connect_timeout | int | 60 | Timeout for initial connection and discovery |
Note: A server config must have either command (stdio) or url (HTTP), not both.
mcp_servers Blockmcp_servers: appears twice in config.yaml, only the FIRST block is parsed — the second is silently discarded.grep -n "mcp_servers" ~/.hermes/config.yaml — if the line number appears more than once, merge the blocks.~/.hermes/logs/gateway.error.log: WARNING tools.mcp_tool: MCP server 'X' keepalive failed, triggering reconnect. Tools from the dropped server never appear in the runtime palette.When Hermes Agent starts, discover_mcp_tools() is called during tool initialization:
mcp_servers from ~/.hermes/config.yamllist_tools() to discover available toolsMCP tools are registered with the naming pattern:
mcp_{server_name}_{tool_name}
Hyphens and dots in names are replaced with underscores for LLM API compatibility.
Examples:
filesystem, tool read_file → mcp_filesystem_read_filegithub, tool list-issues → mcp_github_list_issuesmy-api, tool fetch.data → mcp_my_api_fetch_dataAfter discovery, MCP tools are automatically injected into all hermes-* platform toolsets (CLI, Discord, Telegram, etc.). This means MCP tools are available in every conversation without any additional configuration.
discover_mcp_tools() is idempotent -- calling it multiple times only connects to servers that aren't already connected. Failed servers are retried on subsequent calls.
The most common transport. Hermes launches the MCP server as a subprocess and communicates over stdin/stdout.
mcp_servers:
filesystem:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/projects"]
The subprocess inherits a filtered environment (see Security section below) plus any variables you specify in env.
For remote or shared MCP servers. Requires the mcp package to include HTTP client support (mcp.client.streamable_http).
mcp_servers:
remote_api:
url: "https://mcp.example.com/mcp"
headers:
Authorization: "Bearer sk-..."
If HTTP support is not available in your installed mcp version, the server will fail with an ImportError and other servers will continue normally.
For stdio servers, Hermes does NOT pass your full shell environment to MCP subprocesses. Only safe baseline variables are inherited:
PATH, HOME, USER, LANG, LC_ALL, TERM, SHELL, TMPDIRXDG_* variablesAll other environment variables (API keys, tokens, secrets) are excluded unless you explicitly add them via the env config key.
mcp_servers:
github:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-github"]
env:
GITHUB_PERSONAL_ACCESS_TOKEN: "ghp_..."
If an MCP tool call fails, any credential-like patterns in the error message are automatically redacted before being shown to the LLM.
The mcp Python package is not installed. Install it:
pip install mcp
No mcp_servers key in ~/.hermes/config.yaml, or it's empty. Add at least one server.
Common causes:
command binary isn't on PATH.-y in args.connect_timeout.Your mcp package version doesn't include HTTP client support. Upgrade:
pip install --upgrade mcp
mcp_servers (not mcp or servers)mcp_servers keys: grep -n "mcp_servers" ~/.hermes/config.yaml — must appear exactly once.mcp_{server}_{tool} -- look for that patterninitialize, tools/list returns tools) but the agent's local tool registry doesn't have them. Fix: restart the Hermes gateway. The MCP handshake happens at startup; tools discovered after startup won't auto-register.curl -X POST .../mcp with tools/list returns the tool schema AND the server shows enabled: true in config, but the agent can't see the tool — it's always a restart issue. Do NOT reinstall packages, do NOT modify config, do NOT reinstall the mcp pip package. Just restart.The client retries up to 5 times with exponential backoff (1s, 2s, 4s, 8s, 16s, capped at 60s). If the server is fundamentally unreachable, it gives up after 5 attempts. Check the server process and network connectivity.
mcp_servers Keys in config.yamlWARNING tools.mcp_tool: MCP server 'X' keepalive failed, triggering reconnect in ~/.hermes/logs/gateway.error.log. Tools from the server never appear.mcp_servers: block. Only the first block is parsed.grep -n "mcp_servers" ~/.hermes/config.yaml — more than one line number = duplicates.mcp_servers: block. Restart the gateway after fixing.config.yaml directly (security constraint). The user must fix duplicates manually or via hermes config.# 405 on GET is normal — MCP servers only respond to POST
curl -s -X POST https://server.example.com/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0.0"}}}'
initialize first, then tools/list with a fresh id.mcp_servers keys, (2) enabled: true, (3) URL is reachable via POST, (4) gateway has been restarted since config change.mcp_servers:
time:
command: "uvx"
args: ["mcp-server-time"]
mcp_servers:
filesystem:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/documents"]
mcp_servers:
company_api:
url: "https://mcp.mycompany.com/v1/mcp"
headers:
Authorization: "Bearer sk-xxxxxxxxxxxxxxxxxxxx"
timeout: 180
mcp_servers:
time:
command: "uvx"
args: ["mcp-server-time"]
filesystem:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"]
company_api:
url: "https://mcp.internal.company.com/mcp"
headers:
Authorization: "Bearer sk-xxxxxxxxxxxxxxxxxxxx"
All tools from all servers are registered simultaneously. Each server's tools are prefixed with its name to avoid collisions.
Hermes supports MCP's sampling/createMessage capability — MCP servers can request LLM completions through the agent during tool execution.
mcp_servers:
my_server:
command: "npx"
args: ["-y", "my-mcp-server"]
sampling:
enabled: true # default: true
max_tokens_cap: 4096
timeout: 30
max_rpm: 10
max_tool_rounds: 5
Disable sampling for untrusted servers with sampling: { enabled: false }.
mcporter -- you can use both simultaneouslymcp_servers: block per config file. Always merge, never duplicate.