Hermes
Hermes reads MCP servers from ~/.hermes/config.yaml, under mcp_servers. The config is YAML, so add the block below to your existing file. The plugin’s EMCP Tools → Connection screen generates it for your exact site.
HTTP with an Application Password
Section titled “HTTP with an Application Password”mcp_servers: emcp-tools: url: "https://your-site.test/wp-json/mcp/emcp-tools-server" headers: Authorization: "Basic BASE64_ENCODED_CREDENTIALS"Generate the base64 credentials:
echo -n "admin:xxxx xxxx xxxx xxxx xxxx xxxx" | base64Application passwords come from WordPress admin → Users → Profile → Application Passwords.
Node proxy (most reliable)
Section titled “Node proxy (most reliable)”If the direct HTTP transport gives you handshake trouble, run the bundled proxy over stdio. It handles the session and protocol negotiation:
mcp_servers: emcp-tools: command: "npx" args: ["-y", "@msrbuilds/emcp-proxy@latest"] env: WP_URL: "https://your-site.test" WP_USERNAME: "admin" WP_APP_PASSWORD: "xxxx xxxx xxxx xxxx xxxx xxxx" MCP_PROTOCOL_VERSION: "2024-11-05"Note WP_URL is the bare site (no /wp-json/..., the proxy adds the route), and the app password goes in plain.
Sign in with OAuth
Section titled “Sign in with OAuth”Point Hermes at the server URL with no credentials and let the server run the browser sign-in on first connect:
mcp_servers: emcp-tools: url: "https://your-site.test/wp-json/mcp/emcp-tools-server"Requires an HTTPS site with OAuth enabled (EMCP Tools → Connection: on by default on HTTPS). Only administrators can approve. Revoke access any time under Connected apps.
Verify
Section titled “Verify”hermes mcp test emcp-toolsCommon issues:
401 Unauthorized: the application password or username is wrong, or the base64 encoding is off.- HTML instead of JSON: the URL is missing the
/wp-json/mcp/emcp-tools-serverpath and is hitting the site homepage. - Handshake timeout on the direct URL: switch to the Node proxy block above.
After a config change, reload with /reload-mcp inside Hermes.