get_domain_identity Returns one domain’s full record: label, default audiences, surface class, evidence tier, cue direction, guardrail, and non-colour signals.
Connect the Alterspective Brand Guidelines to Claude, Gemini, OpenAI, and any MCP-compatible AI assistant.
https://brand.alterspective.com.au/mcp Transport: Streamable HTTP | Rate limit: 100 req/15min | Auth: Optional
Beyond colours, tokens, and rules, the server exposes the governed domain identity model so an AI agent can apply the right business-area overlay — and be checked when it does.
get_domain_identity Returns one domain’s full record: label, default audiences, surface class, evidence tier, cue direction, guardrail, and non-colour signals.
get_domain_tokens Returns the resolved token aliases (accent, surface, border, focus…) for a domain in light or dark mode — always references to approved brand tokens, never raw hex.
validate_domain_usage Checks a proposed domain treatment: rejects colour-only signalling and raw-hex aliases, and requires a visible label or ariaLabel.
# Get the delivery domain's light-mode token aliases
curl -X POST https://brand.alterspective.com.au/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"get_domain_tokens","arguments":{"domain":"delivery","mode":"light"}},"id":1}' Works with Claude Desktop and Claude Code (CLI).
Edit your Claude Desktop configuration file:
%APPDATA%\Claude\claude_desktop_config.json~/Library/Application Support/Claude/claude_desktop_config.json~/.config/Claude/claude_desktop_config.jsonAdd this configuration:
{
"mcpServers": {
"alterspective-brand": {
"url": "https://brand.alterspective.com.au/mcp",
"transport": "http"
}
}
} Add to your project's .mcp.json:
{
"mcpServers": {
"alterspective-brand": {
"url": "https://brand.alterspective.com.au/mcp",
"transport": "http"
}
}
} # Build the MCP server
cd alterspective-ai-brand-guide
npm run build --workspace=packages/mcp-server Then add to Claude Desktop config:
{
"mcpServers": {
"alterspective-brand-local": {
"command": "node",
"args": ["<path-to-repo>/packages/mcp-server/dist/index.js"]
}
}
} Gemini CLI connects directly to SSE endpoints.
Create or edit .mcp.json in your project root:
{
"mcpServers": {
"alterspective-brand": {
"url": "https://brand.alterspective.com.au/mcp",
"transport": "sse"
}
}
} Use the MCP endpoint from any language or platform.
Connect with the official MCP SDK:
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
const transport = new StreamableHTTPClientTransport(
new URL("https://brand.alterspective.com.au/mcp")
);
const client = new Client({ name: "my-app", version: "1.0.0" });
await client.connect(transport);
// List available tools
const tools = await client.listTools();
console.log(tools);
// Call a tool
const result = await client.callTool("validate_colors", {
foreground: "#FFFFFF",
background: "#ABDD65"
});
console.log(result); // { isValid: false, violations: [...] } The MCP endpoint accepts standard JSON-RPC over HTTP:
# Step 1: Initialize session
curl -X POST https://brand.alterspective.com.au/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"my-app","version":"1.0"}},"id":1}'
# Response includes Mcp-Session-Id header — use it for subsequent requests
# Step 2: List tools
curl -X POST https://brand.alterspective.com.au/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "Mcp-Session-Id: <session-id>" \
-d '{"jsonrpc":"2.0","method":"tools/list","params":{},"id":2}'
# Step 3: Call a tool
curl -X POST https://brand.alterspective.com.au/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "Mcp-Session-Id: <session-id>" \
-d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"get_critical_rules","arguments":{"category":"logo"}},"id":3}' Convert MCP tools to OpenAI function-calling format:
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
import OpenAI from "openai";
// Connect to MCP
const transport = new StreamableHTTPClientTransport(
new URL("https://brand.alterspective.com.au/mcp")
);
const mcpClient = new Client({ name: "openai-bridge", version: "1.0.0" });
await mcpClient.connect(transport);
// Get tools and convert to OpenAI format
const { tools } = await mcpClient.listTools();
const openaiTools = tools.map(t => ({
type: "function",
function: {
name: t.name,
description: t.description,
parameters: t.inputSchema
}
}));
// Use with OpenAI
const openai = new OpenAI();
const response = await openai.chat.completions.create({
model: "gpt-4o",
messages: [{ role: "user", content: "Check if white text on #ABDD65 is accessible" }],
tools: openaiTools
}); The MCP server has rate limits to prevent abuse:
Authorization: Bearer <key>)For higher limits or API key access, contact the Alterspective team.
Once connected, your AI assistant will have access to these brand guideline tools:
Returns non-negotiable brand rules that MUST be followed.
theme (optional): Theme name (default: 'alterspective')category (optional): Filter by logo, color, typography, icons, accessibilityReturns design tokens (colors, typography, spacing, motion).
theme (optional): Theme namecategory (optional): Filter by colors, typography, spacing, motionformat (optional): Output format (json, css, tailwind)Generates CSS custom properties from design tokens.
theme (optional): Theme namescope (optional): Filter by colors, typography, spacingValidates color combinations for WCAG compliance.
foreground (required): Foreground color (hex)background (required): Background color (hex)fontSize (optional): Font size for contextReturns information about brand assets (logos, icons, patterns, fonts).
theme (optional): Theme nameassetType (optional): Filter by logos, icons, patterns, fontsRetrieves a specific rule by its ID.
theme (optional): Theme nameruleId (required): Rule ID (e.g., 'LOGO-001', 'COLOR-001')Returns a summary of all rules grouped by category.
theme (optional): Theme nameLists all available themes in the system.
Returns lifecycle status and metadata for components.
theme (optional): Theme namecomponentName (optional): Specific componentstatus (optional): Filter by experimental, beta, stable, legacy, deprecatedSearch for brand icons by name, tags, or category.
theme (optional): Theme namequery (optional): Search querycategory (optional): actions, navigation, status, objects, communication, conceptslimit (optional): Max resultsget_design_tokens to get Marine color (#075156)get_critical_rules with typography filter--as-marine and --as-font-bodyvalidate_colors to check contrast (returns 1.58:1)get_rule_by_id for COLOR-001get_rule_by_id for LOGO-001# Rebuild the server
cd packages/mcp-server
npm run build
# Check for TypeScript errors
npm run typecheck # Verify theme data exists
ls themes/alterspective/
# Test manually
node packages/mcp-server/dist/index.js No results found
Try different keywords or check spelling
Searching...
Start typing to search the documentation