CP Brand MCP
OfficialCP Brand MCP
Version 0.4.1. A separate, local Model Context Protocol server for Considerate Pouchers one-pagers only. It follows the useful CCC architecture (guidelines, generation, local file materialization, validation, status), but imports no CCC code, branding, assets, typography, or policy claims.
Authoritative inputs
assets/references/CP_Brand_Guidelines.pdf: exact colors, type roles, logos and photography guidance.assets/references/CP_Onepager_V3.pdf: composition reference, not a source of default factual claims.assets/logos/: all eight user-supplied SVG logos, preserved byte-for-byte.assets/images/: four images extracted from the supplied one-pager. The pouch image is used explicitly in the demonstration, not imposed on every request.data/brand.json: extracted rules, with implementation conventions distinguished from the reference documents.assets/manifest.json: SHA-256 integrity checks for supplied assets.
The guide's exact palette is coral #EA5265, teal #1D6379, cream #EFEDE0 and off-white #F4F4F9. White is allowed inside the unmodified official logos. Natural image pixels are exempt from the vector palette. The guide takes precedence over color-managed PDF appearances and the example's incidental Arial/italic text.
Headlines use Futura Medium, subheads Proxima Nova Semibold, and body copy Proxima Nova Regular. data/fonts.example.json documents the required font files. Copy it to the git-ignored data/fonts.local.json and configure your installed fonts. The server checks their PostScript identities and uses actual font metrics. There is no substitute-font fallback and no extracted PDF subset font. Font binaries are not bundled; provision licensed fonts and update this file when moving to another computer. Override its path with CP_BRAND_FONT_CONFIG.
Run locally
Requires Node.js 22 or 24 and pnpm. No build step is needed. See DEPLOYMENT.md for font provisioning, containers and updates.
pnpm install --frozen-lockfile
pnpm test
pnpm run smoke
pnpm startstart runs a stdio MCP server, not an HTTP endpoint. smoke starts a real MCP client, lists tools, reads guidelines, checks copy fit, creates a draft and validates it. Outputs go to deliverables/, or the directory specified by CP_BRAND_OUTPUT_DIR. Nothing is published or sent over the network at runtime.
Tools
Tool | Purpose |
| Live identity, runtime version, paths and asset health |
| CP rules; required before generation in each server session |
| Required assets, hashes and exact font availability |
| A CP-specific brief and generation workflow |
| A central-image prompt (compatibility helper) |
| Four contextual prompts: central image plus one image above each key point |
| Measure text and reject overflow before writing |
| Materialize editable SVG, JSON source and outlined SVG companion |
| Validate editable SVG locally against CP rules and canonical layout |
Resources: brand://cp/guidelines and brand://cp/one-pager.
Generation workflow
Read
get_brand_guidelines.Prepare structured content following
examples/one-pager.json. Required fields cover the headline, accent, strapline, three callouts, evidence panel, context, transition, four cards, takeaway and sources. Preserve the user's language; this version does not automatically rewrite spelling or facts.Set
topicto the policy subject and context. Optionally setcentralVisual.conceptto a specific visual idea. Callcreate_one_pager_visual_promptswith the structured content. Generate each of the four visuals separately: one central image and one distinct image for each of the three key points. The calling assistant then uses its connected image-generation tool, inspects the result for relevance, and saves the PNG/JPEG ininputs/. SetheroImageandheroAlt, plus eachcallouts[i].imageandcallouts[i].imageAlt. Optionalcallouts[i].imageConceptguides its generated subject. Other paths, symlinks escaping the allowed directories and non-raster images are rejected. The MCP itself does not run an image model or require API credentials.Call
qa_one_pager_layoutwith{ "content": ... }.If any of the four images is missing,
create_one_pagerreturnsstatus: "needs_generated_visuals",missingSlots, and four contextual prompts without creating files, even in draft mode. Generate the image and resume; never silently substitute the reference pouch. Callcreate_one_pagerwith{ "content": ..., "outputFileName": "my-one-pager.svg" }. Filenames cannot traverse directories or overwrite existing artifacts.Call
validate_one_pager_filewith the returned editablefilePath. Resolve all violations before delivery and inspect the outlined companion visually.
Drafts are visibly marked. Final mode requires four distinct images, descriptions for the three callout images, source entries and factsVerified: true supplied only after the caller verifies the claims. The server verifies required fields and layout, not the truth of claims or accessibility of cited URLs. It does not browse or fabricate evidence.
The main SVG preserves editable text using the exact CP font names, embedded PNG/JPEG imagery and the supplied inline official SVG logo. The .outlined.svg companion turns text into vector paths with those fonts, preserving appearance when fonts are unavailable; its text is no longer editable. The JSON sidecar is the source for revisions. Change that content and regenerate to a new filename. Arbitrary SVG edits fail canonical validation, preventing unreviewed styling, geometry or logo changes.
The locked cp_reference_v3 composition preserves the example's overall hierarchy, page ratio, teal hero, coral evidence/transition panels, four cards, takeaway and logo. The center is a topic-specific visual, not a fixed product container. centralVisual.frame is always circle; none is rejected. The circle has a cream fill and coral outline. Three dashed connectors with arrowheads lead outward to the key points. Each has a separate image region above its heading and body. Reference imagery is blocked by content hash unless the corresponding centralVisual.useReferenceImage or callouts[i].useReferenceImage is explicitly true. Set that flag only when the user requests reference reuse; the existing demonstration is deliberately marked as a reference-reuse example. It is a clean reusable implementation rather than a pixel-exact clone. No reference policy text or photography is permanently baked into the template. Each callout now requires its own generated PNG/JPEG. Automatic PDF/PNG export is not included in v0.3.0.
Connect a client
Use examples/client-config.json, replacing the absolute path for your machine. Register cp-brand independently of ccc-brand in your MCP client, then restart the client to discover the tools. Until that happens, the included smoke client can exercise the full server locally.
Tests
The suite checks CP-only type and palette, XML escaping, tampered SVGs, overflow, required final fields, path confinement, overwrite protection, editable/outlined output and local file validation. The smoke test covers a real stdio MCP round trip. Adobe Illustrator itself has not been automated for compatibility testing.
This is a public, standalone Consumer Choice Center repository. Font binaries, local font configuration, generated working files and machine-specific paths are excluded. See deployment instructions and rights notice.
Contextual central visuals
The full topic, headline, callouts, cards and takeaway inform the generation prompt. The caller or image model chooses an appropriate object, setting or composite: for example a retail verification scene for age checks, or receipts and coins for taxation. There is no fixed keyword-to-image mapping. A pouch may be appropriate for some topics, but is never a fallback. The image remains natural in color, has no embedded text or logos, and fits the central square without cropping. The surrounding page continues to use CP branding.
If no connected image generator is available, the workflow remains at needs_generated_visuals; report that missing capability instead of producing a placeholder artifact. Validation checks the file and layout, not semantic relevance or whether an image was actually AI-generated. The calling assistant must inspect the image and describe its provenance accurately.
v0.3 migration
For older content, change centralVisual.frame from none to circle (or omit it), and add image, imageAlt, and optionally imageConcept to each of the three callouts. Generate missing images through the connected image tool. Prior deliverables are preserved; regenerate to a new filename to use the updated composition. The reference demonstration and smoke test use explicitly marked reference assets for layout testing, not newly generated artwork.
v0.4 layout update
Key-point image slots are about 15% larger in each dimension: 194 x 113 on the right and 236 x 115 on the left. Their image regions are repositioned above the existing headings while text remains in its protected slots.
A required oversized CP pouch-symbol watermark runs across the hero and lower-page background, cropped at the right edge like the supplied PDF. It uses the exact symbol path from CP_Logo_Wide_1.svg, 7% opacity, cream over teal and teal over off-white, behind all foreground content. This user-requested watermark treatment does not alter the foreground official logo. Canonical validation rejects changes to the watermark or image-slot geometry. Existing content JSON works without new fields; regenerate to a new filename.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Consumer-Choice-Center/cp-brand-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server