Murmur
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
Murmur
Before you ship a pricing or launch change, find the objections that would kill it — ranked by blast radius, each tied to the simulated post behind it, inside the coding agent you already use, with no extra API keys.
Murmur produces astructured set of arguments, not a prediction. Simulated personas are invented critics, not your customers; nothing here is evidence of what real users will do. The output is a list of objections to test with real humans — including which questions discriminate and what answers should stop the launch. The included demo is mock-driven; it shows the workflow, not a live-model result.
This positioning is deliberate. Peer-reviewed work in 2026 measured LLM-simulated users against real people and found them unreliable as proxies: Seshadri et al., "Lost in Simulation" (ACL 2026, calibration error 15–20 points) and Chen et al., "When Synthetic Users Fail" (no LLM beats the best non-LLM baseline on real survey data). Murmur does not claim what those papers rule out. See METHODOLOGY.md for what a run is and is not, and bench/ for the pre-registered attempt to measure recall against real reactions.
What you get
Surface the killing objections to a pricing, launch, policy, or crisis decision — each stated at its strongest, with the evidence and the decision it threatens.
Argue the other side honestly: every dossier carries the counter-case, so an adversarial tool cannot talk you out of a good idea silently.
Stay in your coding workflow with Claude Code, Codex, Gemini CLI, Cursor, Windsurf, and other MCP clients.
Add no API keys or Murmur network calls; model use stays inside the host agent you already use.
Trace every claim to the simulated post behind it, and every number to the run that produced it — the engine rejects drafts that invent figures.
Replay the same seed, inputs, and host model to reproduce the same run.
See the shipped dashboard in 3 clicks
Get the repository. Clone it or download the repository archive.
Reveal the hidden folder.
.murmuris a dot-folder, so macOS Finder hides it by default: choose Go → Go to Folder (Cmd+Shift+G), pastemurmur-demo/.murmur/reports/pricing-reaction, and press Return. From the repository root,open murmur-demo/.murmur/reports/pricing-reaction/report-1.htmlalso works on macOS; in Windows PowerShell usestart .\murmur-demo\.murmur\reports\pricing-reaction\report-1.html; on Linux usexdg-open murmur-demo/.murmur/reports/pricing-reaction/report-1.html.Open
report-1.html. Double-click it to open the self-contained dashboard in your browser; no build or local server is required.
The 61 KB report covers Acme Cloud's 30% price increase with 7 supporters versus 5 opponents, five rounds of reaction, platform divergence, persona spotlights, risks with the simulated posts behind them, recommendations, limitations, and a post index. It makes no external requests and works offline.
Viewing on GitHub: GitHub displays this file as source rather than rendering it. Use Raw → Download raw file, then open the downloaded report-1.html locally.
Related MCP server: crowd-test-mcp
① Open the demo dashboard (10 seconds)
Double-click
murmur-demo/.murmur/reports/pricing-reaction/report-1.html.
It is fully self-contained — no scripts, no external requests, works offline —
and shows the simulated "Acme Cloud pricing change" projection: executive dashboard,
multi-entity sentiment chart, faction donut + cards, platform divergence,
persona spotlights, risk register with evidence, recommendations, and five
appendices. The Markdown twin (report-1.md) is the same data in diffable form.
Then skim murmur-demo/DEMO-TRANSCRIPT.md to see the 34 tool calls that
produced it.
② Connect it to your coding agent
One-time setup — pick either option:
# Option A — install from source (dist is pre-built inside the bundle)
cd murmur && npm install
# Option B — install from npm (the registry package — the primary route)
npm install -g murmur-mcp
murmur-mcp doctor # environment check
npx murmur-mcp doctor # …or run one-off, no global installThen register the server with your client — e.g. Claude Code:
# after Option B (global binary on PATH)
claude mcp add murmur -- murmur-mcp serve
# …or via npx, no global install
claude mcp add murmur -- npx murmur-mcp serve
# after Option A (direct path — no global install needed)
claude mcp add murmur -- node /<path-to>/murmur-complete-v1.0.0/murmur/packages/server/dist/index.js serveAlso handy:
murmur-mcp templates # browse the 5 scenario packs
murmur-mcp init --client claude-code --write # writes the client config for youThe server speaks plain MCP over stdio. murmur/README.md has the full
10-client install matrix (Codex, Gemini CLI, Antigravity, OpenCode, Hermes,
Cursor, Windsurf, Cline/Continue, VS Code) with copy-paste snippets.
Once connected, ask your agent things like: "Simulate how r/devops reacts to our new pricing page" — the agent drives the 11 Murmur tools; the LLM you already pay for does the persona voices.
③ Develop, test, replay
cd murmur
npm install # if you skipped Option A (dev toolchain: typescript, vitest, sqlite)
npm test # 651 unit + golden tests (byte-identical replay, citation integrity)
npm run test:e2e # 190 end-to-end: 188 market-twin contracts + integration + cleanroom, real SDK client ↔ server over stdio
npm run cleanroom # zero-egress gate: no network APIs, no URLs, no key surfaces
npm run build # rebuild dist from source (all 5 packages)Replay the demo (rewrites murmur-demo/.murmur/ deterministically — same seed,
same bytes, every time; needs the npm install above first):
node tools/demo-live.mjsThe scripts in tools/ resolve murmur/ and murmur-demo/ relative to their
own location, so the bundle can sit anywhere on disk. scale-benchmark.mjs
measures token budget and wall time at any scale:
node tools/scale-benchmark.mjs 48 8.
Publishing to npm (when you're ready)
repository/homepage/bugsinmurmur/packages/server/package.jsonalready point atgithub.com/Ratz00007/murmur-mcp— the repo exists and is public; if you rename it, update those three fields plus the badge URLs at the top of this README.Push the repo, add the
NPM_TOKENsecret, and the release workflow (.github/workflows/release.yml) runs every gate and publishes with provenance — or simplynpm publishfrommurmur/packages/server/.
The npm name murmur-mcp is published (murmur-mcp@1.0.0, Apache-2.0, npm registry).
The guarantees (why no API key)
Host-Powered Inference — the server never calls an LLM and ships no network code. It prepares batched generation tasks; your coding agent's own LLM completes them as part of the session you already pay for.
Deterministic — seeded RNG everywhere (mulberry32 + FNV streams, test-enforced). Same seed + same inputs = same world and the same report, byte for byte, enforced by golden replay tests.
Cleanroom-verified — the gate asserts the published bundle contains no network APIs, no URLs, and no key/token surfaces. The HTML dashboard inherits this promise: open it offline and check for yourself.
Token cost
Murmur ships zero API keys — the server itself never calls an LLM. What a run consumes is host-LLM generations completed inside the coding session you already pay for:
world + persona drafting tasks (ontology and persona-voice submissions),
per-round action sets — at the defaults of 24 personas × 8 rounds that is on the order of 192 persona action-set generations per run,
report drafting tasks (plan → draft → risks → recommendations → confidence),
i.e. order of hundreds of host-LLM generations per run at defaults.
Estimation method (the same one the e2e tests use): tokens ≈ chars / 4.
Reproduce with node tools/scale-benchmark.mjs <personas> <rounds>.
Measured engine-side budget per full run (deterministic mock brain, so these are content-independent: they measure the task payloads the host must read and the shape of what it must write — not how verbose a real model is):
scale | generation items | input tasks | output content | round trip | engine wall time |
defaults 24 × 8 | 80 | ≈ 57.8k | ≈ 6.5k | ≈ 64.3k | 1.48s |
flagship 48 × 8 | 160 | ≈ 85.4k | ≈ 10.9k | ≈ 96.3k | 2.98s |
Input splits roughly: ontology ≈0.8k, personas ≈1.0k, per-round sim batches ≈7.9k–9.8k each, report task ≈5.0k. Output splits ≈ generations (9.3k at flagship) + report draft (≈1.6k). Report markdown ≈26k chars either way.
Measured from the bundled mock demo (murmur-demo/.murmur/ — mock brain,
12 personas · 5 rounds, a smaller run than the defaults above):
Artifact | Measured | ≈ tokens (chars/4) |
Report output | 27,936 bytes (27,289 chars) | ≈ 6.8k output |
Round-1 generation batch prompt (reported in | ≈ 932 tokens | as reported |
Largest single host response, budget 12,000 (reported in | 5,015 tokens | as reported |
| 28 / 1 / 1 records (3,265 / 433 / 339 B) | ≈ 0.8k / 0.1k / 0.1k |
Real-LLM cost varies by model, provider pricing and prompt caching. The tables
above are char-based estimates from deterministic runs — treat them as a
ceiling on task payload size, not a bill. A run also costs your session's
wall-clock time (the engine is 3s; the LLM round-trips are the slow part).
Pending: median billed tokens/report from the first real-LLM gallery run —
publish it in gallery/ and replace this line with the measured figure.
Where to read more
METHODOLOGY.md— what a run is and is not, the metrics that restate each other, and how to argue with a reportBENCHMARK.md— the pre-registered attempt to measure recall against real reactions, and what it foundGOAL.md— the standing objective, success criteria, and the full build log with verification evidencegallery/— published runs (real ones and clearly labeled mock measurements)murmur-demo/FLAGSHIP-DEMO.md— the real-LLM protocol and its status (blocked on model access, recorded honestly)murmur/GOOD-FIRST-ISSUES.md— ten scoped starter tasks for contributorsdocs/archive/— superseded process docs (handoffs, worklogs, roadmaps, release checklists), kept for history
Topic | File |
Project goal and build log |
|
Original PRD + technical plan (24 pp) |
|
Install matrix, guarantees, layout |
|
Release notes |
|
Clean-room + zero-key policies |
|
Security / injection hardening |
|
License |
|
This server cannot be deployed
Maintenance
Related MCP Connectors
Crash-test your AI agent on real professional decisions, graded against what actually happened.
Synthetic audiences built from real people. Ask anyone anything before you decide.
Test the idea before you build it. Rapidly works inside your AI agent.
Test ideas, messages and ads with Human Digital Twins built from real people, in your AI assistant.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceConcept-test your product with synthetic consumers, straight from Claude Code. It turns free-text reactions from roleplayed personas into purchase-intent reports using Semantic Similarity Rating.2MIT
- AlicenseNot gradedqualityCmaintenance▎ Enables AI assistants to unleash a crowd of role-played virtual users — impatient shoppers, seniors, keyboard-only users, privacy hawks, chaos monkeys — on a website. Each persona browses in a real Chromium browser, files UX/QA findings in character, and the site receives a damage report with an S–F survival grade. Accusations can be cross-examined by up to three independent verification engines1MIT
- AlicenseAqualityCmaintenanceEnables AI assistants to unleash a crowd of role-played virtual users — impatient shoppers, seniors, keyboard-only users, privacy hawks, chaos monkeys — on a website. Each persona browses in a real Chromium browser, files UX/QA findings in character, and the site receives a damage report with an S–F survival grade. Accusations can be cross-examined by up to three independent verification engines4MIT

Tently MCPofficial
AlicenseNot gradedqualityAmaintenanceEnables coding agents such as Claude Code and Cursor to check a team's learned decisions from pull requests, reviews, and docs before writing code, showing whether breaking them is blocking or advisory. It also provides locally computed symbol impact/blast-radius analysis so source code never leaves the machine.79 npm2MIT