HOL Guard

Query local HOL Guard security receipts and inventory, and stage policy changes for human approval

Official · HOL (Hashgraph Online) Python Local · stdio Security

87 popularity score ★ 1.1k ↓ 77k/mo

Connect your client

Local (PyPI)

Add in one click

Opens the app, which asks before it adds the server.

Or add it by command or config

Claude CodeTerminal
claude mcp add hol-guard -- uvx hol-guard mcp serve --stdio
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "hol-guard": {
      "command": "uvx",
      "args": [
        "hol-guard",
        "mcp",
        "serve",
        "--stdio"
      ]
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "hol-guard": {
      "command": "uvx",
      "args": [
        "hol-guard",
        "mcp",
        "serve",
        "--stdio"
      ]
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "hol-guard": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "hol-guard",
        "mcp",
        "serve",
        "--stdio"
      ]
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.hol-guard]
command = "uvx"
args = ["hol-guard", "mcp", "serve", "--stdio"]
Gemini CLITerminal
gemini mcp add --scope user hol-guard uvx -- hol-guard mcp serve --stdio

Settings 2

HOL_GUARD_POLICY_YAML_IMPORT Optional: Set to 1, together with HOL_GUARD_MCP_POLICY_WRITE, to let create_policy stage policy writes.
HOL_GUARD_MCP_POLICY_WRITE Optional: Set to 1, together with HOL_GUARD_POLICY_YAML_IMPORT, to allow policy writes through the server.

What it does

HOL Guard is a local security layer from Hashgraph Online that sits between AI coding agents and the actions they take: shell commands, file reads, package installs and MCP tool calls. It classifies each action and then allows it, blocks it or holds it for a person to approve, keeping a local record of every decision. Most of the product is a CLI (hol-guard) and a local dashboard; this page covers the MCP server that ships in the same Python package and is started with `hol-guard mcp serve --stdio`.

The server gives an assistant a read view of that local Guard data. It can search and fetch decision receipts and tracked artifacts (plugins, skills, MCP servers and other inventory), with the data sanitised before it is returned, and report whether Guard is installed and how current its data is.

It also covers policy authoring. An assistant can check a candidate Guard policy written in YAML without saving it, then ask for that policy to be written, in merge or replace mode. The write request is tied to digests of the candidate and current policy, sits pending, and only takes effect after a person approves it in the Guard dashboard; a further tool reports the state of such a request.

What it needs

RuntimePython 3.10+

Python 3.10 or newer, with uv to launch it as the registry entry does (the README installs the CLI with pipx). Runs on macOS, Windows and Linux. HOL Guard should already be set up locally (`hol-guard init`) so there are receipts and inventory to read. No account is needed; Guard Cloud is optional.

Limits

The server only reads Guard's own local store; it does not itself inspect or block an agent's actions, which the hooks and proxies set up by the hol-guard CLI do. Policy writes are off unless both HOL_GUARD_POLICY_YAML_IMPORT=1 and HOL_GUARD_MCP_POLICY_WRITE=1 are set, and even then a requested policy stays pending until a person approves it in the dashboard. Results are sanitised, so raw receipt contents are not all returned. How much Guard covers depends on the events each agent exposes.

Who it suits

Suits people who already run HOL Guard on their machine and want an assistant to answer questions about past approvals, blocked actions or tracked plugins and MCP servers, or to draft policy that a person then signs off. It is local and needs no account, and by default it only reads. It adds nothing on its own without the Guard CLI in place; anyone wanting a general secret scanner or a code security scanner should pick a server built for that instead.

Tools 6

search
Searches local Guard receipts and inventory by free text, returning sanitised matches.
fetch
Returns one sanitised receipt or inventory item by the ID from a search.
get_guard_status
Reports whether local Guard data is present, how fresh it is and whether policy authoring is available.
validate_policy
Checks a candidate Guard policy in YAML without saving it and returns its digests.
create_policy
Stages a policy write that takes effect only after a person approves it in the dashboard.
get_policy_creation
Shows the status of a pending or finished policy creation request.

Similar servers