Realize MCP - Taboola
Interaja com a plataforma de publicidade Taboola usando linguagem natural por meio da API Taboola Realize.
Documentação
Servidor Realize MCP
Um servidor Model Context Protocol (MCP) que fornece acesso de leitura e escrita à API Realize da Taboola. Permite que assistentes de IA analisem campanhas, recuperem dados de desempenho, gerem relatórios e gerenciem campanhas e itens por meio de linguagem natural. Executa como um servidor HTTP Streamable com OAuth 2.1 — conecte-se ao servidor hospedado, sem necessidade de instalação local.
Início Rápido
Conecte-se ao servidor Realize MCP hospedado usando transporte Streamable HTTP com OAuth 2.1. Multiusuário, sem estado, sem necessidade de instalação local.
Cada cliente abaixo conecta-se à mesma URL, https://mcp.realize.com/mcp, e autentica
da mesma forma: no primeiro uso, abre um navegador para o SSO da Taboola, e o token de portador resultante é
o que as ferramentas do Realize usam para executar.
Escolha a seção para o seu cliente:
Claude Desktop e claude.ai
O Realize está listado no diretório de conectores do Claude, então você pode adicioná-lo sem digitar uma URL.
Opção 1 — pelo diretório de conectores (recomendado):
- Vá para Configurações → Conectores e navegue pelos conectores disponíveis
- Encontre Realize e selecione Conectar
- Uma janela do navegador abrirá para o SSO da Taboola — insira suas credenciais para obter um token de portador usado pelas ferramentas do Realize
Opção 2 — como conector personalizado:
Use esta opção se precisar apontar o Claude para um endpoint MCP do Realize diferente.
- Vá para Configurações → Conectores → Adicionar Conector Personalizado
- Insira o nome do servidor MCP e a URL:
https://mcp.realize.com/mcp - Selecione Conectar para iniciar o fluxo OAuth 2.1
- Uma janela do navegador abrirá para o SSO da Taboola — insira suas credenciais para obter um token de portador usado pelas ferramentas do Realize
Claude Code (CLI)
claude mcp add --transport http realize-mcp https://mcp.realize.com/mcp
Em seguida, execute /mcp dentro do Claude Code para acionar o fluxo OAuth.
Codex
codex mcp add realize-mcp --url https://mcp.realize.com/mcp
O Codex detecta que o servidor requer OAuth e inicia o fluxo para você. Para reautenticar
posteriormente, execute codex mcp login realize-mcp.
codex mcp add grava a entrada em ~/.codex/config.toml, então o Codex Desktop também a reconhece —
reinicie-o após adicionar. Para gravar a entrada manualmente:
[mcp_servers.realize-mcp]
url = "https://mcp.realize.com/mcp"
Cursor
Adicione o servidor a ~/.cursor/mcp.json:
{
"mcpServers": {
"realize-mcp": {
"url": "https://mcp.realize.com/mcp"
}
}
}
Os agentes de nuvem/web do Cursor também são suportados — eles completam o mesmo fluxo OAuth através do callback hospedado do próprio Cursor, sem necessidade de registrar nada antecipadamente.
Outros clientes MCP
Qualquer cliente que fale Streamable HTTP pode conectar-se apenas com a URL do servidor:
{
"mcpServers": {
"realize-mcp": {
"type": "http",
"url": "https://mcp.realize.com/mcp"
}
}
}
Seu cliente registra-se automaticamente na primeira conexão, então não há nada para configurar
antecipadamente — nenhum ID de cliente para solicitar à Taboola, nenhuma porta de callback para fixar e nenhum
processo de ponte como mcp-remote. Qualquer callback que seu cliente use, uma porta local ou sua própria
URL hospedada, é aceito como está.
Referência de Ferramentas
Gerenciamento de Contas
search_accounts — Pesquise contas por ID numérico ou consulta de texto. Chame esta primeiro para obter os valores de account_id necessários para todas as outras ferramentas. Os resultados incluem currency, country e time_zone_name para que o LLM possa escolher os valores corretos de orçamento e fuso horário.
query (string, optional) Digit-only = exact ID lookup; text = fuzzy name lookup; leave empty to list all accounts
page (integer, default: 1) min: 1
page_size (integer, default: 10) min: 1, max: 10 (hard cap)
Gerenciamento de Campanhas
Uma campanha contém orçamento, lances, agendamento e segmentação. Ela contém itens.
list_campaigns — Liste campanhas para uma conta (uma página por chamada).
account_id (string, required)
page (integer, default: 1) min: 1
page_size (integer, default: 10) min: 1, max: 10 (hard cap)
get_campaign — Obtenha detalhes específicos de uma campanha.
account_id (string, required)
campaign_id (string, required)
get_campaign_reach_estimate — Estime o alcance para uma configuração hipotética de campanha antes do lançamento. Previsão baseada em segmentação + lance/orçamento opcionais, não em desempenho histórico. Retorna limites inferior/superior para impressões e/ou usuários únicos mensais.
account_id (string, required)
campaign (object, required) Same targeting blocks as create_campaign / update_campaign below. Reach narrows as more inputs are added: targeting only → audience reach; + cpc (pricing_model=CPC) → narrowed by bid competitiveness; + spending_limit or daily_cap → additionally capped by impressions the budget can afford.
estimation_types (array of string, optional) IMPRESSIONS | MONTHLY_USERS — omit for both
Ferramentas de escrita de campanha (create_campaign, update_campaign)
Ambas as ferramentas aceitam os mesmos escalares e blocos de segmentação. Escalares fazem merge parcial; blocos de segmentação fazem substituição completa dentro do bloco. Novas campanhas são enviadas pausadas, a menos que is_active=true seja enviado.
Obrigatório difere:
create_campaign: account_id, name, marketing_objective, branding_text, spending_limit_model, bid_strategy
update_campaign: account_id, campaign_id
Escalares (todos opcionais na atualização; os obrigatórios na criação acima são obrigatórios na criação):
name (string)
marketing_objective (string enum) BRAND_AWARENESS | DRIVE_WEBSITE_TRAFFIC | LEADS_GENERATION | ONLINE_PURCHASES | MOBILE_APP_INSTALL
branding_text (string) Brand name shown with ads
spending_limit_model (string enum) NONE | MONTHLY | ENTIRE
spending_limit (number) Budget amount in account's default currency
daily_cap (number) Daily spend cap
pricing_model (string enum) CPC | VCPM (default CPC; VCPM requires bid_strategy=FIXED)
bid_strategy (string enum) SMART | FIXED | TARGET_CPA | MAX_CONVERSIONS | MAX_VALUE
cpc (number) Bid amount in account's default currency (per-click for CPC; per-1000-viewable-impressions for VCPM)
cpa_goal (number) Target cost per acquisition (TARGET_CPA only)
cpc_cap (number) Upper bound on bids
start_date (string) YYYY-MM-DD
end_date (string) YYYY-MM-DD
tracking_code (string) Query string appended to item URLs
daily_ad_delivery_model (string enum) BALANCED | STRICT
traffic_allocation_mode (string enum) OPTIMIZED | EVEN
is_active (boolean) true to launch, false to pause
Blocos de segmentação (todos object, opcionais, substituição completa dentro do bloco):
country_targeting Classic country (codes from search_geos dimension=countries)
region_country_targeting Classic region (codes from search_geos dimension=regions)
dma_country_targeting Classic DMA — US-only (codes from search_geos dimension=dma)
city_targeting Classic city (codes from search_geos dimension=cities)
postal_code_targeting Classic postal code (codes from search_geos dimension=postal_codes)
platform_targeting DESK | PHON | TBLT | TV | OTHR
os_targeting OS family + version (versions via search_techno)
browser_targeting Browser names from search_techno dimension=browsers
connection_type_targeting WIFI
activity_schedule Dayparting (time_zone via list_time_zones)
conversion_rules Conversion rule attachments (rules via get_conversion_rules)
publisher_targeting Publisher allow/block-list (search_publishers)
publisher_bid_modifier Per-publisher CPC bid modifier
contextual_segments_targeting Contextual segments (search_contextual_segments)
audiences_targeting First-party + custom audiences (search_audiences)
lookalike_audience_targeting Lookalike audiences (search_lookalike_audiences)
Itens
Um item é uma peça criativa veiculada sob uma campanha. Dois tipos são suportados: nativo (URL rastreada ou título/imagem/URL manual) e display (tag de anúncio de terceiros ou ativo hospedado no Realize).
list_items — Liste itens para uma campanha.
account_id (string, required)
campaign_id (string, required)
get_item — Obtenha um item específico.
account_id (string, required)
campaign_id (string, required)
item_id (string, required)
create_native_item — Crie um item nativo em uma campanha.
account_id (string, required)
campaign_id (string, required)
url (string, required) Landing URL
title (string, required) Headline
description (string, required) Body
thumbnail_url (string, required) Image URL
branding_text (string)
creative_name (string) Human-readable creative label shown in the Realize UI
cta (object) {cta_type} — values from list_cta_types
update_native_item — Atualize campos específicos em um item nativo. Envie [] para verification_pixel / viewability_tag para limpar.
account_id (string, required)
campaign_id (string, required)
item_id (string, required)
url (string)
title (string)
description (string)
thumbnail_url (string)
branding_text (string)
creative_name (string) Human-readable creative label shown in the Realize UI
is_active (boolean) Pause/resume
cta (object) {cta_type}
verification_pixel (object) Tracking pixels (full-replace within block)
viewability_tag (object) Viewability tag (full-replace within block)
Editabilidade: itens em PENDING_APPROVAL aceitam edições completas; RUNNING / PAUSED aceitam apenas alternâncias de is_active mais metadados menores; itens REJECTED não podem ser editados (recrie).
create_display_item — Crie um item de display em uma campanha. Envie exatamente um de ad_tag (tag de terceiros) ou asset_url (ativo hospedado no Realize).
account_id (string, required)
campaign_id (string, required)
url (string, required) Landing URL
creative_name (string, required) Human-readable creative label shown in the Realize UI
ad_tag (string) 3P tag (raw HTML/JS). Pair with `dimensions`.
dimensions (array of {width,height}) Required with `ad_tag`; rejected with `asset_url`.
asset_url (string) 1P hosted asset URL (image/video/HTML5 zip). Realize ingests by file extension.
update_display_item — Atualize campos em um item de display. Envie [] para verification_pixel / viewability_tag para limpar.
account_id (string, required)
campaign_id (string, required)
item_id (string, required)
url (string)
creative_name (string)
is_active (boolean) Pause/resume
ad_tag (string) Swap 3P tag; requires `dimensions`.
dimensions (array of {width,height})
asset_url (string) Swap 1P hosted asset (re-ingest by file extension).
verification_pixel (object) Tracking pixels (full-replace within block)
viewability_tag (object) Viewability tag (full-replace within block)
Descoberta
Use estas ferramentas para preencher campos de segmentação de campanhas e itens com valores válidos.
search_geos — Países, regiões, DMAs, cidades, códigos postais. Retorna pares de {code, name}; use o campo code para segmentação.
dimension (string enum, required) countries | regions | dma | cities | postal_codes
country_code (string) Required for regions / dma / cities / postal_codes
search_techno — Versões de SO e navegadores.
dimension (string enum, required) operating_system_versions | browsers
os_family (string) Required for operating_system_versions
search_audiences — Audiências primárias e personalizadas para uma conta.
account_id (string, required)
country_codes (string)
country_targeting_type (string enum) ALL | INCLUDE | EXCLUDE
search_lookalike_audiences — Audiências semelhantes (lookalike) de CRM / pixel / PBP.
account_id (string, required)
country_code (string)
search_contextual_segments — Segmentos contextuais.
account_id (string, required)
country_codes (string)
country_targeting_type (string enum) ALL | INCLUDE | EXCLUDE
search_publishers — Editores que uma conta pode segmentar.
account_id (string, required)
query (string, required)
publisher_ids (array)
page (integer, default: 1) min: 1
page_size (integer, default: 10) min: 1, max: 50
list_time_zones — Nomes de fusos horários IANA para activity_schedule.time_zone. Sem parâmetros.
list_cta_types — Valores de cta.cta_type para create_native_item / update_native_item. Sem parâmetros.
Regras de Conversão
Regras de conversão definem como o pixel universal atribui conversões para uma conta, e seus IDs preenchem conversion_rules na criação/atualização de campanha. Não há exclusão — retire uma regra definindo status para DISABLED / ARCHIVED.
get_conversion_rules — Liste as regras ACTION de uma conta (paginadas) ou busque uma por rule_id. Em uma conta NETWORK/pai, a listagem abrange contas filhas; o advertiser_id de cada regra nomeia seu proprietário.
account_id (string, required)
rule_id (string) Omit to list; set (numeric id as a string) to fetch one. Empty string is rejected
page (integer, default: 1) Ignored when rule_id is set
page_size (integer, default: 25) min: 1, max: 50. Ignored when rule_id is set
status (string enum) ACTIVE | DISABLED | ARCHIVED (ARCHIVED also selects disabled rules)
search_text (string) Case-insensitive substring match on display_name
create_conversion_rule — Crie uma regra de conversão. display_name é único por conta, e um evento pode conter apenas uma regra ACTIVE. Retorna a regra criada com seu id atribuído pelo servidor.
account_id (string, required)
display_name (string, required) Unique per account
event_name (string, required) 'page_view' for BASIC; any custom event for EVENT_BASED
type (string enum, required) BASIC | EVENT_BASED
category (string enum, required) VIEW_CONTENT | SEARCH | ADD_TO_CART | ... | MAKE_PURCHASE | LEAD | ... | OTHER
condition (object, required) Recursive match tree; leaf = property + predicate, branch = AND/OR/NOT + children[]
look_back_window (integer, required) Click-through attribution window in DAYS (1-30)
include_in_total_conversions (boolean, required) Count toward account Total Conversions
status (string enum, required) ACTIVE | DISABLED | ARCHIVED
effects (array, required) Revenue effects: [{type: REVENUE, data: "<numeric string>"}]; [] for none
view_through_look_back_window (integer) View-through window in MINUTES (1-10080)
include_in_total_value (boolean) Defaults to include_in_total_conversions
aggregation_type (string enum) AGGREGATED | LAST_VALUE (default AGGREGATED)
description (string)
update_conversion_rule — Atualize uma regra de conversão. Envie apenas os campos que está alterando; campos omitidos mantêm seu valor armazenado. Não ecoe de volta um objeto get_conversion_rules — seus nulos e campos somente leitura são rejeitados. type / category / event_name são imutáveis.
account_id (string, required)
rule_id (string, required)
... Any writable field from create_conversion_rule (send only the ones you are changing)
Relatórios (Formato CSV)
As ferramentas de relatório retornam CSV: um banner de resumo (contagem de registros, granularidade de linha, paginação) seguido pelas próprias linhas. Existem duas superfícies de relatório:
- Relatórios dinâmicos —
get_dynamic_report_settings, depoisget_dynamic_report_data. Você escolhe as dimensões, métricas, filtros e ordenação, então detalhamentos por campanha, site, dia e conteúdo e listas top-N são todos construídos aqui. get_campaign_history_report— um log fixo de alterações/auditoria para campanhas.
Relatórios dinâmicos
get_dynamic_report_settings — Primeiro passo obrigatório. Retorna o metamodelo da conta: cada dimensão, métrica e filtro disponível, e os operadores que cada filtro aceita. get_dynamic_report_data rejeita nomes que não estão nele, então obtenha-os daqui em vez de adivinhar.
account_id (string, required) From search_accounts
report_type (string, default: PERFORMANCE) PERFORMANCE is currently the only supported value
name_filter (string) Case-insensitive substring; narrows columns, filters and the conversion-rule list
get_dynamic_report_data — Execute uma consulta construída a partir desses nomes e retorne as linhas como CSV.
account_id (string, required) From search_accounts
columns (array, required) Fully qualified dimension/metric names from the metamodel
date_preset (string enum) YESTERDAY | LAST_7_DAYS | LAST_14_DAYS | LAST_30_DAYS | LAST_90_DAYS |
THIS_MONTH | LAST_MONTH | THIS_QUARTER | LAST_QUARTER | THIS_YEAR | LAST_12_MONTHS
date_from (string) Custom range start, yyyy-MM-dd
date_to (string) Custom range end, yyyy-MM-dd, on or after date_from
filters (array) [{name, operator, values}] — EQUALS | NOT_EQUALS | IN | NOT_IN |
GREATER_THAN | LESS_THAN | BETWEEN | LIKE. Account and date filters are added for you
sort (array) [{column, direction}], applied in list order; each column must also appear in `columns`
page (integer, default: 1) min: 1
page_size (integer, default: 20) min: 1, max: 100
report_type (string, default: PERFORMANCE) PERFORMANCE is currently the only supported value
Passe ou date_preset ou date_from + date_to, nunca ambos; um intervalo personalizado pode abranger no máximo 12 meses. Para top N por uma métrica, ordene por ela DESC e defina page_size como N. Não há total geral — uma página cheia significa que mais linhas permanecem.
get_campaign_history_report
Um log de alterações/auditoria em vez de um relatório de desempenho: uma linha por evento de alteração (change_type, old_value → new_value, performer), sem métricas de impressão, clique, gasto ou taxa.
account_id (string, required) From search_accounts
start_date (string, required) Format: YYYY-MM-DD
end_date (string, required) Format: YYYY-MM-DD
page (integer, default: 1) min: 1
page_size (integer, default: 20) min: 1, max: 100
Granularidade e interpretação de dados
Os relatórios retornam linhas achatadas. Cada relatório tem uma granularidade de linha — a chave composta que torna uma linha única. O mesmo site_id pode aparecer sob várias campanhas, então as linhas devem ser lidas em sua granularidade, não mescladas por um único id.
get_dynamic_report_data the dimension columns you requested # metrics-only query = one aggregate row, no grain
get_campaign_history_report (campaign_id, change_time, id) # audit log, not metrics
Cada resposta nomeia sua granularidade explicitamente no banner — essa, não a ordem das colunas, é a chave autoritativa. Colunas de granularidade e chave não são garantidas de liderar ou serem adjacentes, e os nomes das colunas são os rótulos do metamodelo, então não confie na posição.
As métricas são calculadas no servidor. ctr, cpc, cpm, cpa, cvr, roas são pré-calculadas por linha — leia-as como estão. Não as recalcule ou faça média entre linhas. Para agregar volume, some apenas os contadores brutos (clicks, impressions, spent).
Entre contas: os relatórios são limitados ao único account_id consultado e não agregam contas filhas; consulte cada conta filha separadamente. IDs de campanha/site/item são globalmente únicos, então nenhuma coluna de conta é necessária na granularidade.
Regras para números corretos:
- Onde o banner relata um
Total, ele é autoritativo — não some linhas entre páginas para derivar totais ou taxas.
Exemplos de Uso
Uso Básico
User: "Show me campaigns for Marketing Corp"
AI:
1. Searches accounts for "Marketing Corp"
2. Retrieves campaigns using the found account_id
3. Returns campaign list with performance metrics
Importante: Todas as operações exigem obter valores de account_id de search_accounts primeiro — nunca use IDs numéricos diretamente.
Encontrar Conta e Listar Campanhas
User: "Show campaigns for account 12345"
AI Process:
Step 1: search_accounts("12345") → Returns account_id: "advertiser_12345_prod"
Step 2: list_campaigns(account_id="advertiser_12345_prod")
Result: List of campaigns with details
Obter Relatório de Desempenho
User: "Get campaign performance for Marketing Corp last month"
AI Process:
Step 1: search_accounts("Marketing Corp") → account_id: "mktg_corp_001"
Step 2: get_dynamic_report_settings(account_id="mktg_corp_001")
→ the exact column names to use, e.g. PERFORMANCE_REPORT.CAMPAIGN.CAMPAIGN_NAME,
PERFORMANCE_REPORT.METRICS.CLICKS, PERFORMANCE_REPORT.METRICS.SPENT
Step 3: get_dynamic_report_data(
account_id="mktg_corp_001",
columns=[
"PERFORMANCE_REPORT.CAMPAIGN.CAMPAIGN_NAME",
"PERFORMANCE_REPORT.METRICS.CLICKS",
"PERFORMANCE_REPORT.METRICS.SPENT"
],
date_preset="LAST_MONTH"
)
Result: CSV report with one row per campaign
Conteúdo de Melhor Desempenho
User: "Show top 20 performing content items"
AI Process:
Step 1: search_accounts(...) → account_id: "mktg_corp_001"
Step 2: get_dynamic_report_settings(account_id="mktg_corp_001", name_filter="item")
→ the item/content dimension and metric names available to this account
Step 3: get_dynamic_report_data(
account_id="mktg_corp_001",
columns=["<item dimension>", "PERFORMANCE_REPORT.METRICS.SPENT"],
date_preset="LAST_30_DAYS",
sort=[{"column": "PERFORMANCE_REPORT.METRICS.SPENT", "direction": "DESC"}],
page_size=20
)
Result: Top 20 content items by spend
Atualizar Orçamento de uma Campanha
User: "Bump the daily cap on Marketing Corp's Spring Sale campaign to $500"
AI Process:
Step 1: search_accounts("Marketing Corp") → account_id: "mktg_corp_001"
Step 2: list_campaigns(account_id="mktg_corp_001") → find Spring Sale → campaign_id: "12345678"
Step 3: update_campaign(
account_id="mktg_corp_001",
campaign_id="12345678",
daily_cap=500
)
Result: Campaign updated; other fields and targeting untouched
Estimar Alcance Antes do Lançamento
User: "How many people could we reach on desktop in the US for Marketing Corp?"
AI Process:
Step 1: search_accounts("Marketing Corp") → account_id: "mktg_corp_001"
Step 2: get_campaign_reach_estimate(
account_id="mktg_corp_001",
campaign={
"country_targeting": {"type": "INCLUDE", "value": ["US"]},
"platform_targeting": {"type": "INCLUDE", "value": ["DESK"]}
},
estimation_types=["IMPRESSIONS", "MONTHLY_USERS"]
)
Result: Lower/upper bound estimates for impressions and monthly unique users
Criar um Item Nativo
User: "Add a new ad to campaign 12345678 pointing at example.com/landing — headline 'Save 20% This Spring', body 'Limited-time offer on all spring collection items.', thumbnail https://cdn.example.com/spring.jpg, Shop Now CTA"
AI Process:
Step 1: search_accounts(...) → account_id: "mktg_corp_001"
Step 2: list_cta_types() → confirm "SHOP_NOW" is a valid cta_type
Step 3: create_native_item(
account_id="mktg_corp_001",
campaign_id="12345678",
url="https://example.com/landing",
title="Save 20% This Spring",
description="Limited-time offer on all spring collection items.",
thumbnail_url="https://cdn.example.com/spring.jpg",
cta={"cta_type": "SHOP_NOW"}
)
Result: Native item created
Recursos de Relatório
- Formato CSV: Os relatórios retornam dados CSV eficientes com um banner de resumo (registros, granularidade de linha, paginação) acima das linhas
- Paginação: page_size padrão=20, máximo=100 para evitar respostas sobrecarregadas
- Ordenação: Relatórios dinâmicos ordenam por qualquer coluna solicitada, em qualquer direção; combine uma ordenação
DESCcompage_size=Npara uma lista top-N - Otimização de Tamanho: Truncamento automático para grandes conjuntos de dados
Suporte
Para preocupações de produto ou segurança, relatórios de bugs e solicitações de recursos, abra uma issue em github.com/taboola/realize-mcp/issues.
Privacidade e Tratamento de Dados
O Realize MCP acessa a API Realize usando suas credenciais OAuth e retorna dados apenas ao seu cliente MCP conectado. As informações processadas em conexão com seu uso do Realize MCP são tratadas de acordo com a Política de Privacidade da Taboola.
Licença
Licenciado sob a Apache License 2.0. Consulte LICENSE para detalhes.
Servidor Realize MCP — Acesso seguro e eficiente à plataforma de publicidade da Taboola por meio de linguagem natural.