# Generators API and MCP

North brand guidelines for AI agents · https://identity.north.ae/AGENTS/api · Updated 2026-10-14
Use when: Generating social posts, email signatures, logo files or diagrams programmatically, or connecting an agent to the brand hub over MCP.
Rules that always apply: https://identity.north.ae/AGENTS

## Use the generators instead of drawing your own
The hub's tools run on the same code as this API, so output always matches the brand. Read-only, no storage, rate limited.

| Endpoint | Method | Input | Returns |
|---|---|---|---|
| /api/v1/social-post | GET, POST | brand (north, northstar, northcloud, northedge), layout (aurora, night, number), format (1080x1350, 1080x1080, 1080x1920), kicker ≤ 48, headline ≤ 60, fonts (link, embed, none) | image/svg+xml |
| /api/v1/email-signature | GET, POST | name, title, email (required), brand, ar, pronouns, phone; format=html|text | JSON {html, text} |
| /api/v1/logo | GET | group (north-logo, northstar, northstar-admiral, north-academy, …), colourway (midnight, snow, …), layout (stacked) | JSON with svg and png URLs |
| /api/v1/diagram | POST | {spec, theme: light|dark, background, fonts}; spec as in /AGENTS/diagrams; node img = technology logo slug | image/svg+xml |
| /api/v1/guidance/<topic> | GET |  | Markdown (same as /AGENTS/<topic>) |
- Full schema: `GET /api/v1/openapi.json`. Examples: https://identity.north.ae/templates/generators-api/

## MCP
- Remote server: `https://identity.north.ae/mcp` (Streamable HTTP, JSON responses, stateless). Claude Code: `claude mcp add --transport http north-brand https://identity.north.ae/mcp`.
- Tools: get_brand_guidance(topic?), create_social_post, create_email_signature, find_logo, render_diagram. SVG results arrive as embedded resources (mimeType image/svg+xml).
- Call get_brand_guidance without a topic first.

## Limits
- 30 requests a minute per client, bursts of 20; a diagram costs 3. On 429 wait Retry-After seconds; don't retry in a loop.
- Body ≤ 64 KB; diagrams ≤ 120 nodes, 240 edges, 4000 × 4000.
- Invalid input returns 400 with every problem in `errors`: fix the input, don't work around it.

## Fonts
- fonts=link (default) links Helvetica Now from the hub; fonts=embed inlines them for rendering a PNG. Don't publish SVGs with embedded fonts. To make a PNG, render the SVG at its own size in a browser engine.
