Skip to content
Nesta página

Referência do servidor MCP

O Revolink suporta o Model Context Protocol (MCP): um padrão aberto que permite que assistentes de IA (Claude, Cursor, Windsurf e outros) interajam com serviços externos como ferramentas.

Depois de configurado, o seu assistente de IA pode criar links, atualizar regras de roteamento e consultar análises sem que você precise sair do chat.

Endpoint

POST https://api.revolink.link/apiv1/mcp

Transporte: Streamable HTTP (sem estado, uma requisição por chamada de ferramenta).


Autenticação

O MCP do Revolink suporta duas formas de conexão. Escolha a que combina com o seu caso:

Chave de APIOAuth 2.0
Ideal paraScripts, ferramentas de desenvolvimento, automaçãoclaude.ai na web, apps, equipes
ConfiguraçãoGere uma chave e cole na configuraçãoBasta colar a URL e aprovar o acesso
Gerenciamento de chavesVocê gerencia a chaveNenhum: é automático

Método 1: chave de API

Gere uma chave em Perfil → Integrações, ative as permissões (scopes) de MCP de que precisa e informe-a na configuração do seu cliente. Veja Configuração abaixo para as instruções de cada cliente.

Erros:

HTTPCausa
401Chave de API ausente ou inválida, ou chave expirada
403A chave existe, mas não tem permissões de MCP ativadas

Método 2: OAuth 2.0

Para clientes como o claude.ai (web) que suportam OAuth: não é preciso chave. Você aprova o acesso uma vez e o cliente cuida de tudo automaticamente.

Como conectar (claude.ai na web):

  1. Vá em Settings → Integrations no claude.ai.
  2. Clique em Add MCP server.
  3. Cole: https://api.revolink.link/apiv1/mcp
  4. Clique em Connect: você será redirecionado ao Revolink para aprovar o acesso.
  5. Pronto. As ferramentas do Revolink já estão disponíveis no seu chat.

Para revogar o acesso a qualquer momento: Perfil → Aplicativos conectados → Revogar.


Permissões do MCP

As permissões do MCP são independentes das permissões normais da API. Uma chave pode ter acesso total à API e nenhum ao MCP, ou o contrário. Permissões (scopes) disponíveis:

PermissãoO que libera
links:readlist_links, get_link
links:writecreate_link, update_link
links:deletedelete_link
links:bulkbulk_create_links
analytics:readget_link_analytics, get_workspace_analytics

Na autenticação por chave de API, as permissões são configuradas por chave em Perfil → Integrações → MCP no aplicativo.

No OAuth, as permissões são solicitadas pelo cliente e aprovadas pelo usuário durante o fluxo de consentimento.


Configuração

Chave de API: passo a passo

  1. Vá em Perfil → Integrações no aplicativo Revolink.
  2. Clique em Criar chave de API.
  3. Dê um nome à chave (por ex. Claude MCP).
  4. Em MCP, ative as permissões que quer conceder. Cada permissão pode ser ativada de forma independente.
  5. Clique em Criar e copie a chave: ela é exibida apenas uma vez.

Uma chave com MCP ativado mas sem permissões de MCP selecionadas será rejeitada no endpoint do MCP com um erro 403.

Configure o seu cliente de IA (chave de API)

Claude Desktop (claude_desktop_config.json)

O Claude Desktop usa transporte stdio. Use a ponte mcp-remote para se conectar ao endpoint HTTP do Revolink.

json
{
  "mcpServers": {
    "revolink": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://api.revolink.link/apiv1/mcp",
        "--header",
        "X-Api-Key:YOUR_API_KEY"
      ]
    }
  }
}

Abra por: menu do Claude → Settings → Developer → Edit Config. Reinicie o Claude Desktop depois de salvar.

Claude Code (CLI)
bash
claude mcp add --transport http revolink https://api.revolink.link/apiv1/mcp \
  --header "X-Api-Key: YOUR_API_KEY"

Ou adicione a .claude/settings.json:

