Guide
Hermes Agent + mcporter: Call Any MCP Server from the Terminal
mcporter turns any MCP server into a command you can run. Hermes Agent ships a bundled skill that teaches the agent to drive it, which means your agent can discover and call tools from servers you never wrote a config entry for.
What Is mcporter?
mcporter is a command-line client for the Model Context Protocol. It lists servers, shows their tools and schemas, handles auth, and calls a tool directly — all from the terminal, without a host application in the middle.
The reason this matters for an agent is reach. A normal MCP setup requires declaring each server in config before the agent can touch it. With mcporter available as a shell tool, the agent can connect to a server by URL on the spot and call it in the same turn.
Prerequisite: Node.js 24+
mcporter runs on Node, and current releases declare node >= 24 in their package metadata — so an older LTS such as 20 or 22 is not enough. Check with node -v before anything else; a version mismatch here produces an engine warning or an outright install failure rather than a clear message about mcporter.
# No install needed (runs via npx)
npx mcporter list
# Or install globally so the agent can call it as a bare command
npm install -g mcporterFor a long-lived agent, prefer the global install. It removes a network fetch from every single invocation and makes mcporter resolvable as a plain command.
Install the Hermes Skill
Hermes ships an mcporter skill in the repository's optional skills. Optional skills are deliberately not activated by default — they are not copied into ~/.hermes/skills/ during setup, so the agent will not know about mcporter until you install it through the Skills Hub.
# Find it
hermes skills search mcporter
# Browse everything official and optional
hermes skills browse --source official
# Install — copies to ~/.hermes/skills/ and activates
hermes skills install mcporter
# Confirm it is active
hermes skills listDiscovering Servers
mcporter auto-discovers MCP servers already configured by other clients on the same machine — Claude Desktop, Cursor and similar. On a developer workstation, mcporter list often returns a useful set before you configure anything.
# Servers already configured on this machine
mcporter list
# Tools for one server, with full input schemas
mcporter list <server> --schemaConnecting Ad-Hoc Servers
This is the part that has no equivalent in a config-file workflow. You can point mcporter at a server that appears in no config at all, name it inline, and use it immediately.
# Any remote MCP server by URL — no config needed
mcporter list --http-url https://some-mcp-server.com --name my_server
# Or run a stdio server on the fly
mcporter list --stdio "npx -y @modelcontextprotocol/server-filesystem" --name fsCalling Tools
# key=value syntax
mcporter call linear.list_issues team=ENG limit:5
# function-call syntax, useful when values contain spaces
mcporter call "linear.create_issue(title: \"Bug fix needed\")"
# ad-hoc HTTP server, no config
mcporter call https://api.example.com/mcp.fetch url=https://example.com
# ad-hoc stdio server
mcporter call --stdio "bun run ./server.ts" scrape url=https://example.comTool names are addressed as server.tool. Run mcporter list <server> --schema first when you are unsure of an argument name — the schema is the authoritative list, and guessing an argument is the usual cause of a confusing error.
mcporter vs Native MCP Config
| mcporter | Native MCP config | |
|---|---|---|
| Setup | None — call by URL | Declare each server first |
| Tool exposure | Through the shell | Native tool definitions |
| Best for | Exploration, one-off calls, servers you do not own | Servers the agent uses constantly |
| Token cost | Only what the command returns | Schemas sit in context |
| Requires Node | Yes | No |
These are complements, not competitors. Declare the two or three servers your agent relies on daily so their tools are native, and keep mcporter for the long tail. Loading fifty servers natively would bury the model in schemas it rarely needs.
A Note on Trust
An ad-hoc MCP server is arbitrary remote code exposing arbitrary tools, and an agent that can reach any URL can reach a malicious one. Treat --http-url the way you would treat piping a script from the internet into a shell: fine for servers you control or trust, and worth a look at --schema before you let an agent call anything destructive.
On OpenClaw
mcporter is framework-neutral — it is a standalone CLI, so the same binary and the same commands work on either side. What differs is how the agent learns to use it: Hermes installs the skill through the Skills Hub as above, while OpenClaw wires it in as described in OpenClaw + mcporter.
What's Next?
- Hermes Agent + MCP — native MCP server configuration
- Write a Python MCP Server — build your own
- Hermes Agent Skills — how the skill system works
- Hermes Agent + Composio — hundreds of managed app integrations