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.


.jpg)
.jpg)
.jpg)
.jpg)