
Configurando Rastros de Ferramentas em Seu Gateway MCP
Um Agente faz uma chamada para um LLM. O LLM decide qual ferramenta do servidor MCP deve ser usada para uma tarefa. O Agente então faz uma chamada para essa ferramenta. Isso pode acontecer uma vez ou pode acontecer centenas de vezes.
Aqui está a pergunta: Você sabe quais ferramentas do servidor MCP foram usadas, quando foram usadas e de onde o prompt se originou? Em outras palavras, como você pode realmente rastrear e confirmar os rastros das ferramentas dentro do seu Gateway MCP?
É aí que ter um Gateway MCP que expõe esses rastros e métricas entra em cena.
Neste blog, você aprenderá como fazer a observabilidade completa de rastreamento de ponta a ponta para qualquer servidor e ferramenta MCP.
Pré-requisitos
Para acompanhar este post do blog de forma prática, você precisará de:
- Um cluster k8s (local está bom).
- Agentgateway OSS instalado, que você pode encontrar aqui.
- Uma conta do GitHub porque você precisará de um PAT (token de acesso pessoal) para usar o servidor MCP do GitHub Copilot.
Se você não tiver um cluster k8s, há uma grande parte deste post que é bastante visual, então você pode acompanhar de um ponto de vista teórico.
Como o Agentgateway Exponha os Rastros MCP
O Agentgateway expõe a métrica agentgateway_mcp_requests_total que inclui:
- O método usado
- Recurso
- Servidor MCP
- ID da sessão MCP
- Nome da ferramenta
- Listener
- Rota
- Regras de roteamento
Eu posso visualizar as métricas dentro do agentgateway depois de fazer uma chamada para a ferramenta do servidor MCP, fazendo o port-forwarding do Pod do Gateway e usando um curl na porta 15020, que é o listener interno de métricas/estatísticas do pod agentgateway.
kubectl port-forward -n agentgateway-system pod/mcp-gateway-7f9f6679cd-d5jmg 15020:15020
curl -s http://127.0.0.1:15020/metrics | grep agentgateway_mcp_requests
E então eu posso ver a seguinte saída de métrica:
agentgateway_mcp_requests_total{method="tools/call",resource_type="tool",server="github-copilot",resource="get_me",bind="3000/agentgateway-system/mcp-gateway",gateway="agentgateway-system/mcp-gateway",listener="mcp",route="agentgateway-system/mcp-route",route_rule="unknown"} 1
No entanto, se você quiser coletar informações mais distintas dentro de uma ferramenta de rastreamento usando um coletor OTel, você pode usar expressões CEL para especificar o que deseja exportar:
- name: mcp.tool_name
expression: 'default(mcp.tool.name, "")'
- name: mcp.tool_target
expression: 'default(mcp.tool.target, "")'
- name: mcp.method_name
expression: 'default(mcp.methodName, "")'
O Agentgateway emite rastros básicos, mas com o acima, você pode enriquecer a saída do rastreamento com detalhes específicos do MCP.
Na próxima seção, você configurará uma configuração do agentgateway com o MCP para que os rastros possam ser visualizados dentro de uma ferramenta de observabilidade.
Configuração do Gateway e MCP
Com um pouco de teoria sobre o "como" e o "porquê" feita, vamos colocar a mão na massa e ver como configurar seu gateway e servidor MCP.
- Crie um novo Gateway usando a Classe Gateway do agentgateway.
kubectl apply -f - <<EOF
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
name: mcp-gateway
namespace: agentgateway-system
labels:
app: github-mcp-server
spec:
gatewayClassName: agentgateway
listeners:
- name: mcp
port: 3000
protocol: HTTP
allowedRoutes:
namespaces:
from: Same
EOF
- Crie um segredo para autenticar com o servidor MCP do GitHub Copilot.
export GITHUB_PAT=
kubectl apply -f - <<EOF
apiVersion: v1
kind: Secret
metadata:
name: github-pat
namespace: agentgateway-system
type: Opaque
stringData:
Authorization: "Bearer ${GITHUB_PAT}"
EOF
- Crie um agentgatewaybackend, que informa ao Gateway para rotear para o servidor MCP do GitHub Copilot.
kubectl apply -f - <<EOF
apiVersion: agentgateway.dev/v1alpha1
kind: AgentgatewayBackend
metadata:
name: github-mcp-server
namespace: agentgateway-system
spec:
mcp:
targets:
- name: github-copilot
static:
host: api.githubcopilot.com
port: 443
path: /mcp/
protocol: StreamableHTTP
policies:
tls: {}
auth:
secretRef:
name: github-pat
EOF
- Crie um HTTPRoute com o agentgatewaybackend como referência/alvo.
kubectl apply -f - <<EOF
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: mcp-route
namespace: agentgateway-system
labels:
app: github-mcp-server
spec:
parentRefs:
- name: mcp-gateway
rules:
- matches:
- path:
type: PathPrefix
value: /mcp
backendRefs:
- name: github-mcp-server
namespace: agentgateway-system
group: agentgateway.dev
kind: AgentgatewayBackend
EOF
Com o Gateway configurado, vamos fazer um teste para garantir que o servidor MCP pode ser conectado.
Teste Rápido
- Recupere o endereço IP do ALB do seu gateway. Se você estiver executando um cluster k8s localmente, pode não ter isso, então você pode usar
localhostsempre que$GATEWAY_IPfor usado.
export GATEWAY_IP=$(kubectl get svc mcp-gateway -n agentgateway-system -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
echo $GATEWAY_IP
- Abra o MCP Inspector, que é um cliente MCP popular.
npx modelcontextprotocol/inspector#0.18.0
Você deve ser capaz de ver a lista de ferramentas dentro do servidor MCP do GitHub Copilot.
Agora que sabemos que o servidor MCP funciona como esperado, vamos configurar a configuração de observabilidade.
Configuração de Observabilidade
Com o Gateway e o servidor MCP configurados e a conexão testada, é hora de configurar o mecanismo de rastreamento junto com o coletor OTel e a capacidade de visualizar os rastros de forma visual. Esta seção abordará como configurar o tempo, um coletor de rastreamento OTel, e kube-prometheus.
- Instale o Tempo.
helm upgrade --install tempo tempo \
--repo https://grafana.github.io/helm-charts \
--version 1.16.0 \
--namespace telemetry \
--create-namespace \
--values - <<EOF
persistence:
enabled: false
tempo:
receivers:
otlp:A configuração adequada do Gateway MCP permite que empresas brasileiras monitorem e otimizem suas interações com ferramentas de IA. Isso é crucial para garantir eficiência e transparência em processos automatizados, especialmente em um cenário onde a IA está cada vez mais presente nos negócios.
Noticias relacionadas

Por que expomos ferramentas MCP em vez de WebSockets para agentes de negociação de IA
O artigo discute a inadequação dos WebSockets para agentes de negociação de IA, propondo o uso do protocolo MCP para decisões mais rápidas e precisas.
Snowflake MCP: Permita que seu Agente de IA Consulte Seu Armazém de Dados Diretamente
O Snowflake MCP é a ponte oficial entre agentes de IA e seu armazém de dados Snowflake, permitindo consultas SQL e insights analíticos diretos com controle de acesso.

Construindo um Servidor MCP de Taxa de Câmbio usando FastMCP e AllRatesToday
Este artigo ensina a criar um servidor MCP para obter taxas de câmbio em tempo real usando FastMCP e a API AllRatesToday, abordando a importância do MCP para LLMs.
Gostou do conteudo?
Receba toda semana as principais novidades sobre WebMCP.