json
{
  "mcpServers": {
    "revolink": {
      "type": "http",
      "url": "https://api.revolink.link/apiv1/mcp",
      "headers": {
        "X-Api-Key": "YOUR_API_KEY"
      }
    }
  }
}
Cursor / Windsurf (.cursor/mcp.json or .codeium/windsurf/mcp_config.json)
json
{
  "mcpServers": {
    "revolink": {
      "url": "https://api.revolink.link/apiv1/mcp",
      "headers": {
        "X-Api-Key": "YOUR_API_KEY"
      }
    }
  }
}
VS Code (.vscode/mcp.json)
json
{
  "servers": {
    "revolink": {
      "type": "http",
      "url": "https://api.revolink.link/apiv1/mcp",
      "headers": {
        "X-Api-Key": "${input:revolinkApiKey}"
      }
    }
  },
  "inputs": [
    {
      "id": "revolinkApiKey",
      "type": "promptString",
      "description": "Revolink API Key",
      "password": true
    }
  ]
}

Requer o VS Code 1.99+ com GitHub Copilot. O prompt ${input:revolinkApiKey} pedirá sua chave no primeiro uso.

Zed (~/.config/zed/settings.json)
json
{
  "context_servers": {
    "revolink": {
      "settings": {
        "url": "https://api.revolink.link/apiv1/mcp",
        "api_key": "YOUR_API_KEY"
      }
    }
  }
}

Configure o seu cliente de IA (OAuth)

claude.ai (web)

Não é preciso configuração. Quando você adicionar um novo servidor MCP em claude.ai → Settings → Integrations, informe:

https://api.revolink.link/apiv1/mcp

O Claude redirecionará você automaticamente para a página de consentimento do Revolink.


Espaços de trabalho: seleção automática

Você nunca precisa informar um ID de espaço de trabalho manualmente. Quando você envia uma requisição sem escolher um espaço de trabalho, o servidor devolve uma lista dos seus espaços de trabalho disponíveis. A IA escolhe o certo com base no contexto e continua a operação automaticamente. Do seu ponto de vista isso é invisível: basta descrever o que precisa em linguagem natural.


Ferramentas disponíveis

Retorna uma lista paginada dos links de um espaço de trabalho.

Permissão necessária: links:read

ParâmetroTipoObrigatórioDescrição
pageinteger—Número da página (padrão: 1)
limitinteger—Links por página, de 1 a 100 (padrão: 20)
searchstring—Filtra por nome ou slug
tagIdsstring[]—Filtra por IDs de tags

Retorna todos os detalhes de um link, incluindo as regras de roteamento.

Permissão necessária: links:read

ParâmetroTipoObrigatórioDescrição
linkIdstring✅ID do link

Cria um novo link inteligente com regras de roteamento.

Permissão necessária: links:write

ParâmetroTipoObrigatórioDescrição
namestring✅Nome do link (máx. 255 caracteres)
rulesRule[]✅Regras de roteamento: veja o Objeto de regra abaixo. Exatamente uma deve ter isDefault: true
slugstring—Slug personalizado (minúsculas, hifens permitidos). Gerado automaticamente se omitido
domainstring—Domínio personalizado. Padrão: o do espaço de trabalho
descriptionstring—Nota interna (máx. 1000 caracteres)
activeboolean—Se o link está ativo (padrão: true)
tagIdsstring[]—IDs das tags a anexar
clicksLimitinteger—Desativa o link após N cliques. 0 = sem limite
expirationDatestring—Data e hora ISO 8601. O link é desativado depois dessa data
conversionTrackingboolean—Ativa o pixel de conversão
gpsTrackingboolean—Ativa a captura de localização GPS no clique
abTestAbTest—Configuração do teste A/B: veja o Objeto de teste A/B abaixo

Exemplo de pedido:

«Crie um link chamado "Product Hunt Launch" que envie visitantes de computador para a landing page de desktop e visitantes de celular para a landing page mobile.»


Atualiza um link existente. Inclua apenas os campos que quer alterar.

Permissão necessária: links:write

Os mesmos parâmetros de create_link, além de:

