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.
| Tool | Arguments | Returns | Key |
|---|---|---|---|
| get_brand | domain | { 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_brands | query, 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_url | domain, 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
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.
{
"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"
}
}
}
}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:
{
"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:
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.