{
  "markdown": "<p align=\"center\">\n  <img src=\"public/logo.svg\" alt=\"OpenBrand logo\" width=\"80\" height=\"84\" />\n</p>\n\n<h1 align=\"center\">OpenBrand</h1>\n<p align=\"center\">Extract any brand from a URL</p>\n\n<p align=\"center\">Try it out at <a href=\"https://openbrand.sh\">openbrand.sh</a></p>\n\n<p align=\"center\">\n  <img src=\"public/openbrand.gif\" alt=\"OpenBrand demo\" width=\"600\" />\n</p>\n\n<p align=\"center\"><sub>Demo prepared with <a href=\"https://tight.studio/\">Tight Studio</a></sub></p>\n\nExtract brand assets (logos, colors, backdrops, brand name) from any website URL.\n\n## As an API call\n\nGet your free API key from [openbrand.sh/dashboard](https://openbrand.sh/dashboard).\n\n**cURL**\n\n```bash\ncurl \"https://openbrand.sh/api/extract?url=https://stripe.com\" \\\n  -H \"Authorization: Bearer your_api_key\"\n```\n\n**TypeScript**\n\n```typescript\nconst res = await fetch(\n  \"https://openbrand.sh/api/extract?url=https://stripe.com\",\n  { headers: { Authorization: \"Bearer your_api_key\" } }\n);\nconst brand = await res.json();\n```\n\n**Python**\n\n```python\nimport requests\n\nres = requests.get(\n    \"https://openbrand.sh/api/extract\",\n    params={\"url\": \"https://stripe.com\"},\n    headers={\"Authorization\": \"Bearer your_api_key\"},\n)\nbrand = res.json()\n```\n\n## As an [agent skill](https://skills.sh/tight-studio/openbrand/openbrand)\n\nAdd OpenBrand to Claude Code, Cursor, Codex, Gemini CLI, and [40+ other agents](https://skills.sh):\n\n```bash\nnpx skills add tight-studio/openbrand\n```\n\nOnce installed, your agent automatically knows how to extract brand assets — just ask it to \"extract brand assets from stripe.com\".\n\n## As an [npm package](https://www.npmjs.com/package/openbrand)\n\nNo API key required. Runs as a library from your server-side code.\n\n```bash\nnpm add openbrand\n```\n\n```typescript\nimport { extractBrandAssets } from \"openbrand\";\n\nconst result = await extractBrandAssets(\"https://stripe.com\");\nif (result.ok) {\n  // result.data.brand_name → \"Stripe\"\n  // result.data.logos → LogoAsset[]\n  // result.data.colors → ColorAsset[]\n  // result.data.backdrop_images → BackdropAsset[]\n} else {\n  // result.error.code → \"ACCESS_BLOCKED\" | \"NOT_FOUND\" | \"SERVER_ERROR\" | ...\n  // result.error.message → human-readable explanation\n}\n```\n\n## As an [MCP server](https://www.npmjs.com/package/openbrand-mcp)\n\nUse OpenBrand as a tool in Claude Code, Cursor, or any MCP-compatible client.\n\n1. Install the MCP server (no API key needed to install):\n\n```bash\nclaude mcp add --transport stdio openbrand -- npx -y openbrand-mcp\n```\n\n2. Get your API key from [openbrand.sh/dashboard](https://openbrand.sh/dashboard) and add it:\n\n```bash\nclaude mcp add --transport stdio \\\n  --env OPENBRAND_API_KEY=your_api_key \\\n  openbrand -- npx -y openbrand-mcp\n```\n\nOr add to `.claude/settings.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"openbrand\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"openbrand-mcp\"],\n      \"env\": {\n        \"OPENBRAND_API_KEY\": \"your_api_key\"\n      }\n    }\n  }\n}\n```\n\nThen ask Claude to \"extract brand assets from stripe.com\" and it will use the `extract_brand_assets` tool automatically.\n\n## Self-hosting the web app\n\n```bash\ngit clone https://github.com/tight-studio/openbrand.git\ncd openbrand\nbun install\nbun dev\n```\n\nNo environment variables required. Open http://localhost:3000.\n\n## What it extracts\n\n- **Logos** — favicons, apple-touch-icons, header/nav logos, inline SVGs (with dimension probing)\n- **Brand colors** — from theme-color meta tags, manifest.json, and dominant colors from logo imagery\n- **Backdrop images** — og:image, CSS backgrounds, hero/banner images\n- **Brand name** — from og:site_name, application-name, logo alt text, page title\n\n## Tech stack\n\nNext.js, React, TypeScript, Cheerio, Sharp, Tailwind CSS\n\n## License\n\n[MIT](LICENSE)\n",
  "bytes": 3731,
  "sha": "379c1c83b09511b21e3e51172d640e621ca0d11a23b9dda616d98a0f7f5dd12a",
  "repo_slug": "ethanjyx/openbrand",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_ethanjyx_openbrand_36607343/readme"
}