Skip to main content
Glama
BrandKity

BrandKity MCP Server

Official
by BrandKity

@brandkity/mcp — BrandKity MCP Server

Model Context Protocol server for BrandKity — create and manage brand kits from any AI agent (Claude Desktop, Cursor, Windsurf, or any MCP-compatible client).

Current Version: 1.4.3 — MCP now available on Starter, Pro, and Agency plans

Quick Start

1. Get an API Key

  1. Sign in at brandkity.com

  2. Go to Settings → API Keys

  3. Click Generate New Key and copy the key (bk_live_...)

Available on Starter, Pro, and Agency plans. Sign up free to explore, then upgrade Starter or above to run tool calls.

2. Configure Your AI Client

Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (Mac) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "brandkity": {
      "command": "npx",
      "args": ["-y", "@brandkity/mcp"],
      "env": {
        "BRANDKITY_API_KEY": "bk_live_your_key_here"
      }
    }
  }
}

Cursor

Edit .cursor/mcp.json:

{
  "mcpServers": {
    "brandkity": {
      "command": "npx",
      "args": ["-y", "@brandkity/mcp"],
      "env": {
        "BRANDKITY_API_KEY": "bk_live_your_key_here"
      }
    }
  }
}

Windsurf

Edit ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "brandkity": {
      "command": "npx",
      "args": ["-y", "@brandkity/mcp"],
      "env": {
        "BRANDKITY_API_KEY": "bk_live_your_key_here"
      }
    }
  }
}

3. Use It

Once configured, ask your AI agent to create a brand kit:

"Create a brand kit for Acme Corp with the accent color #E55B00. Add a Colors block with the primary palette (Orange Flame #E55B00, Midnight #1A1A2E, Canvas #FAF9F7) and a Typography block with Inter for headings and DM Sans for body. Upload the logos from /Users/me/acme/logos/."

Related MCP server: brand-gen

Available Tools (22)

Tool

Description

Workspace

get_workspace

Get workspace info (plan, kit count, storage)

Files

upload_file

Upload any local file to workspace storage → returns a public URL

list_files

List workspace files with type filter and pagination

Kits

list_kits

List all brand kits (filter by draft/published/all)

create_kit

Create a new kit → returns kit_id

get_kit

Get a kit with all blocks and content

update_kit

Update kit settings (name, color, template, logo_url, cover_image_url, white-label fields)

publish_kit

Publish a kit → returns public URL

unpublish_kit

Unpublish a kit (reverts to draft)

Blocks

list_blocks

List all blocks in a kit with IDs and types

ensure_block

Idempotent — returns existing block_id or creates a new block (preferred over add_block)

add_block

Add a block unconditionally (use ensure_block instead to prevent duplicates)

update_block

Update block name/visibility

delete_block

Permanently delete a block and all its content

Content

add_colors

Add color swatches to a Colors block

add_typography

Add font entries to a Typography block

set_brand_story

Set rich text content (brand story, tone of voice)

set_block_note

Set the editorial note displayed above any block

Upload

upload_asset

Upload a local file into a block (logos, visuals, videos, etc.) with auto-retry

upload_assets_batch

Upload multiple local files into the same block; deduplicates by file path

upload_kit_logo

Upload and set the kit's header logo

upload_cover_image

Upload and set the kit's cover image

White-Label Branding (Pro+ Feature)

Customize your portal with custom favicon, social share image, and SEO metadata:

// Upload custom assets
const faviconUrl = await client.uploadFile('favicon.ico', faviconBuffer);
const ogImageUrl = await client.uploadFile('og-image.png', ogImageBuffer);

// Apply white-label branding
await client.updateKit('kit-id', {
  og_title: 'Acme Corp Brand Guidelines',
  og_description: 'Official brand assets and standards',
  custom_favicon_url: faviconUrl,
  og_image_url: ogImageUrl,
});

Fields:

  • og_title (string, max 100 chars) — SEO title for social share

  • og_description (string, max 300 chars) — SEO description

  • custom_favicon_url (string) — CDN URL to favicon (ICO/PNG/SVG)

  • og_image_url (string) — CDN URL to social share image (1200×630 px recommended)

Plan Requirements:

  • Free: White-label fields are read-only; MCP tool calls return 403

  • Starter/Pro/Agency: Full MCP access; white-label fields are read-write on Pro/Agency

