Voltar as noticias
Criei um servidor MCP somente leitura para Akamai
MCP ProtocolAltaEN

Criei um servidor MCP somente leitura para Akamai

Dev.to - MCP·29 de abril de 2026

Eu tinha mais de 200 propriedades de CDN na Akamai e um agente que não conseguia encontrar nenhuma delas. A API do Property Manager da Akamai lista propriedades por grupo e contrato, mas não há um endpoint de busca difusa. Se o agente não souber o nome ou ID exato da propriedade, ele fica preso. A conversa termina com "Não consegui encontrar essa propriedade" e o usuário volta ao painel de controle da Akamai.

Então eu construí um servidor MCP que envolve as APIs da Akamai. 16 ferramentas para pesquisar propriedades, navegar pelo código do EdgeWorker, consultar zonas DNS, inspecionar listas de rede e traduzir códigos de erro. Tudo somente leitura. Eu escrevi sobre por que eu só construo servidores MCP somente leitura separadamente.

Pesquisa de propriedades com um índice pré-carregado

Akamai organiza propriedades em grupos e contratos. Para pesquisar em todas elas através da API, você teria que iterar por cada par grupo-contrato e listar as propriedades uma a uma. Lento, e sem correspondência difusa.

O servidor pré-carrega cada propriedade em um índice na memória na inicialização. Ele distribui chamadas de API entre todos os pares grupo-contrato em paralelo, deduplica e constrói uma lista de nomes. rapidfuzz cuida da correspondência com WRatio como o avaliador. WRatio tenta várias estratégias de comparação (razão, razão parcial, ordenação de tokens, conjunto de tokens) e escolhe a melhor, ponderada pelas diferenças de comprimento das strings. Mais lento do que uma razão simples, mas significa que "checkout config" corresponde a "checkout.example.com - Production" sem que o agente precise saber a convenção de nomenclatura exata.

Em uma conta real com 95 grupos e 263 propriedades, o índice carrega em cerca de 3 segundos. Depois disso, as pesquisas atingem a memória com zero chamadas de API.

Uma coisa que encontrei no início: distribuir 95 solicitações simultâneas sem qualquer limitação. A PAPI da Akamai tem limites de taxa, e um pico desse tamanho na inicialização pode acionar 429s. O servidor limita a concorrência com um semáforo, 10 solicitações por vez. Ainda rápido o suficiente, sem solicitações rejeitadas.

O índice é atualizado a cada 5 minutos em uma tarefa em segundo plano. Eu descrevi esse padrão em Seu servidor MCP não é um adaptador de API.

Navegação pelo código do EdgeWorker

Akamai EdgeWorkers são funções sem servidor que são executadas em nós de borda da CDN. O código é armazenado como arquivos tgz contendo main.js, bundle.json e arquivos de suporte. Para ler um arquivo, você baixa o arquivo, extrai-o e encontra o que precisa. Fazer isso em cada chamada de ferramenta seria lento.

O servidor baixa o pacote uma vez, extrai todos os arquivos para a memória e os armazena em cache com cachetools.TTLCache. TTL de 1 hora, máximo de 50 entradas. Após o primeiro download, o agente pode listar arquivos, ler por intervalo de linhas e pesquisar com regex. Sem downloads repetidos.

Quando o agente pergunta "como é o main.js do EdgeWorker X?", a primeira chamada leva um ou dois segundos. Perguntas de acompanhamento como "pesquisar pela lógica de roteamento" ou "mostrar linhas 50-80" são instantâneas.

Eu considerei armazenar em cache no disco, mas esses pacotes são pequenos (geralmente abaixo de 100KB). Mantê-los na memória evita a gestão do sistema de arquivos e o cache é automaticamente expurgado quando o TTL expira ou o limite LRU é atingido. A desvantagem é que os pacotes desaparecem na reinicialização, mas o recarregamento é barato o suficiente para que isso não importe.

Modelagem de resposta

As árvores de regras de propriedade da Akamai podem ter centenas de KB. Uma propriedade de produção típica tem regras aninhadas com comportamentos, critérios e opções. Enviar o JSON completo desperdiça contexto.

O servidor remove a árvore de regras antes de retorná-la. Mantém os nomes das regras, critérios de correspondência, configurações de comportamento e a estrutura recursiva. Remove UUIDs de modelo, versões de formato e outros metadados internos que o agente não precisa. Detalhes da propriedade, ativações e registros DNS recebem o mesmo tratamento.

Isso é mais agressivo do que apenas descartar campos nulos. A árvore de regras bruta tem UUIDs em cada nó, links de modelo, indicadores de modo de satisfação de critérios, indicadores de bloqueio. Nada disso ajuda um agente a responder "quais regras de cache estão definidas para esta propriedade?" Removê-las reduz a resposta para talvez um terço do tamanho original.

Autenticação EdgeGrid do zero

Akamai usa EdgeGrid para autenticação de API. Existe uma biblioteca oficial edgegrid-python, mas ela envolve requests (síncrono). Eu queria httpx (assíncrono) com pooling de conexões, então o servidor implementa a assinatura EdgeGrid diretamente: HMAC-SHA256 sobre uma string de solicitação canônica, codificada em base64, anexada como um cabeçalho de Autorização. Cerca de 40 linhas.

A assinatura é direta a partir da especificação pública. A parte irritante é que a string de consulta deve ser incluída nos dados assinados, então você precisa construir a URL completa com parâmetros antes de assinar, e depois fazer a solicitação com essa mesma URL.

O que o agente pode fazer

Com 16 ferramentas somente leitura, um agente pode responder:

  • "Qual propriedade de CDN lida com checkout.example.com?"
  • "Quais regras de cache estão configuradas para a propriedade da API?"
  • "Mostre-me o main.js da versão mais recente do EdgeWorker"
  • "Pesquise o código do EdgeWorker por referências ao cabeçalho de autenticação"
  • "Quais registros DNS existem para example.com?"
  • "Quais IPs estão na lista de permissão de produção?"
  • "O que significa o código de erro da Akamai 9.6f64d440.1318965461.2f2b078?"

Agora, todos esses requerem o painel de controle da Akamai.

Configuração

Adicione ao Claude Code:

claude mcp add akamai -e AKAMAI_HOST=your-host.akamaiapis.net -e AKAMAI_CLIENT_TOKEN=akab-xxx -e AKAMAI_CLIENT_SECRET=xxx -e AKAMAI_ACCESS_TOKEN=akab-xxx -- uvx readonly-mcp-akamai

Crie uma credencial de API somente leitura no painel de Identidade e Gerenciamento de Acesso da Akamai. Fonte e docs: readonly-mcp-akamai no GitHub.

Contexto Triplo Up

O servidor MCP melhora a eficiência na busca de propriedades da Akamai, facilitando o acesso a informações críticas sem depender do painel de controle. Isso pode otimizar operações para empresas que utilizam a Akamai como CDN, economizando tempo e recursos.

Noticias relacionadas

Gostou do conteudo?

Receba toda semana as principais novidades sobre WebMCP.