Murmur について
Murmurは、価格改定、ローンチ、方針、危機への反応を事前に検討するMCPサーバーです。決定論的なシミュレーションエンジンとホスト側のコーディングエージェントのLLMを使って反対意見をまとめますが、検証済みの予測ではありません。
主な機能
- 01決定論的なペルソナシミュレーション
- 02Twitter風・Reddit風のフィード
- 03反論付きの異議ランキング
- 04シミュレーション上の人物へのインタビュー
- 05Markdown・HTMLレポートの出力
- 06ローカルSQLite保存と再開
活用シーン
- 01価格改定への反対意見の把握
- 02ローンチへのコミュニティ反応の事前検討
- 03方針や危機への反応の分析
- 04シナリオ別レポートの比較
MCP 対応
MCPクライアントに12個のツール、プロンプト、リソースを提供し、ワールドの作成、資料の追加、シミュレーション、レポート出力を行います。ホスト側エージェントがplan/submitのやり取りを通じてLLM生成内容を補います。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Murmur
価格設定やローンチの変更に対する異論を発見します。リリース前に議論を予行演習しましょう。すでに利用料金を支払っているコーディングサブスクリプションを活用します。
Murmur は、価格設定、ローンチ、ポリシー、危機対応に関する決定へのコミュニティの反応を予行演習する MCP サーバーです。資料(価格ページ、ポリシーメモ、インシデント概要など)を与えると、シミュレートされたペルソナの集団が、Twitter 風および Reddit 風のプラットフォーム上で議論します。異論を強さ順にまとめた資料を得られます。各異論は、元になったシミュレート済みの投稿と結び付けられ、反論と実際の人々を対象にしたテスト計画が添えられます。また、シミュレートされた任意のペルソナに、なぜそのような内容を書いたのかをインタビューできます。これは構造化された議論の集まりであり、検証済みの予測ではありません。シミュレートされたペルソナは架空の批評家であり、顧客ではありません。
API キー不要。追加料金不要。 エンジンは決定論的で、LLM を使用しません。生成はすべて、すでに利用中の接続を通じて、あなたのコーディングエージェントの LLM(Claude、Codex、Gemini、Antigravity、OpenCode、Hermes…)が実行します。サーバーにはネットワークコードが一切含まれていません。これはビルドゲート(バンドルとエンジンソースの静的スキャン、および難読化スキャン)と、fetch を呼び出すと例外をスローするようにスタブ化した状態でエンジンアダプターを実行し、fetch が呼び出されると失敗するランタイムプローブによって強制されています。
You: /murmur-predict How will r/programming react to the new pricing page?
Your agent: world_init → seed_add → ontology(plan/submit)
→ graph(build) → personas(plan/submit)
→ [sim(next_batch/submit)] × 8 rounds
→ report(plan/submit/export)
Result: .murmur/reports/pricing-reaction/report-1.md
(Mermaid sentiment charts, cited risks, post index, diffable)
理由
MiroFish のようなツールはサーバー側の LLM でソーシャルシミュレーションを実現します。月額プランに加入し、API キーを用意すると、データは相手のクラウドを経由します。Murmur はアーキテクチャを逆転させ、ホスト駆動型推論を採用しています。
| API キーが必要な SaaS | Murmur | |
|---|---|---|
| LLM 呼び出し | 相手の API キー、あなたの請求 | あなたのコーディングエージェント、既存のサブスクリプションを利用 |
| メモリ | クラウドメモリサービス、利用枠あり | リポジトリ内の SQLite による 3 層のローカルメモリ |
| 生成物 | ウェブコンソール | .murmur/ 内の Markdown + Mermaid ファイル。任意の Git フォージで表示可能 |
| 再現性 | 近似的 | 決定論的エンジン。同じシード + 同じ投稿 ⇒ バイト単位で同一のワールド |
| 実行場所 | 相手のサーバー | あなたのマシン、stdio プロセス 1 つ、外部への通信なし |
エンジン(ワールド状態、オントロジーグラフ、ペルソナの活性化、フィードのランキング、リツイートによる拡散、投票の影響、バイラル性、感情、立場の移行、エスカレーション検出、統計)は、純粋な決定論的計算です。知能、つまり登場人物になりきった投稿の作成、レポートの説明文の作成、インタビューへの回答は、ホストエージェントから借り受け、計画と送信をまとめて行うやり取りを通じて実現します。そのため、1 回のツール呼び出しで多数の生成をまとめて処理できます。
インストール
クライアントごとに1つのコマンドを実行します(Node ≥ 20)。
| クライアント | インストール |
|---|---|
| Claude Code | claude mcp add murmur -- npx -y murmur-mcp |
| Codex CLI | codex mcp add murmur -- npx -y murmur-mcp |
| Gemini CLI | gemini mcp add murmur -- npx -y murmur-mcp |
| Cursor | cursor mcp add murmur -- npx -y murmur-mcp |
| Antigravity | エージェント設定の mcpServers JSON:{"murmur":{"command":"npx","args":["-y","murmur-mcp"]}} |
| OpenCode | opencode.json → 同じ mcpServers エントリ |
| Hermes | Hermes の MCP 設定 → 同じ mcpServers エントリ |
| Windsurf | ~/.codeium/windsurf/mcp_config.json → 同じエントリ |
| Cline / Continue | cline_mcp_settings.json / ~/.continue/config.yaml → 同じエントリ |
| VS Code Copilot | .vscode/mcp.json → 同じエントリ |
上記の
npx -y murmur-mcpコマンドは、パッケージがレジストリに登録されていることを前提としています。murmur-mcpという npm 名はまだ取得されていないため、現時点ではnpxは失敗します。最初の公開までは、次の注記にあるソースからのインストール方法を使用してください。
すべてのスニペットは npx murmur-mcp doctor(Node、SQLite ネイティブモジュール、ワークスペースも確認します)と npx murmur-mcp init --client <id> でも表示されます。init --client <id> --write が設定ファイルを書き込むのは cursor、vscode、opencode、windsurf のみです。それ以外のすべてのクライアント(Claude Code を含む)ではスニペットを表示するため、client.configPath に手動でマージしてください。
ソースからインストールする場合(最初の
npm publish前):モノレポでnpm installを実行し、その後node packages/server/dist/index.jsを直接実行します(またはpackages/server内でnpm linkを実行すると、グローバルなmurmur-mcpコマンドを使用できます)。リポジトリが公開されたら、リリース成果物は provenance 付きで npm を通じて配布されます(npm i -g murmur-mcp)。
クイックスタート
- 使用するクライアントにインストールします(上記参照)。
- リポジトリに資料を用意します。料金ページのエクスポート、FAQ、変更履歴などを入れるか、
npx murmur-mcp init --template launchを実行して記入式のブリーフを作成します。 - コーディングエージェントで:
/murmur-predict How will developers react to our new pricing? Sources: pricing-page.md, FAQ.md
このプロンプトは手順書です。エージェントは12個のツールを順番に実行し、承認用のダイジェストを表示してからレポートを書き、各レシートで次の手順を確認します。
実行にかかる実際のコスト。 キーは不要ですが、時間はかかります。デフォルトの8ラウンドのワールドでは、ホストモデルに数百回の生成を要求するため、所要時間を決めるのはMurmurではなくモデルとバッチサイズです。実際のLLMを使ってエンドツーエンドで実行した実績はまだありません。651件のテストスイート(バイト単位で完全に一致するゴールデンリプレイとクリーンルームのリリースゲートを含む)はモック生成で実行され、
npm run demoではヘッドレスでパイプライン全体を実行します。最初の実行はリハーサルとして扱い、ラウンド数を少なめにして始めてください。
実行中の試行:
/murmur-simulate How will r/programming react to the pricing change? Rounds: 4
… agent pauses, shows you the sentiment timeline …
You: inject "competitor undercuts us by 30%" and continue
/murmur-interview Ask @ada why she's so hostile about the migration guide
/murmur-resume pricing-reaction
得られるもの
.murmur/murmur.db— SQLite に保存された世界全体(10 個のテーブル:worlds、seeds、entities、relations、personas、memories、posts、events、reports、generations)。ディレクトリをコピーするだけで移動でき、クラッシュ後も各ステージの境界から再開できます。.murmur/{world}/graph.mmd— Mermaid 形式のオントロジーグラフ(緊張度スコア付きの型付き関係:同盟/対立/影響/所有)。.murmur/reports/{world}/report-N.md— バージョン管理されたシナリオレポート:Mermaid のxychartによる感情曲線、立場の移行を示す棒グラフ、エスカレーションの連鎖、ペルソナのランキング、決定論的な統計の付録、投稿インデックスを含みます。レポートは再生成されますが、変更されることはありません。2 つのシナリオを行単位で比較できます。.murmur/reports/{world}/report-N.html— 同じレポートを自己完結型のダッシュボードとして出力します(report_exportのformat: "md" | "html" | "both"):インライン CSS と SVG グラフ(感情の折れ線、派閥のドーナツグラフ、プラットフォーム間の差異を示す棒グラフ、軌跡の予測)、KPI カード、引用集、リスク一覧を含みます。JavaScript も外部リクエストも不要で、安全にコミットまたは共有できます。.md と同じエンジン計算を共有するため、数値が食い違うことはありません。.murmur/{world}/interviews.jsonl+qa.jsonl— 詳細な対話のログ。.murmur/{world}/audit.jsonl— あらゆる plan/submit のやり取りの監査証跡。
仕組み
5 段階のパイプライン(カテゴリ版と完全に同等の機能を、エージェント向けに再構成):
- Seeds — ファイル(PDF/MD/TXT/CSV/JSON)、URL(取得するのはエージェントで、エンジンは取得しません)、または貼り付けたテキストを追加します。バイトハッシュで重複を排除します。
- Ontology —
ontology_planが抽出タスク(シードのダイジェスト+厳格な JSON スキーマ)を組み立て、エージェントの LLM がエンティティ、動機、事実の根拠を抽出します。ontology_submitは項目ごとに検証し、必要な箇所だけを再試行します。 - Graph — 型付き関係と緊張度を決定論的に導出し、Reddit 形式のコミュニティ、立場の親和性に基づくフォローグラフを作成して、Mermaid 形式でエクスポートします。
- Population — オントロジーから導出したアーキタイプの分布、Big Five 簡易版の特性、エンティティごとの立場、プラットフォーム構成を設定します。実行前に、監査して個々の設定を編集できます。
- Simulation — 各ラウンドでエンジンが重み付きのペルソナサブセットをアクティブ化し、パーソナライズされたダイジェスト(120 トークン以下のペルソナカード、順位付けされたフィード、作業メモリ、集合的な見解)を組み立てます。LLM が各ペルソナの投稿/返信/投票を作成し、エンジンが取り込みます。エンジンはプラットフォームの仕組み(フィードの順位付け、リツイートによる増幅、投票の重力効果、バイラリティのしきい値)、自発的なエンゲージメント、3 層メモリの圧縮、立場の移行、感情の追跡を実行します。ラウンド間に俯瞰視点のイベントを挿入し、軌跡の変化を確認できます。
- Report + interaction — 決定論的な統計と証拠パックを入力し、ナラティブを生成して、バージョン管理されたレポートをディスクに保存します。その後、任意のペルソナにインタビューするか(そのペルソナ自身のメモリと投稿に基づき、目にしたことのない情報については回答を控えます)、引用付きの回答で実行全体を詳しく調べることができます。
コンテキスト予算のエンジニアリングは、期待に頼るのではなく、エンジンの契約として保証されます。ペルソナカードには上限があり、フィードはペルソナごとに順位付けして切り詰められ、ラウンド間にメモリが圧縮されます。ツールの応答が 12,000 トークンを超えることはありません(サイズ超過のペイロードはディスクに保存され、取得用 ID のレシートが返されます)。バッチサイズは world_config に応じて調整されます。
決定性:コンテンツ ID は件数に基づき、すべての乱数は名前付きストリームを通じてワールドシードから生成されます。また、各ラウンドのフェーズ 2~5 は保存済みの状態に基づく純粋関数です。ゴールデンランのテストでは記録済みセッションを再生し、結果がバイト単位で一致することを検証します。
ツールカタログ(12 個のツール)
| グループ | ツール |
|---|---|
| World | world_init world_list world_config |
| Seeds | seed_add seeds_review |
| Ontology | ontology(plan / submit) |
| Graph | graph(build / query / export) |
| Personas | personas(plan / submit / inspect / edit) |
| Simulation | sim(next_batch / submit / inject / summary / timeline) |
| Report | report(plan / submit / export) |
| Interaction | interact(target: "persona" / "run") |
統合前のすべての名前(旧 29 ツールの一覧)には、MIGRATED_TOOLS(packages/server/src/tools/index.ts)に引き続き行があるため、古い名前を入力すると、レシートやエラーメッセージで新しい表記が案内されます。
プロンプト(ワンコマンドのプレイブック):murmur-predict、murmur-simulate、murmur-interview、murmur-resume。リソース:murmur://worlds、murmur://world/{id}/state、murmur://world/{id}/report/{rid}。
設定
// defaults (tune via world_config / sim_configure)
{
"rounds": 8, // 1–40
"batch": { "maxPersonas": 20, "maxFeedItems": 8, "personaCardTokens": 120 },
"context": { "maxResponseTokens": 12000 },
"engagement": { "viralityThreshold": 8, "organicCapPerPost": 0.6 },
"memory": { "episodicMaxRecords": 40 }
}
環境変数:MURMUR_WORKSPACE(ワークスペースのルートを上書きします。デフォルト:git リポジトリのルート)、MURMUR_LOG(stderr のログレベル。stdout はプロトコル専用です)。
保証事項(テスト済みであり、保証の約束ではありません)
- API キーは一切不要です — どの設定項目にもキーやトークンのフィールドはありません。クリーンルームゲートは、配布バンドル内の外部送信 API、URL、キーのパターンを静的に検出してリリースを失敗させ、依存関係のクロージャーに含まれるネットワークライブラリも監査します。
- クライアント中立性 — サーバーにはクライアント固有の分岐が一切ありません。クライアントごとの差異は、スニペットとテンプレートとして
packages/adaptersに置かれています。 - 再開可能性 — すべてのツールはクラッシュ後に安全に再実行できます。セッションはステージの境界で正確に再開されます。
- パフォーマンス — エンジン側の実行時間は、デフォルトの 24×8 で 1.48 秒、フラッグシップ規模の 48×8 で 2.98 秒です(レポートのレンダリングを含み、ホスト LLM のレイテンシは除外。再現するには
node tools/scale-benchmark.mjs <personas> <rounds>を実行してください)。24 人のペルソナ、8 ラウンドのワールドは、1 回のエージェントセッションで完了します。
リポジトリの構成
packages/
engine/ deterministic simulation core (pure TS + SQLite adapter)
server/ the murmur-mcp npm package: 12 tools, resources, prompts, CLI
prompts/ playbook prompt packs
adapters/ per-client install snippets + config templates (10 clients)
templates/ scenario packs: launch, policy, crisis, finance, fiction
tests/
golden/ byte-identical replay tests + pipeline acceptance (F1–F7)
integration/ real MCP client ↔ server e2e over stdio
cleanroom/ the release gate (no-egress, no-key, deps, timing, isolation)
examples/ a ready-to-run demo scenario + paste-ready prompts
開発:npm install && npm run build && npm test(651 件のテスト) · npm run test:e2e · npm run cleanroom · npm run demo(ヘッドレスの全パイプライン。LLM は不要です)。
ライセンスと来歴
Apache-2.0。Murmur はクリーンルーム実装です。AGPL ライセンスのプロジェクトからコード、プロンプト、設定をコピーしていません(すべての貢献に適用される方針については CONTRIBUTING.md を参照してください)。「MiroFish」は第三者の商標であり、事実に基づく比較でのみ使用しています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。