Brandfolder MCP server Let your AI agent organize your Brandfolder.

Connect Brandfolder assets, tags, collections and share links to your agent or reporting workflow. Use MCP or REST from n8n, Make, Zapier and scripts.

  • Free 7-day trial, no card
  • Unofficial, not affiliated with Brandfolder
Brandfolder logo Brandfolder Cloud Browser

13 tools Read and write

Upload to share link

What can you automate in Brandfolder? Use an AI agent, a workflow or a script.

  • Find assets by name, tag or field

  • Tag and describe new uploads

  • Fill in custom fields

  • Build a campaign collection

  • Make a private or expiring share link

  • Import images from URLs into a section

API, no MCP

Does Brandfolder have an MCP server or an API? An API yes. No MCP server of its own.

Brandfolder has an official REST API (v4) and webhooks, documented by Smartsheet, but no MCP server for assets (checked 6 Nov 2026). Cotlet runs 13 Brandfolder tools hosted, over MCP for agents and REST for scripts. There is no API key or developer setup, it works inside the ChatGPT and Claude apps, runs 24/7, and one Cotlet account covers many apps.

  • The API reads and writes assets, collections, sections, tags and custom fields. It signs in with a personal API key from your Brandfolder profile.
  • Webhooks send asset.create, asset.update and asset.delete to a public URL. Zapier has a Brandfolder app and a Zapier MCP page for it.
  • Smartsheet, which owns Brandfolder, has an MCP server for Smartsheet work data. Its documentation lists no Brandfolder tools.
Brandfolder's official API, its Zapier app and Cotlet compared
What you need Official APIZapier appCotlet
Search and read assets Yes, with a key Find an Asset Yes
Add an asset from a file URL Yes, public URL Create Asset Yes
Tags and custom fields Yes Create Tag, Create Custom Field Yes
Make a private, view-only or expiring share link Not in the reference Not among the actions shown Yes, after your OK
Start without code or a Brandfolder key Your code and key A Zapier plan Yes, sign in once

Checked 6 Nov 2026. Sources: Brandfolder API introduction · Brandfolder API reference · Brandfolder webhooks · Zapier: Brandfolder integrations · Smartsheet MCP server · Smartsheet Help: Share Brandfolder assets

Set up once

How does Cotlet connect to Brandfolder? One account, two ways to connect.

  1. 1Sign in to Brandfolder

    Use your own login in its Cotlet Cloud Browser.

  2. 2Choose MCP or REST

    Connect your agent or create a Cotlet API key.

  3. 3Run your workflow

    Ask your agent or send an HTTP request.

We never keep your Brandfolder password, and no share link or collection change reaches anyone until you approve it. Who can see your session

Any MCP client

Connect Brandfolder to your agent or workflow

Use MCP with your AI agent, or HTTP requests in n8n, Make, Zapier and scripts. The setup below takes three steps.

  1. 1

    Add the Cotlet address. Sign up, log in to Brandfolder in its Cloud Browser, press Enable for agents, then add https://cotlet.dev/mcp/v1 as an MCP server or connector in your agent.

  2. 2

    Approve the connection. Chat apps ask you to sign in to Cotlet. Editors, n8n and scripts use an API key from the console.

  3. 3

    Ask in plain words. Your agent searches, tags and shares from your Brandfolder login. Anything that reaches other people waits for your OK.

One shared address, https://cotlet.dev/mcp/v1, also carries Brandfolder next to your other apps. If you enable Brandfolder after connecting, refresh the connector so the new tools show up.

Claude
Settings > Connectors > Add custom connector
URL: https://cotlet.dev/mcp/v1/connect

Claude Code:
claude mcp add --transport http cotlet-brandfolder \
  https://cotlet.dev/mcp/v1 \
  --header "Authorization: Bearer $COTLET_API_KEY"
