Developers

Brand, as an API call.

Three ways to deliver brand: a public REST API for custom code, a Model Context Protocol server for agents, and a drop-in skill that content creators load into Claude, ChatGPT, or Slack.

REST API Hosted MCP Any language
# Fetch channel-aware brand context for a combination
curl "https://api.brandplio.com/api/acme/context?\
persona=ops-director&product=platform&tone=reassuring&channel=email" \
  -H "Authorization: Bearer $BRANDPLIO_API_KEY" \
  -H "X-Brand-Id: prod"

# ─► 200 OK
{
  "prompt": "You are writing as the Brandplio voice for Ops Directors…",
  "tensions": [],
  "version": "rev_2024_11_14.07"
}
// Node 18+ or the browser — no SDK, just fetch
const params = new URLSearchParams({
  persona: "ops-director",
  product: "platform",
  tone:    "reassuring",
  channel: "email",
});

const res = await fetch(
  `https://api.brandplio.com/api/acme/context?${params}`,
  { headers: {
    "Authorization": `Bearer ${process.env.BRANDPLIO_API_KEY}`,
    "X-Brand-Id": "prod",
  } },
);

const { prompt, tensions } = await res.json();
if (tensions.length) reviewQueue.flag(tensions);
# pip install requests — no SDK needed
import os, requests

res = requests.get(
    "https://api.brandplio.com/api/acme/context",
    params={
        "persona": "ops-director",
        "product": "platform",
        "tone":    "reassuring",
        "channel": "email",
    },
    headers={
        "Authorization": f"Bearer {os.environ['BRANDPLIO_API_KEY']}",
        "X-Brand-Id": "prod",
    },
)

ctx = res.json()
if ctx["tensions"]:
    review_queue.flag(ctx["tensions"])
Quickstart

Three steps, under five minutes.

01

Mint an API key

Create a key in the Brandplio dashboard. Keys are enterprise-scoped, prefixed bvp_, rotate with one click, and scope per brand.

# app.brandplio.com → API keys → New key
$ export BRANDPLIO_API_KEY="bvp_live_7f2a…"
02

Fetch context

Ask for a persona × product × tone bundle, optionally shaped for a channel. You get a ready-to-use prompt block back.

GET /api/acme/context
     ?persona=ops-director
     &product=platform
     &tone=reassuring
03

Ship it

Drop the prompt block into your system prompt, or connect your MCP client to our hosted server and let agents consume brand natively.

$ claude mcp add --transport http brandplio \
    https://mcp.brandplio.com \
    --header "Authorization: Bearer $KEY"
Reference

The public API, at a glance.

Four endpoints, one auth header, predictable JSON.

GET /api/:enterprise/context

Assemble a brand-aligned prompt block for a persona, product, and tone. Optionally shape it for a channel (email, web, linkedin, x, instagram).

Auth
Bearer bvp_…
Brand
X-Brand-Id header or ?brand= query
Rate
100 req/min default, higher on request
Request
cURL
curl "…/api/acme/context?\
persona=ops-director&product=platform&\
tone=reassuring&channel=email" \
  -H "Authorization: Bearer $KEY" \
  -H "X-Brand-Id: prod"
Response · 200
JSON
{
  "prompt": "You are writing as Brandplio…",
  "tensions": [
    {
      "kind": "tone_persona_conflict",
      "severity": "warn"
    }
  ],
  "version": "rev_2024_11_14.07"
}
GET /api/:enterprise/combinations

List all pre-built persona × product × tone combinations for a brand. Useful for agent catalogs and LLM tool discovery.

Auth
Bearer bvp_…
Returns
Array of combinations with slug, label, and channel support
Request
cURL
curl "…/api/acme/combinations" \
  -H "Authorization: Bearer $KEY"
Response · 200
JSON
[
  {
    "id": "cmb_9jV1…",
    "slug": "ops-director-platform-reassuring",
    "label": "Ops Director · Platform · Reassuring",
    "channels": ["email", "linkedin", "web_copy"]
  }
]
GET /api/:enterprise/prompts/:combination_id

Fetch the stored, pre-assembled prompt for a specific combination. Channel-aware via ?channel=, returns plain text or JSON.

Auth
Bearer bvp_…
Query
channel (optional), format=text|json
Cache
Returned with ETag · typically sub-10ms at the edge
Request
cURL
curl "…/api/acme/prompts/cmb_9jV1?channel=email" \
  -H "Authorization: Bearer $KEY" \
  -H "Accept: text/plain"
