Get brand kitAIROPS_MCP_GET_BRAND_KIT
Fetch a Brand Kit's brand identity (writing_tone, writing_persona) and associated entities
(product lines, audiences, content types, regions, writing rules, custom variables,
visual/design assets). Call AFTER `list_brand_kits` confirms `brand_management_enabled: true`.
# Decision flow
1. Specific entity by ID →
`includes=["<type>"]`, `filters=[{field: "<type>.id", operator: "EQ", value: <id>}]`.
2. Entity by name (product_lines, content_types, audiences, regions, custom_variables,
visual_examples) →
`filters=[{field: "<type>.name", operator: "CONTAINS", value: "<fragment>"}]`.
3. Find text content ("rule about tone", "any mention of Red List") → filter by the text
field: `filters=[{field: "writing_rules.text", operator: "CONTAINS", value: "tone"}]`.
4. Structural discovery → small `includes` with `fields=["<type>.id","<type>.name"]` only.
# Scale (typical kit vs outliers)
Most kits are small — these rarely need filtering:
- audiences, regions, usage_rules, palettes, content_samples: usually 0-2, rarely >10
- content_types, product_lines: usually 1-3
These have tails you must handle:
- writing_rules: usually 3, outliers exceed 200. Never include in full without a filter —
filter by text (CONTAINS) or by id.
- competitors: usually 10, outliers exceed 250. Include via product_lines.competitors only
when needed, and consider a name filter.
- custom_variables: outliers exceed 150. Filter by name (CONTAINS) for known variables
(e.g. "Red List"), or by value (CONTAINS) for content.
- Scoped writing_rules via audience/region/content_type nesting: outliers exceed 200.
Filter the parent by id or name first.
# Writing rules — global vs scoped
Writing rules are EITHER global OR scoped to a single audience/content_type/region (never
both). For content targeting a specific audience/region/content_type, fetch BOTH:
1. Top-level `writing_rules` include → global rules.
2. Nested writing_rules on the scoping parent → scoped rules.
Merge client-side.
# Anti-patterns
- `includes=["writing_rules","custom_variables","product_lines.competitors",
"content_types.writing_rules"]` without filters → blows context on outlier kits.
- Calling without `fields` on a large kit → returns full text (template_outline,
rule text, ICP) for every row.
- Forgetting filters on `writing_rules`, `custom_variables`, or `competitors` — those
are the three biggest tails.
# Versioning
`version: "draft"` reads pending edits; defaults to `"active"`. Use active for on-brand
output unless the user explicitly asks for draft.