ChatGPT
Settings > Apps & Connectors > Create
MCP server URL: https://cotlet.dev/mcp/v1/connect
Authentication: OAuth
Cursor
// ~/.cursor/mcp.json
{
  "mcpServers": {
    "cotlet-brandfolder": {
      "url": "https://cotlet.dev/mcp/v1",
      "headers": { "Authorization": "Bearer ${env:COTLET_API_KEY}" }
    }
  }
}
Codex
# ~/.codex/config.toml
[mcp_servers.cotlet-brandfolder]
url = "https://cotlet.dev/mcp/v1"
bearer_token_env_var = "COTLET_API_KEY"
n8n
MCP Client Tool (inside an AI Agent)
Transport: HTTP Streamable
URL: https://cotlet.dev/mcp/v1
Auth: Bearer, <your key>
Tool: brandfolder_read
Make, Zapier
Make: MCP Client > Call a tool
Zapier: MCP Client by Zapier > Run Tool
Server URL: https://cotlet.dev/mcp/v1
Token: <your key>
Tool: brandfolder_write
6 read, 7 write

Brandfolder API endpoints and MCP tools

Find and read assets6

Searching inside a collection needs your login to be a member of it. Whether you get a CDN link depends on your Brandfolder plan.

  • list_brandfolders List the Brandfolders your account can open. read

    Returns each Brandfolder with its ID, slug, name and asset count, in the order Brandfolder shows them. Only Brandfolders your login can open are listed. Use the ID or slug as brandfolder in the other tools.

    MCP callbrandfolder_read → list_brandfolders

    REST endpointGET https://cotlet.dev/api/v1/brandfolder/brandfolders

    Parameters

    Parameters: list_brandfolders
    NameTypeDescription
    search string string Part of a Brandfolder name.

    Example response

    {
      "brandfolders": [
        {
          "id": "oqg5b8-9c1l2k-4xv0ng",
          "slug": "yourbrand",
          "name": "Yourbrand",
          "asset_count": 842
        },
        {
          "id": "p2h7d1-3m8n5q-6zt9ab",
          "slug": "yourbrand-events",
          "name": "Yourbrand Events",
          "asset_count": 119
        }
      ]
    }
  • list_sections List the sections of a Brandfolder. read

    Returns each section with its ID, name and default asset type, in Brandfolder order. Sections hold the assets and group them in the Brandfolder. Use the section ID in add_asset and search_assets.

    MCP callbrandfolder_read → list_sections

    REST endpointGET https://cotlet.dev/api/v1/brandfolder/sections

    Parameters

    Parameters: list_sections
    NameTypeDescription
    brandfolder string required string Brandfolder ID or slug from list_brandfolders.

    Example input

    {
      "brandfolder": "brandfolder"
    }

    Example response

    {
      "sections": [
        {
          "id": "sx7k2m-4d9f1a-8bq3pw",
          "name": "Logos",
          "default_asset_type": "GenericFile"
        },
        {
          "id": "sy1c8n-2e5g7b-9ur4qz",
          "name": "Product shots",
          "default_asset_type": "GenericFile"
        }
      ]
    }
  • list_collections List the collections of a Brandfolder. read

    Returns each collection you are a member of with its ID, name, tagline and asset count. A collection holds a subset of assets without copying them, and you must be a member of it to search inside it.

    MCP callbrandfolder_read → list_collections

    REST endpointGET https://cotlet.dev/api/v1/brandfolder/collections

    Parameters

    Parameters: list_collections
    NameTypeDescription
    brandfolder string required string Brandfolder ID or slug from list_brandfolders.

    Example input

    {
      "brandfolder": "brandfolder"
    }

    Example response

    {
      "collections": [
        {
          "id": "cn4r9t-7h2j5d-1wk8ys",
          "name": "Spring Launch",
          "tagline": "Assets for the April campaign",
          "asset_count": 36
        }
      ]
    }
  • search_assets Search the assets of a Brandfolder, a section or a collection. read

    Returns each asset with its ID, name, description, tags, section and created date. Pages follow the order Brandfolder returns them, and total says how many assets match. Searching inside a collection needs your account to be a member of it.

    MCP callbrandfolder_read → search_assets

    REST endpointGET https://cotlet.dev/api/v1/brandfolder/assets/search

    Parameters

    Parameters: search_assets
    NameTypeDescription
    brandfolder string required string Brandfolder ID or slug from list_brandfolders.
    query string string Search text. To filter on a custom field use custom_fields.{key}:"{value}".
    section_id string string Only assets in this section, from list_sections.
    collection_id string string Only assets in this collection, from list_collections.
    page integer integer Page number, starting at 1.
    per integer integer Assets per page. Default 100, maximum 3000.

    Example input

    {
      "brandfolder": "brandfolder"
    }

    Example response

    {
      "total": 2,
      "page": 1,
      "assets": [
        {
          "id": "as3d8f-1k6m2p-5vy7ct",
          "name": "Spring hero banner",
          "tags": [
            "banner",
            "spring"
          ],
          "section": "Product shots",
          "created_at": "2026-11-05T09:12:44Z"
        },
        {
          "id": "as4e9g-2l7n3q-6wz8du",
          "name": "Logo pack 2026",
          "tags": [],
          "section": "Logos",
          "created_at": "2026-11-04T16:03:10Z"
        }
      ]
    }
  • get_asset Read one asset with its attachments, tags and custom fields. read

    Returns the name, description, tags, custom fields, availability dates and the attachments with file name and CDN URL. The CDN URL returns 404 while the asset is pending approval or unpublished. Whether you get a CDN URL depends on your Brandfolder plan.

    MCP callbrandfolder_read → get_asset

    REST endpointGET https://cotlet.dev/api/v1/brandfolder/assets/{asset_id}

    Parameters

    Parameters: get_asset
    NameTypeDescription
    asset_id string required string Asset ID from search_assets.

    Example input

    {
      "asset_id": "asset_8c41d2"
    }

    Example response

    {
      "id": "as3d8f-1k6m2p-5vy7ct",
      "name": "Spring hero banner",
      "description": "Homepage banner, 1600 by 600",
      "tags": [
        "banner",
        "spring"
      ],
      "custom_fields": {
        "Campaign": "Spring Launch"
      },
      "attachments": [
        {
          "filename": "spring-hero.png",
          "cdn_url": "https://cdn.example.com/spring-hero.png"
        }
      ]
    }
  • list_custom_fields List the custom field keys of a Brandfolder with their allowed values. read

    Returns each custom field key and its values. When controlled custom fields are on, set_custom_field accepts only the allowed values listed here.

    MCP callbrandfolder_read → list_custom_fields

    REST endpointGET https://cotlet.dev/api/v1/brandfolder/custom-fields

    Parameters

    Parameters: list_custom_fields
    NameTypeDescription
    brandfolder string required string Brandfolder ID or slug from list_brandfolders.

    Example input

    {
      "brandfolder": "brandfolder"
    }

    Example response

    {
      "custom_fields": [
        {
          "key": "Campaign",
          "values": [
            "Spring Launch",
            "Summer Sale"
          ]
        },
        {
          "key": "Usage rights",
          "values": [
            "Internal",
            "Public"
          ]
        }
      ]
    }