Response · 200 (text/plain)
TEXT
You are writing as Brandplio, the brand voice platform.
Audience: Operations Directors managing multiple brands.
Tone: Reassuring. Acknowledge risk, lead with control.
Channel: Email. Subject under 60 chars, one clear ask…
GET /api/:enterprise/prompts

Enumerate every stored prompt across the brand, with metadata for combination, channel, version, and last-updated timestamp. Useful for syncing a read-through cache in your own infrastructure.

Auth
Bearer bvp_…
Returns
Paginated array, Link header for next page
Request
cURL
curl "…/api/acme/prompts?limit=50" \
  -H "Authorization: Bearer $KEY"
Response · 200
JSON
{
  "data": [
    {
      "combination_id": "cmb_9jV1",
      "channel": "email",
      "version": "rev_2024_11_14.07",
      "updated_at": "2024-11-14T10:18:22Z"
    }
  ],
  "next": "/api/acme/prompts?cursor=…"
}
Model Context Protocol

Native MCP. Zero integration code.

Point any MCP-compatible client at Brandplio and your brand becomes a first-class tool. Agents can list combinations, resolve catalog items, and pull context without a single line of glue code.

  • Exposes load_catalog, build_context, and get_combination_prompt as tools.
  • Scopes per API key: same server, different brand, no restart.
  • Hosted over http—connect a URL, nothing to install or run.
C
Claude Desktophttp
C
Cursorhttp
Z
Zedhttp
G
GPT Desktophttp
W
Warp Agenthttp
·
Custom clientsAny MCP host
// ~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "brandplio": {
      "url": "https://mcp.brandplio.com",
      "headers": {
        "Authorization": "Bearer bvp_live_7f2a…",
        "X-Brand-Id": "prod"
      }
    }
  }
}
// ~/.cursor/mcp.json
{
  "mcpServers": {
    "brandplio": {
      "url": "https://mcp.brandplio.com",
      "headers": {
        "Authorization": "Bearer bvp_live_7f2a…"
      }
    }
  }
}
Drop-in skill

Brand for content creators, with zero code.

Ship a pre-built skill that content creators paste into Claude, ChatGPT, or Slack. The skill asks the right questions, pulls context through the MCP server or REST API, and returns on-brand output with a short summary of the decisions it made.

  • Conversational resolution. No IDs, no slugs: creators describe intent, the skill translates.
  • Lock a layer. Pin persona, product, tone, or channel for team-specific skills (e.g. “support replies only”).
  • Transparent decisions. Every output ships with a “Context Applied” block, so reviewers see what the skill used.
C
Claude ProjectsPaste into instructions
G
ChatGPT GPTsInstructions + Actions
CC
Claude Code SkillsSave as .md in skills/
S
Slack / TeamsBot system prompt
B
brandplio.skill.md
system prompt + tool definitions · 4.2 KB
Copy template →
B
Brandplio skill Claude Projects · Acme brand workspace
live
Help me write a thank-you email for our freelancer customers at year end.
Happy to. One quick thing to get this on-brand: should this go to the freelancer tier specifically, or our general customer base?
Freelancer tier. Keep it warm but professional.
build_context · freelancers × platform × warm
Context Applied
Persona
Freelancers
Product
Platform
Tone
Warm · professional
Channel
Email
Insight. Your vocabulary flags “users”. Swapping to “members” to match the brand voice.
Subject: Thanks for building with us this year Hi there, It’s been a year of watching members like you do extraordinary work, and we’re grateful you chose to build it here. A few notes from our side as the year winds down…
Authentication

Keys built for how teams actually work.

Keys belong to your account, not a single user. Scope them per brand, rotate them in place, and revoke with immediate effect across every agent that was using them.

  • SHA-256 hashed at rest. We never store plaintext keys: you see a key once, at mint.
  • Brand resolution. Pass X-Brand-Id or ?brand=, otherwise falls back to your default brand.
  • Rate-limited per key. Higher ceilings and burst allowances available on request.
  • Key activity logged. Every key mint, rotate, and revoke is recorded.
bvp_live_ 7f2a3c8d4b9e1f0a6c2d5e8b1f4a7c9d Active
Name
Production · Marketing ops
Scope
enterprise:acme · brand:prod
Created
2026-02-10 · by kate@acme.com
Last used
3 minutes ago · 1.4k req / 24h
Rate
500 req/min · 50 burst

Built on a modern stack

Fastify Next.js Postgres Anthropic Zod Railway

Stop re-engineering brand prompts for every tool.

Grab a sandbox API key, ship the first integration in an afternoon, and let us show you the MCP story on a 30-minute call.