Environment Variables

Variable

Required

Default

Description

BRANDKITY_API_KEY

Yes

Personal Access Token (bk_live_...)

BRANDKITY_API_URL

No

https://brandkity.com

API base URL (for local dev)

Typical Workflow

1. get_workspace       → verify connection, check plan and storage
2. list_kits           → confirm kit doesn't already exist
3. create_kit          → returns kit_id
4. ensure_block        → idempotent: returns existing block_id or creates a new one (for each block type)
5. add_colors          → populate the Colors block
6. add_typography      → populate the Typography block
7. upload_file         → upload font/logo/cover files to workspace storage
8. upload_asset        → upload logos, images, videos into blocks
9. set_brand_story     → write the brand story in a rich_text block
10. set_block_note     → add usage guidance to any block
11. publish_kit        → make the portal live

Reliability Notes (v1.4.0)

  • No duplicate blocksensure_block is idempotent. Re-running a workflow never creates duplicate blocks.

  • Auto-retry on uploadsupload_asset and upload_file retry up to 3 times on network errors with exponential backoff.

  • Size-aware timeouts — Upload timeout scales with file size (60 s base + 20 s per 10 MB, max 10 min). Large files like 64 MB video assets are handled reliably.

  • Batch deduplicationupload_assets_batch silently skips duplicate file_path entries so the same file is never uploaded twice in one batch.

  • Agent instructions — The server now provides operating rules to AI clients at connection time, reducing duplicate operations from AI agents automatically.

  • White-label URL resolution — CDN URLs in white-label fields are automatically resolved to asset IDs server-side; agents don't need to manage asset IDs directly.

  • Storage tracking — All file uploads are tracked per workspace for accurate quota enforcement.

License

MIT

Available Tools

22 tools
add_blockA

IMPORTANT: prefer ensure_block over this tool — ensure_block is idempotent and prevents duplicates. add_block creates a new block unconditionally. Calling it twice creates two separate blocks of the same type. Only use add_block when you have already confirmed via list_blocks that no block of this type exists. Block types: • colors — brand palette swatches (use add_colors) • typography — font entries (use add_typography) • rich_text — brand story / guidelines text (use set_brand_story) • logos — logo variants uploaded as SVG/PNG (use upload_asset with block_type=logos) • visuals — brand photography / illustrations (use upload_asset with block_type=visuals) • videos — brand video assets (use upload_asset with block_type=videos) • icons — SVG icon library (use upload_asset with block_type=icons) • collaterals — downloadable files like PDFs (use upload_asset with block_type=collaterals) • resources — source files, Figma, ZIPs (use upload_asset with block_type=resources)

ParametersJSON Schema
NameRequiredDescriptionDefault
kit_idYesKit UUID
typeYesBlock type
nameNoCustom display name for the block. Defaults to the type label.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It warns that calling twice creates duplicates and advises using ensure_block for idempotency. However, it does not disclose permissions, side effects, or error behavior. The duplicate warning is a key behavioral trait.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but well-structured, starting with a warning and then providing clear usage guidance and a mapping of block types to alternative tools. Every sentence adds value, though it could be slightly more concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description lacks information about the return value or output of the tool, and does not mention error handling or permissions. Given that there is no output schema, this is a gap. However, it covers the usage context well.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description does not add meaning beyond what the schema provides. The list of block types and their preferred tools is useful but relates to usage guidelines rather than parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool creates a new block unconditionally and distinguishes it from ensure_block and other sibling tools for specific block types. The verb 'creates' and resource 'block' are 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance is provided: prefer ensure_block, only use add_block after confirming via list_blocks, and each block type has a recommended tool. This clearly tells when and when not to use the tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_colorsA

