CP Brand MCP
OfficialClick on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@CP Brand MCPDraft a one-pager for the new pouch campaign and validate it."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
CP 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.
Related MCP server: Maket
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.
Available Tools
9 toolsaudit_brand_assetsARead-only
Check hashes of supplied CP logos and references, and exact installed font identities. No fallback fonts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The verb 'Check' indicates a read-only operation, and the annotation confirms readOnlyHint=true. The additional detail 'No fallback fonts' provides behavioral context beyond the annotation, without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence that conveys the essential scope and constraints. Every word contributes meaning without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains what the tool does but does not mention the output format or return value. However, given the simple check nature and lack of output schema, the description is mostly sufficient; a slight gap remains in explaining expected results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters in the schema, so the description has nothing to add. The schema coverage is 100% and no parameter-level elaboration is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Check') and specifies the objects (hashes of supplied CP logos and references, exact installed font identities) clearly. It also notes the important constraint 'No fallback fonts.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus sibling tools. It implies a read-audit purpose but lacks direct guidance on selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_central_visual_promptARead-only
Prepare a topic-specific image-generation prompt from the full one-pager content. The calling assistant must generate and inspect the image using its connected image tool, save it in inputs, and pass heroImage to create_one_pager. Does not generate pixels itself.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description adds behavioral context by explaining the expected workflow: the assistant must generate, inspect, and save the image, then pass heroImage to create_one_pager. It also reiterates non-generation, which aligns with the read-only nature. This provides more insight than the annotation alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise—two sentences—and front-loads the primary purpose. It efficiently conveys the core function and essential workflow without extraneous information. Every sentence contributes value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a complex input schema, but the description lacks details about output (what is returned) and the specific structure of the 'content' object. It gives a high-level purpose and hints at the workflow but omits critical information like return format or parameter semantics. This leaves gaps for an agent to discover on its own.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has a single 'content' parameter with a complex nested structure (dozens of fields, some required). The description only refers to it as 'full one-pager content' without explaining the fields, their constraints, or how to populate them. Since schema coverage is 0%, the description fails to compensate, leaving the agent to infer the structure from the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Prepare a topic-specific image-generation prompt from the full one-pager content.' It also explicitly clarifies that it does not generate the image itself, distinguishing it from image-generation tools. This is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides workflow guidance: 'The calling assistant must generate and inspect the image using its connected image tool, save it in inputs, and pass heroImage to create_one_pager.' This indicates when to use the tool (before creating the one-pager) and the necessary follow-up steps. However, it does not explicitly compare with sibling tools like create_generation_prompt, so it's not fully exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_generation_promptCRead-only
Prepare a CP one-pager brief using CP rules and clean layout slots. Does not generate factual claims or artwork.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds the behavioral note that it does not generate factual claims or artwork, which is useful. However, it does not describe the output format or any other side effects beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, no redundancy. The purpose is front-loaded, and the clarifying negative statement follows. Every word contributes value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a single parameter that is completely undocumented and no usage guidance against sibling tools, the description is insufficient for an agent to call it correctly. It also omits what the resulting brief looks like. The annotations cover safety but not parameter semantics or selection logic.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description never mentions the 'request' parameter. The agent gets no guidance on what content the request should contain, its format, or constraints beyond the schema's string type and length limits.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (prepare a brief) and the resource (CP one-pager brief). The negative clause 'Does not generate factual claims or artwork' helps differentiate from content-generating tools, though it does not name specific siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance. The negative statement implies this tool is not for factual claims or artwork, but it does not mention alternatives or conditions for selection. The agent is left to infer from sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_one_pagerA
Create a complete CP-only one-pager as an editable SVG, JSON source, and outlined SVG companion. Call guidelines first. Without all four images, returns needs_generated_visuals and a prompt for each missing slot without writing an artifact. Reference image reuse must be explicitly requested. Never overwrites existing files. Final mode requires sources, four distinct images, callout imageAlt descriptions and factsVerified. Regenerate for edits; validate the returned file before delivery.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | ||
| outputFileName | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses important behavioral traits beyond the annotations, including 'Never overwrites existing files,' the fallback behavior when images are incomplete ('returns needs_generated_visuals and a prompt for each missing slot'), and the explicit requirement for reference-image reuse. These details exceed what the annotations convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense paragraph covering multiple aspects: creation, guidelines, image requirements, final mode conditions, overwrite behavior, and validation. It is not overly long but packs many ideas, making it slightly less streamlined than ideal. Still, each sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the schema (nested objects, many fields), the description provides a useful high-level overview of the workflow and key constraints, such as the need for four images and validation. It does not explain every parameter, but it offers enough context for an agent to understand the tool's role and expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description carries the burden of explaining parameters. It mentions a few (factsVerified, callout imageAlt, reference image reuse) but does not explain most fields like topic, headline, cards, centralVisual, or the relationships between them. The description is insufficient to guide parameter usage without further schema inspection.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's primary function: 'Create a complete CP-only one-pager as an editable SVG, JSON source, and outlined SVG companion.' It names the resource (one-pager), the action (create), and the output formats, distinguishing it from sibling tools that focus on individual prompts or validations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides usage conditions such as 'Call guidelines first,' behavior when images are missing, final-mode requirements, and the instruction to 'validate the returned file before delivery.' It does not explicitly name alternative tools, but the context and workflow notes make the appropriate use case reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_one_pager_visual_promptsCRead-only
Prepare four contextual image prompts: one central image and one distinct image above each of the three connected key points. The calling assistant generates them separately and supplies the local image paths.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds that the assistant generates images separately, implying this tool only prepares prompts, but it does not disclose what the tool actually returns or any side effects. This adds some context but leaves behavior ambiguous.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short (two sentences) but not efficient—it focuses on structure rather than purpose or usage. It lacks front-loaded key information such as what the tool returns or how to use it, making the brevity counterproductive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a single required object with many nested required fields) and no output schema, the description is grossly inadequate. It fails to explain the relationship between the content fields and the four prompts, what the tool outputs, or any usage context, leaving the agent unable to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description does not mention the sole 'content' parameter at all. The agent receives no guidance on how to populate the large, heavily nested content object, which is critical for using the tool. The description's mention of 'four contextual image prompts' is too indirect to map to the schema fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a verb and resource ('Prepare four contextual image prompts') and outlines the structure (central image plus one per key point), which distinguishes it from sibling create_central_visual_prompt. However, 'prepare' is vague and does not clarify whether the tool generates, formats, or stores prompts, nor how the content parameter feeds into this.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like create_central_visual_prompt. The sentence about the calling assistant generating images separately implies a workflow step but does not state selection criteria or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_brand_guidelinesARead-only
Read CP-only authoritative guidelines before generation. The supplied CP guide overrides visual discrepancies in the one-pager example.
| Name | Required | Description | Default |
|---|---|---|---|
| section | No | all |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes that this is a read operation, and the description consistently says 'Read'. It adds useful context about the guidelines being authoritative and overriding discrepancies, which goes beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no fluff. The primary purpose is front-loaded, and the additional precedence note is relevant and brief.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with a single optional parameter, the description covers the essential use context and authority relationship. It does not describe the return shape or individual section values, but those are not critical given the low tool complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero description coverage, and the description does not explain the 'section' parameter or its values. While the enum values are fairly self-explanatory, the tool description fails to compensate for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads authoritative brand guidelines and should be used before generation. The 'CP-only' acronym is not expanded, but the core purpose is unambiguous in context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says to use the tool before generation and clarifies that the supplied guide overrides visual discrepancies in the one-pager example. It does not explicitly mention when not to use it or compare with sibling tools, but the timing guidance is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_mcp_statusARead-only
Report live CP server identity, version, runtime paths, one-pager-only scope and required asset health.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly and non-destructive behavior. The description adds specific details about what the status report includes, which goes beyond the annotations but does not describe side effects or return format—though the annotations cover the key behavioral aspects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that lists all key information without any fluff or redundancy. It is perfectly sized for the tool's simple purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and no output schema, the description provides a complete picture of what the tool does. The list of reported items (identity, version, paths, scope, health) is sufficiently detailed for an agent to know when to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is nothing to describe. The baseline for 0 parameters is 4, and no additional parameter details are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Report') and identifies the exact resource (CP live server identity, version, runtime paths, one-pager-only scope, required asset health), distinguishing it from sibling tools that audit, create, or validate content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The tool's purpose as a status reporter is self-evident, and the sibling context (audit, create, validate) makes its usage clear. However, it does not explicitly state when to use it over alternatives, so it misses the highest bar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
qa_one_pager_layoutCRead-only
Measure every text slot with exact CP fonts and check required fields without writing files.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond the readOnlyHint annotation by stating it 'measure[s] every text slot with exact CP fonts' and 'check[s] required fields without writing files.' This is consistent with annotations and adds value, though it does not cover other potential behaviors like error handling or performance.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and front-loaded with the core action. It avoids redundancy, but could be improved by including more useful context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with such a complex input schema, the description is severely lacking. It does not explain what 'exact CP fonts' means, what the output looks like, or how to handle the required fields beyond the schema. The tool name suggests one-pager layout, but the description does not ground the context enough for an agent to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% – the description provides no explanation of the 'content' parameter or its structure. The schema is complex with many required nested fields, but the description does not compensate at all, leaving the agent without guidance on how to construct valid input.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Measure' and 'check') and resource ('every text slot', 'required fields'), making the purpose clear. However, it does not explicitly differentiate from the sibling tool validate_one_pager_file, which likely also checks required fields, so it isn't fully distinguished.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The description does not mention any conditions, exclusions, or reference to sibling tools, leaving the agent to infer appropriate usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_one_pager_fileARead-only
Validate a generated editable CP SVG by file path against exact CP palette/fonts/assets, embedded images and regenerated template content. Returns a compact report; SVG markup stays local.
| Name | Required | Description | Default |
|---|---|---|---|
| filePath | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds 'SVG markup stays local', which is a behavioral trait not covered by the annotations (readOnlyHint, destructiveHint). It clarifies that the tool does not transmit data externally, which is valuable for privacy/security. It also states it returns a report, but the local note goes beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that lists the validation criteria and the expected output. It avoids unnecessary jargon and directly conveys the tool's purpose. The structure is efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (validation against multiple criteria) and lack of an output schema, the description covers the essential aspects: what is validated, what is returned, and the local behavior. It does not detail the report format or the exact validation rules, but for a validation tool this is sufficient for an agent to decide when to use it. No output schema exists, so the mention of a compact report is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, filePath, is partially described by the phrase 'by file path' in the description, indicating it is the path to the SVG file. However, the schema has no description for this parameter, and the tool description does not clarify path format (absolute/relative), file existence requirements, or any constraints. This gives basic meaning but leaves room for ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: validating a generated editable CP SVG against specific criteria (palette/fonts/assets, embedded images, template content). The verb 'Validate' and resource 'editable CP SVG' are specific, and it distinguishes from sibling tools like create_one_pager or qa_one_pager_layout by focusing on file validation. The expected output (a compact report) is also mentioned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used after generation to check compliance, which is a clear use case. It does not explicitly reference alternatives, but the name and context make it obvious this is for validation rather than creation or layout QA. It lacks an explicit 'when not to use' statement, but the purpose is sufficiently self-evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
9 tool updates
v0.4.1- First observed
audit_brand_assets - First observed
create_central_visual_prompt - First observed
create_generation_prompt - First observed
create_one_pager - First observed
create_one_pager_visual_prompts - First observed
get_brand_guidelines - First observed
get_mcp_status - First observed
qa_one_pager_layout - First observed
validate_one_pager_file
TDQS
Tools are largely distinct, with create_generation_prompt, create_central_visual_prompt, and create_one_pager_visual_prompts clearly separated by their purpose. audit_brand_assets and validate_one_pager_file might seem similar, but their descriptions clarify that one checks source assets while the other checks the final SVG layout.
Most tools follow a verb_noun pattern (get_, create_, audit_, validate_), though 'qa_one_pager_layout' uses an abbreviation instead of a full verb. The repeated 'create_' prefix for distinct prompt-generation tools is consistent and aids recognition.
With 9 tools, the set is well-scoped for a brand one-pager generation workflow. It covers the essential stages without unnecessary bloat, staying comfortably within the recommended 3-15 range.
The toolset covers the full pipeline: status check, asset audit, guideline retrieval, prompt generation, visual prompt creation, layout QA, final generation, and validation. No obvious gaps exist for the stated domain of CP-branded one-pager creation.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Brand-safe MCP for AI agents to create editable, on-brand graphics and automate variants.
Compliant PDFs (PDF/A-2A + PDF/UA-1) from markdown or a compact DSL - fast, no headless browser.
Deterministic image rendering for agents: JSON template in, on-brand PNG out.
- OrshotOAuthcom.orshot
Render on-brand images, PDFs and videos from templates. 60+ tools: brand kit, folders, workflows.
Related MCP Servers
- AlicenseAqualityCmaintenanceValidates release hygiene in local repositories with network-free, read-only tools for checking repo structure, version alignment, and generating release checklists.3MIT
- AlicenseAqualityBmaintenanceLocal-first visual design workspace for AI assistants. Compose wireframes and branded multi-page HTML/CSS documents with live preview, annotations, brand and asset libraries, typed data collections, layout validation, PDF export, and draft-only Gmail handoff.14919MIT
- AlicenseAqualityCmaintenanceValidates structured AI video briefs for subject, motion, camera, visual-detail, and audio-direction signals, then builds a portable preflight manifest. Runs locally over stdio and does not call any generation backend.2MIT
- AlicenseNot gradedqualityBmaintenanceEnables MCP hosts to validate drafts against a company's versioned positioning pack through read-only tools for positioning context, content briefs, content checks, and explanation of findings.MIT
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