Synthetic Audience
FreeNot checkedAn MCP server for testing whether a draft asset is likely to resonate with a target audience.
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_MODELto 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": usesSYNTH_AUDIENCE_PROVIDERif set; otherwise OpenAI, Anthropic, then Fireworks.backend="tuned": uses Fireworks and defaults toaccounts/ashraymalhotra1-m6wa/models/odysim-verifier-gemma4-rft-20260621.backend="openai",backend="anthropic", orbackend="fireworks": force one provider.
Optional model overrides:
SYNTH_AUDIENCE_TUNED_MODEL: model forbackend="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.
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-mcpFAQ
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
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectCompare 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