Add color swatches to a Colors block. Valid fields per swatch: name (required), hex (required, #rrggbb), rgb ("R, G, B"), cmyk ("C, M, Y, K"), pantone. There is NO usage field on color swatches — put usage guidance in the block note via set_block_note instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
kit_idYesKit UUID
block_idYesBlock UUID (must be a colors block)
colorsYesArray of color swatches to add (max 50)

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the burden. It details valid fields and clarifies the absence of a usage field, which is helpful. However, it does not mention the max 50 limit (present in schema) or whether swatches are appended or replaced.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler. The first sentence states the primary action, the second provides critical field details and a caution. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations or output schema, the description covers the essential aspects: what it does, field requirements, and a notable exclusion. It could mention the maximum number of swatches (though in schema) or behavior on existing swatches, but overall it is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds value by providing examples and clarifying the format for rgb, cmyk, and pantone. It also explicitly states that hex is required in #rrggbb format, enhancing the schema's descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the action 'Add color swatches to a Colors block'. It uses a specific verb and resource, making the purpose unambiguous. The purpose is distinct from sibling tools like add_typography or set_block_note.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance that there is no 'usage' field and directs to set_block_note for usage guidance. This prevents misuse, though it does not elaborate on when to use this tool versus other add tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_typographyA

Add font entries to a Typography block. Four sources are supported: (1) "Google Fonts" — provide font_family, weights, usage. Fully automated. (2) "Adobe Fonts" — provide font_family + asset_url (Typekit CSS URL from fonts.adobe.com → Web Projects → Get embed code). (3) "Custom" — first upload the font file using upload_file tool, then pass asset_url (the returned URL) here. (4) "System" — provide font_family only (font must be available on the OS).

ParametersJSON Schema
NameRequiredDescriptionDefault
kit_idYesKit UUID
block_idYesBlock UUID (must be a typography block)
fontsYesArray of font entries to add (max 20)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It explains the behavior for each source (e.g., Google Fonts is 'Fully automated', Adobe Fonts requires asset_url). However, it does not disclose potential errors, rate limits, or the outcome of adding fonts (e.g., whether it overwrites existing entries).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single paragraph with clear enumeration of sources. It is well-structured and efficiently conveys necessary information, though it could be slightly more concise without losing value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the tool's purpose and usage well, but lacks information about return values or error handling. Since no output schema exists, this gap is notable. It is adequate for a tool with three required parameters but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by explaining the usage of asset_url for Custom and Adobe Fonts, and noting that weights default to [400]. This context goes beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Add font entries to a Typography block.' It distinguishes itself from siblings by being specific to typography blocks and enumerates four distinct font sources, providing clear differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance for each source, including prerequisites (e.g., needing to use upload_file tool for Custom fonts). However, it does not explicitly state when not to use the tool or suggest alternative tools, leaving some gap in decision-making.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_kitA

Create a new brand kit. Returns the kit ID needed for subsequent operations like adding blocks and uploading assets.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe brand's name, e.g. 'Acme Corp'
accent_colorYesPrimary brand color as hex, e.g. '#E55B00'
templateNoPortal template. Default: 'minimal'
taglineNoShort subtitle shown in the portal header, e.g. 'Modern solutions for modern businesses'

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It correctly identifies the operation as creation and mentions the returned kit ID, but lacks details on side effects, error conditions, or prerequisites beyond the schema's required fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no wasted words. It front-loads the purpose and then provides the key consequence (return of kit ID).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description is fairly complete for a simple create operation: it explains the action, the key return value (kit ID), and hints at usage flow. Could benefit from mentioning defaults or error handling, but is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description does not add extra meaning to the parameters beyond what is already in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Create a new brand kit' with a specific verb and resource, and distinguishes from sibling tools like update_kit and list_kits. Also mentions the return value (kit ID) needed for subsequent operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool should be used first before adding blocks or uploading assets, but does not explicitly state when to use it versus alternatives or provide any when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_blockA

Permanently delete a block and all its content from a kit. This cannot be undone.

ParametersJSON Schema
NameRequiredDescriptionDefault
kit_idYesKit UUID
block_idYesBlock UUID to delete

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses destructive behavior ('permanently delete', 'cannot be undone') which adds value beyond the schema. No annotations exist, so the description carries the burden. Lacks details on permissions, side effects, or confirmation steps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, no unnecessary words, front-loaded with action and permanent consequence. Efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple destructive tool with two parameters and no output schema, the description is mostly complete. Lacks error handling info or success/failure indication, but acceptable given simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage with clear descriptions for both parameters. The description adds no extra meaning beyond what the schema provides, so baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'delete' and resource 'block from a kit', distinguishing it from sibling tools like add_block or update_block. It specifies permanence and scope ('all its content').

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 update_block or ensure_block. Does not mention prerequisites or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ensure_blockA

PREFERRED over add_block. Idempotent block creation: if a block of the given type already exists in the kit, returns its block_id without creating a duplicate. If no matching block exists, creates one and returns the new block_id. Use this for every block in your workflow so re-runs and retries never produce extra blocks. The "created" field in the response tells you whether a new block was created (true) or an existing one was returned (false).

ParametersJSON Schema
NameRequiredDescriptionDefault
kit_idYesKit UUID
typeYesBlock type
nameNoCustom display name. Only applied when a new block is created; ignored when an existing block is returned.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully explains the idempotent behavior, the return value (block_id), and the 'created' field. It does not cover error cases or permissions, but the core behavioral traits are well disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with three sentences, each serving a distinct purpose: preference, idempotency explanation, usage advice, and response field clarification. It is front-loaded with the most critical information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description provides sufficient context about the return value and idempotency. It lacks details on error handling or edge cases, but for a create-or-get operation, it is reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description adds value by explaining that the name parameter is only applied on creation, ignored for existing blocks. This nuance goes beyond the schema description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: idempotent block creation, returning existing block_id if a block of the given type already exists, otherwise creating a new one. It explicitly names the preferred tool and distinguishes it from add_block.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'PREFERRED over add_block' and advises using this tool for every workflow to avoid duplicates on re-runs. It also clarifies when the name parameter is applied, providing clear guidance on usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_kitA

Fetch a kit's full data including all blocks and their content.

ParametersJSON Schema
NameRequiredDescriptionDefault
kit_idYesKit UUID

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but only states the tool fetches data. It omits behavioral details such as read-only nature, authentication needs, or error handling for missing kits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with the action, no redundant words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description provides a high-level understanding but lacks specifics on the return structure or behavior, leaving moderate gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with 'kit_id' described as 'Kit UUID'. The description adds no further parameter context, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Fetch') and resource ('kit's full data including all blocks and their content'), clearly distinguishing it from siblings like 'list_kits' or 'update_kit'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this tool is for retrieving complete kit data, but does not explicitly mention when to use it over alternatives (e.g., 'list_kits' for summary) or provide exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_workspaceA