ParâmetroTipoObrigatórioDescrição
linkIdstring✅ID do link a atualizar
ogTitlestring—Título OG exibido quando o link é compartilhado nas redes sociais (máx. 255 caracteres)
ogDescriptionstring—Descrição OG para as prévias nas redes sociais (máx. 500 caracteres)
appearanceColorstring—Cor da marca em hex (por ex. #FF5733)

Quando rules é informado, todo o array de regras é substituído. Inclua todas as regras que quer manter, não só as alteradas. A IA busca internamente os IDs das regras existentes antes de atualizar.


Exclui um link de forma permanente.

Permissão necessária: links:delete

ParâmetroTipoObrigatórioDescrição
linkIdstring✅ID do link a excluir

Cria vários links em uma única requisição. Sujeito à cota de links do plano.

Permissão necessária: links:bulk

ParâmetroTipoObrigatórioDescrição
linksLinkInput[]✅Array de objetos de link (de 1 a 100). Cada um tem os mesmos campos de create_link

A resposta inclui os arrays created (bem-sucedidos) e failed (com falha, com o motivo), então é possível um sucesso parcial.


Retorna as análises de cliques de um link, detalhadas por país, dispositivo, navegador, SO, regra de roteamento e variante A/B.

Permissão necessária: analytics:read

ParâmetroTipoObrigatórioDescrição
linkIdstring✅ID do link
fromstring—Data inicial YYYY-MM-DD (padrão: todo o período)
tostring—Data final YYYY-MM-DD (padrão: hoje)

get_workspace_analytics

Retorna as análises de cliques agregadas de todos os links de um espaço de trabalho.

Permissão necessária: analytics:read

ParâmetroTipoObrigatórioDescrição
fromstring—Data inicial YYYY-MM-DD (padrão: todo o período)
tostring—Data final YYYY-MM-DD (padrão: hoje)

Objeto de regra

Todo link deve ter pelo menos uma regra. Exatamente uma regra deve ter isDefault: true: é a reserva quando as condições de nenhuma outra regra são atendidas. A regra padrão não pode ter nenhuma condição.

CampoTipoDescrição
targetUrlstringURL de destino (obrigatório)
isDefaultbooleantrue para a regra de reserva (obrigatório)
countrystring[]Códigos ISO 3166-1 alpha-2, por ex. ["UA", "DE"]
citystring[]Nomes de cidade. Exige que country seja informado
devicestring[]"desktop" "mobile" "tablet" "console" "smarttv" "wearable" "embedded"
osstring[]"Windows" "macOS" "Linux" "iOS" "Android"
browserstring[]"Chrome" "Firefox" "Safari" "Edge" "Opera" "Brave"
timeStartstringInício da janela ativa "HH:MM" UTC. Deve vir junto com timeEnd
timeEndstringFim da janela ativa "HH:MM" UTC. Deve vir junto com timeStart
daysOfWeekinteger[]Dias: 0 = domingo … 6 = sábado
localestring[]Códigos de idioma do navegador, por ex. ["uk", "en"]
namestringRótulo opcional para esta regra

Objeto de teste A/B

Quando abTest.enabled é true, os cliques são divididos entre as variantes de acordo com os pesos. As regras de roteamento ainda se aplicam primeiro: a divisão A/B só acontece para os visitantes que correspondem a uma determinada regra.

CampoTipoDescrição
enabledbooleantrue para ativar o teste A/B
variantsVariant[]São necessárias pelo menos 2 variantes quando ativado

Variante:

CampoTipoDescrição
urlstringURL de destino desta variante
weightnumberParte relativa do tráfego. Por ex. 70 e 30 significa uma divisão 70 %/30 %

Tratamento de erros

O servidor MCP retorna erros JSON-RPC padrão. Os erros no nível da ferramenta usam estes códigos:

CódigoSignificado
-32602Parâmetros inválidos: entrada incorreta (erro de validação, slug em uso etc.)
-32603Erro interno: falha do lado do servidor

Erros no nível HTTP (antes de a ferramenta ser chamada):

HTTPCausa
401Chave de API / token Bearer ausente ou inválido
403A chave não tem permissões de MCP ativadas, ou o dono da chave não tem acesso ao espaço de trabalho
404Espaço de trabalho não encontrado

Exemplos de chamadas de ferramentas

Liste seus links:

«Mostre todos os links do meu espaço de trabalho com a tag summer-sale.»

Crie um link com segmentação geográfica:

«Crie um link chamado "App Download". Envie usuários de iOS para a App Store, os de Android para o Google Play e todos os outros para o site.»

Atualize as regras de roteamento:

«Atualize o link 664a1b2c…: adicione uma regra que redirecione visitantes da Alemanha para https://de.example.com.»

Obtenha as análises da semana passada:

«Quais foram os principais países do link 664a1b2c… na semana passada?»