Add and organize5

Files come from public links; nothing on your computer is uploaded. With controlled custom fields only the allowed values work.

  • add_asset Create an asset in a section from a public file URL. write

    Returns the new asset ID and the section it landed in. The file must sit at a public URL; files on your computer are not uploaded. It adds to your library and reaches no one, so it does not wait for your OK; delete_asset removes it.

    MCP callbrandfolder_write → add_asset

    REST endpointPOST https://cotlet.dev/api/v1/brandfolder/sections/{section_id}/assets

    Parameters

    Parameters: add_asset
    NameTypeDescription
    brandfolder string required string Brandfolder ID or slug from list_brandfolders.
    section_id string required string Section that receives the asset, from list_sections.
    name string required string Asset name.
    url string required string Public URL of the file. It must stay reachable for a couple of hours.
    filename string required string File name with extension.
    description string string Asset description.

    Example input

    {
      "brandfolder": "yourbrand",
      "section_id": "sy1c8n-2e5g7b-9ur4qz",
      "name": "Autumn hero banner",
      "url": "https://example.com/files/autumn-hero.png",
      "filename": "autumn-hero.png",
      "description": "Homepage banner, 1600 by 600"
    }

    Example response

    {
      "asset_id": "as5f0h-3m8o4r-7xa9ev",
      "name": "Autumn hero banner",
      "section": "Product shots",
      "attachments": 1
    }
  • tag_asset Add tags to an asset. write

    Returns the asset tags after the change. Tags you pass are added to the ones already there. It reaches no one and the extra tags can be removed in the app, so it does not wait for your OK.

    MCP callbrandfolder_write → tag_asset

    REST endpointPOST https://cotlet.dev/api/v1/brandfolder/assets/{asset_id}/tag

    Parameters

    Parameters: tag_asset
    NameTypeDescription
    asset_id string required string Asset ID from search_assets.
    tags array required array Tag names to add.

    Example input

    {
      "asset_id": "asset_8c41d2",
      "tags": "tags"
    }

    Example response

    {
      "asset_id": "as4e9g-2l7n3q-6wz8du",
      "tags": [
        "logo",
        "brand",
        "pack"
      ]
    }
  • set_custom_field Set the value of a custom field on an asset. write

    Returns the asset custom fields after the change. A key that is not in the Brandfolder fails when controlled custom fields are on. It reaches no one and you can set the old value back, so it does not wait for your OK.

    MCP callbrandfolder_write → set_custom_field

    REST endpointPUT https://cotlet.dev/api/v1/brandfolder/assets/{asset_id}/custom-field

    Parameters

    Parameters: set_custom_field
    NameTypeDescription
    asset_id string required string Asset ID from search_assets.
    key string required string Custom field key from list_custom_fields.
    value string required string Field value. With controlled custom fields it must be an allowed value.

    Example input

    {
      "asset_id": "asset_8c41d2",
      "key": "key",
      "value": "value"
    }

    Example response

    {
      "asset_id": "as4e9g-2l7n3q-6wz8du",
      "custom_fields": {
        "Campaign": "Spring Launch"
      }
    }
  • create_collection Create a collection in a Brandfolder. write

    Returns the collection ID and name. A collection is a way to organize, share and restrict a subset of assets, so create it empty and fill it with add_to_collection. It reaches no one until someone is given access, so it does not wait for your OK.

    MCP callbrandfolder_write → create_collection

    REST endpointPOST https://cotlet.dev/api/v1/brandfolder/collections

    Parameters

    Parameters: create_collection
    NameTypeDescription
    brandfolder string required string Brandfolder ID or slug from list_brandfolders.
    name string required string Collection name.
    tagline string string Short line under the name.

    Example input

    {
      "brandfolder": "brandfolder",
      "name": "Jane Doe"
    }

    Example response

    {
      "collection_id": "cn4r9t-7h2j5d-1wk8ys",
      "name": "Spring Launch",
      "asset_count": 0
    }
  • add_to_collection Put existing assets in a collection without copying them. writeasks first

    Returns how many assets were added and the new asset count of the collection. The assets stay in their sections. Members of the collection see them, so the call waits for your OK.

    MCP callbrandfolder_write → add_to_collection

    REST endpointPOST https://cotlet.dev/api/v1/brandfolder/collections/{collection_id}

    Parameters

    Parameters: add_to_collection
    NameTypeDescription
    collection_id string required string Collection ID from list_collections.
    asset_ids array required array Asset IDs from search_assets.

    Example input

    {
      "collection_id": "collection_8c41d2",
      "asset_ids": "asset ids"
    }

    Example response

    {
      "collection_id": "cn4r9t-7h2j5d-1wk8ys",
      "added": 2,
      "asset_count": 2
    }

