OAUTH 2.1
BRAND ASSETS
Brandfetch resolves any company domain into its logos, colors, fonts, and company detail. Brandfetch MCP gives your agent authenticated access scoped to the user who authorized it.
import { ScalekitClient } from "@scalekit-sdk/node";
import { createReactAgent } from "@langchain/langgraph/prebuilt";
const sk = new ScalekitClient(env.SCALEKIT_ENV_URL, env.SCALEKIT_CLIENT_ID, env.SCALEKIT_CLIENT_SECRET);
// Brandfetch MCP tools, scoped to the signed-in user
const { tools } = await sk.tools.listScopedTools("user_123", {
filter: { connectionNames: ["brandfetchmcp"], toolNames: [
"brandfetchmcp_brand_search",
"brandfetchmcp_build_logo_urls",
"brandfetchmcp_enrich_transaction"
] },
pageSize: 100,
});
const agent = createReactAgent({ llm, tools });
await agent.invoke({ messages: [{ role: "user", content: "Pull the logo and brand colors for acme.com." }] });import OpenAI from "openai";
import { ScalekitClient } from "@scalekit-sdk/node";
const sk = new ScalekitClient(env.SCALEKIT_ENV_URL, env.SCALEKIT_CLIENT_ID, env.SCALEKIT_CLIENT_SECRET);
// Brandfetch MCP tools, scoped to the signed-in user
const { tools } = await sk.tools.listScopedTools("user_123", {
filter: { connectionNames: ["brandfetchmcp"], toolNames: [
"brandfetchmcp_brand_search",
"brandfetchmcp_build_logo_urls",
"brandfetchmcp_enrich_transaction"
] },
pageSize: 100,
});
const openai = new OpenAI();
const res = await openai.responses.create({
model: "gpt-5",
tools: tools.map((t) => t.openai),
input: "Pull the logo and brand colors for acme.com.",
});import Anthropic from "@anthropic-ai/sdk";
import { ScalekitClient } from "@scalekit-sdk/node";
const sk = new ScalekitClient(env.SCALEKIT_ENV_URL, env.SCALEKIT_CLIENT_ID, env.SCALEKIT_CLIENT_SECRET);
// Brandfetch MCP tools, scoped to the signed-in user
const { tools } = await sk.tools.listScopedTools("user_123", {
filter: { connectionNames: ["brandfetchmcp"], toolNames: [
"brandfetchmcp_brand_search",
"brandfetchmcp_build_logo_urls",
"brandfetchmcp_enrich_transaction"
] },
pageSize: 100,
});
const anthropic = new Anthropic();
const msg = await anthropic.messages.create({
model: "claude-opus-4-6",
max_tokens: 1024,
tools: tools.map((t) => t.anthropic),
messages: [{ role: "user", content: "Pull the logo and brand colors for acme.com." }],
});import { Agent } from "@google/adk/agents";
import { ScalekitClient } from "@scalekit-sdk/node";
const sk = new ScalekitClient(env.SCALEKIT_ENV_URL, env.SCALEKIT_CLIENT_ID, env.SCALEKIT_CLIENT_SECRET);
// Brandfetch MCP tools, scoped to the signed-in user
const { tools } = await sk.tools.listScopedTools("user_123", {
filter: { connectionNames: ["brandfetchmcp"], toolNames: [
"brandfetchmcp_brand_search",
"brandfetchmcp_build_logo_urls",
"brandfetchmcp_enrich_transaction"
] },
pageSize: 100,
});
const agent = new Agent({
name: "brandfetchmcp_agent",
model: "gemini-2.5-pro",
instruction: "Act as the design agent for the signed-in user.",
tools,
});
await agent.run("Pull the logo and brand colors for acme.com.");// shared token
audit → bot_service_account
user_filter → broken
// scalekit
audit → user_abc
scope → enforced ✓