Fullstory MCP · 2026-09-16

Persona harness for the Fullstory MCP

Claude already has the data. It did not have the person.

4.1.0 internal + open source not a second query engine

The problem

An agent on the MCP treats every person at the keyboard like a generic analyst.

Alo · UX Research

UX Researcher

“Show me where users slow down in the checkout flow — I’m building a hypothesis for a redesign.”

Alo · Customer Support

Support Lead

“A VIP customer just hit an error at checkout. Find the session and tell me what broke.”

A blank prompt picks a path and keeps it. That is the gap — not missing data. Missing orientation.

The definition

A psychology layer: persona, industry, owned surface, fire drills, team vocabulary.

Claude orients to the job of the person directing the agent, then uses the same MCP tools.

persona industry owned surface fire drills

The spine

Name the exchange before you name the number.

A long session is either deep engagement or severe confusion. Currency is what was spent and what was sought.

ACQ
Transaction
money, commitment → goods, access
KNW
Information
attention, patience → answers, certainty
UTL
Task
time, effort → completed task, control
ENJ
Entertainment
discretionary time → diversion, play
BEL
Community
social risk → connection, standing
INF
Feedback
effort, goodwill → a product that changes

L2 — the customer’s user

What their users spend and seek. This is how the agent decides which MCP call is first — funnel time, campaign segment, exception class, session open.

L1 — the person at the keyboard

What the analyst is buying from the evidence. The harness locks L1 by persona. A UX job and a support job never share a stop condition.

NAV is a toll, not a currency. Missing button ≠ payment failure ≠ confirmation that never loads.

How the rails are assigned

Jobs assign the mix. A rail is the recipe.

One primary currency per job. Secondary only when the job genuinely spends in more than one.

01

Jobs

The work this persona actually does — not the title.

02

Priors

Where to look first. Surfaces, objects, known baselines.

03

Stops

When the agent is done. Honest null is a valid finding.

04

Form

How the answer is handed back — plan, clip, table, HTML.

Pass 1 · Session start

Industry + persona

Default cell. The agent leads with the persona’s primary currency before anyone has named a job.

Pass 2 · Analysis start

The job is named

Primary + spans apply. Signal order, priors, and stop conditions swap. The lens sharpens.

What lands on their machine

The CSE-cut harness is a frozen cell. The job gate is how it thaws.

One industry

Locked at cut time. Retail for Alo. Not the whole library.

All eight personas

Picked at /startup. UX today, engineer tomorrow — same zip.

No Python

derive.py does not ship. The cell is already composed.

Job gate (W11)

Selects from the cell’s own jobs. Re-weights without a second derive.

The harness knows who they are. The gate is how it learns what they are doing — in their language, never in ours.

The moment

Same question. Two personas. Two plans. Same MCP.

UX researcher

Hypothesis first. Time on task.

Funnel median time, not a segment dwell.
ASR when the why is qualitative.
Stop: element + before/after + one session.
Never a verdict — hand the hypothesis back.

Support lead

Find the session. Recover trust.

Case-submit surface, then the VIP property.
Last healthy session before the break.
Stop: account + clip + what broke.
Not campaign ROAS. Not a redesign brief.

Same tools — build_segment · compute_funnel · session open / diff. Different stop conditions.

Shipped fire drills

If the job cannot break, it is not a job.

ENGBounce regressionExit-share jumps, throughput flat. Page the page — not traffic mix.
SUPVIP on the lineAny VIP hits support-intent. Page even when ticket volume is flat.
PMStep vs own historyMedian time ×2 or conversion −15%, entry flat. Hand to the PM.
UXTime on taskRage-click or median time ×2 on an element. Screenshot + one session.
MKTLand, don’t convertTraffic yes. Target event flat. Why — not an engineering page unless the LP is dead.
DATASystems disagreeFullstory ≠ warehouse / GA ≥10%. Raw numbers from both. List causes.

The artifact

Field team ships two things. Customer ships one.

SE / CSE

Two artifacts

The HTML report is the session.
The harness zip is what keeps working after you leave.
That is the compounding object.

Customer

One artifact

Whatever they asked for.
The harness shapes the lens.
It does not prescribe the output.

Live

What a customer actually experiences.

1

Open the pre-cut harness

Industry already locked. Persona picked at startup.

2

Name the job

Gate matches a trigger in plain language. No acronyms.

3

Watch the plan change

Priors and stops swap. Same MCP. Different first call.

The gate, out loud.
“Sounds like you’ve moved from investigating the engagement gap to building the case for a testing slot. Want me to switch the lens to that?”

How it reaches a human

Same psychology. Different moment the slice happens.

Field kit

Fullstory analyst / CSE

You cut it. Industry locked. Org and semantic layer pre-wired.

Customer harness

One named account

Retail-only for Alo. Every persona. They open Claude and work.

Universal / OSS

Anyone on GitHub

Full library in the download. Workspace gets only their slice.

A colleague in a different persona does not get a re-cut from the first user’s machine. They get the repo URL.

We ship a library. They work from a slice.

The ask

1

Bless 4.1.0 internal distribution, plus a pointer on get-started and the developer intro.

2

One co-creation customer if you want decision logs later. Not a silent opt-in for the field.

3

Not a rewrite this quarter. If adoption grows, the derivation engine is the piece product would own.

FULLSTORY MCP · PERSONA HARNESS · 4.1.0