Share and delete2

A share link carries the options of the share dialog: private, view-only and an end date. Deleting also takes the asset out of share links that include it.

  • delete_asset Delete an asset from a Brandfolder. writeasks first

    Returns the deleted asset ID. The asset leaves its sections and collections, and share links that include it lose it. Other people use these assets, so the call waits for your OK. By default you confirm each call; you can switch that off for this tool.

    MCP callbrandfolder_write → delete_asset

    REST endpointDELETE https://cotlet.dev/api/v1/brandfolder/assets/{asset_id}

    Parameters

    Parameters: delete_asset
    NameTypeDescription
    asset_id string required string Asset ID from search_assets.

    Example input

    {
      "asset_id": "asset_8c41d2"
    }

    Example response

    {
      "asset_id": "as5f0h-3m8o4r-7xa9ev",
      "deleted": true
    }
Encrypted, revocable

Who can see my Brandfolder session, and how do I revoke it?

  • What we store

    Your logged-in Brandfolder profile, encrypted with AES-256-GCM, in Finland. Not the password.

  • What your agent gets

    The 13 Brandfolder tools. Never the cookie or your password.

  • What the session sees

    What your login sees: the Brandfolders, sections, collections and assets you can open.

  • What no tool touches

    Users, invitations, permissions, plan, password and Brandfolder settings.

  • If Brandfolder asks to verify

    You keep your SSO or 2-step check and do it yourself. We never type it.

  • How to cut access

    Disable for agents in one click, or reset the browser.

