# Hermes Plant — Agent Commerce Assurance (remote · mcp.hermesplant.com)

Preflight, approve, and prove consequential agent actions with signed evidence and x402 tools.

- Trust score: 64/100 (medium)
- Change this week: +6
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `mcp.hermesplant.com`: 64/100 (this document), [markdown](https://verifymcp.io/servers/jessegdotio-hermes-plant/mcp.md), [page](https://verifymcp.io/servers/jessegdotio-hermes-plant/mcp)

## Channel facts

- Endpoint: `https://mcp.hermesplant.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `2.0.2`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 66/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: no authorisation is required to call this server, and 6 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC is configured correctly; the domain's records validate against the full chain to the root.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 42/100
  - AI-judged instruction clarity (fair).
  - Context-footprint check failed: tool/resource definitions use about 7012 tokens (~280/item across 25 items; 25 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http jessegdotio-hermes-plant https://mcp.hermesplant.com/mcp
```

### Codex

```toml
[mcp_servers.jessegdotio-hermes-plant]
url = "https://mcp.hermesplant.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "jessegdotio-hermes-plant": {
      "type": "remote",
      "url": "https://mcp.hermesplant.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add jessegdotio-hermes-plant --url https://mcp.hermesplant.com/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  jessegdotio-hermes-plant:
    url: "https://mcp.hermesplant.com/mcp"
```

### Other

```json
{
  "mcpServers": {
    "jessegdotio-hermes-plant": {
      "type": "http",
      "url": "https://mcp.hermesplant.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 64, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-01 (score 63, +1)

No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-31 (score 62, +2)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 60, +1)

No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-29 (score 59, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-28 (score 58, 0)

- [functional] Server version: 2.0.1 → 2.0.2

### 2026-07-27 (score 58, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 57)

First indexed and scored.

## MCP tools (25)

### `freetier_status` (~79 tokens)

Free-tier key status

Check a free API key's remaining monthly quota, reset date, and upgrade path. Pass your hp_free_ key as apiKey. No key yet? POST an email to https://hermesplant.com/api/keys/free (250 calls/mo, no wallet).

Input parameters:

- `apiKey` (string, required): Your free-tier key (hp_free_...)

Output parameters:

- `httpStatus` (number): Upstream HTTP status code
- `ok` (boolean): True when the upstream storefront call returned a 2xx response
- `paymentRequired` (boolean): True when the response is an x402 HTTP 402 payment challenge

### `list_products` (~17 tokens)

List products

List active products from the Hermes Plant catalog

Output parameters:

- `httpStatus` (number): Upstream HTTP status code
- `ok` (boolean): True when the upstream storefront call returned a 2xx response
- `paymentRequired` (boolean): True when the response is an x402 HTTP 402 payment challenge

### `get_product` (~27 tokens)

Get product

Get a single product by slug

Input parameters:

- `slug` (string, required): Product slug from the catalog

Output parameters:

- `httpStatus` (number): Upstream HTTP status code
- `ok` (boolean): True when the upstream storefront call returned a 2xx response
- `paymentRequired` (boolean): True when the response is an x402 HTTP 402 payment challenge

### `get_checkout_policies` (~18 tokens)

Get checkout policies

Return legal policy URLs required before checkout

Output parameters:

- `httpStatus` (number): Upstream HTTP status code
- `ok` (boolean): True when the upstream storefront call returned a 2xx response
- `paymentRequired` (boolean): True when the response is an x402 HTTP 402 payment challenge

### `get_x402_manifest` (~29 tokens)

Get x402 manifest

Return the live x402 manifest with paid endpoint prices, Bazaar metadata, and buyer policy checks

Output parameters:

- `httpStatus` (number): Upstream HTTP status code
- `ok` (boolean): True when the upstream storefront call returned a 2xx response
- `paymentRequired` (boolean): True when the response is an x402 HTTP 402 payment challenge

### `start_checkout` (~29 tokens)

Start checkout

Start a Stripe checkout session for a product slug

Input parameters:

- `slug` (string, required): Product slug to purchase

Output parameters:

- `httpStatus` (number): Upstream HTTP status code
- `ok` (boolean): True when the upstream storefront call returned a 2xx response
- `paymentRequired` (boolean): True when the response is an x402 HTTP 402 payment challenge

### `purchase_with_x402` (~298 tokens)

Purchase with x402

Purchase a one-time product via x402 (returns 402 challenge or fulfillment JSON). Call get_x402_manifest first, verify method/path/network/amount/payTo, then sign and retry with PAYMENT-SIGNATURE.

Input parameters:

- `actorType` (string): Caller type for analytics: agent, human, synthetic, system, or unknown
- `apiKey` (string): Free-tier / plan API key (hp_free_… or a pass key). Forwarded as X-API-Key so paid tools serve from your monthly quota with NO x402 wallet. Get a free key (250 calls/mo) at https://hermesplant.com/pr…
- `campaign` (string): Campaign tag for downstream telemetry
- `channel` (string): Discovery channel or source tag
- `email` (string): Optional email for the order record
- `payer` (string): Optional wallet/account identifier; stored only as a hash
- `paymentIdentifier` (string): Optional x402 payment identifier for idempotency/retry correlation
- `paymentSignature` (string): x402 payment proof to forward as PAYMENT-SIGNATURE and X-PAYMENT on retry
- `slug` (string, required): One-time product slug (e.g. destructguard-pro)
- `synthetic` (boolean): Mark this paid retry as an internal test/probe for analytics exclusion
- `xPayment` (string): Raw X-PAYMENT proof from an x402-compatible wallet/client

Output parameters:

- `httpStatus` (number): Upstream HTTP status code
- `ok` (boolean): True when the upstream storefront call returned a 2xx response
- `paymentRequired` (boolean): True when the response is an x402 HTTP 402 payment challenge

### `action_safety_quick_gate` (~372 tokens)

Action Safety - one-cent preflight

AI agent action safety quick gate ($0.01 over x402 or free-tier quota). Deterministically scores a consequential action and returns the exact next call: proceed, request full DestructGuard evidence, or run the complete Action Safety workflow.

Input parameters:

- `actor` (string): Agent or tool requesting the action
- `actorType` (string): Caller type for analytics: agent, human, synthetic, system, or unknown
- `apiKey` (string): Free-tier / plan API key (hp_free_… or a pass key). Forwarded as X-API-Key so paid tools serve from your monthly quota with NO x402 wallet. Get a free key (250 calls/mo) at https://hermesplant.com/pr…
- `branch` (string): Branch or environment context
- `campaign` (string): Campaign tag for downstream telemetry
- `channel` (string): Discovery channel or source tag
- `command` (string, required): Shell, SQL, Git, deploy, or infrastructure action to preflight
- `cwd` (string): Working directory or execution context
- `diffStat` (string): Optional git diff --stat or change summary
- `intent` (string): Why the action is being requested
- `payer` (string): Optional wallet/account identifier; stored only as a hash
- `paymentIdentifier` (string): Optional x402 payment identifier for idempotency/retry correlation
- `paymentSignature` (string): x402 payment proof to forward as PAYMENT-SIGNATURE and X-PAYMENT on retry
- `repo` (string): Repository or project context
- `synthetic` (boolean): Mark this paid retry as an internal test/probe for analytics exclusion
- `xPayment` (string): Raw X-PAYMENT proof from an x402-compatible wallet/client

Output parameters:

- `httpStatus` (number): Upstream HTTP status code
- `ok` (boolean): True when the upstream storefront call returned a 2xx response
- `paymentRequired` (boolean): True when the response is an x402 HTTP 402 payment challenge

### `action_safety_run` (~377 tokens)

Action Safety - complete workflow

Complete AI agent action safety workflow ($0.25 over x402 or free-tier quota): DestructGuard evidence, conditional ReviewQueue triage for high or critical risk, an honest decision, signed receipt, and 30-day status record. Triage does not imply human approval.

Input parameters:

- `actor` (string): Agent or tool requesting the action
- `actorType` (string): Caller type for analytics: agent, human, synthetic, system, or unknown
- `apiKey` (string): Free-tier / plan API key (hp_free_… or a pass key). Forwarded as X-API-Key so paid tools serve from your monthly quota with NO x402 wallet. Get a free key (250 calls/mo) at https://hermesplant.com/pr…
- `branch` (string): Branch or environment context
- `campaign` (string): Campaign tag for downstream telemetry
- `channel` (string): Discovery channel or source tag
- `command` (string, required): Shell, SQL, Git, deploy, or infrastructure action to preflight
- `cwd` (string): Working directory or execution context
- `diffStat` (string): Optional git diff --stat or change summary
- `intent` (string): Why the action is being requested
- `payer` (string): Optional wallet/account identifier; stored only as a hash
- `paymentIdentifier` (string): Optional x402 payment identifier for idempotency/retry correlation
- `paymentSignature` (string): x402 payment proof to forward as PAYMENT-SIGNATURE and X-PAYMENT on retry
- `repo` (string): Repository or project context
- `synthetic` (boolean): Mark this paid retry as an internal test/probe for analytics exclusion
- `xPayment` (string): Raw X-PAYMENT proof from an x402-compatible wallet/client

Output parameters:

- `httpStatus` (number): Upstream HTTP status code
- `ok` (boolean): True when the upstream storefront call returned a 2xx response
- `paymentRequired` (boolean): True when the response is an x402 HTTP 402 payment challenge

### `submit_reviewqueue_request` (~343 tokens)

ReviewQueue — submit for risk triage

Submit a command/action to the x402-paid ReviewQueue agent service. Call get_x402_manifest first, verify the ReviewQueue price and buyer policy, then retry the 402 challenge with an x402 payment signature.

Input parameters:

- `actor` (string): Agent/tool requesting the action
- `actorType` (string): Caller type for analytics: agent, human, synthetic, system, or unknown
- `apiKey` (string): Free-tier / plan API key (hp_free_… or a pass key). Forwarded as X-API-Key so paid tools serve from your monthly quota with NO x402 wallet. Get a free key (250 calls/mo) at https://hermesplant.com/pr…
- `branch` (string): Branch or environment context
- `campaign` (string): Campaign tag for downstream telemetry
- `channel` (string): Discovery channel or source tag
- `command` (string, required): Command or agent action being requested
- `diffStat` (string): Optional git diff --stat or change summary
- `payer` (string): Optional wallet/account identifier; stored only as a hash
- `paymentIdentifier` (string): Optional x402 payment identifier for idempotency/retry correlation
- `paymentSignature` (string): x402 payment proof to forward as PAYMENT-SIGNATURE and X-PAYMENT on retry
- `reason` (string): Why the action is being requested
- `repo` (string): Repository or project context
- `synthetic` (boolean): Mark this paid retry as an internal test/probe for analytics exclusion
- `xPayment` (string): Raw X-PAYMENT proof from an x402-compatible wallet/client

Output parameters:

- `httpStatus` (number): Upstream HTTP status code
- `ok` (boolean): True when the upstream storefront call returned a 2xx response
- `paymentRequired` (boolean): True when the response is an x402 HTTP 402 payment challenge

### `score_destructguard_command` (~346 tokens)

DestructGuard — score command risk

Score a command/action with the x402-paid DestructGuard service. Call get_x402_manifest first, verify the DestructGuard price and buyer policy, then retry the 402 challenge with an x402 payment signature.

Input parameters:

- `actor` (string): Agent/tool requesting the action
- `actorType` (string): Caller type for analytics: agent, human, synthetic, system, or unknown
- `apiKey` (string): Free-tier / plan API key (hp_free_… or a pass key). Forwarded as X-API-Key so paid tools serve from your monthly quota with NO x402 wallet. Get a free key (250 calls/mo) at https://hermesplant.com/pr…
- `campaign` (string): Campaign tag for downstream telemetry
- `channel` (string): Discovery channel or source tag
- `command` (string, required): Command or agent action to score
- `cwd` (string): Working directory or execution context
- `diffStat` (string): Optional git diff --stat or change summary
- `intent` (string): Why the command is being requested
- `payer` (string): Optional wallet/account identifier; stored only as a hash
- `paymentIdentifier` (string): Optional x402 payment identifier for idempotency/retry correlation
- `paymentSignature` (string): x402 payment proof to forward as PAYMENT-SIGNATURE and X-PAYMENT on retry
- `repo` (string): Repository or project context
- `synthetic` (boolean): Mark this paid retry as an internal test/probe for analytics exclusion
- `xPayment` (string): Raw X-PAYMENT proof from an x402-compatible wallet/client

Output parameters:

- `httpStatus` (number): Upstream HTTP status code
- `ok` (boolean): True when the upstream storefront call returned a 2xx response
- `paymentRequired` (boolean): True when the response is an x402 HTTP 402 payment challenge

### `dealanalyzer_analyze` (~351 tokens)

DealAnalyzer — full deal underwriting in one call

DealAnalyzer (x402-paid, $2.00): the flagship. Deterministic full deal underwrite in a single call — DCF valuation (EV, equity value, implied share price), fund returns (IRR/MOIC), and the LP/GP distribution waterfall, plus sensitivity. Combines what CashflowLens + WaterfallLens do, cross-checked.

Input parameters:

- `actorType` (string): Caller type for analytics: agent, human, synthetic, system, or unknown
- `apiKey` (string): Free-tier / plan API key (hp_free_… or a pass key). Forwarded as X-API-Key so paid tools serve from your monthly quota with NO x402 wallet. Get a free key (250 calls/mo) at https://hermesplant.com/pr…
- `campaign` (string): Campaign tag for downstream telemetry
- `channel` (string): Discovery channel or source tag
- `dcf` (object, required): Required. DCF valuation inputs.
- `payer` (string): Optional wallet/account identifier; stored only as a hash
- `paymentIdentifier` (string): Optional x402 payment identifier for idempotency/retry correlation
- `paymentSignature` (string): x402 payment proof to forward as PAYMENT-SIGNATURE and X-PAYMENT on retry
- `returns` (object): Optional fund/deal return inputs (IRR, MOIC, NPV).
- `synthetic` (boolean): Mark this paid retry as an internal test/probe for analytics exclusion
- `waterfall` (object): Optional LP/GP distribution waterfall inputs.
- `xPayment` (string): Raw X-PAYMENT proof from an x402-compatible wallet/client

Output parameters:

- `httpStatus` (number): Upstream HTTP status code
- `ok` (boolean): True when the upstream storefront call returned a 2xx response
- `paymentRequired` (boolean): True when the response is an x402 HTTP 402 payment challenge

### `cashflowlens_analyze` (~399 tokens)

CashflowLens — DCF, IRR & cashflow returns

CashflowLens (x402-paid, $0.20): deterministic NPV, IRR, XIRR, DCF valuation, MOIC/DPI/TVPI, and payback period from a cashflow series. Use for valuation and return analysis instead of letting the model estimate.

Input parameters:

- `actorType` (string): Caller type for analytics: agent, human, synthetic, system, or unknown
- `apiKey` (string): Free-tier / plan API key (hp_free_… or a pass key). Forwarded as X-API-Key so paid tools serve from your monthly quota with NO x402 wallet. Get a free key (250 calls/mo) at https://hermesplant.com/pr…
- `campaign` (string): Campaign tag for downstream telemetry
- `cashflows` (array, required): Cashflows: numbers for periodic, or {amount,date} objects for dated XIRR. Outflows negative.
- `channel` (string): Discovery channel or source tag
- `dcf` (object): Optional DCF valuation inputs (projected FCFs, discount rate, terminal value, net debt, shares)
- `discountRate` (number): Annual rate for NPV, e.g. 0.08
- `nav` (number): Residual value, for TVPI
- `payer` (string): Optional wallet/account identifier; stored only as a hash
- `paymentIdentifier` (string): Optional x402 payment identifier for idempotency/retry correlation
- `paymentSignature` (string): x402 payment proof to forward as PAYMENT-SIGNATURE and X-PAYMENT on retry
- `periodsPerYear` (number): Periods per year to annualize a periodic IRR
- `synthetic` (boolean): Mark this paid retry as an internal test/probe for analytics exclusion
- `xPayment` (string): Raw X-PAYMENT proof from an x402-compatible wallet/client

Output parameters:

- `httpStatus` (number): Upstream HTTP status code
- `ok` (boolean): True when the upstream storefront call returned a 2xx response
- `paymentRequired` (boolean): True when the response is an x402 HTTP 402 payment challenge

### `waterfall_distribute` (~420 tokens)

WaterfallLens — LP/GP distribution waterfall

WaterfallLens (x402-paid, $0.30): deterministic LP/GP distribution waterfall (return of capital, preferred, GP catch-up, carried-interest split) with the exact split, per-tier breakdown, LP MOIC, and effective carry %.

Input parameters:

- `actorType` (string): Caller type for analytics: agent, human, synthetic, system, or unknown
- `apiKey` (string): Free-tier / plan API key (hp_free_… or a pass key). Forwarded as X-API-Key so paid tools serve from your monthly quota with NO x402 wallet. Get a free key (250 calls/mo) at https://hermesplant.com/pr…
- `campaign` (string): Campaign tag for downstream telemetry
- `carryPercentage` (number): GP carry, e.g. 0.20 (default 0.20)
- `catchUpPercentage` (number): GP catch-up share, 1.0 = full (default)
- `channel` (string): Discovery channel or source tag
- `compounding` (string): Preferred-return accrual basis: 'simple' or 'compounded' (default compounded)
- `contributedCapital` (number, required): Total LP capital to return in tier 1
- `distributable` (number, required): Total cash to distribute
- `payer` (string): Optional wallet/account identifier; stored only as a hash
- `paymentIdentifier` (string): Optional x402 payment identifier for idempotency/retry correlation
- `paymentSignature` (string): x402 payment proof to forward as PAYMENT-SIGNATURE and X-PAYMENT on retry
- `preferredRate` (number): Annual preferred rate, e.g. 0.08
- `preferredReturnAmount` (number): Explicit preferred return amount
- `synthetic` (boolean): Mark this paid retry as an internal test/probe for analytics exclusion
- `xPayment` (string): Raw X-PAYMENT proof from an x402-compatible wallet/client
- `years` (number): Holding period for preferred accrual

Output parameters:

- `httpStatus` (number): Upstream HTTP status code
- `ok` (boolean): True when the upstream storefront call returned a 2xx response
- `paymentRequired` (boolean): True when the response is an x402 HTTP 402 payment challenge

### `options_price` (~389 tokens)

OptionLens — Black-Scholes price & Greeks

OptionLens (x402-paid, $0.30): deterministic Black-Scholes price and full Greeks (delta, gamma, vega, theta, rho) for European calls/puts, with dividend yield, intrinsic/time value, and moneyness.

Input parameters:

- `actorType` (string): Caller type for analytics: agent, human, synthetic, system, or unknown
- `apiKey` (string): Free-tier / plan API key (hp_free_… or a pass key). Forwarded as X-API-Key so paid tools serve from your monthly quota with NO x402 wallet. Get a free key (250 calls/mo) at https://hermesplant.com/pr…
- `campaign` (string): Campaign tag for downstream telemetry
- `channel` (string): Discovery channel or source tag
- `dividendYield` (number): Continuous dividend yield, default 0
- `optionType` (string): Option type, 'call' or 'put' (default call)
- `payer` (string): Optional wallet/account identifier; stored only as a hash
- `paymentIdentifier` (string): Optional x402 payment identifier for idempotency/retry correlation
- `paymentSignature` (string): x402 payment proof to forward as PAYMENT-SIGNATURE and X-PAYMENT on retry
- `riskFreeRate` (number): Annual risk-free rate, default 0
- `spot` (number, required): Underlying price (> 0)
- `strike` (number, required): Strike price (> 0)
- `synthetic` (boolean): Mark this paid retry as an internal test/probe for analytics exclusion
- `timeToExpiry` (number, required): Years to expiry, e.g. 0.5
- `volatility` (number, required): Annualized volatility, e.g. 0.2
- `xPayment` (string): Raw X-PAYMENT proof from an x402-compatible wallet/client

Output parameters:

- `httpStatus` (number): Upstream HTTP status code
- `ok` (boolean): True when the upstream storefront call returned a 2xx response
- `paymentRequired` (boolean): True when the response is an x402 HTTP 402 payment challenge

### `bond_analyze` (~410 tokens)

BondLens — bond & loan analytics

BondLens (x402-paid, $0.25): deterministic fixed-income and loan analytics. Bond mode solves price<->yield-to-maturity, duration, and convexity; loan mode (send principal+annualRate+termMonths) returns an amortization schedule.

Input parameters:

- `actorType` (string): Caller type for analytics: agent, human, synthetic, system, or unknown
- `annualRate` (number): Loan annual rate, e.g. 0.06
- `apiKey` (string): Free-tier / plan API key (hp_free_… or a pass key). Forwarded as X-API-Key so paid tools serve from your monthly quota with NO x402 wallet. Get a free key (250 calls/mo) at https://hermesplant.com/pr…
- `campaign` (string): Campaign tag for downstream telemetry
- `channel` (string): Discovery channel or source tag
- `couponRate` (number): Annual coupon rate, e.g. 0.05
- `faceValue` (number): Bond face value (default 1000)
- `frequency` (number): Coupons per year (default 2)
- `payer` (string): Optional wallet/account identifier; stored only as a hash
- `paymentIdentifier` (string): Optional x402 payment identifier for idempotency/retry correlation
- `paymentSignature` (string): x402 payment proof to forward as PAYMENT-SIGNATURE and X-PAYMENT on retry
- `periods` (number): Periods to maturity
- `price` (number): Bond price; supply to solve yield
- `principal` (number): Loan principal (selects loan mode)
- `synthetic` (boolean): Mark this paid retry as an internal test/probe for analytics exclusion
- `termMonths` (number): Loan term in months
- `xPayment` (string): Raw X-PAYMENT proof from an x402-compatible wallet/client
- `yield` (number): Annual yield; supply to solve price

Output parameters:

- `httpStatus` (number): Upstream HTTP status code
- `ok` (boolean): True when the upstream storefront call returned a 2xx response
- `paymentRequired` (boolean): True when the response is an x402 HTTP 402 payment challenge

### `portfolioguard_score` (~323 tokens)

PortfolioGuard — portfolio risk

PortfolioGuard (x402-paid, $0.15): deterministic portfolio risk scoring from holdings — volatility, Sharpe, max drawdown, concentration (HHI), diversification, plus per-rule findings.

Input parameters:

- `actorType` (string): Caller type for analytics: agent, human, synthetic, system, or unknown
- `apiKey` (string): Free-tier / plan API key (hp_free_… or a pass key). Forwarded as X-API-Key so paid tools serve from your monthly quota with NO x402 wallet. Get a free key (250 calls/mo) at https://hermesplant.com/pr…
- `campaign` (string): Campaign tag for downstream telemetry
- `channel` (string): Discovery channel or source tag
- `holdings` (array, required): Positions with symbol, weight (0-1), optional returns[], sector
- `payer` (string): Optional wallet/account identifier; stored only as a hash
- `paymentIdentifier` (string): Optional x402 payment identifier for idempotency/retry correlation
- `paymentSignature` (string): x402 payment proof to forward as PAYMENT-SIGNATURE and X-PAYMENT on retry
- `periodReturns` (array): Optional portfolio/market return series
- `riskFreeRate` (number): Optional risk-free rate for the Sharpe ratio (default 0)
- `synthetic` (boolean): Mark this paid retry as an internal test/probe for analytics exclusion
- `xPayment` (string): Raw X-PAYMENT proof from an x402-compatible wallet/client

Output parameters:

- `httpStatus` (number): Upstream HTTP status code
- `ok` (boolean): True when the upstream storefront call returned a 2xx response
- `paymentRequired` (boolean): True when the response is an x402 HTTP 402 payment challenge

### `walletguard_score` (~384 tokens)

WalletGuard — wallet AML risk

WalletGuard (x402-paid, $0.10): deterministic wallet AML/compliance risk scorer. From caller-provided context (sanctions, exposures, labels, fund sources) returns a 0-100 risk score, level, and evidence-backed findings.

Input parameters:

- `actorType` (string): Caller type for analytics: agent, human, synthetic, system, or unknown
- `apiKey` (string): Free-tier / plan API key (hp_free_… or a pass key). Forwarded as X-API-Key so paid tools serve from your monthly quota with NO x402 wallet. Get a free key (250 calls/mo) at https://hermesplant.com/pr…
- `campaign` (string): Campaign tag for downstream telemetry
- `channel` (string): Discovery channel or source tag
- `exposures` (array): Signals e.g. mixer:tornado, sanctions:ofac
- `fundingSources` (array): Optional fund-source breakdown (source, share 0-1, verified)
- `labels` (array): Address labels, e.g. exchange:binance, contract:..., sanctions:...
- `payer` (string): Optional wallet/account identifier; stored only as a hash
- `paymentIdentifier` (string): Optional x402 payment identifier for idempotency/retry correlation
- `paymentSignature` (string): x402 payment proof to forward as PAYMENT-SIGNATURE and X-PAYMENT on retry
- `sanctionsHits` (array): Sanctions / OFAC / blacklist hit identifiers
- `synthetic` (boolean): Mark this paid retry as an internal test/probe for analytics exclusion
- `transfers` (array): Optional transfer summaries (direction, value, counterparty, tags)
- `wallet` (string, required): Wallet address
- `xPayment` (string): Raw X-PAYMENT proof from an x402-compatible wallet/client

Output parameters:

- `httpStatus` (number): Upstream HTTP status code
- `ok` (boolean): True when the upstream storefront call returned a 2xx response
- `paymentRequired` (boolean): True when the response is an x402 HTTP 402 payment challenge

### `emailguard_validate` (~317 tokens)

EmailGuard — email validation

EmailGuard (x402-paid, $0.02): deterministic email/contact quality scorer — validity, deliverability score, disposable/role/free classification, typo suggestion. Pure function, no DNS.

Input parameters:

- `actorType` (string): Caller type for analytics: agent, human, synthetic, system, or unknown
- `apiKey` (string): Free-tier / plan API key (hp_free_… or a pass key). Forwarded as X-API-Key so paid tools serve from your monthly quota with NO x402 wallet. Get a free key (250 calls/mo) at https://hermesplant.com/pr…
- `campaign` (string): Campaign tag for downstream telemetry
- `channel` (string): Discovery channel or source tag
- `domain` (string): Optional explicit domain hint (usually derived from email)
- `email` (string, required): Email address to validate
- `mxPresent` (boolean): Caller-supplied MX hint
- `name` (string): Optional contact name associated with the email
- `payer` (string): Optional wallet/account identifier; stored only as a hash
- `paymentIdentifier` (string): Optional x402 payment identifier for idempotency/retry correlation
- `paymentSignature` (string): x402 payment proof to forward as PAYMENT-SIGNATURE and X-PAYMENT on retry
- `synthetic` (boolean): Mark this paid retry as an internal test/probe for analytics exclusion
- `xPayment` (string): Raw X-PAYMENT proof from an x402-compatible wallet/client

Output parameters:

- `httpStatus` (number): Upstream HTTP status code
- `ok` (boolean): True when the upstream storefront call returned a 2xx response
- `paymentRequired` (boolean): True when the response is an x402 HTTP 402 payment challenge

### `emailguard_validate_batch` (~342 tokens)

EmailGuard — validate a whole contact list

Validate up to 20 emails in one tool call — one deterministic verdict per record (validity, deliverability score, disposable/role/free classification, typo suggestion, canonical normalization). Pass your free apiKey (250 records/mo, no wallet — https://hermesplant.com/pricing) and each record serves from quota. Results preserve input order; the batch stops at the first 402 (quota exhausted) and marks the rest skipped so you can upgrade and resume.

Input parameters:

- `actorType` (string): Caller type for analytics: agent, human, synthetic, system, or unknown
- `apiKey` (string): Free-tier / plan API key (hp_free_… or a pass key). Forwarded as X-API-Key so paid tools serve from your monthly quota with NO x402 wallet. Get a free key (250 calls/mo) at https://hermesplant.com/pr…
- `campaign` (string): Campaign tag for downstream telemetry
- `channel` (string): Discovery channel or source tag
- `payer` (string): Optional wallet/account identifier; stored only as a hash
- `paymentIdentifier` (string): Optional x402 payment identifier for idempotency/retry correlation
- `paymentSignature` (string): x402 payment proof to forward as PAYMENT-SIGNATURE and X-PAYMENT on retry
- `records` (array, required): Contact records to validate — one storefront call per record (max 20 per tool call)
- `synthetic` (boolean): Mark this paid retry as an internal test/probe for analytics exclusion
- `xPayment` (string): Raw X-PAYMENT proof from an x402-compatible wallet/client

Output parameters:

- `httpStatus` (number): Upstream HTTP status code
- `ok` (boolean): True when the upstream storefront call returned a 2xx response
- `paymentRequired` (boolean): True when the response is an x402 HTTP 402 payment challenge

### `mcp_risk_score` (~326 tokens)

MCP Server Risk Analyzer

MCP Server Risk Analyzer (x402-paid, $0.05): score an MCP server manifest for security risk before install — destructive tools, over-broad scopes, weak auth, egress — with per-tool findings and fixes.

Input parameters:

- `actorType` (string): Caller type for analytics: agent, human, synthetic, system, or unknown
- `apiKey` (string): Free-tier / plan API key (hp_free_… or a pass key). Forwarded as X-API-Key so paid tools serve from your monthly quota with NO x402 wallet. Get a free key (250 calls/mo) at https://hermesplant.com/pr…
- `authModel` (string): e.g. oauth, token, none
- `campaign` (string): Campaign tag for downstream telemetry
- `channel` (string): Discovery channel or source tag
- `payer` (string): Optional wallet/account identifier; stored only as a hash
- `paymentIdentifier` (string): Optional x402 payment identifier for idempotency/retry correlation
- `paymentSignature` (string): x402 payment proof to forward as PAYMENT-SIGNATURE and X-PAYMENT on retry
- `priorTools` (array): Prior tool names to diff capability growth
- `server` (string): Server name/URL
- `synthetic` (boolean): Mark this paid retry as an internal test/probe for analytics exclusion
- `tools` (array, required): The MCP server's tool manifest
- `xPayment` (string): Raw X-PAYMENT proof from an x402-compatible wallet/client

Output parameters:

- `httpStatus` (number): Upstream HTTP status code
- `ok` (boolean): True when the upstream storefront call returned a 2xx response
- `paymentRequired` (boolean): True when the response is an x402 HTTP 402 payment challenge

### `payment_policy_decide` (~508 tokens)

Payment Policy — preflight an x402 payment

Payment Policy Decision (x402-paid, $0.05): deterministic allow / deny / needs_review before your agent signs an x402 payment — checks resource binding, amount vs expected price, network, payTo, facilitator, replay readiness, PII leakage, and buyer spend limits, with evidence-backed findings. Loop it over every payment; pair with assurance_attest for a signed record.

Input parameters:

- `actorType` (string): Caller type for analytics: agent, human, synthetic, system, or unknown
- `amountUnits` (string): Raw x402 amount units (USDC = 6 decimals)
- `apiKey` (string): Free-tier / plan API key (hp_free_… or a pass key). Forwarded as X-API-Key so paid tools serve from your monthly quota with NO x402 wallet. Get a free key (250 calls/mo) at https://hermesplant.com/pr…
- `asset` (string): Payment asset address
- `buyerPolicy` (object): Buyer guardrails: maxUsdPerCall, allowedNetworks, allowedPayTo, allowedHosts, requireExactScheme, requireHttps, ...
- `campaign` (string): Campaign tag for downstream telemetry
- `channel` (string): Discovery channel or source tag
- `facilitatorUrl` (string): Facilitator URL used to settle
- `maxTimeoutSeconds` (number): Challenge timeout window
- `method` (string): HTTP method the agent intends to call
- `network` (string): Payment network, e.g. eip155:8453
- `payTo` (string): Payment recipient from the challenge
- `payer` (string): Optional wallet/account identifier; stored only as a hash
- `paymentIdentifier` (string): Optional x402 payment identifier for idempotency/retry correlation
- `paymentSignature` (string): x402 payment proof to forward as PAYMENT-SIGNATURE and X-PAYMENT on retry
- `resourceUrl` (string, required): Absolute resource URL from the x402 challenge or Bazaar listing
- `scheme` (string): x402 payment scheme (exact expected)
- `serviceRisk` (object): Optional upstream service-risk result (e.g. from mcp_risk_score)
- `synthetic` (boolean): Mark this paid retry as an internal test/probe for analytics exclusion
- `tags` (array): Bazaar/service tags for sensitive-category detection
- `xPayment` (string): Raw X-PAYMENT proof from an x402-compatible wallet/client

Output parameters:

- `httpStatus` (number): Upstream HTTP status code
- `ok` (boolean): True when the upstream storefront call returned a 2xx response
- `paymentRequired` (boolean): True when the response is an x402 HTTP 402 payment challenge

### `evidence_verify` (~366 tokens)

Evidence Verify — check a paid result's evidence bundle

Evidence Verification (x402-paid, $0.05): verify an agent-commerce evidence bundle before trusting a paid result — x402 challenge/receipt/policy-decision/service-response artifacts, endpoint and price binding, freshness, hashes, synthetic-proof leakage. Returns verified / needs_review / rejected / insufficient_evidence with per-rule evidence.

Input parameters:

- `actorType` (string): Caller type for analytics: agent, human, synthetic, system, or unknown
- `apiKey` (string): Free-tier / plan API key (hp_free_… or a pass key). Forwarded as X-API-Key so paid tools serve from your monthly quota with NO x402 wallet. Get a free key (250 calls/mo) at https://hermesplant.com/pr…
- `artifacts` (array, required): Evidence artifacts (Hermes contract): x402_challenge, x402_receipt, payment_policy_decision, service_response, ...
- `campaign` (string): Campaign tag for downstream telemetry
- `channel` (string): Discovery channel or source tag
- `payer` (string): Optional wallet/account identifier; stored only as a hash
- `paymentIdentifier` (string): Optional x402 payment identifier for idempotency/retry correlation
- `paymentSignature` (string): x402 payment proof to forward as PAYMENT-SIGNATURE and X-PAYMENT on retry
- `policy` (object): Verification policy: expected serviceId/endpoint/network/priceCents, require* flags
- `subject` (object): Optional run subject: kind, serviceId, endpoint, method, runId
- `synthetic` (boolean): Mark this paid retry as an internal test/probe for analytics exclusion
- `xPayment` (string): Raw X-PAYMENT proof from an x402-compatible wallet/client

Output parameters:

- `httpStatus` (number): Upstream HTTP status code
- `ok` (boolean): True when the upstream storefront call returned a 2xx response
- `paymentRequired` (boolean): True when the response is an x402 HTTP 402 payment challenge

### `assurance_attest` (~433 tokens)

Assurance Attest — signed receipt for an agent action

Assurance Attest (x402-paid, $0.05): bind one x402 payment intent or MCP tool call to a canonical HMAC-signed record (binding hash, policy verdict, findings, optional settlement outcome). Loop it after every payment or tool call to build a tamper-evident audit trail a third party can check at the free verify endpoint.

Input parameters:

- `actorType` (string): Caller type for analytics: agent, human, synthetic, system, or unknown
- `apiKey` (string): Free-tier / plan API key (hp_free_… or a pass key). Forwarded as X-API-Key so paid tools serve from your monthly quota with NO x402 wallet. Get a free key (250 calls/mo) at https://hermesplant.com/pr…
- `campaign` (string): Campaign tag for downstream telemetry
- `channel` (string): Discovery channel or source tag
- `intent` (object, required): x402: resourceUrl+method (+scheme/network/asset/amountUnits/payTo/settlement fields). mcp: serverId+toolName (+toolArguments or toolArgumentsHash).
- `outcome` (object): Optional settlement outcome: {outcome: fulfilled|failed|rejected, settlementId, responseStatus, evidenceHashes[]}
- `payer` (string): Optional wallet/account identifier; stored only as a hash
- `paymentIdentifier` (string): Optional x402 payment identifier for idempotency/retry correlation
- `paymentSignature` (string): x402 payment proof to forward as PAYMENT-SIGNATURE and X-PAYMENT on retry
- `policy` (object): Optional buyer policy (policyId+version, caps, allow-lists); omit for binding-only attestation
- `protocol` (string, required): "x402" for a payment, "mcp" for a tool call
- `subject` (object, required): Who acted and why
- `synthetic` (boolean): Mark this paid retry as an internal test/probe for analytics exclusion
- `xPayment` (string): Raw X-PAYMENT proof from an x402-compatible wallet/client

Output parameters:

- `httpStatus` (number): Upstream HTTP status code
- `ok` (boolean): True when the upstream storefront call returned a 2xx response
- `paymentRequired` (boolean): True when the response is an x402 HTTP 402 payment challenge

### `assurance_verify` (~109 tokens)

Assurance Verify — check a signed record (free)

Verify a Hermes-signed assurance record for free: recomputes the canonical hash (hermes-stable-json-v1 + SHA-256) and HMAC signature server-side and reports recordHashValid / signatureValid. Use it to audit attestations produced by assurance_attest without trusting the agent that produced them.

Input parameters:

- `integrity` (object, required): The integrity object returned with the record (recordHash, signature, keyId)
- `record` (object, required): The attestation/decision/receipt record object

Output parameters:

- `httpStatus` (number): Upstream HTTP status code
- `ok` (boolean): True when the upstream storefront call returned a 2xx response
- `paymentRequired` (boolean): True when the response is an x402 HTTP 402 payment challenge

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/jessegdotio-hermes-plant/mcp#diagnostics

## Score history

- 2026-08-03: 64
- 2026-08-02: 63
- 2026-08-01: 63
- 2026-07-31: 62
- 2026-07-30: 60
- 2026-07-29: 59
- 2026-07-28: 58
- 2026-07-27: 58
- 2026-07-26: 57

## Links

- Remote endpoint: https://mcp.hermesplant.com/mcp
- Repository: https://github.com/JesseGdotIO/hermesplant-mcp-server
- Changelog RSS feed: https://verifymcp.io/servers/jessegdotio-hermes-plant/mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/jessegdotio-hermes-plant/mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/jessegdotio-hermes-plant/mcp
