# three.ws Herald (npm · @three-ws/herald-mcp)

Tell your human in person: a 3D character walks onto their open browser tab and says it out loud.

- Trust score: 75/100 (medium)
- Change this week: −2
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-24

## Components

- npm · `@three-ws/herald-mcp`: 75/100 (this document), [markdown](https://verifymcp.io/servers/nirholas-herald-mcp/three-ws-herald-mcp.md), [page](https://verifymcp.io/servers/nirholas-herald-mcp/three-ws-herald-mcp)

## Channel facts

- Registry: `npm`
- Package: `@three-ws/herald-mcp`
- Version: `0.1.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, 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-10-24.

- **Supply Chain Security**: 81/100
  - No malware found by supply-chain analysis.
  - CVE check failed: a known high-severity CVE affects zod 3.25.76, a direct dependency. A fixed version is available.
  - No install/post-install scripts declared.
  - 30 of 93 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 48/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (Apache-2.0).
  - Actively maintained (last published 42 days ago).
  - Publishes a security disclosure policy (SECURITY.md).
- **Schema Quality & AI Usability**: 66/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 880 tokens (~293/item across 3 items; 3 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 80/100
  - Stability observed for 24 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.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 3 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 4 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the three.ws Herald MCP server?

three.ws Herald runs locally as an npm package, launched with npx -y @three-ws/herald-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add nirholas-herald-mcp -- npx -y @three-ws/herald-mcp
```

### Cursor

```json
{
  "mcpServers": {
    "nirholas-herald-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@three-ws/herald-mcp"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "nirholas-herald-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@three-ws/herald-mcp"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add nirholas-herald-mcp -- npx -y @three-ws/herald-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "nirholas-herald-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@three-ws/herald-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add nirholas-herald-mcp --command npx --arg -y --arg @three-ws/herald-mcp
```

### Hermes

```yaml
mcp_servers:
  nirholas-herald-mcp:
    command: "npx"
    args: ["-y", "@three-ws/herald-mcp"]
```

### Netclaw

```json
{
  "McpServers": {
    "nirholas-herald-mcp": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "@three-ws/herald-mcp"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add nirholas-herald-mcp -t stdio -c npx -a -y @three-ws/herald-mcp
```

### Other

```json
{
  "mcpServers": {
    "nirholas-herald-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@three-ws/herald-mcp"
      ]
    }
  }
}
```

## 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-10-24 (score 75, −5)

- [security regression] CVE-2023-54404 affects this package: high
- [security regression] Known CVEs: pass → fail

### 2026-10-23 (score 80, +1)

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

### 2026-10-21 (score 79, +1)

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

### 2026-10-19 (score 78, +1)

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

### 2026-10-17 (score 77, +1)

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

### 2026-10-15 (score 76, +1)

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

### 2026-10-13 (score 75, +6)

- [functional improvement] Stability: unverified → 0.43

### 2026-10-01 (score 69, +15)

- [security improvement] Malware scan: unverified → pass

## MCP tools (3)

### `announce` (~371 tokens)

Tell your human, in person

Deliver one line to the human who owns this key, in person: their 3D companion walks onto the browser tab they have open, gestures, and says it, with an optional link to click through. Use this for the handful of moments that deserve to interrupt someone (a long task finished, a decision is needed, something broke), not for progress chatter: the client applies an importance floor, a rate limit, quiet hours and dedupe, so noise is dropped rather than queued. The message is always delivered to the key owner and nobody else. If no browser is open it expires quietly in about five minutes; the durable record is the notification inbox, not this. Returns the queued announcement and how long it stays deliverable.

Input parameters:

- `emote` (string): Gesture the avatar arrives with. Rigs without it fall back to a wave.
- `from` (string): Who it is from, spoken as attribution ("your build", "Stripe", the agent's name).
- `importance` (integer): 0-100, default 70. The client drops anything under its floor (50 by default) and only lets 90+ through quiet hours. Use 90+ for something broken or blocking, 60-80 for a finished task, under 50 for s…
- `key` (string): Dedupe key. Two announcements sharing a key are said once, so a retrying job can call this every attempt without repeating itself.
- `text` (string, required): The line to say out loud. One sentence. Write it as speech, not as a log line.
- `tone` (string): Colours the bubble and picks a default gesture. Default alert.
- `url` (string): Where clicking through goes: an absolute https URL or a three.ws path.

### `announce_result` (~229 tokens)

Report a finished task in person

Tell the human how a task went, in person, with the urgency chosen for you from the outcome: `failed` and `needs_input` are loud enough to cut through quiet hours, `succeeded` is not. Pass the task name, the outcome, and optionally how long it took and where to look. This is the right tool at the end of anything long enough that the person walked away from it. Returns the queued announcement.

Input parameters:

- `detail` (string): One short clause of context ("3 tests failing", "waiting on your approval").
- `key` (string): Dedupe key, so a retry loop reporting the same result says it once.
- `outcome` (string, required): How it ended. Drives importance, tone and gesture.
- `seconds` (number): How long it took, in seconds. Rendered as "in 4m" when given.
- `task` (string, required): What was being done, in human words ("the nightly backfill", "your test suite").
- `url` (string): Where to look: the run, the diff, the dashboard.

### `check_rail` (~105 tokens)

Check the delivery rail

Verify that the configured key works and the delivery rail accepts announcements, without interrupting anybody: it queues a line at importance 0, which every client drops under its own floor. Use this once when wiring an agent up, or when announce fails and you need to tell a bad key apart from an unreachable rail. Returns the base URL and whether the credential was accepted.

Input parameters:

- `note` (string): Optional label recorded on the probe, to tell two agents apart in a log.

## Diagnostics

Captured diagnostic sections: Provenance, Vulnerabilities, Dependencies. The full working is on the page: https://verifymcp.io/servers/nirholas-herald-mcp/three-ws-herald-mcp#diagnostics

## Score history

- 2026-10-24: 75
- 2026-10-23: 80
- 2026-10-22: 79
- 2026-10-21: 79
- 2026-10-20: 78
- 2026-10-19: 78
- 2026-10-18: 77
- 2026-10-17: 77
- 2026-10-16: 76
- 2026-10-15: 76
- 2026-10-14: 75
- 2026-10-13: 75
- 2026-10-12: 69
- 2026-10-11: 69
- 2026-10-04: 69
- 2026-10-03: 69
- 2026-10-02: 69
- 2026-10-01: 69
- 2026-09-30: 54

## Common questions

### What is the three.ws Herald MCP server?

three.ws Herald is an MCP server listed in the public MCP registry as io.github.nirholas/herald-mcp. Tell your human in person: a 3D character walks onto their open browser tab and says it out loud. This page covers its npm package (@three-ws/herald-mcp).

### Is the three.ws Herald MCP server safe to use?

three.ws Herald scores 75 out of 100 on VerifyMCP. We recorded 1 known advisory against it as of 24 October 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the three.ws Herald MCP server expose?

three.ws Herald exposes 3 tools: announce, announce_result, check_rail. Their descriptions and schemas cost roughly 705 tokens of context every time the server is loaded.

### Is the three.ws Herald MCP server still maintained?

three.ws Herald is still listed as active in the MCP registry. We last reached this channel on 24 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the three.ws Herald MCP server under?

three.ws Herald declares the Apache-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- npm package: https://www.npmjs.com/package/@three-ws/herald-mcp
- Socket report: https://socket.dev/npm/package/@three-ws/herald-mcp
- Repository: https://github.com/nirholas/three.ws
- Website: https://three.ws/herald
- Changelog RSS feed: https://verifymcp.io/servers/nirholas-herald-mcp/three-ws-herald-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/nirholas-herald-mcp/three-ws-herald-mcp.json
- HTML version of this page: https://verifymcp.io/servers/nirholas-herald-mcp/three-ws-herald-mcp
