AgentCore MCP Reverse Connector
AgentCore MCP Reverse Connector в Amazon EKS
Этот проект развертывает минимальный Python-сервер инструментов, совместимый с MCP, в Amazon EKS. Под открывает исходящее защищенное WebSocket-соединение с AGENTCORE_GATEWAY_ENDPOINT и проходит аутентификацию с помощью AGENTCORE_AUTH_TOKEN.
Коннектор реализует методы MCP JSON-RPC, необходимые для обнаружения и вызова инструментов:
initializetools/listtools/callping
Он предоставляет два инструмента:
get_system_infoecho_data
Замечание по архитектуре
Документация Amazon Bedrock AgentCore Gateway описывает Gateway как MCP-эндпоинт для агентов и как сервис, который может вызывать настроенные цели, такие как Lambda, OpenAPI, Smithy и удаленные эндпоинты MCP-серверов. Коннектор с обратным вызовом через WebSocket требует, чтобы ваш эндпоинт AgentCore Gateway, ретранслятор или фронтенд-сервис поддерживали постоянное исходящее WebSocket-соединение.
Данная реализация предполагает, что такой контракт существует и что шлюз отправляет запросы MCP JSON-RPC через WebSocket. Если ваш шлюз настроен на стандартную цель MCP-сервера, используйте обычный MCP HTTP/SSE эндпоинт или поместите его за внутренним/внешним балансировщиком нагрузки и зарегистрируйте этот эндпоинт в AgentCore.
Дерево проекта
agentcore-mcp-eks/
├── .dockerignore
├── .gitignore
├── Dockerfile
├── Makefile
├── README.md
├── k8s/
│ ├── base/
│ │ ├── configmap.yaml
│ │ ├── deployment.yaml
│ │ ├── hpa.yaml
│ │ ├── kustomization.yaml
│ │ ├── namespace.yaml
│ │ ├── networkpolicy.yaml
│ │ ├── pdb.yaml
│ │ ├── service.yaml
│ │ └── serviceaccount.yaml
│ └── examples/
│ └── secret.example.yaml
├── requirements.txt
└── src/
├── pyproject.toml
└── agentcore_mcp_server/
├── __init__.py
├── __main__.py
├── config.py
├── connector.py
├── health.py
├── protocol.py
└── tools.pyПредварительные требования
Существующий кластер Amazon EKS с рабочими узлами, имеющими доступ к эндпоинту AgentCore Gateway по протоколу TCP 443.
awsCLI, настроенный для целевой учетной записи AWS.kubectl, настроенный для кластера EKS.Docker или другой OCI-совместимый сборщик образов.
Terraform или ваш предпочтительный рабочий процесс IaC, если вам еще нужно создать EKS.
Реестр контейнеров, например Amazon ECR или GitHub Container Registry.
Kubernetes Metrics Server, если вы хотите, чтобы HPA масштабировался на основе метрик CPU.
Известные значения для:
AGENTCORE_GATEWAY_ENDPOINTAGENTCORE_AUTH_TOKEN
Сборка и публикация
Установите имя вашего образа:
cd agentcore-mcp-eks
export IMAGE="123456789012.dkr.ecr.us-east-1.amazonaws.com/agentcore-mcp-server"
export TAG="0.1.0"Соберите и отправьте:
docker build -t "${IMAGE}:${TAG}" .
docker push "${IMAGE}:${TAG}"Обновите образ Deployment в k8s/base/deployment.yaml или используйте Kustomize:
kubectl kustomize k8s/baseНастройка Kubernetes
Сначала создайте пространство имен, чтобы секрет можно было создать безопасно:
kubectl apply -f k8s/base/namespace.yamlСоздайте секрет с токеном аутентификации, не сохраняя реальный токен в Git:
kubectl -n mcp-system create secret generic agentcore-mcp-secret \
--from-literal=AGENTCORE_AUTH_TOKEN='replace-with-real-token'Установите эндпоинт шлюза, отредактировав k8s/base/configmap.yaml:
data:
AGENTCORE_GATEWAY_ENDPOINT: "wss://gateway.example.com/mcp/reverse"
MCP_SERVER_NAME: "eks-agentcore-mcp"Если вы хотите использовать пример манифеста Secret, скопируйте k8s/examples/secret.example.yaml, замените заполнитель и примените его из безопасного частного расположения.
Развертывание
Примените манифесты:
kubectl apply -k k8s/baseПроверьте развертывание:
kubectl -n mcp-system rollout status deployment/agentcore-mcp-server
kubectl -n mcp-system get pods -l app.kubernetes.io/name=agentcore-mcp-serverПросмотрите логи:
kubectl -n mcp-system logs deployment/agentcore-mcp-server -fОперационные проверки
Перенаправьте внутренний сервис для проверки работоспособности:
kubectl -n mcp-system port-forward svc/agentcore-mcp-server 8080:8080
curl -fsS http://127.0.0.1:8080/healthz
curl -fsS http://127.0.0.1:8080/readyzОжидаемое поведение:
/healthzвозвращает200, когда процесс запущен./readyzвозвращает200только после того, как установлено WebSocket-соединение со шлюзом.
Устранение неполадок подключения к шлюзу
Проверьте настройки окружения пода, не выводя токен:
kubectl -n mcp-system describe pod -l app.kubernetes.io/name=agentcore-mcp-serverИщите сообщения в логах коннектора:
kubectl -n mcp-system logs deployment/agentcore-mcp-server --tail=200Распространенные проблемы:
AGENTCORE_GATEWAY_ENDPOINT is required: ConfigMap отсутствует или ключ написан с ошибкой.AGENTCORE_AUTH_TOKEN is required: Secret отсутствует или ключ написан с ошибкой.Повторяющиеся сбои подключения: убедитесь, что эндпоинт начинается с
wss://, DNS разрешается внутри кластера, а группы безопасности узлов/NACL разрешают исходящий трафик на TCP 443.Ошибки аутентификации: обновите Secret и перезапустите Deployment с помощью
kubectl -n mcp-system rollout restart deployment/agentcore-mcp-server.Состояние готовности не становится успешным: подтвердите, что шлюз поддерживает контракт обратного WebSocket-коннектора и принимает сообщения MCP JSON-RPC через сокет.
NetworkPolicy блокирует трафик: начните с применения Deployment без
networkpolicy.yaml, подтвердите подключение, затем повторно примените и ограничьте исходящий трафик для вашего CNI.
Запустите тест DNS/подключения внутри кластера:
kubectl -n mcp-system run netcheck --rm -it --restart=Never \
--image=curlimages/curl:8.10.1 -- shЗатем внутри оболочки:
nslookup gateway.example.com
curl -vk https://gateway.example.com/Заметки по безопасности
Не коммитьте реальные токены. Используйте Kubernetes Secrets, External Secrets Operator, AWS Secrets Manager или Sealed Secrets.
Контейнер работает от имени пользователя без прав root с файловой системой в режиме только для чтения и ограниченными возможностями Linux.
Сервис по умолчанию —
ClusterIP; публичного входящего эндпоинта нет, так как сервер сам инициирует исходящее соединение.Пример NetworkPolicy разрешает DNS и исходящий HTTPS. Для строгого контроля исходящего трафика по FQDN используйте CNI, поддерживающий политики FQDN, такие как Cilium или Calico Enterprise, и ограничьте доступ точным именем хоста AgentCore Gateway.
Схемы ввода инструментов полностью встроены и не используют JSON Schema
$refили$defs.
Ссылки
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sridharbabukodavaluru/agentcore-mcp-eks'
If you have feedback or need assistance with the MCP directory API, please join our Discord server