Brandfetch MCP Server
The official Model Context Protocol server for
Brandfetch. It gives AI assistants access to brand
search, company data, logos and design assets, and LLM-ready brand context from
the Brandfetch API.
| Tool | Description |
|---|
brand_search | Search for brands by name using Brandfetch's search index. |
get_brand | Look up full brand data by domain, email, ticker, ISIN, or crypto symbol; renders the interactive brand card on MCP Apps hosts. |
get_brand_data | The same brand data with no card — for logo walls, multi-brand work, and data that feeds generated content. |
enrich_transaction | Identify a merchant brand from a credit-card or bank-statement string. |
get_brand_context | Get LLM-ready brand context for a domain — voice, audience, positioning, style. |
build_logo_urls | Construct Brandfetch Logo CDN URLs for one or more brands (no API call). |
send_feedback | Report bugs, wrong or stale brand data, or missing capabilities to Brandfetch. |
Interactive brand card (MCP Apps)
On hosts that support the MCP Apps extension
(claude.ai, Claude Desktop, ...), get_brand results render as an interactive
brand card: logo preview, format switcher (SVG/PNG/WebP/...), download and
copy-URL actions. Hosts without Apps support fall back to the regular JSON tool
result. get_brand_data returns the same brand data without the card, so a
logo wall of six brands is six data calls rather than six cards; the model picks
between the two by their descriptions. The widget source lives in
ui/ and is served by the server as the
ui://brandfetch/brand-card.html resource.
Quick start (hosted server)
The easiest way to use this server is to connect to the Brandfetch-hosted
endpoint — no install, no infrastructure:
https://mcp.brandfetch.io/mcp
Authentication uses a Brandfetch MCP token (a bf1. bearer token). Generate one
from the Keys and MCP page in the
Brandfetch dashboard, or connect via OAuth
from a client that supports it.
Claude Desktop / Claude Code
{
"mcpServers": {
"brandfetch": {
"type": "http",
"url": "https://mcp.brandfetch.io/mcp",
"headers": {
"Authorization": "Bearer bf1.YOUR_TOKEN"
}
}
}
}
Cursor
Add to ~/.cursor/mcp.json (or the project .cursor/mcp.json):
{
"mcpServers": {
"brandfetch": {
"url": "https://mcp.brandfetch.io/mcp",
"headers": {
"Authorization": "Bearer bf1.YOUR_TOKEN"
}
}
}
}
Clients that support OAuth can instead point at https://mcp.brandfetch.io/mcp
with no token and complete the authorization flow in the browser.
Quota errors
get_brand, get_brand_data, enrich_transaction, and get_brand_context consume API credits
from your plan; brand_search and build_logo_urls don't and keep working
when your credits run out.
- 429 "API quota exhausted" — your key has used all of its API credits.
Check usage or upgrade in the Brandfetch dashboard.
- 403 "Forbidden" — the key has no available API credits or lacks access
to that endpoint. The key itself may be valid, so check your plan and key
status in the dashboard before rotating it.
Self-hosting
This is an HTTP (streamable-http) MCP server built with
FastMCP. You can run your own instance with
Docker.
docker build -t brandfetch-mcp-server .
docker run --rm -p 8080:8080 brandfetch-mcp-server
The server then listens on http://localhost:8080/mcp. Point your MCP client at
that URL and send your Brandfetch credentials as a Bearer token.
The Dockerfile bundles the AWS Lambda Web Adapter
and a few AWS_LWA_* environment variables. These are inert outside of AWS
Lambda and can be ignored (or removed) for a plain container/host deployment.
Running without Docker
uv sync
uv run uvicorn src.main:app --host 0.0.0.0 --port 8080
Development
Requires uv and Python 3.11.
uv sync
uv run pytest
uv run ruff check .
uv run ruff format .
License
MIT