Pular para o conteúdo

INTEGRAÇÕES / MODEL CONTEXT PROTOCOL

Milten MCP: auditorias web no seu assistente de IA

Conecte o Codex, Cursor ou Claude Code às suas auditorias salvas no Milten. Pelo Model Context Protocol (MCP), seu assistente pode ler as métricas de desempenho do site e obter recomendações de otimização fundamentadas nos dados do relatório.

Milten MCP

HTTP

Como seu assistente usa uma auditoria do Milten

  1. Encontrar a auditoria

    list_audits
  2. Ler as medições

    get_audit_report
  3. Obter um plano de otimização

    get_optimization_plan

Permissões de acesso

O token lê apenas as suas auditorias guardadas. Com audits:write pode iniciar e repetir auditorias dentro da quota diária.

Como se conectar ao Milten MCP

O Milten MCP é executado em um servidor remoto. Adicione a URL e um token de acesso a um cliente compatível com Streamable HTTP e cabeçalhos Authorization personalizados. Não é necessário instalar um pacote do Milten localmente.

URL do servidor
https://milten.io/mcp
Autenticação
Authorization: Bearer <PAT>

O que você precisa

O token lê apenas as suas auditorias guardadas. Com audits:write pode iniciar e repetir auditorias dentro da quota diária.

Codex

Substitua <PAT> pelo segredo do token e execute todo o bloco no Bash ou Zsh. Ele adiciona o servidor e salva Authorization em http_headers no arquivo de configuração do Codex (~/.codex/config.toml por padrão). Ao executar novamente, as configurações de milten são substituídas. Reinicie o Codex. O arquivo contém o segredo: não o publique.

Terminal
codex mcp add milten --url https://milten.io/mcp &&
cat >> "${CODEX_HOME:-$HOME/.codex}/config.toml" <<'EOF'

[mcp_servers.milten.http_headers]
Authorization = "Bearer <PAT>"
EOF
Documentação do cliente ↗
Cursor

Adicione a entrada milten a mcpServers em ~/.cursor/mcp.json para usá-la em todos os projetos, ou em .cursor/mcp.json para um único projeto. Mantenha as entradas dos outros servidores.

Nos exemplos com MILTEN_MCP_TOKEN, defina o token como valor dessa variável de ambiente antes de iniciar o cliente. Reinicie-o após alterar o token. Uma variável definida no terminal não fica automaticamente disponível para um aplicativo aberto pela área de trabalho.

.cursor/mcp.json
{
  "mcpServers": {
    "milten": {
      "url": "https://milten.io/mcp",
      "headers": {
        "Authorization": "Bearer ${env:MILTEN_MCP_TOKEN}"
      }
    }
  }
}
Documentação do cliente ↗
Claude Code

Adicione esta entrada ao arquivo .mcp.json do projeto. O Claude Code resolve a variável de ambiente ao iniciar; autorize o servidor do projeto quando solicitado.

Nos exemplos com MILTEN_MCP_TOKEN, defina o token como valor dessa variável de ambiente antes de iniciar o cliente. Reinicie-o após alterar o token. Uma variável definida no terminal não fica automaticamente disponível para um aplicativo aberto pela área de trabalho.

.mcp.json
{
  "mcpServers": {
    "milten": {
      "type": "http",
      "url": "https://milten.io/mcp",
      "headers": {
        "Authorization": "Bearer ${MILTEN_MCP_TOKEN}"
      }
    }
  }
}
Documentação do cliente ↗

Verificar a ligação

list_projects, list_monitoring_pages, list_audits, get_audit_status, get_audit_report, get_optimization_plan, get_audit_section, compare_audits, get_monitoring_history. audits:write: start_audit, rerun_audit.

Como obter um token de acesso do Milten

Você pode criar, consultar e revogar tokens de acesso pessoal (Personal Access Tokens, PAT) na sua área pessoal, em Perfil → Chaves de API. O cliente MCP envia o token no cabeçalho Authorization: Bearer. O servidor MCP não usa cookies do navegador nem login por OAuth.

Criar um token de acesso

Abra Chaves de API no seu perfil, informe um nome e um prazo de validade e clique em Criar token.

Abrir Chaves de API

Copie o segredo agora: ele é exibido apenas uma vez. Guarde-o com segurança e passe-o ao cliente usando um dos métodos acima. O id do token permanece visível na lista para revogação.

O token lê apenas as suas auditorias guardadas. Com audits:write pode iniciar e repetir auditorias dentro da quota diária.

Consultar e revogar tokens