Returns the workspace associated with the API key. Use this to verify the connection and check workspace details like plan, kit count, and storage usage.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries the burden. It mentions return details (plan, kit count, storage usage) but does not disclose restrictions like auth requirements or potential errors.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with the action, no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and no output schema, the description adequately covers purpose and usage. Could mention that a valid API key is required, but it's implied.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters, so baseline is 4. Description adds value by explaining what the tool returns, going beyond the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'returns' and the resource 'workspace', and specifies it is associated with the API key. It distinguishes from sibling tools which focus on blocks and kits.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states use cases: 'verify the connection and check workspace details.' While no alternatives are mentioned, the context implies it's the only tool for workspace-level info.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_blocksA

List all blocks in a kit with their IDs, types, names, and visibility. Use to find block_ids before adding content.

ParametersJSON Schema
NameRequiredDescriptionDefault
kit_idYesKit UUID

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations, so the description carries full burden. It discloses the output fields (IDs, types, names, visibility) but does not elaborate on behavior like pagination or ordering. This is adequate for a simple list tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences that front-load the purpose and follow with a usage hint. No redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with one parameter and no output schema, the description is complete. It specifies what is returned and when to use it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (kit_id described as 'Kit UUID'). The description does not add extra parameter context beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists blocks in a kit with specific fields (IDs, types, names, visibility). It distinguishes from sibling tools like add_block by noting it helps find block_ids before adding content.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use to find block_ids before adding content', providing clear context for when to use this tool. It does not mention exclusions, but the guidance is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_filesA

List files in your workspace storage. Filter by type to find fonts, images, documents, etc. Returns public URLs for each file.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoFilter by file type. Use 'font' to find previously uploaded font files.all
pageNoPage number

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavior. It states 'Returns public URLs for each file', indicating read-only behavior. However, it lacks details on pagination, ordering, or potential empty results.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences front-load the purpose and add filtering and return info. No redundant or unnecessary content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with two parameters and no output schema, the description covers core functionality and return value. Minor gap: paging behavior (e.g., page parameter default) is not explained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the description adds marginal value. It reinforces the type parameter's filtering purpose but does not add significant new meaning beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' and the resource 'files in your workspace storage'. It distinguishes from sibling tools like upload_file or list_blocks by focusing on listing stored files.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context by suggesting filtering for fonts, images, documents, etc., but does not explicitly state when to use this tool versus alternatives or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_kitsA