Our site scores A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory (live results). There is no SOC 2 report or third-party pentest yet.

Tested every 12 h

What happens when Brandfolder changes? We repair the tool; your prompts stay the same.

between Cotlet test runs
12 h
for a call to a Brandfolder tool paused for repair
$0

When Brandfolder moves a button or renames a field, the fix happens on our side and your prompts keep working. status.cotlet.dev watches the site, console and API every 3 minutes.

3 tools ask first

Approvals, undo and mistakes Nobody hears about it until you say so.

  1. 01 Finds the assets Searches your Brandfolder for the logo pack.
  2. 02 Sets the options Private, view-only and an end date, as in the share dialog.
  3. 03 Waits for your OK The link shows up in your Cotlet console first.
  4. 04 Reports the link URL, name, options and the assets it holds.
Which Brandfolder actions can be undone
ActionUndo
Add an asset from a URLDelete it with delete_asset or in Brandfolder
Tag an assetRemove the extra tags in Brandfolder
Set a custom fieldSet the old value back
Create a collectionIt is empty and reaches no one until you give access
Create a share linkNo, anyone with the URL can open it as the options allow
Delete an assetNot from Cotlet

3 of 13 tools ask first: add_to_collection, create_share_link and delete_asset, the ones other people see or lose. Adding, tagging and field changes reach no one, so they run at once. Switch the wait off per tool for a scheduled run.

The example below adds an asset, which does not wait for an OK.

MCP call
{
  "name": "add_asset",
  "arguments": {
    "brandfolder": "yourbrand",
    "section_id": "sy1c8n-2e5g7b-9ur4qz",
    "name": "Autumn hero banner",
    "url": "https://example.com/files/autumn-hero.png",
    "filename": "autumn-hero.png",
    "description": "Homepage banner, 1600 by 600"
  }
}
REST
curl -X POST https://cotlet.dev/api/v1/brandfolder/sections/sy1c8n-2e5g7b-9ur4qz/assets \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"brandfolder":"yourbrand","name":"Autumn hero banner","url":"https://example.com/files/autumn-hero.png","filename":"autumn-hero.png","description":"Homepage banner, 1600 by 600"}'
Tool output
{
  "asset_id": "as5f0h-3m8o4r-7xa9ev",
  "name": "Autumn hero banner",
  "section": "Product shots",
  "attachments": 1
}

Scripts and cron jobs reach the same tools over REST at /api/v1/brandfolder, with the same key and price. A failed call costs nothing. The tools table lists the REST path of each tool.

Pay per call

How much does the Brandfolder MCP server cost?

About $26 a monthfor a brand team adding about 60 assets a month, 4,500 credits. Your Brandfolder contract is billed by Brandfolder as before.

A month of Brandfolder jobs for one brand team, in credits
JobCallsCredits
Tag and describe the day's new uploads10 × 222,200
Build a campaign collection3 × 260
Send a partner share link2 × 8160
Import 12 product photos from URLs13 × 2260
Weekly audit of untagged assets8 × 4320
Cloud Browser, 30 days1,500
Total4,500
  • Free 7-day trial, no card
  • 10 credits per successful call, MCP or REST
  • 50 credits a day for the Cloud Browser
  • Works with the Brandfolder login you already have

The month is our example: about 60 new assets, 2 campaign collections, 8 share links and a weekly audit. No public figure for a typical Brandfolder library exists. Brandfolder shows no prices (Premium and Enterprise, book a demo, 6 Nov 2026); Vendr's buyer data puts the median contract at $24,999 a year (53 purchases). Dollars at the $29 pack rate.

Cotlet credit packs: price, credits and calls at 10 credits each
Credits Price, one time Calls at 10 credits Per 1,000 credits
5,000 $29 500 $5.80
15,000 $79 1,500 $5.27
32,000 $149 3,200 $4.66
60,000 $249 6,000 $4.15