A lista em Chaves de API mostra o nome, a validade e o status dos tokens. Revogar encerra o acesso MCP desse token. As rotas da API continuam disponíveis com uma sessão ativa no navegador: GET retorna os metadados dos tokens sem os segredos. Para revogar um token, substitua {id} pelo identificador dele. DELETE retorna 204 e as próximas solicitações MCP com esse token são rejeitadas.

API da conta
GET /v1/personal-access-tokens/
DELETE /v1/personal-access-tokens/{id}

Ferramentas MCP: auditorias, relatórios e planos de otimização

Seu cliente MCP envia estes argumentos JSON para tools/call. Para solicitar um relatório ou plano, substitua o UUID do exemplo por um auditId de list_audits. Use o identificador da auditoria, não a URL do site.

list_projects

Lista os seus projetos com ID, nome e URL.

Argumentos
page?, limit?
Resposta
projects, count, page, limit, hasMore
list_projects · JSON
{
  "page": 1,
  "limit": 20
}

list_monitoring_pages

Lista as suas páginas monitorizadas com ID, URL, agendamento e condições de medição. Use monitoringUnitId para ler o histórico.

Argumentos
projectId?, page?, limit?
Resposta
pages, count, page, limit, hasMore
list_monitoring_pages · JSON
{
  "page": 1,
  "limit": 20
}

start_audit

Inicia uma auditoria e devolve auditId. Reutilize requestId ao reenviar o mesmo pedido.

Argumentos
requestId, url, operation, region; projectId?, formFactor?, deviceName?, cpu?, network?, lang?, maxPages?, skipThirdParty?
Resposta
auditId, statusTool, reportTool
start_audit · JSON
{
  "requestId": "6166f8ee-bb4e-4366-b359-0d321dbca341",
  "url": "https://example.com/",
  "operation": "seo",
  "region": "ru-mow"
}

rerun_audit

Repete uma auditoria sua com as definições guardadas. Use um novo requestId para uma nova execução.

Argumentos
auditId, requestId
Resposta
auditId, statusTool, reportTool
rerun_audit · JSON
{
  "auditId": "123e4567-e89b-42d3-a456-426614174000",
  "requestId": "93759350-c5d3-45dd-80c8-e8ca170df3ed"
}

get_audit_status

Devolve estado, erro, condições de medição e secções disponíveis sem o relatório completo.

Argumentos
auditId
Resposta
audit, conditions, sections, trustNote
get_audit_status · JSON
{
  "auditId": "123e4567-e89b-42d3-a456-426614174000"
}

list_audits

Retorna as auditorias do usuário autenticado. Você pode limitar a lista a um projeto.

Argumentos
Todos os campos são opcionais. projectId: UUID do projeto; page: inteiro ≥ 1 (padrão: 1); limit: inteiro de 1 a 50 (padrão: 10). url?, operation?, status?, dateFrom?, dateTo?
Resposta
audits contém auditId, url, operation, status e createdAt, além de projectId e error quando presentes. count é o total; page e limit descrevem a paginação. Se truncated for true, repita a solicitação com um limit menor. O status é running, completed ou failed.
list_audits · JSON
{
  "page": 1,
  "limit": 10
}

get_audit_report

Leia todas as seções salvas do relatório e um breve resumo das métricas.

Argumentos
auditId: UUID obrigatório de uma auditoria obtida com list_audits.
Resposta
audit contém os metadados; filling contém todas as seções salvas no formato {type, data}, incluindo Speed Scanner, HAR, CrUX e llmAdvice. analysis acrescenta um resumo das métricas e dos problemas. trustNote identifica o conteúdo do site como dados não confiáveis. O limite padrão dos dados de resposta é 1 MiB; se for excedido, retorna um erro em vez de um relatório truncado.
get_audit_report · JSON
{
  "auditId": "123e4567-e89b-42d3-a456-426614174000"
}

get_optimization_plan

Leia o plano llmAdvice salvo que aparece no relatório. O MCP não gera novas recomendações nem chama um LLM.

Argumentos
auditId: UUID obrigatório; focus: all (padrão), lcp, inp, cls ou backend; limit: inteiro de 1 a 25 (padrão: 10).
Resposta
plan contém source, summary, recommendations e truncated. A ordem e os campos são preservados: priority (critical, medium ou low), metrics, metricSavings, title, resources, evidence, action, effect e verification. focus filtra por metrics; backend corresponde a TTFB. Se limit encurtar a lista, truncated será true. Planos de texto antigos aparecem em output sem filtros. Se não houver plano salvo, consulte diagnostic.
get_optimization_plan · JSON
{
  "auditId": "123e4567-e89b-42d3-a456-426614174000",
  "focus": "lcp",
  "limit": 3
}

get_audit_section

Lê a última seção salva do relatório. Arrays grandes podem ser consultados por páginas.