List all brand kits in the workspace. Optionally filter by status (draft, published, or all).

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter kits by status. Default: all

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the operation is a list with optional filtering, but lacks details on pagination, ordering, rate limits, or whether the list is complete or batched.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words. Front-loaded with the primary action and includes the key optional parameter. Highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core functionality but omits expected details for a list operation, such as return format, pagination, or sorting. Given no output schema, such information would enhance completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: the only parameter 'status' is fully described in the schema with an enum and default. The description adds no extra semantic meaning beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists all brand kits in the workspace, with an optional filter by status. It distinguishes from sibling tools like get_kit (single kit) and create_kit (creation).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for listing kits but does not explicitly state when to use this versus alternatives (e.g., get_kit for a single kit, or list_blocks for blocks). No exclusion criteria or prerequisites are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

publish_kitB

Publish a kit, making its portal publicly accessible. Returns the public URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
kit_idYesKit UUID

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries full burden but only mentions the basic state change and return value. It omits side effects, prerequisites, or reversibility.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with action and effect, no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple tool with one parameter, but lacks mention of prerequisites like kit state or error conditions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with 'Kit UUID' description; the tool description adds no further meaning to the parameter, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'publish a kit' and the effect 'making its portal publicly accessible', distinguishing it from siblings like unpublish_kit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use or not use this tool, nor any alternatives mentioned. Usage is only implied by the action description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_block_noteA

Set the sticky editorial note on any block (the "Block note" editor visible at the top of every block in the dashboard). Use this for usage guidance, rules, or context that applies to the whole block. For colors: "Electric Blue is always the primary CTA colour." For typography: "Never use Outfit below 600 weight." For logos: "Always use the SVG version on digital. Use reversed on dark backgrounds."

ParametersJSON Schema
NameRequiredDescriptionDefault
kit_idYesKit UUID
block_idYesBlock UUID (any block type)
noteYesThe note text to display above the block content.

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that the tool sets a note and gives examples, but does not mention idempotency, permissions, or side effects. However, for a simple write operation, this is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is highly concise: two sentences that front-load the purpose and provide immediate examples. Every sentence adds value, with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema, the description does not need to explain return values. It fully explains the tool's purpose, where the note appears, and what kind of content to use. It is complete for a simple set operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all parameters. The description adds value by providing examples of what to include in the note (e.g., color rules, typography rules), which goes beyond the schema's parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool sets the sticky editorial note on any block, specifying the exact location (the 'Block note' editor at the top of every block) and giving concrete examples. This distinguishes it from sibling tools like update_block or delete_block.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool: 'for usage guidance, rules, or context that applies to the whole block.' It implies that other types of updates should use different tools, though it does not list specific alternatives or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_brand_storyA

Set the content of a Rich Text block. Use for brand story, tone of voice, brand values, do's & don'ts extracted from guidelines documents. Accepts plain text or basic HTML.

ParametersJSON Schema
NameRequiredDescriptionDefault
kit_idYesKit UUID
block_idYesBlock UUID (must be a rich_text block)
contentYesThe text or HTML content. Plain text and <p>, <b>, <i>, <ul>, <li> tags are supported.

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that the tool accepts plain text or basic HTML and lists supported tags. However, it lacks details about overwriting behavior, permissions, or error handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core action, no redundant words. Every sentence provides distinct information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description should ideally mention return value or confirmation. It also does not cover prerequisites like kit existence or block type validation beyond the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds value by specifying what kind of content is expected (brand story, tone of voice) and supported HTML tags, going beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Set the content of a Rich Text block.' It specifies usage for brand story, tone of voice, etc., and distinguishes from siblings like set_block_note or update_block by focusing on rich text content.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit usage context: 'Use for brand story, tone of voice, brand values, do's & don'ts extracted from guidelines documents.' However, it does not state when not to use or mention alternative tools like update_block for other block types.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

