En esta guía, se muestra cómo alojar un servidor del Protocolo de contexto del modelo (MCP) con transporte HTTP transmitible en Cloud Run y se proporcionan instrucciones para autenticar clientes de MCP. Si no conoces el MCP, lee los siguientes recursos:
El MCP es un protocolo abierto que estandariza la forma en que los agentes de IA interactúan con su entorno. El agente de IA aloja un cliente de MCP, y las herramientas y los recursos con los que interactúa son servidores de MCP. El cliente de MCP puede comunicarse con el servidor de MCP a través de dos tipos de transporte distintos:
Puedes alojar clientes y servidores de MCP en la misma máquina local, alojar un cliente de MCP de forma local y hacer que se comunique con servidores de MCP remotos alojados en una plataforma en la nube como Cloud Run, o alojar el cliente y el servidor de MCP en una plataforma en la nube.
Cloud Run admite el alojamiento de servidores de MCP con transporte HTTP transmitible, pero no servidores de MCP con transporte stdio.
En el siguiente diagrama, se muestra cómo el cliente de MCP toma la intención del agente de IA y envía una solicitud estandarizada a los servidores de MCP, especificando la herramienta que se ejecutará. Después de que el servidor de MCP ejecuta la acción y recupera los resultados, el servidor de MCP muestra el resultado al cliente de MCP en un formato coherente.
La guía de esta página se aplica si desarrollas tu propio servidor de MCP o si usas un servidor de MCP existente.
- Si desarrollas tu propio servidor de MCP, te recomendamos que uses un SDK de servidor de MCP, como los SDKs de lenguaje oficiales (TypeScript, Python, Go, Kotlin, Java, C#, Ruby o Rust) o FastMCP.
- Si usas un servidor de MCP existente, busca una lista de servidores de MCP oficiales y de la comunidad en el repositorio de GitHub de servidores de MCP. Docker Hub también proporciona una lista seleccionada de servidores de MCP.
Antes de comenzar
- Accede a tu Google Cloud cuenta de. Si no conoces Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- Configura tu entorno de desarrollo de Cloud Run en tu Google Cloud proyecto.
- Asegúrate de tener los
permisos adecuados para implementar servicios y los roles de administrador de Cloud Run (
roles/run.admin) y usuario de cuenta de servicio (roles/iam.serviceAccountUser) otorgados a tu cuenta. -
En la Google Cloud consola de, dirígete a la página IAM.
Ir a IAM - Selecciona el proyecto.
- Haz clic en Grant access.
-
En el campo Principales nuevas, ingresa tu identificador de usuario. Por lo general, es la dirección de correo electrónico que se usa para implementar el servicio de Cloud Run.
- En la lista Seleccionar un rol, elige uno.
- Para otorgar roles adicionales, haz clic en Agregar otro rol y agrega cada rol adicional.
- Haz clic en Guardar.
- PROJECT_NUMBER con tu Google Cloud proyecto número.
- PROJECT_ID por tu Google Cloud ID de proyecto.
- PRINCIPAL por la cuenta a la que agregas la vinculación. Por lo general, es la dirección de correo electrónico que se usa para implementar el servicio de Cloud Run.
- ROLE por el rol que agregas a la cuenta del implementador.
Obtén información para otorgar los roles
Console
gcloud
Para otorgar los roles de IAM necesarios a tu cuenta en tu proyecto, haz lo siguiente:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=PRINCIPAL \ --role=ROLE
Reemplaza lo siguiente:
Aloja servidores de MCP remotos de SSE o HTTP transmitible
Los servidores de MCP que usan los eventos enviados por el servidor (SSE) o el transporte HTTP transmitible se pueden alojar de forma remota desde sus clientes de MCP.
Para implementar este tipo de servidor de MCP en Cloud Run, puedes implementar el servidor de MCP como una imagen de contenedor o como código fuente (por lo general, Node.js o Python), según cómo se empaquete el servidor de MCP.
Imágenes de contenedor
Los servidores de MCP remotos distribuidos como imágenes de contenedor son servidores web que escuchan solicitudes HTTP en un puerto específico, lo que significa que cumplen con el contrato de entorno de ejecución de contenedores de Cloud Run y se pueden implementar en un servicio de Cloud Run.
Para implementar un servidor de MCP empaquetado como una imagen de contenedor, debes tener la URL de la imagen de contenedor y el puerto en el que espera recibir solicitudes. Se pueden implementar con el siguiente comando de gcloud CLI:
gcloud run deploy --image IMAGE_URL --port PORT
Reemplaza lo siguiente:
IMAGE_URLpor la URL de la imagen de contenedor, por ejemplo,us-docker.pkg.dev/cloudrun/container/mcp.PORTpor el puerto en el que escucha, por ejemplo,3000.
Fuentes
Los servidores de MCP remotos que no se proporcionan como imágenes de contenedor se pueden implementar en Cloud Run desde sus fuentes, en especial si están escritos en Node.js o Python.
Clona el repositorio de Git del servidor de MCP:
git clone https://github.com/ORGANIZATION/REPOSITORY.git
Navega a la raíz del servidor de MCP:
cd REPOSITORY
Realiza la implementación en Cloud Run con el siguiente comando de gcloud CLI:
gcloud run deploy --source .
Después de implementar tu servidor de MCP HTTP en Cloud Run, el servidor de MCP obtiene una URL HTTPS y la comunicación puede usar la compatibilidad integrada de Cloud Run para la transmisión de respuestas HTTP.
Autentica clientes de MCP para agentes de IA
Según dónde alojaste el cliente de MCP, consulta la sección que sea pertinente para ti:
Autentica clientes de MCP locales
Si el agente de IA que aloja el cliente de MCP se ejecuta en una máquina local, usa uno de los siguientes métodos para autenticar el cliente de MCP:
Para obtener más información, consulta la especificación de MCP sobre la autenticación.
Permiso de invocador de IAM
De forma predeterminada, la URL de los servicios de Cloud Run requiere que todas las solicitudes
se autoricen con el
rol de IAM de invocador de Cloud Run
(roles/run.invoker). Esta vinculación de política de IAM garantiza que se use un mecanismo de seguridad sólido para autenticar tu cliente de MCP local.
Después de implementar tu servidor de MCP en un servicio de Cloud Run en una región, ejecuta el proxy de Cloud Run en tu máquina local para exponer de forma segura el servidor de MCP remoto a tu cliente con tus propias credenciales:
gcloud run services proxy MCP_SERVER_NAME --region REGION --port=3000
Reemplaza lo siguiente:
- MCP_SERVER_NAME por el nombre de tu servicio de Cloud Run.
- REGION por la Google Cloud
región en la que implementaste tu servicio. Por ejemplo,
europe-west1.
El comando de proxy de Cloud Run crea un proxy local en el puerto 3000 que reenvía solicitudes al servidor de MCP remoto y, además, inserta tu identidad.
Actualiza el archivo de configuración de MCP de tu cliente de MCP con lo siguiente:
{
"mcpServers": {
"cloud-run": {
"url": "http://localhost:3000/sse"
}
}
}
Si tu cliente de MCP no admite el url atributo, usa el
mcp-remote paquete npm:
{
"mcpServers": {
"cloud-run": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"http://localhost:3000/sse"
]
}
}
}
Token de ID de OIDC
Según si el cliente de MCP expone encabezados o usa una forma de proporcionar un transporte autenticado personalizado, puedes considerar autenticar el cliente de MCP con un token de ID de OIDC.
Puedes usar varias bibliotecas de autenticación de Google para obtener un token de ID del
entorno de ejecución, por ejemplo, la
biblioteca de autenticación de Google para Python.
Este token debe tener la declaración de público correcta que coincida con la URL del servicio receptor
*.run.app, a menos que uses
públicos personalizados. También debes
incluir el token de ID en las solicitudes del cliente, como
Authorization: Bearer <token value>.
Si el cliente de MCP no expone encabezados ni transporte, usa otro método de autenticación.
Autentica clientes de MCP que se ejecutan en Cloud Run
Si el agente de IA que aloja el cliente de MCP se ejecuta en Cloud Run, usa uno de los siguientes métodos para autenticar el cliente de MCP:
Implementa el servidor de MCP como un archivo adicional
El servidor de MCP se puede implementar como un archivo adicional en el que se ejecuta el cliente de MCP.
No se requiere autenticación específica para este caso de uso, ya que el cliente y el servidor de MCP están en la misma instancia. El cliente puede conectarse al servidor de MCP
con un puerto en http://localhost:PORT. Reemplaza
PORT por un puerto diferente del que se usa para enviar
solicitudes al servicio de Cloud Run.
Autenticar de servicio a servicio
Si el servidor de MCP y el cliente de MCP se ejecutan como servicios de Cloud Run distintos, consulta Autentica de servicio a servicio.
Usar Cloud Service Mesh
Un agente que aloja un cliente de MCP puede conectarse a un servidor de MCP remoto con Cloud Service Mesh. El uso de una malla de servicios simplifica la organización de microservicios, ya que controla la autenticación y la administración del tráfico de forma automática.
Puedes configurar el servicio del servidor de MCP para que tenga un nombre corto en la malla, y el cliente de MCP puede comunicarse con el servidor de MCP con el nombre corto http://mcp-server. La malla administra la autenticación.
¿Qué sigue?
- Aloja agentes de IA en Cloud Run.
- Sigue un instructivo para compilar y, luego, implementar un servidor de MCP remoto en Cloud Run.
- Sigue estos codelabs de MCP: