Skip to content
Docs page

API reference

MCP server

Connect Claude Desktop, Cursor or any MCP client to Brand Identity API and give your agent get_brand, search_brands and get_logo_url.

The Model Context Protocol lets an AI assistant call tools on its own. With the Brand Identity API MCP server connected, you can ask for “the Linear logo as an SVG” or “the brand colors of these ten companies” and the agent fetches real data instead of guessing.

Endpoint

POSThttps://brandidentityapi.com/mcp

A remote MCP server over Streamable HTTP. It is stateless, so there is no session to keep alive. Authenticate with a secret key in the Authorization header. A publishable key also connects, but can only search and build logo URLs. Without a key, a client can still list the tools and call get_logo_url.

Tools

All three tools are read-only: none of them changes anything in your account.

ToolArgumentsReturnsKey
get_branddomain{ brand, cached, credits }: the full brand record, whether it came from the index, and the credits it cost and you have left. domain may also be a URL or an email address.Secret
search_brandsquery, limit?{ query, results }: brands by name or domain, best match first, with their icons. limit is 1 to 20, default 10.Secret or publishable
get_logo_urldomain, type?, theme?, size?{ url, markdown, html }: a logo CDN URL ready to embed. Fetches nothing. type is icon, symbol or logo; theme is the ink color; size is 16 to 1024.Any, or none

A failed tool call comes back as a readable tool error (for example, a domain with no site), so the agent can explain it or try another domain.

Claude Code

bash
claude mcp add --transport http brand-identity-api https://brandidentityapi.com/mcp \
  --header "Authorization: Bearer $BRAND_IDENTITY_API_KEY"

Claude Desktop

Claude Desktop starts local servers from claude_desktop_config.json (Settings, Developer, Edit Config). The mcp-remote package bridges it to a remote server and passes your key as a header. Restart Claude Desktop after saving.

claude_desktop_config.json
{
  "mcpServers": {
    "brand-identity-api": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://brandidentityapi.com/mcp",
        "--header",
        "Authorization:${BRAND_IDENTITY_API_AUTH}"
      ],
      "env": {
        "BRAND_IDENTITY_API_AUTH": "Bearer lh_sk_your_secret_key"
      }
    }
  }
}
The header is split into Authorization: and an environment variable because some systems break arguments on the space in Bearer lh_sk_....

Cursor

Add the server to .cursor/mcp.json in a project, or to ~/.cursor/mcp.json for every project:

.cursor/mcp.json
{
  "mcpServers": {
    "brand-identity-api": {
      "url": "https://brandidentityapi.com/mcp",
      "headers": {
        "Authorization": "Bearer lh_sk_your_secret_key"
      }
    }
  }
}

Other clients

Any client that speaks Streamable HTTP can connect: give it the URL https://brandidentityapi.com/mcp and an Authorization: Bearer header. To check the server by hand, list its tools with a plain JSON-RPC call:

bash
curl https://brandidentityapi.com/mcp \
  -H "Authorization: Bearer $BRAND_IDENTITY_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Keep the key out of shared config

A config file checked into a repository is shared with everyone who can read it. Put the key in an environment variable or your editor's secret store, and give each teammate their own key.

What counts

get_brand is metered exactly like GET /v1/brands/{identifier}: one lookup when a brand is found, nothing when it is not. search_brands and get_logo_url are free. See Rate limits and quotas.