unpublish_kitA

Unpublish a kit, taking it offline. The kit remains in draft and can be re-published later.

ParametersJSON Schema
NameRequiredDescriptionDefault
kit_idYesKit UUID

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, description carries full burden. States the kit remains in draft and can be re-published, indicating non-destructive behavior. Lacks details on permissions or side effects but adequate for the action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words, front-loaded with the action. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given one required param, no output schema, and no annotations, the description covers the state change (offline, draft, re-publishable). Could mention impact but is nearly complete for a simple toggle operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (kit_id as 'Kit UUID'). Description adds no additional meaning beyond the schema, meeting baseline but not exceeding it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the verb 'Unpublish' and resource 'kit', and adds context that it takes the kit offline, remains in draft, and is re-publishable. This differentiates it from sibling tools like publish_kit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage for taking a kit offline but provides no explicit when-to-use or when-not-to-use guidance. Mentions re-publishing but no alternatives or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_blockA

Update a block's name or visibility. To set the block note, use set_block_note instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
kit_idYesKit UUID
block_idYesBlock UUID
nameNoNew display name for the block
is_visibleNoWhether the block is visible in the portal

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must cover behavioral traits. It only states 'Update' implying mutation, but omits permissions, partial update behavior, reversibility, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences: first states purpose, second directs to the appropriate sibling. No redundant language.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but parameters are fully documented. Missing details on return value and behavior for omitted fields (partial update). Adequate but with gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with well-described parameters. The description adds no extra parameter meaning beyond what the schema provides, achieving baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool updates a block's name or visibility and explicitly distinguishes itself from the sibling set_block_note using 'instead'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It tells when to use (for name/visibility) and when not (use set_block_note for notes). However, no guidance on other alternatives like delete_block or ensure_block.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_kitA

Update a kit's top-level settings like name, accent color, template, tagline, logo, cover image, or white-label meta/favicon (Pro+). For logo_url and cover_image_url, pass CDN URLs returned by upload_file or upload_asset. For og_image_url and custom_favicon_url, pass CDN URLs from upload_file.

ParametersJSON Schema
NameRequiredDescriptionDefault
kit_idYesKit UUID
nameNoNew kit name
accent_colorNoNew accent color as hex
templateNoNew template
taglineNoNew tagline
logo_urlNoCDN URL for the kit header logo (from upload_file or upload_asset). Set to empty string to remove.
cover_image_urlNoCDN URL for the kit cover/hero image (from upload_file or upload_asset). Set to empty string to remove.
og_titleNo(Pro+) Custom page title used in browser tab and social sharing. Pass null to reset to kit name.
og_descriptionNo(Pro+) Custom meta description for search results and social sharing. Pass null to reset.
og_image_urlNo(Pro+) CDN URL for the custom social share / OG image (from upload_file). Set to empty string to remove.
custom_favicon_urlNo(Pro+) CDN URL for a custom browser tab favicon (from upload_file). Accepts ICO, PNG, or SVG. Set to empty string to remove.

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It mentions some behaviors (removing by empty string, Pro+ requirements), but does not disclose auth needs, rate limits, side effects on unchanged parameters, or error conditions. Partial disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured paragraph with two sentences. It is front-loaded with the main purpose and each sentence adds necessary detail without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (11 params, no output schema, no annotations), the description provides an overview and key parameter details. However, it lacks information on return values, error handling, and restrictions for non-Pro+ plans, leaving gaps for complete understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds valuable context beyond the schema: it explains the source of CDN URLs (upload_file/upload_asset) and the reset behavior for Pro+ parameters (pass null). This enriches parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Update' and resource 'kit's top-level settings', listing examples like name, accent color, template. This distinguishes it from sibling tools like publish_kit or add_block.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives some specific usage hints (e.g., passing CDN URLs for images, setting empty string to remove), but does not explicitly state when to use this tool over alternatives like create_kit or update_block. No exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

upload_assetA

