livekit-agent-simulator
The livekit-agent-simulator server lets you simulate AI caller interactions against a LiveKit voice agent, record detailed behavioral logs, and analyze/compare results — without touching the agent's code.
init_project— Scaffold a.agent-sim/directory (config + smoke scenario) in your target repo and add it to.gitignore.list_scenarios— List all available scenarios (from.agent-sim/scenarios/*.jsonl) with their IDs, tags, and validity status.validate_scenario— Validate a scenario file against its schema, checking for a required Persona brief and linting the PassCriteria.export_scenario— Export a parsed scenario's full details (Persona, execution parameters, PassCriteria) as JSON.run_scenario/execute_scenario— Run a simulation for a given scenario (the latter validates first), returning arun_idfor tracking.execute_scenarios— Execute multiple scenarios at once, optionally filtered by tag (e.g.smoke) or specific IDs.get_run_status— Poll a simulation run's current state (running / done / failed), turn count, and duration.get_run_log— Read the rawevents.jsonllog for a run, with filtering by event kind (supports wildcards liketool.*), turn number, source, and time offset.get_run_report— Retrieve a full report including summary, LLM judge verdict, suspicious turns, and paths to timeline/event files.compare_runs— Diff two simulation runs side-by-side across duration, turn counts, tool errors, turn-taking percentiles, and judge verdicts.list_runs— Browse run history (newest first) from SQLite, optionally filtered by scenario ID.
All tools operate on a project_root (the repo under test) and assume the target agent is already deployed.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@livekit-agent-simulatorrun the smoke-hello scenario"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
livekit-agent-simulator
Standalone MCP server + CLI (lk-sim) that dials any LiveKit voice agent with an
AI simulated caller (Gemini Live) and records a full forensic behavior log —
transcripts, tool events, flow events, room events — all timestamped per turn.
Zero-touch: the agent under test is a black box. The simulator only needs the
agent's registered agent_name; it never reads or modifies the target project's code,
.env, or model config.
How it works
Reads
<your-repo>/.agent-sim/config.yaml(LiveKit creds +agent_name+ simulator voice).Creates a fresh room
lk-sim-<run-id>and dispatches the agent viaRoomAgentDispatch.Joins as participant
lk-sim-caller, bridges audio with a Gemini Live session (gemini-3.1-flash-live-preview) playing the scenario persona.Observes everything from inside the room:
lk.transcriptiontext streams, custom data topics (when configured), audio timing, interruptions, silences.Writes
reports/<run-id>/—events.jsonl,timeline.md,summary.json,meta.json— and mirrors toruns.sqlite.Optional LLM judge (
gemini-2.5-flash) scores the transcript + tool spans against the scenario's PassCriteria.
Related MCP server: PhoneBooth MCP Server
Quick start
# In the repo you want to test (agent worker must be running; set `agent_name` in config):
uv run --directory /path/to/livekit-agent-simulator lk-sim init
# → scaffolds .agent-sim/ (gitignored) — fill in config.yaml
uv run --directory /path/to/livekit-agent-simulator lk-sim run smoke-hello
uv run --directory /path/to/livekit-agent-simulator lk-sim report <run-id>Cursor MCP config
{
"mcpServers": {
"livekit-agent-simulator": {
"command": "uv",
"args": ["run", "--directory", "/abs/path/livekit-agent-simulator", "livekit-agent-simulator-mcp"]
}
}
}MCP tools
Tool | Purpose |
| Scaffold |
| Glob |
| Schema + lint |
| Run a simulation, returns |
| running / done / failed + turn count |
| Read |
| Summary + judge verdict + suspicious turns |
| Diff two runs |
| Run history from SQLite |
Docs
AGENTS.md — rules for AI agents (research loop, package boundary)
docs/smoke-test.md — first end-to-end run
docs/portability.md — consumer-specific dispatch / observe setup
docs/plugins.md — verify plugins + Python API
CI / Release
Workflow | Trigger | What it does |
PR / push → |
| |
tag | test → build → GitHub Release (wheel + sdist); PyPI if |
Local check:
uv sync --extra dev
uv run pytest -q
uv buildRelease:
git tag v0.1.0
git push origin v0.1.0Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/quangdang46/livekit-agent-simulator'
If you have feedback or need assistance with the MCP directory API, please join our Discord server