Only successful calls use credits; failed calls and timeouts cost nothing. At a balance of 0 calls pause, never a surprise charge. Authenticate with the Authorization: Bearer header.

Other options

Brandfolder MCP server on GitHub, Zapier or hosted: which to use

Other ways to reach Brandfolder from an agent or code, checked 6 Nov 2026
OptionWhat it doesWhere it stops
Brandfolder API v4Official REST API with webhooks for new, changed and deleted assets.No MCP server. You write the code and use your own API key; share links are not in the reference.
Zapier and its Brandfolder MCP pageTriggers for new assets and actions that create or update assets, collections, sections, tags and custom fields.Runs on Zapier plans and tasks. No share-link action among those shown.
moiso97barrantes-ship-it/Brandfolder-MCPCommunity MCP server for Claude on a Cloudflare Worker: search, create, update and delete assets and collections.0 stars, three commits on 23 Apr 2026, no license. You deploy it and give it your API key.
brandfolder-sdk-php and brandfolder-sdk-pythonOfficial SDKs for the API, 6 and 4 stars, last pushes 29 Oct 2026 and 20 Dec 2024.Code libraries for developers, not an MCP server.
Smartsheet MCP serverOfficial MCP server for sheets, reports and other Smartsheet work data.Its documentation lists no Brandfolder tools.

There is no official Brandfolder MCP server and no other hosted one besides ours that we found. If you have an engineer and want asset events pushed to your own server, the official API and its webhooks are the lean route. Cotlet fits when you want your agent working in ChatGPT or Claude today, with share links, no key to manage and one account for your other apps too.

EU company, since 2019

Who runs Cotlet A company you can look up.

Take Group sp. z o.o. runs Cotlet. It is a software company registered in Poland, EU (VAT PL6342984273), working since 2019, founded by Bart Krawczyk (Co-founder, CTO) and Jake Slugocki (Co-founder, SEO, sales and marketing). Write to contact@cotlet.dev with questions about the Brandfolder tools.

Brandfolder API and MCP: questions

How do I connect Brandfolder to ChatGPT or Claude?

Sign up at cotlet.dev, log in to Brandfolder once in its Cloud Browser and add Cotlet to ChatGPT or Claude, following the steps in your console. No API key is needed. ChatGPT and Claude then work in your Brandfolder account through Cotlet, in their phone apps too.

What can ChatGPT do in Brandfolder?

With Cotlet, ChatGPT, Claude and other AI agents handle jobs like these in Brandfolder: tag and describe new uploads; build a collection for a campaign; send a time-limited share link. You ask in plain words, and anything that reaches other people waits for your OK first.

Can I use the Brandfolder API without an AI agent?

Yes. Call Cotlet's REST API from a script or an HTTP step in n8n, Make or Zapier with your Cotlet key. MCP is the alternative for AI agents; you do not need to connect an agent to use REST.

How do I get access?

Create a free account at https://cotlet.dev, open Brandfolder under Integrations in the console and log in to Brandfolder in its Cloud Browser. The trial starts with your first app, no card asked.

Can my agent upload files from my computer to Brandfolder?

No. add_asset takes a public file URL, the same as the Brandfolder API: Brandfolder reads the file from that address, which must stay reachable for a couple of hours. Put the file at a link first, or add it in the app.

Does Brandfolder have webhooks?

Yes. Its API sends asset.create, asset.update and asset.delete events to a public URL (checked 6 Nov 2026). Cotlet has no event tool, so run your agent on a schedule instead, for example a daily search_assets pass for new uploads.

Do I need a Brandfolder API key?

No. Cotlet works in your signed-in Brandfolder session, so you need no key from Brandfolder. If you want the official API, you find your key at brandfolder.com/profile#integrations.

Is the MCP server different from the REST API?

Only the door is different. Both expose the same 13 tools, inputs and answers, with one API key and one price. Agents use MCP; scripts and HTTP steps use REST.

Is Cotlet affiliated with Brandfolder?

No. Cotlet is independent and not affiliated with Brandfolder or Smartsheet Inc.

Give your agent access to Brandfolder.

Free 7-day trial with 2,000 credits, no card needed.