Upload a file from the local filesystem into a block in BrandKity. Use for: logos (SVG/PNG/JPG), visuals (brand photos), videos (MP4/WebM), icons (SVG only), collaterals (PDF/images), and resources (ZIPs, source files). For custom font files, use upload_file → add_typography(asset_url) instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
kit_idYesKit UUID
block_idYesBlock UUID
file_pathYesAbsolute path to the local file, e.g. '/Users/jane/Projects/AcmeCorp/logos/acme-primary.svg'
block_typeYesTarget block type (used for MIME validation and storage path)
variant_nameNoFor logos blocks only — the logo variant slot name, e.g. "Primary", "Horizontal", "Icon Mark", "Mono", "Reversed". Defaults to first empty slot.
collateral_titleNoFor collaterals blocks only — the display title
collateral_descriptionNoOptional description for collateral items
resource_labelNoFor resources blocks only — the display label, e.g. "Figma Source File"
resource_categoryNoCategory grouping for the resource, e.g. "Source Files"

TDQS

A3.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose behavioral traits such as file size limits, overwrite behavior, access requirements, or error handling. It only mentions MIME validation implicitly via block_type, but that is included in the schema, not the description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: the first states the core action, the second lists use cases and an exception. No fluff, front-loaded, and every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 9 parameters (4 required), no output schema, and no annotations, the description covers overall purpose and usage scenarios but lacks behavioral details and conditional parameter interactions (e.g., variant_name only for logos). It is adequate but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all parameters. The description adds high-level usage context (e.g., file types) but does not elaborate on parameter-specific semantics beyond what is in the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool uploads a file into a block in BrandKity, and enumerates specific asset types (logos, visuals, videos, etc.) which distinguishes it from siblings like upload_file or upload_kit_logo.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly lists what file types to use this tool for and provides an alternative tool sequence (upload_file → add_typography) for font files, giving clear when-to-use and when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

upload_assets_batchA

Batch upload multiple local files into a single block with one tool call. Duplicate file_path values in the list are automatically skipped — each unique path is uploaded only once. Use for logos, visuals, videos, collaterals, resources, and icons. For files larger than 50 MB, prefer uploading individually with upload_asset. If the batch partially fails, resubmit only the failed files.

ParametersJSON Schema
NameRequiredDescriptionDefault
kit_idYesKit UUID
block_idYesBlock UUID
block_typeYesTarget block type (used for MIME validation and storage path)
filesYesList of files to upload in a single batch request (max 100 files)
parallelismNoHow many files to upload concurrently. Default: 3 (max: 6)
continue_on_errorNoIf true, continues uploading after failures and returns a partial result. Default: true

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses duplicate skipping, partial failure retry, and preference for individual uploads for large files. Could mention response format, but otherwise strong.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four concise, front-loaded sentences. No redundant information. Each sentence adds value: purpose, dedup, use cases, large file guidance, failure handling.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Lacks return value description and error handling details beyond partial failure. No output schema, so description should hint at response. Otherwise covers key aspects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions cover all 6 parameters with 100% coverage. Description adds minimal extra meaning beyond what schema already provides (e.g., block_type explanation).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool batches multiple local files into a single block and lists specific use cases (logos, visuals, videos, etc.). It distinguishes from sibling tool upload_asset by mentioning large file handling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance: use upload_asset for files larger than 50 MB, resubmit failed files on partial failure. Also explains automatic duplicate skipping.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

upload_cover_imageA

Upload an image to set as the kit's hero/cover image (shown at the top of the portal for supported templates). Uploads the file to workspace storage and then sets cover_image_url on the kit.

ParametersJSON Schema
NameRequiredDescriptionDefault
kit_idYesKit UUID
file_pathYesAbsolute path to the image file

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses the two-step process (upload to storage, then set URL) and mutation effect. However, no annotations exist, so description carries full burden. Missing details like error handling, permission needs, or behavior on invalid files.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose. No fluff or redundancy; every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose and high-level process but omits return value, error handling, and constraints. Given no output schema and no annotations, description could be more comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, but both parameters ('Kit UUID', 'Absolute path') are basic. The description adds context about the upload process but does not enhance parameter semantics (e.g., allowed image types, size limits). Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the verb 'Upload' and the resource 'kit's hero/cover image', explaining its role as the top portal image for supported templates. It distinguishes from siblings like upload_kit_logo (logo) or upload_asset (general asset) by focusing on cover image and workflow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives like upload_kit_logo or upload_asset. Lacks prerequisites (e.g., image format, size limits) or conditions when not to use it. Agent must infer from context alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

