three.ws Herald

io.github.nirholas由 GitHub 帳號 nirholas 發布v0.1.0更新於 Oct 24, 2026

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

已驗證STDIO僅桌面效率與工作流溝通與協作

概覽

AI 產生的概覽

一個本機 MCP 伺服器,讓代理透過使用者開啟的瀏覽器分頁中的 3D 角色播報一句簡短的語音通知。

可以做什麼
送出一行通知,可帶重要性、語氣、手勢與選用連結,由開啟的瀏覽器分頁中的 3D 虛擬角色現身並朗讀,附可點擊連結。回報已完成的任務及其結果與耗時,急迫程度依結果而定,失敗可穿透勿擾時段,成功則不會。以重要性 0 排入測試,在不打擾任何人的情況下驗證 API 金鑰與投遞通道是否可用。
適用情境
適用於代理完成長時間任務、任務失敗、需要決策、發生故障或資金異動時,需要當面告知使用者而不是寫進日誌的情境。不適合進度更新或使用者之後可自行查看的內容,這類資訊應交給通知收件匣。
執行需求
透過 npx 在本機執行,需要 Node.js。需要具備 herald:announce 權限範圍的 three.ws API 金鑰,或同一帳號的 OAuth 存取權杖,透過 THREE_WS_API_KEY 提供。選用的 THREE_WS_BASE 可覆寫 API 基礎網址,THREE_WS_TIMEOUT_MS 設定單次請求逾時。使用者需開啟瀏覽器分頁才能接收通知。
安裝前請注意
API 金鑰是機密資訊,透過環境變數傳入;若外洩應在 three.ws 控制台撤銷。通知一律送到金鑰擁有者自己的線上工作階段,沒有收件者參數,因此外洩的金鑰最多只能打擾金鑰擁有者本人。通知會傳送到 three.ws 服務,若沒有分頁在監聽,約五分鐘後過期。接收端會套用重要性下限、頻率限制、去重與勿擾時段,低優先內容會被丟棄。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 three.ws Herald,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

@three-ws/herald-mcp

Let your agent tell you something in person.

An MCP server with one idea behind it: when an agent finishes something that mattered, or gets stuck, it should not add a line to a log you will never scroll back to. It should walk up to you and say so.

Wire this in, and it does. Your own 3D companion appears in the corner of whatever browser tab you have open, gestures, and says the line out loud, with a link to click through.

you: run the migration, then the backfill, and tell me when it's doneagent: [runs for 22 minutes]       [calls announce_result: task "the backfill", outcome succeeded, 1320s]your browser: your avatar walks on: "the backfill finished in 22m"

Tools

ToolWhat it does
announceSay one line, with importance (0-100), tone, a gesture, and an optional link.
announce_resultReport a finished task. The urgency is chosen from the outcome, so a failure cuts through quiet hours and a success does not.
check_railProve the key and the rail work, without interrupting anybody (queues at importance 0, which every client drops).

Install

sh
npx -y @three-ws/herald-mcp

Claude Code:

sh
claude mcp add herald -e THREE_WS_API_KEY=sk_live_... -- npx -y @three-ws/herald-mcp

Claude Desktop / Cursor (mcp.json):

json
{  "mcpServers": {    "herald": {      "command": "npx",      "args": ["-y", "@three-ws/herald-mcp"],      "env": { "THREE_WS_API_KEY": "sk_live_..." }    }  }}

The key

Create one at three.ws/dashboard/developers with the herald:announce scope, and put it in THREE_WS_API_KEY.

An announcement is always delivered to the key owner's own live sessions. There is no recipient parameter: this server cannot be pointed at anybody else, so the worst a leaked key can do is annoy the person who leaked it. Revoke it in the same place.

VariableRequiredDefaultNotes
THREE_WS_API_KEYyesAPI key with herald:announce, or an OAuth access token. Aliases: THREE_WS_TOKEN, THREE_WS_BEARER.
THREE_WS_BASEnohttps://three.wsOverride for self-hosting or a preview deployment.
THREE_WS_TIMEOUT_MSno20000Per-request timeout.

When to use it (and when not to)

Announcements are scarce on purpose. The receiving client applies an importance floor, a rate limit, dedupe, quiet hours, and a freshness window, so anything that does not clear the bar is dropped rather than queued. That is the feature: an interruption only works while it is rare.

Good: a long job finished, a job failed, a decision is needed, something broke, money moved.

Bad: progress updates, "starting step 3 of 7", anything the person can read later. Those belong in the notification inbox (@three-ws/notifications-mcp).

If nothing is open to hear it, the line expires in about five minutes. The rail is a live channel, not an archive.

Example calls

jsonc
// something broke, and it should wake somebody up{ "name": "announce", "arguments": {    "text": "The payments worker has been failing for 10 minutes",    "from": "watchdog", "importance": 95, "tone": "error",    "url": "https://three.ws/dashboard", "key": "payments-worker-down" } }
// a long task finished, and it should not{ "name": "announce_result", "arguments": {    "task": "the nightly backfill", "outcome": "succeeded", "seconds": 1320 } }
// wiring check{ "name": "check_rail", "arguments": { "note": "claude-code" } }

How it reaches a browser

POST /api/herald/announce queues the line on the account's rail; the page listens over SSE and hands it to @three-ws/herald, which decides whether it clears the person's own rules and then delivers it through the 3D companion (or an accessible card when there is no GPU).

Try the whole loop, including the rules engine, at three.ws/herald.

License

Apache-2.0.

來源:packages/herald-mcp/README.md,提交 8a1fd5d

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.0最新Sep 30, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分