← Home

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 mcporter

For 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 list

Discovering 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> --schema

Connecting 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 fs

Calling 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.com

Tool 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

mcporterNative MCP config
SetupNone — call by URLDeclare each server first
Tool exposureThrough the shellNative tool definitions
Best forExploration, one-off calls, servers you do not ownServers the agent uses constantly
Token costOnly what the command returnsSchemas sit in context
Requires NodeYesNo

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?

Skip the Setup

OpenClaw Launch runs Hermes Agent with Node, the Skills Hub and MCP tooling already in place.

Deploy Managed Hermes