Implementando un servidor BigQuery MCP autenticado por Okta en Kubernetes con ToolHive

Implementación de un servidor BigQuery autenticado por Okta en Kubernetes. Aprende cómo configurar y optimizar esta integración para potenciar tu infraestructura en la nube.

19 nov 2025 • 4 min de lectura • Equipo Q2BSTUDIO

Implementación de un servidor BigQuery autenticado por Okta en Kubernetes

Implementando un servidor BigQuery MCP autenticado por Okta en Kubernetes con ToolHive es una solución que permite combinar control de acceso empresarial, intercambio de credenciales seguro y despliegue escalable. En Q2BSTUDIO somos especialistas en desarrollo de software a medida, aplicaciones a medida, inteligencia artificial y ciberseguridad, y proponemos esta guía para llevar un prototipo local a un entorno productivo seguro y gestionado.

Requisitos previos: necesitarás un clúster Kubernetes (por ejemplo kind), kubectl, helm, una cuenta de Okta con un authorization server configurado, un proyecto de Google Cloud con BigQuery habilitado y Workload Identity Federation configurada para confiar en tokens de Okta. Además instala la herramienta thv de ToolHive y crea una cuenta en ngrok para exponer el servicio cuando haga falta.

Despliegue del operador ToolHive: el operador gestiona el ciclo de vida de los servidores MCP. Con kind puedes crear un clúster local con el comando kind create cluster --name toolhive. Instala los CRDs y el operador con helm upgrade --install toolhive-operator-crds oci://ghcr.io/stacklok/toolhive/toolhive-operator-crds y helm upgrade --install toolhive-operator oci://ghcr.io/stacklok/toolhive/toolhive-operator --namespace toolhive-system --create-namespace. Comprueba que el operador esté en ejecución con kubectl get pods -n toolhive-system.

Almacenamiento del secreto de Okta: crea un Secret de Kubernetes para guardar client secret sin hardcodear valores. Guarda el archivo como 00-okta-client-secret.yaml y aplica kubectl apply -f 00-okta-client-secret.yaml. Evitar claves estáticas mejora la seguridad y facilita la rotación de credenciales.

Configuración del intercambio de tokens: define un recurso MCPExternalAuthConfig para que ToolHive use el Security Token Service de Google y solicite tokens temporales para BigQuery. Crea el archivo 01-external-auth-config.yaml con los campos tokenUrl que apunta a https://sts.googleapis.com/v1/token, audience que referencia el pool de Workload Identity y subjectTokenType id_token, además de las scopes necesarias como https://www.googleapis.com/auth/bigquery y https://www.googleapis.com/auth/cloud-platform. Aplica kubectl apply -f 01-external-auth-config.yaml.

Despliegue del servidor MCP para BigQuery: crea un MCPServer que combine la imagen del cliente toolbox, las variables de entorno y la configuración OIDC. Guarda la definición en 02-mcp-server-bigquery.yaml e indica valores como BIGQUERY_PROJECT tu identificador de proyecto, BIGQUERY_USE_CLIENT_OAUTH true, resourceUrl https://TU_NGROK_DOMAIN.ngrok-free.app/mcp, issuer https://TU_OKTA_DOMAIN.okta.com/oauth2/TU_AUTH_SERVER_ID y audience //iam.googleapis.com/projects/TU_PROJECT_NUMBER/locations/global/workloadIdentityPools/okta-pool/providers/okta-provider. Aplica kubectl apply -f 02-mcp-server-bigquery.yaml y Kubernetes creará el pod del servidor MCP y el pod del proxy ToolHive.

Exponer el servicio públicamente: para permitir que los endpoints de autenticación y clientes remotos se conecten, expón temporalmente el proxy y crea un túnel con ngrok mediante thv. Por ejemplo ejecuta kubectl port-forward -n default svc/database-toolbox-bigquery-proxy-svc 8000:8000 y luego thv proxy tunnel https://127.0.0.1:8000 tunnel --tunnel-provider ngrok --provider-args {auth-token:TU_NGROK_AUTH_TOKEN,url:https://TU_NGROK_DOMAIN.ngrok-free.app}. ToolHive mostrará la Public URL que deberás usar como resourceUrl en la configuración.

Verificación del despliegue: comprueba que los pods estén en estado Running con kubectl get pods -n default -l toolhive-name=database-toolbox-bigquery y revisa los logs del proxy con kubectl logs -n default -l app.kubernetes.io/instance=database-toolbox-bigquery-proxy --tail=50 para observar la validación de tokens y el intercambio STS.

Conexión desde VS Code: en VS Code instala la extensión MCP o Copilot Chat, abre el Command Palette y ejecuta MCP: Add Server. Introduce la URL pública del servidor MCP como https://TU_NGROK_DOMAIN.ngrok-free.app/mcp y selecciona tipo http. VS Code pedirá el Client ID y Client Secret de tu aplicación Okta para completar el flujo OIDC. Tras autenticarse podrás usar herramientas MCP para listar datasets y ejecutar consultas en BigQuery de forma segura y con atribución por usuario.

Buenas prácticas y seguridad: aprovecha roles de mínimo privilegio en BigQuery, rotación periódica de secretos, políticas de red de Kubernetes y monitorización de accesos. Esta arquitectura evita la gestión de claves de servicio a largo plazo y delega la emisión de credenciales temporales a Google Cloud mediante Workload Identity Federation.

En Q2BSTUDIO acompañamos proyectos que requieren integración entre plataformas cloud, identidades corporativas y modelos de datos avanzados. Si necesitas migrar esta arquitectura a AWS o Azure o quieres enlazarla con pipelines de análisis y visualización, podemos ayudar con servicios cloud aws y azure mediante soluciones a medida. Conecta estas capacidades con proyectos de inteligencia artificial y automatización para empresas consultando nuestras soluciones de servicios cloud y con estrategias de inteligencia artificial para empresas.

Conclusión: la combinación de Okta, ToolHive y Kubernetes permite desplegar un servidor BigQuery MCP que es seguro, escalable y accesible de forma remota. En Q2BSTUDIO ofrecemos soporte para implementar software a medida, aplicaciones a medida, agentes IA, servicios inteligencia de negocio, power bi, ciberseguridad y pentesting, y planes de migración cloud para que tu equipo trabaje con datos y modelos de forma segura y eficiente. Ponte en contacto para diseñar una solución que incluya ia para empresas y automatización ajustada a tus necesidades.

¿UNA PAUSA?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.