upload_fileA

Upload any file from the local filesystem to your BrandKity workspace storage (R2). Returns a public URL you can use in other tools. Common use cases: • Font files (.ttf, .otf, .woff, .woff2) → use returned URL in add_typography asset_url • Kit logo or cover image → use returned URL in update_kit logo_url/cover_image_url • General brand assets → manage from your file library Supported: images (PNG, JPG, SVG, WebP), video (MP4, WebM), fonts (TTF/OTF/WOFF/WOFF2), documents (PDF, DOCX, PPTX), ZIP.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYesAbsolute path to the local file, e.g. '/Users/jane/fonts/BrandFont-Regular.woff2'
tagsNoComma-separated tags to label this file, e.g. 'font,brand,primary'

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description must disclose all behavioral traits. It mentions uploading to R2 and returning a public URL, but lacks details on overwrite behavior, file size limits, or authentication requirements. It does list supported file types. Score 3 for adequate but incomplete disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is concise with a clear front-loaded statement, followed by a bullet list of common use cases. Every sentence adds value without redundancy. Score 5 for efficient structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple file upload tool, the description covers inputs, return value, supported file types, and typical usage. It lacks mention of file size limits or duplicate handling, but these are minor. Output schema is not needed. Score 4 for being mostly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by providing an example absolute path and clarifying tags as comma-separated with example. It also shows how parameters link to use cases. Score 4 for meaningful addition beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool uploads files to workspace storage and returns a public URL, with specific verb ('Upload'), resource ('file to BrandKity workspace storage'), and output. It distinguishes from sibling tools like upload_cover_image and upload_kit_logo by listing common use cases. Score 5 for specificity and differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit when-to-use examples (fonts, logos) and links to sibling tools (add_typography, update_kit). It implies alternatives exist for specific-brand uploads but does not explicitly say when not to use this tool. Score 4 for clear context and alternatives.

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.

  1. 22 tool updatesv1.4.2
    • First observedadd_block
    • First observedadd_colors
    • First observedadd_typography
    • First observedcreate_kit
    • First observeddelete_block
    • First observedensure_block
    • First observedget_kit
    • First observedget_workspace
    • First observedlist_blocks
    • First observedlist_files
    • First observedlist_kits
    • First observedpublish_kit
    • First observedset_block_note
    • First observedset_brand_story
    • First observedunpublish_kit
    • First observedupdate_block
    • First observedupdate_kit
    • First observedupload_asset
    • First observedupload_assets_batch
    • First observedupload_cover_image
    • First observedupload_file
    • First observedupload_kit_logo

TDQS

A3.8/5.0
Disambiguation4/5

Most tools have distinct purposes, but the multiple upload tools (upload_asset, upload_assets_batch, upload_file, upload_kit_logo, upload_cover_image) and add_block vs ensure_block may confuse an agent. Descriptions help, but some overlap remains.

Naming Consistency5/5

All tools use snake_case with a consistent verb_noun pattern (e.g., add_colors, list_kits, publish_kit). No mixing of conventions, making the naming predictable.

Tool Count4/5

22 tools is slightly high but still reasonable for a brand kit management server covering CRUD, uploads, publishing, and workspace info. Each tool has a clear role, though some could be consolidated.

Completeness3/5

Covers core workflows for kits, blocks, and assets, but missing delete_kit and delete_asset (only delete_block exists). Also lacks granular content retrieval for specific block types beyond get_kit.

Maintenance

ActivityStale
ResponsivenessNo issues

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to fetch company logos, brand colors, fonts, and corporate information from the Brandfetch API using domain lookups or keyword searches.
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A memory-backed brand generation runtime for agent-led creative iteration. Enables AI agents to plan, generate, review, and improve brand materials with persistent brand memory and structured workflows.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to generate on-brand visuals from ideas, URLs, documents, or PDFs in over 100 formats and 150+ languages, with consistent brand kits.
    10
    MIT
  • A
    license
    Not graded
    quality
    F
    maintenance
    Generates complete brand identity systems including colors, typography, logos, and design tokens with 58 MCP tools. Supports multi-format export and AI-assisted refinement.
    205
    2
    MIT

Latest Blog Posts

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/BrandKity/mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server