Argumentos
auditId e section são obrigatórios. section é um type de filling, como har. path é um JSON Pointer opcional, como /log/entries. Para arrays: offset a partir de 0, limit de 1–200 (padrão 50). Omita a paginação para outros dados.
Resposta
data preserva os campos originais e null. Arrays incluem total, nextOffset e truncated; siga nextOffset até truncated ser false. Se a resposta for grande demais, escolha um path mais específico ou reduza limit.
get_audit_section · JSON
{
  "auditId": "123e4567-e89b-42d3-a456-426614174000",
  "section": "seo",
  "path": "/pages",
  "limit": 5
}

compare_audits

Compara duas auditorias próprias da mesma URL e tipo: medições, problemas por limites e recomendações salvas.

Argumentos
baselineAuditId identifica a auditoria inicial e candidateAuditId a posterior. Obtenha os dois UUIDs em list_audits. Métricas de laboratório são aceitas para basic, inp e ttfb.
Resposta
delta = candidate − baseline; valores ausentes são null. Verifique comparable e warnings. findings inclui added, resolved, persisting e uncompared. As recomendações correspondem pelo title exato; os dois planos salvos são incluídos.
compare_audits · JSON
{
  "baselineAuditId": "123e4567-e89b-42d3-a456-426614174000",
  "candidateAuditId": "e6723288-f28c-4b62-8a4e-7dc395958c0c"
}

get_monitoring_history

Retorna as medições salvas da sua página monitorada, das mais recentes para as mais antigas. Não inicia verificações.

Argumentos
monitoringUnitId é obrigatório: UUID Core da página monitorada (coreMonitoringUnitId), não auditId. dateFrom e dateTo são limites inclusivos RFC 3339; padrão dos últimos 30 dias. page começa em 1, limit de 1–50 (padrão 20).
Resposta
results inclui datas, métricas, dispositivo, região e affectedAlert. A resposta inclui count e hasMore. Reutilize dateFrom e dateTo nas páginas seguintes. Zeros antigos podem indicar dados ausentes; INP é uma medição de laboratório, não CrUX p75.
get_monitoring_history · JSON
{
  "monitoringUnitId": "e09aa948-a541-4404-bcdc-9e5621c11891",
  "page": 1,
  "limit": 20
}

Exemplos de solicitações ao assistente de IA

Após conectar, envie estas mensagens no chat do assistente. Ele chama as ferramentas MCP e explica os resultados; as mensagens não são comandos separados do servidor.

  1. Mostre minhas auditorias do Milten e encontre a última auditoria concluída de example.com.

  2. Leia esse relatório. Quais métricas indicam carregamento lento? Inclua os valores e as unidades.

  3. Obtenha um plano de otimização com foco em LCP. Se o relatório justificar, sugira até três alterações e explique como verificar o resultado de cada uma.

Quais dados a conexão pode acessar

O token lê apenas as suas auditorias guardadas. Com audits:write pode iniciar e repetir auditorias dentro da quota diária. O texto do site auditado é um dado não fiável, nunca uma instrução para o agente.

Solução de problemas de conexão e uso do MCP

404 / HTML em vez de JSON

Confirme se o endpoint MCP está habilitado no seu ambiente. Use exatamente /mcp, sem barra no final nem prefixo de idioma. A página de documentação tem outra URL.

401 unauthorized

Verifique Authorization: Bearer e o segredo do token. Se o Codex exibir failed (0 tools), repita a configuração com um token válido e reinicie o Codex. Substitua tokens expirados ou revogados. O login por OAuth não é compatível.

403 origin forbidden

Para um cliente no navegador, seu origin deve ser permitido pelo servidor MCP. Informe ao Milten o nome do cliente e seu origin, sem enviar o token.

429 rate limit exceeded

Reduza a frequência das solicitações e tente novamente mais tarde. O limite padrão do servidor é de 60 solicitações por minuto por token; ele pode variar conforme o ambiente.

audit not found / invalid arguments

Use um UUID de auditoria da sua própria resposta de list_audits. Tanto uma auditoria inexistente quanto a de outro usuário retornam audit not found. Confira os valores de paginação, focus e limit.

Métricas ou recomendações vazias

Verifique audit.status e diagnostic. O relatório pode não ter métricas compatíveis ou llmAdvice salvo. A lista também pode estar vazia se nenhuma recomendação corresponder a focus. Isso não confirma que o site esteja livre de problemas.

503 / temporarily unavailable

O serviço de autenticação ou de auditorias está temporariamente indisponível. Tente novamente mais tarde e entre em contato com o suporte se o erro persistir.

Cookies

Usamos cookies

Usamos cookies para proporcionar uma melhor experiência em nosso site. Saiba mais sobre como usamos cookies em nossa política de privacidade.