Skip to main content
Glama
Hermes MCP Server

Hermes MCP Server

by darrenzwchan

hermes-mcp

An MCP server that turns internal Hermes documents (HashiCorp PRDs, RFCs, specs, memos) into agent tools — relevance search, document metadata, related resources, and full document bodies — plus a companion skill that makes your agent cross-check specs against the code in your editor.

Tools

hermes_search · hermes_get_document · hermes_get_document_content · hermes_get_related_resources · hermes_recently_viewed_docs · hermes_check_auth · hermes_login · hermes_sharepoint_login

Related MCP server: hermes-mcp

Requirements

  • Node.js 18+ (developed on 26)

  • Google Chrome (for the sign-in / browser-content helpers)

  • An MCP-capable agent (bob, Claude Desktop, VS Code, …)

Quick start

git clone https://github.com/yummydirtx/hermes-mcp.git
cd hermes-mcp
node install.js

The installer:

  1. runs npm install,

  2. copies the hermes skill into ~/.bob/skills/hermes/,

  3. adds a hermes server to ~/.bob/settings/mcp.json (existing servers/secrets are preserved).

Then authenticate and reload your agent (below).

Claude Desktop or VS Code instead of bob? Run node install.js --claude, or copy a snippet from examples/.

Authenticate to Hermes

