Blame Today

today.blame由 blame.today 發布官方發布者v3.0.0更新於 Nov 2, 2026

Blame things on blame.today, the anonymous 'who do you blame today' board. Nostr, no account.

已驗證Streamable HTTP可網頁執行開發者工具溝通與協作

概覽

AI 產生的概覽

回傳在 blame.today 匿名「今天你怪誰」看板上發布目標與投票的自助配方,由助理自行執行。

可以做什麼
  • 取得 blame.today 配方:一段在用戶端簽章並發布 Nostr 事件的簡短程式片段,以及所用的 relay 清單。
  • 取得分數與 COUNT 統計配方,以及看板的「家規」。
  • 伺服器本身不執行任何動作:助理須自行執行該片段,伺服器不會代為發布或讀取。
適用情境
適合使用者想請助理向 blame.today 看板發布匿名指責目標或投票,或想了解其計數與 relay 機制,而不想安裝完整用戶端的情況。
執行需求
位於 blame.today 的遠端 streamable HTTP 端點;未宣告需要帳號、API 金鑰、環境變數或標頭。助理需能執行回傳的用戶端程式片段,並能透過網路連上 Nostr relay。
安裝前請注意
配方產生的程式片段會簽章並發布公開的 Nostr 事件,發布內容在開放看板上可見且無法撤回。該看板是開放的資訊流,僅以內容過濾把關,其計數為 relay 估算值,並非經過驗證的投票統計。

安裝

在 SourceWeft 中

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

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/today.blame%2Fmcp/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "blame-today": {
      "type": "http",
      "url": "https://blame.today/mcp"
    }
  }
}

README

blame-web

The blame.today web client — the "raw firehose." A client-side Svelte + Vite app that talks straight to nostr relays: the vote path has no backend, no auth, no rate limit (events go direct to relays). A thin Cloudflare Worker fronts the static site to force https, redirect www -> apex, and serve the MCP pointer at /mcp. This is the open, canonical realization of blame; the iOS app lives in the sibling blame-ios repo.

Split out of blame-today/blame-mobile (the old iOS app + worker repo) so each surface is honestly its own thing — they share a brand and the pureblameapp nostr tag, but no code, build, or deploy.

check it out - blame.today

what it is

  • a blame target is a nostr kind 1 event tagged pureblameapp; a vote is a kind 7 reaction tagged e:<targetId> + pureblameapp. throwaway key per event.
  • the leaderboard is built from relay COUNTs (all-time + a 24h "hot" window), not by fetching events.
  • the News tab mines today's headlines client-side (compromise) into clickable suggestions.
  • content filter (profanity / PII / gibberish) is the only gate — it's an open firehose.

dev

Votes are signed once per click and retried with the same event id. A new target must be acknowledged before its opening vote is sent. After five failed attempts the board offers a retry with that same signed event. Queued and failed deliveries live only in the current tab; keep it open until pending votes finish.

Counts are relay estimates: the second-highest fresh report from distinct configured relays, separately for each target and window. Fewer than two reports means unavailable, shown as an ellipsis rather than zero. A live event or acknowledgement requests a new snapshot; it never adds to the snapshot, so overlapping delivery cannot count twice. A relay can correct its estimate downward. Samples older than 90 seconds are removed on a new reply or the next 45-second resync, including during silence. This is not an exact union across relays. NIP-45 filters the application tag and event kind but cannot filter reaction content. Incoming board events are separately checked for shape, application tag, canonical id and signature.

COUNT responses are unsigned relay claims. One dishonest relay cannot raise the estimate above every honest reported count; it can still influence the result within that range. Two dishonest relays can corroborate a false count. Partial coverage and unlimited signed voting remain part of this open board, so these estimates are not a verified vote census. One relay can accept a vote while its count awaits another response. Mine preserves the submitted topic. Old cached totals are discarded on reload; saved topics and ownership remain.

Each tab retains at most 1,000 remote targets plus its owned targets. New targets replace the oldest unowned remote target, so a full cached board still receives live topics. Incoming frames are limited to 128 KiB, with at most 1,024 frames / 1 MiB waiting for verification per relay. A relay that overflows that queue is disconnected and retried. Unanswered COUNT requests are capped at 12,000 across the pool and superseded requests are removed. These are client resource limits; they do not change which events relays accept.

npm installnpm run dev      # vite dev servernpm test         # vitest unit testsnpm run test:e2e # playwrightnpm run build    # -> dist/

deploy

Push to main → .github/workflows/deploy-web.yml builds dist/ and runs wrangler deploy, publishing to the Cloudflare Worker (blame-today, Workers + Static Assets) that serves blame.today. The worker (worker/index.js) serves dist/ as static assets, force-upgrades http → https, redirects www → apex, and serves the MCP inline at /mcp (worker/mcp.js). Needs CLOUDFLARE_API_TOKEN (Workers:Edit) + CLOUDFLARE_ACCOUNT_ID repo secrets. The /about prose lives in public/about/ and Vite copies it into dist/about/.

Migrated off GitHub Pages 2026-06-16 — the zone is on Cloudflare now and blame.today is a custom domain on the worker. A push touching only scripts/** or infra/** skips the rebuild.

infra (the Cloudflare config around the worker)

The CF "clicky layer" — DNS records, zone settings (HSTS, Always Use HTTPS), the www → apex redirect rule, and email routing (*@blame.today → gmail) — is declarative IaC in infra/ (OpenTofu). wrangler owns the worker code + the apex custom domain; OpenTofu owns everything else, each resource with exactly one owner. See infra/README.md.

來源:README.md,提交 7a104a9

工具

1

get_blame_recipe

Get the self-serve blame recipe

Get the self-serve recipe for blame.today, the anonymous 'who do you blame today' board. Returns a short client-side snippet (sign + publish a Nostr event) plus the relays, the score/COUNT recipe, and the house rule. You run it yourself — this server does not blame or read on your behalf.

無需輸入參數。

版本歷史

1
  1. v3.0.0最新Sep 16, 2026

評分

已滿足適用檢查項的 90%

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

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。