Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Synthetic Audience

FreeNot checked

An MCP server for testing whether a draft asset is likely to resonate with a target audience.

GitHubEmbed

About

An MCP server for testing whether a draft asset is likely to resonate with a target audience.

README

An MCP server for testing whether a draft asset is likely to resonate with a target audience.

Hackathon demo framing:

  • Input: a blog post, landing page copy, email, pitch, or product announcement.
  • Audience: a short description of who should care.
  • Output: predicted resonance, likely audience reactions, objections, and edit suggestions.
  • Backend today: OpenAI, Anthropic, or Fireworks.
  • Backend after RFT: swap SYNTH_AUDIENCE_MODEL to the trained Fireworks model.

Why The Hypothesis Is Reasonable

The current RFT artifact trains on verifier-style synthetic audience tasks:

Evidence What It Supports What It Does Not Yet Prove
AlignX rows predict which response a profiled user prefers Audience preference judgement General writing quality
BehaviorChain rows predict a persona's next behavior Persona-conditioned reaction prediction Full market simulation
Fireworks RFT reward is binary and measurable A before/after model comparison can be shown That every asset critique is automatically better

So the precise claim for the demo should be:

Fine-tuning on audience/persona verifier tasks can improve structured synthetic-audience judgement signals, which we expose as an MCP tool for draft feedback and iteration.

Avoid overclaiming that it is universally better than GPT/Claude at writing advice. The report should show where it is more specific, preference-aware, and measurable.

Run Locally

Install the small runtime dependency set if the workspace venv does not already have it:

cd synthetic-audience-mcp
../.venv/bin/python -m pip install -r requirements.txt
cd synthetic-audience-mcp
../.venv/bin/python server.py

For LLM-backed feedback, set one provider:

export OPENAI_API_KEY=...
export SYNTH_AUDIENCE_MODEL=gpt-4o-mini

or:

export ANTHROPIC_API_KEY=...
export SYNTH_AUDIENCE_MODEL=claude-3-5-haiku-latest

or Fireworks:

export FIREWORKS_API_KEY=...
export SYNTH_AUDIENCE_PROVIDER=fireworks
export SYNTH_AUDIENCE_MODEL=accounts/ashraymalhotra1-m6wa/models/odysim-verifier-gemma4-rft-20260621

Codex MCP Config

Use codex_mcp_config.example.json as the copy-paste starting point.

{
  "mcpServers": {
    "synthetic-audience": {
      "command": "/absolute/path/to/your/.venv/bin/python",
      "args": [
        "/absolute/path/to/synthetic-audience-mcp/server.py"
      ],
      "env": {
        "SYNTH_AUDIENCE_PROVIDER": "auto"
      }
    }
  }
}

The same command/args/env shape can be used by any MCP client that supports stdio servers.

Remote MCP On Modal

The keyed deployed remote MCP endpoint is:

https://ashraymalhotra1--synthetic-audience-mcp-keyed-mcp-app.modal.run/mcp

The safe no-key connectivity endpoint is:

https://ashraymalhotra1--synthetic-audience-mcp-mcp-app.modal.run/mcp

Codex config shape:

[mcp_servers.synthetic-audience-remote-keyed]
enabled = true
url = "https://ashraymalhotra1--synthetic-audience-mcp-keyed-mcp-app.modal.run/mcp"

This remote endpoint is already tested for MCP connectivity, tool discovery, and OpenAI-backed feedback.

Provider keys are not stored in this repository. For local runs, set them in your shell environment. For Modal runs, attach them through a Modal secret.

Backend Modes

  • backend="auto": uses SYNTH_AUDIENCE_PROVIDER if set; otherwise OpenAI, Anthropic, then Fireworks.
  • backend="tuned": uses Fireworks and defaults to accounts/ashraymalhotra1-m6wa/models/odysim-verifier-gemma4-rft-20260621.
  • backend="openai", backend="anthropic", or backend="fireworks": force one provider.

Optional model overrides:

  • SYNTH_AUDIENCE_TUNED_MODEL: model for backend="tuned".
  • SYNTH_AUDIENCE_MODEL: general override when you intentionally pin one provider/model pair.

Tools

  • synthetic_audience_feedback: predict resonance and give actionable feedback.

Demo Assets

  • demo_script.md: short hackathon talk track.
  • samples/blog_post_resonance_demo.md: paste-ready sample asset and audience.

from github.com/ashray/hud-rsi-synthetic-audience-mcp

Installing Synthetic Audience

This server has no published package — it is built from source. Open the repository and follow its README.

▸ github.com/ashray/hud-rsi-synthetic-audience-mcp

FAQ

Is Synthetic Audience MCP free?

Yes, Synthetic Audience MCP is free — one-click install via Unyly at no cost.

Does Synthetic Audience need an API key?

No, Synthetic Audience runs without API keys or environment variables.

Is Synthetic Audience hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install Synthetic Audience in Claude Desktop, Claude Code or Cursor?

Open Synthetic Audience on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Synthetic Audience with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All development MCPs