Hermes sits behind SSO. Capture your session one of two ways:

  • Automatic (recommended):

    npm run attach

    A normal Chrome opens — sign in. Your session cookie is written to .hermes-cookie and hot-reloaded by the server. Keep that window open (it's also used for reading document bodies).

  • Manual: in a logged-in Hermes tab, DevTools → Network → click a request → copy the Cookie: request header into .hermes-cookie:

    # macOS
    pbpaste > .hermes-cookie
    # Windows (PowerShell)
    Get-Clipboard | Set-Content -NoNewline .hermes-cookie

Verify with the hermes_check_auth tool.

Reading full document bodies

Bodies live in SharePoint. hermes_get_document_content tries, in order (source: "auto"):

  1. Search index — the body Hermes already indexed. No extra permissions. Often enough.

  2. Your browser session (source: "browser") — reads the file through the Chrome you signed into (npm run attach), over the DevTools protocol. No Microsoft Graph, no admin, no extra scopes — just the access you already have. Keep the document open in that Chrome.

  3. Microsoft Graph (source: "sharepoint", via hermes_sharepoint_login) — needs Files.Read.All/Sites.Read.All. The built-in client can't obtain these in a locked-down tenant; use a dedicated Azure AD app (below).

Test the browser path directly:

npm run sp-browser "<sharepoint-document-url>"

Optional: dedicated Azure AD app (for the Graph path)

Azure Portal → App registrations → New registration → Redirect URI = Public client/native http://localhost → API permissions → Microsoft Graph → Delegated: Files.Read.All, Sites.Read.All, offline_access → Grant admin consent. Then set SP_CLIENT_ID and SP_TENANT_ID in the server env and run hermes_sharepoint_login.

Manual setup (no installer)

Add this to your agent's MCP config, fixing the path (see examples/ for bob / Claude / VS Code variants):

{
  "mcpServers": {
    "hermes": {
      "command": "node",
      "args": ["/ABSOLUTE/PATH/TO/hermes-mcp/hermes-mcp.js"],
      "env": {
        "HERMES_BASE_URL": "https://hermes-sharepoint.hashicorp.services",
        "HERMES_COOKIE_FILE": "/ABSOLUTE/PATH/TO/hermes-mcp/.hermes-cookie"
      }
    }
  }
}

Then copy skills/hermes/SKILL.md into your agent's skills folder.

Windows notes

  • Use PowerShell; node install.js works the same.

  • npm run attach launches your installed Chrome/Edge. If it isn't found, set HERMES_CHROME to the browser's .exe.

  • Absolute paths in args use backslashes — the installer writes them correctly; if editing by hand use \\ or forward slashes.

Configuration (env)

Var

Default

Purpose

HERMES_BASE_URL

https://hermes-sharepoint.hashicorp.services

Hermes host

HERMES_COOKIE_FILE

./.hermes-cookie

Session cookie (hot-reloaded)

HERMES_CDP_PORT

9222

Debug-Chrome port for attach + browser content

HERMES_CHROME

auto-detect

Path to Chrome/Edge executable

SP_CLIENT_ID, SP_TENANT_ID

–

Dedicated Azure AD app for the Graph path

SHAREPOINT_TOKEN_FILE

./.sharepoint-token

Optional pasted Graph token

Scripts

  • npm start — run the server (stdio)

  • npm run attach — capture the Hermes session from a real Chrome

  • npm run sp-browser "<url>" — read a document via your browser session

  • node install.js — set up + register with your agent

Security

Never commit .hermes-cookie, .sharepoint-*, or the browser profiles — they hold your live session. .gitignore already excludes them.

Available Tools

8 tools
hermes_check_authA

Check whether the Hermes session cookie is valid. Call this if other tools fail with an auth error.

Inputs: no named parameters.

hermes_get_documentA

Fetch a Hermes document by its ID (e.g. an objectID from a search result). Returns title, metadata, summary, and source links.

Inputs: documentId (required).

hermes_get_document_contentA

Read the FULL text of a Hermes document. By default (source=auto) it tries, in order: the Hermes search index (no SharePoint permissions), then your signed-in browser session over CDP, then a SharePoint/Graph fetch. Provide a documentId (preferred) or a webUrl directly.

Inputs: index, source, webUrl, maxChars, +1 more.

hermes_loginA

Open a browser sign-in window for Hermes (SSO) and capture the session cookie. By default it WAITS until you finish signing in, then returns success so you can proceed. Call this at the start of a Hermes task if not signed in, or whenever a tool reports an authentication error. (Skips the popup if already signed in.)

Inputs: wait, timeoutSeconds.

hermes_recently_viewed_docsA

List the current user's recently viewed Hermes documents.

Inputs: no named parameters.

hermes_sharepoint_loginA

Connect SharePoint / Microsoft Graph so full document content can be read. Opens the normal Microsoft browser sign-in (no code to type); after you sign in once, the server stores a token that auto-refreshes. Call this if hermes_get_document_content says it is not configured.

Inputs: timeoutSeconds.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.2/5.0

    Scored across 8 tools

    Disambiguation5/5

    Each tool has a clear, distinct purpose: auth checking, document retrieval, full-text content, related resources, login, recently viewed, search, and SharePoint login. No overlapping functionalities.

    Naming Consistency5/5

    All tools follow the consistent pattern 'hermes_verb_noun' using snake_case, with descriptive verbs like check, get, login, search, and recently_viewed. No mix of conventions.

    Tool Count5/5

    8 tools is well-scoped for a document management server, covering authentication, search, retrieval, and related resources without being excessive or insufficient.

    Completeness4/5

    The tool surface covers core read operations (search, get, content, related, recent) and auth flows. Missing write operations but likely intentional for a consumption-oriented server.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      C
      maintenance
      Routes coding agents to the most relevant project documentation (decisions, intent, constraints) with provenance and freshness, providing tools for task routing, knowledge search, and document context.
      52 npm
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      Enables AI assistants to search, browse, and retrieve documents from a Hermes document management instance directly in chat, including full-text search, metadata lookup, and listing drafts, document types, products, and projects.
      12
      87 npm
      MIT
    • F
      license
      Not graded
      quality
      A
      maintenance
      Enables AI assistants to discover and invoke tools for saving and retrieving code snippets, generating style guides and wiki documentation, and orchestrating multi-agent documentation workflows with semantic search.
      -
    • F
      license
      Not graded
      quality
      A
      maintenance
      Enables AI assistants to save and retrieve code snippets, run semantic vector search, generate language-specific style guides and wiki documentation, and orchestrate multi-agent documentation workflows through discoverable MCP tools.
      -