
Murmur
io.github.Ratz00007由 GitHub 帳號 Ratz00007 發布v1.0.0更新於 Nov 1, 2026
Deterministic crowd simulation: personas, feeds and analyst reports for pricing and launch.
概覽
本機 MCP 伺服器,執行確定性的群體模擬,讓虛擬人物針對定價、發布或政策變更進行討論,並產出依優先順序排列的反對意見報告。
- 可以做什麼
- 建立與設定模擬世界、列出世界並調整輪次與批次參數
- 把定價頁、備忘錄或簡報等素材匯入為種子並加以檢視
- 建構實體本體與具型別的關係圖,並可查詢或匯出為 Mermaid
- 產生並檢視帶有特質、立場與平台分布的虛擬人物
- 執行多輪模擬、在輪次之間注入事件,並查看摘要與時間軸
- 產出 Markdown 或 HTML 版本化報告,並訪談單一虛擬人物或整場模擬
- 適用情境
- 適合在正式發布前預演社群對定價調整、產品發布、政策或危機事件的潛在反對意見,並取得結構化、可引用的論點清單與驗證計畫。它是預演工具,不是經過驗證的預測。
- 執行需求
- 以 npm 套件形式透過 node 在本機以 stdio 執行,需要 Node 20 以上版本與 SQLite 原生模組。需要宿主編碼代理,由其自身模型完成撰寫。不需 API 金鑰或環境變數;另有選用的 MURMUR_WORKSPACE 與 MURMUR_LOG 設定。該 npm 套件名稱尚未發布,目前須從原始碼安裝。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Murmur,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
Murmur
Objection-finding for pricing and launch changes. Rehearse the arguments before you ship — powered by the coding subscription you already pay for.
Murmur is an MCP server that rehearses community reaction to a pricing, launch, policy, or crisis decision: seed it with your material (a pricing page, a policy memo, an incident brief), and a population of simulated personas debates it across Twitter-style and Reddit-style platforms. You get a ranked objection dossier — each objection at its strongest, tied to the simulated post behind it, with a counter-case and a test plan for real humans — plus the ability to interview any simulated persona about why they wrote what they wrote. It is a structured set of arguments, not a validated forecast; simulated personas are invented critics, not your customers.
Zero API keys. Zero extra bills. The engine is deterministic and LLM-free; every generation is performed by your coding agent's LLM (Claude, Codex, Gemini, Antigravity, OpenCode, Hermes…) through the connection you already have. The server ships no network code — enforced by the build gate (static scans of bundle + engine source, plus an obfuscation scan) and a runtime probe that executes the engine adapters with fetch stubbed to throw and fails if fetch is ever called.
Why
Tools like MiroFish solve social simulation with a server-side LLM: you pay a monthly plan, supply an API key, and your data goes through their cloud. Murmur flips the architecture — Host-Powered Inference:
The engine (world state, ontology graph, persona activation, feed ranking, retweet amplification, vote gravity, virality, sentiment, stance migration, escalation detection, statistics) is pure, deterministic computation. The intelligence — writing posts in character, drafting the report narrative, answering interviews — is borrowed from the host agent in batched plan/submit exchanges, so one tool call amortizes many generations.
Install
One command per client (Node ≥ 20):
The
npx -y murmur-mcpcommands above assume the package is on the registry. Themurmur-mcpnpm name is not claimed yet, sonpxfails today — until the first publish, use the from-source path in the next note.
Every snippet is also printed by npx murmur-mcp doctor (which also checks Node, the SQLite native module and your workspace) and npx murmur-mcp init --client <id>. init --client <id> --write only writes a config file for cursor, vscode, opencode and windsurf; for every other client (Claude Code included) it prints the snippet and asks you to merge it into client.configPath yourself.
Installing from source (before the first
npm publish):npm installin the monorepo, then runnode packages/server/dist/index.jsdirectly (ornpm linkinsidepackages/serverfor a globalmurmur-mcpcommand). Release artifacts ship via npm with provenance once the repo is live (npm i -g murmur-mcp).
Quickstart
- Install for your client (above).
- Put some material in your repo — a pricing page export, a FAQ, a changelog, or run
npx murmur-mcp init --template launchfor a fill-in brief. - In your coding agent:
That prompt is a playbook: your agent drives all 12 tools in order, shows you digests for approval, writes the report, and every receipt tells it the next step.
What a run actually costs. Zero keys, but not zero time: a default 8-round world puts the order of hundreds of generations in front of your host model, so wall time is set by the model and the batch size, not by Murmur. Nothing has been published end-to-end with a real LLM yet — the 651-test suite (golden byte-identical replays plus the cleanroom release gate) runs against mock generations, and
npm run demoexercises the full pipeline headless. Treat your first real run as a rehearsal, and start with fewer rounds.
Mid-run experimentation:
What you get
.murmur/murmur.db— the whole world in SQLite (10 tables: worlds, seeds, entities, relations, personas, memories, posts, events, reports, generations). Portable by copying the directory; resumable at any stage boundary after a crash..murmur/{world}/graph.mmd— the ontology graph as Mermaid (typed relations: alliance / opposition / influence / ownership, with tension scores)..murmur/reports/{world}/report-N.md— versioned scenario reports: Mermaidxychartsentiment curves, stance-migration bars, escalation chains, persona leaderboards, deterministic statistics appendix and a post index. Reports regenerate, never mutate — diff two scenarios line by line..murmur/reports/{world}/report-N.html— the same report as a self-contained dashboard (report_exportwithformat: "md" | "html" | "both"): inline CSS + SVG charts (sentiment lines, faction donut, platform-divergence bars, trajectory projection), KPI cards, quote banks, risk register — zero JavaScript, zero external requests, safe to commit or share. It shares one engine computation with the.md, so the two can never disagree on a number..murmur/{world}/interviews.jsonl+qa.jsonl— logged deep-interaction dialogues..murmur/{world}/audit.jsonl— the audit trail of every plan/submit exchange.
How it works
The five-stage pipeline (full parity with the category, reimagined for agents):
- Seeds — attach files (PDF/MD/TXT/CSV/JSON), URLs (your agent fetches, the engine never does), or pasted text. Byte-hashed dedupe.
- Ontology —
ontology_plancomposes an extraction task (seed digests + strict JSON schema); your agent's LLM extracts entities, motives and factual anchors;ontology_submitvalidates item-by-item with surgical retry. - Graph — deterministic derivation of typed relations and tensions; reddit-style communities; stance-affinity follow graph; Mermaid export.
- Population — archetype distribution derived from the ontology; Big-Five-lite traits; per-entity stances; platform mix; audit and edit individuals before the run.
- Simulation — each round the engine activates a weighted persona subset and composes personalized digests (persona card ≤ 120 tokens, ranked feed, working memory, collective view); your LLM writes their posts/replies/votes; the engine ingests, runs platform mechanics (feed ranking, retweet amplification, vote gravity, virality thresholds), organic engagement, three-tier memory with compaction, stance migration and sentiment tracking. Inject god's-eye events between rounds and watch the trajectory move.
- Report + interaction — deterministic stats + evidence pack in, narrative out, versioned report to disk; then interview any persona (grounded in its own memory and posts — it declines knowledge it never saw) or interrogate the whole run with cited answers.
Context-budget engineering is an engine contract, not a hope: persona cards are capped, feeds are ranked-and-truncated per persona, memory compacts between rounds, no tool response exceeds 12,000 tokens (oversize payloads spill to disk with fetch-by-id receipts), and batch sizes adapt via world_config.
Determinism: content ids are count-based, all randomness flows from the world seed through named streams, and phases 2–5 of every round are pure functions of stored state. Golden-run tests replay recorded sessions and assert byte-identical outcomes.
Tool catalog (12 tools)
Every pre-consolidation name (the old 29-tool surface) still has a row in MIGRATED_TOOLS (packages/server/src/tools/index.ts), so receipts and error messages teach the new spelling of any old name you type.
Prompts (one-command playbooks): murmur-predict, murmur-simulate, murmur-interview, murmur-resume. Resources: murmur://worlds, murmur://world/{id}/state, murmur://world/{id}/report/{rid}.
Configuration
Environment: MURMUR_WORKSPACE (override the workspace root; default: git repo root), MURMUR_LOG (stderr log level; stdout is protocol-only).
Guarantees (tested, not promised)
- No API key, ever — no key or token field exists in any config surface; the cleanroom gate statically fails the release on egress APIs, URLs, or key patterns in the shipped bundle, and audits the dependency closure for network libraries.
- Client neutrality — the server contains zero client-specific branches; per-client differences live in
packages/adaptersas snippets and templates. - Resumability — every tool is safe to re-issue after a crash; sessions resume to the exact stage boundary.
- Performance — engine-side wall time is 1.48s at the 24×8 defaults and 2.98s at the 48×8 flagship scale (report render included, host-LLM latency excluded;
node tools/scale-benchmark.mjs <personas> <rounds>to reproduce); a 24-persona, 8-round world completes in a single agent session.
Repository layout
Develop: npm install && npm run build && npm test (651 tests) · npm run test:e2e · npm run cleanroom · npm run demo (headless full pipeline, no LLM needed).
License & provenance
Apache-2.0. Murmur is a clean-room implementation: no code, prompts or configuration from any AGPL-licensed project were copied (see CONTRIBUTING.md for the policy that binds every contribution). "MiroFish" is a third-party trademark used only in factual comparisons.
來源:murmur/README.md,提交 a0f5914
工具
0版本歷史
1- v1.0.0最新Nov 1, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分