Skip to main content
    Back to Settings

    MCP Server Docs: Claude, Cursor & API Setup

    Connect Brand Kit OS to Claude, Cursor, and MCP clients so your brand context is available in every agent workflow

    Claude showing a globe icon? Reconnect with our branded URL

    Claude caches the favicon from the server URL you originally pasted. Re-add the connector using the branded URL below to see the Brand Kit OS icon.

    1. In Claude, open Settings → Connectors and remove the existing Brand Kit OS connector.
    2. Click Add Custom Connector and paste:
      https://www.brandkitos.com/mcp
      bk_claude_connector_v1
      No Client Secret — PKCE handles verification.
    3. Approve OAuth. The Brand Kit OS icon will appear on the connector tile.

    How It Works

    Brand Kit OS uses the Model Context Protocol (MCP) to give Claude direct access to your brand data. Once connected, Claude can pull your tone, voice, audience, messaging, and constraints in real time to produce on-brand content.

    There are two connection methods. Both require a Base or Premium subscription and an active API key.

    Prerequisites

    • Paid Subscription

      MCP access requires a Base or Premium plan. View plans

    • API key or OAuth connection

      The Custom Connector uses OAuth (PKCE) and authenticates automatically the first time you approve it in Claude — no API key required. The Cowork Plugin generates an API key for you automatically when you download the ZIP. You can also create or revoke keys manually in Settings → API Keys.

    Connection Methods

    Choose your preferred way to connect Brand Kit OS to Claude

    Web, Desktop & Mobile
    ~2 min setup

    Works on claude.ai (browser), Claude Desktop, and Claude Mobile. No files to download or install. Requires Claude Pro, Max, Team, or Enterprise.

    1. Open the Add custom connector dialog

    In Claude, go to Settings → Connectors and click Add custom connector.

    2. Name the connector

    Enter Brand Kit OS as the connector name.

    3. Paste the Custom MCP Server URL

    https://www.brandkitos.com/mcp

    4. Expand Advanced settings and paste the OAuth Client ID

    bk_claude_connector_v1

    Leave OAuth Client Secret empty — PKCE handles verification.

    Claude's Add custom connector dialog with Brand Kit OS name, the MCP server URL, and the OAuth Client ID filled in under Advanced settings.
    Claude's Add custom connector dialog — paste the URL into the second field and the Client ID under Advanced settings.

    5. Click Add and approve OAuth

    You'll be redirected to Brand Kit OS to approve the connection. Once authorized, the Brand Kit OS tools appear in your Claude conversations.

    6. Start using it

    Try asking Claude: "Load my brand kit" or "Write a blog post about [topic]" — Claude will automatically apply your brand voice and guidelines.

    Mobile access: If you set up the connector on claude.ai (web), it's automatically available on Claude Mobile (iOS & Android). You cannot add new connectors from the mobile app.

    Available MCP Tools (62)
    v1.7.0

    These tools are available to AI assistants connected via MCP, grouped by purpose. The canonical runtime list is always available via the list_brand_kit_tools tool.

    Read — discovery & navigation

    list_brand_kitsDeduped kits you own or share; includes membership_role, can_read, can_write_brand_kit, brand_kit_write_sections & can_write_knowledge_files
    list_brand_kit_toolsCanonical runtime list of every MCP tool the server exposes, with descriptions and required scopes
    get_brand_kit_summaryCompact brand overview (~500 tokens) — start here
    get_brand_kitComplete brand kit with all sections (large payload)
    get_brand_kit_completenessAudit which fields are populated, partial, or empty + per-field schema
    get_brand_context_for_agentTask-scoped brand context string ready to inject into agent prompts
    get_persona_system_promptFormatted system prompt for a specific AI persona
    list_library_archetypesList curated voice archetypes (e.g. The Sage, The Hero) for recommending and applying to a brand kit
    get_library_archetypeFetch one archetype by id, including the llm_instruction text for embodying it
    list_governance_platformsCanonical platform values accepted on platform-scoped writing_constraints (linkedin, reddit, instagram, …)

    Read — section data

    get_brand_kit_coreMission, vision, brand story, promises, taglines, storytelling elements, and industry_classification
    get_brand_kit_personalityPersonality traits, values, principles, and moods
    get_brand_kit_expressionTone of voice, verbal style, voice archetypes, and visual style
    get_brand_kit_visualsVisual identity: colors, typography, imagery direction
    get_brand_kit_productsProducts, services, features, and differentiators
    get_brand_kit_audienceTarget audience personas with demographics and pain points
    get_brand_kit_governanceConstraints, compliance notes, and disclosure policy
    get_brand_kit_personasAI persona configurations for the brand
    get_brand_kit_competitorsCompetitor analysis including colors, taglines, and value props
    get_brand_kit_seoSEO keywords, target queries, and on-brand SEO guidance
    get_brand_kit_social_profilesSocial media profiles linked to a brand kit
    list_expression_examplesStored "on-brand vs off-brand" expression examples
    list_compliance_standardsCompliance standards available to attach to a brand kit
    get_disclosure_diligence_questionsAI-disclosure diligence questionnaire for the governance section

    Read — assets & knowledge

    list_logo_assetsLogo metadata only (no URLs) — use to decide which asset to fetch
    get_logo_assetFull metadata + URL for a specific logo asset by ID
    get_brand_kit_logo_assetsDEPRECATED — prefer list_logo_assets + get_logo_asset
    list_knowledge_filesKnowledge file metadata + relevance_hint, with optional category filter
    get_knowledge_fileFull content of a specific knowledge file by ID

    Preview — dry-run a write before approving (read scope only)

    preview_brand_kit_core_updateShow the diff a core upsert would produce without writing
    preview_brand_kit_personality_updateShow the diff a personality upsert would produce without writing
    preview_brand_kit_expression_updateShow the diff an expression upsert would produce without writing
    preview_brand_kit_governance_updateShow the diff a governance upsert would produce without writing

    Write — brand kit sections (requires brand_kit:write or brand_kit:write:<section>; owner or admin only)

    update_brand_kitUpdate top-level brand kit fields (name, slug, etc.)
    upsert_brand_kit_coreUpdate mission, vision, brand story, brand promises, taglines
    upsert_brand_kit_personalityUpdate personality traits, values, principles, moods
    upsert_brand_kit_expressionUpdate tone, verbal style, archetypes, terminology
    upsert_brand_kit_governanceUpdate behavioral constraints, negative directory, writing rules. Platform-scoped rules: set platformSpecificEnabled: true and pass platform on each constraint (use list_governance_platforms for valid values). Coming soon: dedicated list_platform_rules / upsert_platform_rule tools — until then, platform-scoped governance lives here and per-platform tone overrides live in verbal_style slots on upsert_brand_kit_expression.
    upsert_brand_kit_seoUpdate SEO keywords, target queries, and on-brand SEO guidance
    update_brand_kit_visualsUpdate visual identity (colors, typography, imagery)
    generate_disclosure_statementGenerate a disclosure statement from the diligence questionnaire

    Write — products, personas, competitors & examples

    create_brand_kit_productAdd a new product or service
    update_brand_kit_productUpdate an existing product
    delete_brand_kit_productRemove a product
    create_audience_personaAdd a target audience persona
    update_audience_personaUpdate an existing target audience persona
    delete_audience_personaRemove an audience persona
    create_brand_kit_personaAdd an AI persona configuration
    update_ai_personaUpdate an existing AI persona configuration
    delete_brand_kit_personaRemove an AI persona
    create_brand_kit_competitorAdd a competitor record
    update_brand_kit_competitorUpdate an existing competitor record
    delete_brand_kit_competitorRemove a competitor
    create_expression_exampleAdd an on-brand / off-brand expression example
    update_expression_exampleUpdate an expression example
    delete_expression_exampleRemove an expression example
    update_logo_assetUpdate logo metadata (variant, theme, primary flag)
    delete_logo_assetRemove a logo asset

    Write — knowledge files (requires 'knowledge_files:write' scope; owner or admin only)

    upload_knowledge_fileUpload a new markdown / JSON / PDF document. Requires `original_file_name` (source filename incl. extension) plus optional `relevance_hint`.
    delete_knowledge_fileRemove a knowledge file

    Generate — AI-powered creation (1 token, writes immediately; owner or admin only)

    generate_audience_personaDEPRECATED — prefer preview_generate_audience_persona (review) then create_audience_persona (save). AI-generates a complete target audience persona, writing immediately
    generate_ai_personaDEPRECATED — prefer preview_generate_ai_persona (review) then create_brand_kit_persona (save). AI-generates a complete AI persona configuration, writing immediately

    Available MCP Prompts (7)

    Reusable prompt templates that AI assistants can invoke for common brand tasks.

    brand_voice_checkEvaluate text against the brand voice and governance constraints
    generate_brand_copyOn-brand marketing copy for social, email, web, ad, or blog
    brand_introElevator pitch, bio, about page, or tagline options
    competitor_positioningDifferentiation analysis from stored competitor data
    audience_persona_briefConcise persona brief for campaign planning
    create_target_audienceGuided interview that calls generate_audience_persona after confirmation
    create_ai_persona_guidedGuided interview that calls generate_ai_persona after confirmation

    Rate Limits

    MCP server requests
    100 per minute

    Applies to all tools equally. If you hit the limit, wait up to 60 seconds.

    API Key Scopes

    Scopes are set when you create an API key. OAuth tokens receive scopes from the authorization consent screen. Write tools also require owner or admin membership on the brand kit — scopes alone do not override team role.

    read

    Required baseline. Grants all read, list, and preview tools.

    brand_kit:write

    Full write access to all brand kit sections, products, personas, and generate tools.

    knowledge_files:write

    Opt-in scope for upload_knowledge_file only.

    Granular section write scopes

    Instead of brand_kit:write, you can grant least-privilege keys with per-section scopes such as brand_kit:write:expression. Configure these in Settings → API Keys.

    brand_kit:write:core

    Mission, vision, story, taglines, promises

    brand_kit:write:personality

    Traits, values, principles, moods

    brand_kit:write:expression

    Voice, tone, archetypes, platform rules, examples

    brand_kit:write:governance

    Constraints, compliance, approval workflows

    brand_kit:write:products

    Product and service catalog

    brand_kit:write:audience

    Target audience personas

    brand_kit:write:personas

    AI persona configurations

    brand_kit:write:competitors

    Competitor profiles

    brand_kit:write:visuals

    Colors, fonts, logos, kit name and summary fields

    brand_kit:write:seo

    Keywords and SEO metadata

    Team membership gate

    Shared brand kits: viewers and editors can read, but only owners or members with role admin may use write or generate tools via MCP, even when the credential lists write scopes. Check membership_role from list_brand_kits before calling write tools.

    Transport & Protocol

    Transport

    Streamable HTTP

    Not legacy SSE — fully spec-compliant

    Protocol Version

    2024-11-05

    Content Types

    The server supports both application/json and text/event-stream responses based on the client's Accept header.

    Session Management

    The server issues an Mcp-Session-Id header on the initialize response. Clients should include this header on all subsequent requests for the same session.

    Agent Workflow

    Common integration pitfalls when the server is healthy but something still looks wrong.

    Empty list_brand_kits: usually means this user has no brand kits and no memberships, or the API key is tied to a different account than the one you seeded. It is not proof that MCP is down.

    Cursor “connected” only confirms transport. Run tools/call for list_brand_kits to verify auth and data.

    UUIDs: resolve brand_kit_id from list_brand_kits. Placeholder strings and invalid hex forms are rejected.

    Shell: quote JSON carefully for curl -d; stuck commands often come from unclosed quotes.

    Shared kits: viewers and editors can read, but only owners or members with role admin may use write or generate tools via MCP, even with write scopes.

    Error Handling (Agent Contract)

    Tool failures and prompts/get application failures return a successful JSON-RPC response with isError: true in the result and a structured _meta.error_code. Agents should branch on the code, not parse the message string. JSON-RPC top-level error is reserved for protocol issues (e.g. unknown method or unknown prompt name).

    Tool error response shape

    {
      "jsonrpc": "2.0",
      "id": 42,
      "result": {
        "isError": true,
        "content": [{ "type": "text", "text": "Access denied to this brand kit" }],
        "_meta": {
          "error_code": "access_denied",
          "retryable": false,
          "recovery_hint": "Confirm the brand_kit_id is correct, or ask the brand kit owner to share it..."
        }
      }
    }

    Error codes & recommended agent behavior

    Code Retryable What the agent should do
    scope_denied No Surface the recovery hint verbatim. Do not retry — the user must mint a new key with the required scope.
    access_denied No Verify the brand_kit_id by calling list_brand_kits. If correct, ask the user to share the kit.
    validation_error No Read the recovery hint, fix the arguments, and retry. Never retry with the same arguments.
    not_found No Re-list the parent collection (e.g. get_brand_kit_personas) to find a valid id, or report to the user.
    quota_exceeded No Tell the user. Tokens are not deducted on failed generations — a refund is automatic.
    ai_gateway_failed Yes Retry once after a short delay. If it fails again, surface the message and the request_id.
    db_error Yes Retry once. If it fails again, treat as transient and surface the request_id for support.
    timeout Yes Retry with a smaller scope (e.g. get_brand_kit_summary instead of get_brand_kit). The server cancels upstream calls automatically.
    internal_error Yes Retry once. Surface the request_id to the user — this is unexpected and worth reporting.

    Request correlation

    Every response carries an Mcp-Request-Id header (also exposed inside _meta.request_id on tool errors and inside JSON-RPC error.data.request_id on protocol errors). Paste it into Settings → API Keys → Analytics to find the row in request logs.

    Time budgets

    • • Each tool call has a 90-second ceiling.
    • • AI gateway calls (generate_*) have a 60-second sub-budget; the upstream fetch is cancelled on timeout.
    • • Tokens are refunded automatically when an AI call times out or fails after deduction.

    Troubleshooting

    "No brand kit tools available"

    The MCP server connection may not have started. Check that your API key or OAuth connection is valid and restart Claude Desktop.

    401 Unauthorized / "Invalid API key"

    Your API key may have expired or been revoked. Generate a new one from Settings → API Keys.

    403 Forbidden — "Subscription required"

    MCP access requires a Base or Premium plan. Upgrade your plan.

    429 Rate limit exceeded

    Wait up to 60 seconds and try again. The limit is 100 requests per minute.

    Connector not appearing in Claude

    Make sure you've completely quit Claude Desktop and restarted it. For the Custom Connector, verify you entered the correct Server URL and Client ID.

    Globe icon on the Claude connector tile

    Claude caches the favicon from the server URL you originally pasted. Remove the existing Brand Kit OS connector in Settings → Connectors and re-add it using the branded URL https://www.brandkitos.com/mcp to pick up the Brand Kit OS icon.

    Claude asks for approval on every tool call

    This is a Claude client behavior, not a Brand Kit OS issue. Our MCP server already sends the readOnlyHint annotation on every read and preview tool (list_*, get_*, preview_*), per the MCP spec. Claude's connector UI currently prompts for approval regardless of this hint. Cursor and Cline honor the annotation and auto-approve read/preview calls. You can safely approve repeated read calls in Claude — they do not modify any data.

    Security

    • API keys are hashed (SHA-256) before storage. Brand Kit OS never stores your plaintext key.
    • The MCP server uses HTTPS for all communication.
    • OAuth tokens (for the Custom Connector) expire after 30 days and can be revoked at any time.
    • Rate limiting prevents abuse. Each API key has independent limits.

    Learn More