---
title: persona_get
description: Fetch one of a brand's personas — who it is talking to, in their own words — so an agent can write for someone in particular.
---

Fetches a single **Persona** by the pair that addresses it: its Brand's slug and its own.

A Persona is an **audience archetype** — who a brand is talking _to_. It is the counterpart to the Brand's own sections, which say who it is talking _as_. Discover a brand's personas with [`brand_get`](/mcp/tools/brand-get); there is no separate list tool, because the brand bundle already carries them.

## Input

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `brand_name` | `string` | yes | The slug of the brand that owns the persona. |
| `persona_name` | `string` | yes | The persona slug. Unique within its brand, so it must be paired with `brand_name`. |

## Output

`{ persona }`, carrying `slug`, `name`, `description`, `revision`, the age range, and four context sections:

| Section       | What belongs in it                                       |
| ------------- | -------------------------------------------------------- |
| `profile`     | Who they are: life stage, situation, role, context       |
| `motivations` | What they want: jobs to be done, triggers, outcomes      |
| `frictions`   | What stops them: objections, doubts, perceived risk      |
| `language`    | The words **they** use for the problem — their verbatims |

Each section is free-form markdown and independently optional — one you haven't written is `null`, which is normal rather than an error.

`ageMin` and `ageMax` are independently nullable: `ageMin` alone means "and older", `ageMax` alone means "and younger", and both `null` means the persona is not defined by age at all.

:::info[`language` is not a locale]

Despite the name, `language` holds **voice-of-customer** wording — how this audience describes the problem in their own register ("my knees are shot by mile 18"), not a language setting like `en-GB`. It is the raw material for copy that sounds like the reader rather than like the brand.

:::

## Example

> _"Write three ad headlines for Acme Running, aimed at Marathon Maya."_

```ts
persona_get({ brand_name: 'acme-running', persona_name: 'marathon-maya' });
// → { persona: { slug: 'marathon-maya', ageMin: 30, ageMax: 44,
//                frictions: 'Thinks carbon plates are a gimmick…', … } }
```

The agent reads `frictions` and `language` alongside the brand's `voice`, so the headline answers a real objection in words the reader would use.

:::tip[Keep the revision]

If you intend to edit the Persona, hold onto `revision` — pass it as `base_revision` to [`persona_update`](/mcp/tools/persona-update) or [`persona_delete`](/mcp/tools/persona-delete) so a concurrent change can't be silently overwritten.

:::

Requires the `brand:read` scope — a persona is part of its brand's context, not a separate permission.
