Gemini Connected Apps Platform: qué necesita un MCP de datos

Google abrió Connected Apps Platform el 28 de octubre de 2026. Probamos un MCP de datos real con 12 de sus reglas: acceso, herramientas, errores y coste.

Ilustración de un gran enchufe redondo en el centro. A su alrededor hay pequeñas plataformas con una bolsa de compra, un disco, una tarjeta de calendario y una pantalla con un gráfico de líneas, y cada una tiene un cable que entra en el enchufe. A la derecha, un cable sale de una pila de tarjetas de publicaciones y vídeos. Ese cable y uno de los orificios del enchufe son de color verde azulado; el resto es gris claro.

Google abrió la vista previa de Connected Apps Platform el 28 de octubre de 2026. Este artículo está pensado para equipos que ya tienen un servidor MCP remoto con datos de redes sociales o de comercio electrónico y que trabajan desde España o Latinoamérica. La pregunta es concreta: ¿puede ese servidor entrar en la app de Gemini y en la Búsqueda de Google, conviene hacerlo ahora y qué se puede hacer mientras tanto desde Madrid, Ciudad de México o Bogotá?

No nos registramos en Google Connected Console, no creamos una app en el modo para desarrolladores y no enviamos nada a revisión: la vista previa solo admite desarrolladores de Estados Unidos, así que cada paso del lado de Google es un ejemplo de configuración tomado de developers.google.com y support.google.com. En cambio, todas las cifras de EveryInfra salen de llamadas reales a https://api.everyinfra.com/mcp: la primera tanda el 11 de noviembre de 2026, entre las 00:17 y las 00:35 hora de Singapur, más una búsqueda en español el 12 de noviembre a las 00:13 hora de Singapur. EveryInfra no está publicada en Gemini ni en la Búsqueda, y nada de lo que sigue insinúa que Google respalde a nadie.

La respuesta corta: de 12 reglas de Google que se pueden comprobar con la respuesta de un servidor, el endpoint general /mcp de EveryInfra cumple 6, y el endpoint con OAuth /mcp/all cumple 5 y en parte otras 3. Transporte y versión del protocolo no son el problema. Lo que bloquea es que Gemini no tiene campo para una clave de API en la cabecera, y que la política prohíbe una herramienta genérica que reparte las llamadas entre muchas capacidades, justo como funcionan casi todos los MCP de datos.

El tercer asunto es el tamaño de la respuesta. El 11 de noviembre, un youtube/search devolvió 20 vídeos en 39.732 bytes de texto; con solo los 6 campos que responden a la pregunta, las mismas filas ocupan 5.062 bytes, el 12,7 %. Cuanto más grande es la respuesta, más cuesta que el modelo la lea, y más abajo estimamos esa cuenta en tokens.

Ilustración con dos caminos que salen de una misma plataforma con una caja para un servidor MCP. A la izquierda, una escalera ancha sube a una plaza con una garita, una barrera y un cartel de revisión en blanco. A la derecha, un camino verde azulado llega directo a un escritorio con un portátil y una pila de tarjetas de datos. Solo el camino de la derecha es verde azulado.
El mismo servidor MCP debe pasar revisión para llegar a la app de Gemini y a la Búsqueda. Para tus propios agentes, la API de Gemini y Gemini CLI se conectan directamente.

¿Qué es Gemini Connected Apps Platform?

El 28 de octubre de 2026, Google presentó Connected Apps Platform en su blog con una promesa sencilla: construir una vez y llegar a la vez a la app de Gemini y a la Búsqueda (blog de Google, 28-10-2026). Hasta entonces, una app de terceros dentro de Gemini necesitaba un acuerdo directo con Google. El día del lanzamiento, 9to5Google contó más de 50 apps de ese tipo, entre ellas Adobe, Dropbox, Instacart, OpenTable y Ticketmaster (9to5Google, 28-10-2026).

La cobertura en español contó la misma noticia con otro énfasis (Infobae, 29-10-2026). Entre los socios activos cita a Localiza, la empresa brasileña de alquiler de coches. Lo que no menciona es la restricción más importante para un lector de habla hispana: hoy solo pueden solicitar acceso desarrolladores de Estados Unidos.

TemaLo que dice Infobae (29-10)Lo que dice la documentación de Google
Quién puede solicitarAcceso por fases, más desarrolladores y mercados en los próximos mesesVista previa solo para desarrolladores de EE. UU. (sesión del 29-10)
SuperficiesBúsqueda, Gemini o ambasLo mismo; se elige en Console
Después de publicarMétricas de tráfico, latencia y tasa de erroresRequisitos previos y pasos en Console
UsuariosMás de 50 apps en Search y GeminiApps personalizadas solo en EE. UU., en inglés

La plataforma convierte el proceso en autoservicio: un servidor MCP alojado en la nube, o Android MCP con AppFunctions, se registra, se prueba y se envía en la nueva Google Connected Console (portada de Connected Apps Platform). El servidor remoto puede además mostrar interfaz interactiva con MCP Apps. AppFunctions necesita Android 16 o posterior y, en mayo de 2026, su integración con Gemini era una vista previa privada (resumen de AppFunctions), así que aquí solo tratamos el servidor MCP remoto.

Lo primero es quién puede entrar. En la sesión para desarrolladores del 29 de octubre, en el minuto 6, un ingeniero de Google dice que la vista previa está abierta solo a desarrolladores de Estados Unidos, y añade que el modo para desarrolladores está abierto a todos los usuarios de ese país (vídeo de Android Developers, 29-10-2026). En los comentarios de ese mismo vídeo, alguien pregunta cuándo se abrirá al resto del mundo, y no hay respuesta de Google.

El lado del usuario también es estrecho. El centro de ayuda de Gemini fija las condiciones para conectar una app MCP propia: tener 18 años o más, estar en Estados Unidos, usar una cuenta personal de Google y tener activada la actividad guardada (Ayuda de Gemini: apps personalizadas). La ayuda de la Búsqueda dice que las apps conectadas en el Modo IA son, por ahora, solo para Estados Unidos y en inglés (Ayuda de la Búsqueda de Google). Para clientes en España o América Latina, el valor a corto plazo tiene techo.

Diagrama animado con dos carriles que muestra cómo Gemini se conecta a un servidor MCP remoto. El paso 1 es POST initialize, el paso 2 es un 401 con WWW-Authenticate, el paso 3 lee los metadatos del recurso protegido, el paso 4 registra un cliente, el paso 5 es el inicio de sesión del usuario y el paso 6 llama a una herramienta con un token. El carril superior es EveryInfra /mcp/all, con marcas verdes azuladas en los pasos 1 a 3 y una parada en el paso 4 porque los metadatos no tienen registration_endpoint. El carril inferior es /mcp, que se detiene en el paso 1 porque solo acepta una clave de API en la cabecera y Gemini no tiene dónde ponerla.

Los últimos 60 días: de socios elegidos a plataforma abierta

La plataforma no apareció de un día para otro. Los cambios que Google publicó en dos meses dibujan un orden claro: primero eligió socios, luego publicó las reglas y al final abrió las solicitudes.

FechaCambioQué significa para quien hace herramientas de datosFuente
2026-09-23Nuevas apps conectadas en Gemini: Airtable, Linear, monday.com, Adobe, Webflow, Experian, Peloton y otrasYa existe la mención con @ para apps de terceros, pero Google sigue eligiendo la listaBlog de Google
2026-10-13Gemini añade una página para personalizar apps conectadas, con más de 40 apps, casi todas en inglés de EE. UU.El usuario tiene un sitio fijo donde encontrar appsNotas de versión de Gemini
2026-10-27 a 10-30Sale la documentación completa: guía MCP, optimización del servidor, OAuth, modo para desarrolladores, Connected ConsolePor primera vez las reglas están por escrito y se pueden revisar línea a líneaGuía MCP, requisitos previos, 30-10
2026-10-28Se abre la vista previa de Connected Apps PlatformRegistro autoservicio con revisión, para desarrolladores de EE. UU.Blog de Google
2026-10-29Sesión de Google: servidor FastMCP, despliegue en Cloud Run, prueba en modo desarrollador, envío en ConsolePrimera demostración completa y confirmación de que solo es para EE. UU.Vídeo
2026-10-29Infobae cuenta el lanzamiento en español: acceso por fases y más mercados en los próximos mesesLa prensa en español no menciona el límite a EE. UU.Infobae
2026-11-02Cambia la política: la sección de integridad de la integración prohíbe herramientas de descubrimiento dinámico y de despacho genéricoEl diseño habitual de una herramienta que lo llama todo deja de cumplirPolítica de apps conectadas
2026-11-10La API de Gemini publica Gemini 4 Carbon como versión estable, a 2 USD por millón de tokens de entrada y 10 USD de salida hasta el 30 de noviembreMás modelos y precios en el camino de la API de GeminiNotas de versión de la API

Gemini Connected Apps Platform API: tres formas de conectarse

«Meter mi herramienta de datos en Gemini» puede significar tres cosas distintas, y muchos hilos de foros las mezclan.

La primera forma es Connected Apps Platform propiamente dicha. Tu app aparece en la lista de apps de Gemini y del Modo IA de la Búsqueda, y cualquier usuario que cumpla las condiciones puede mencionarla con @. Te registras en Connected Console y tienes que pasar una revisión. La autenticación se limita a tres opciones: sin autenticación, OAuth de máquina a máquina con credenciales de cliente, u OAuth delegado por el usuario con código de autorización (pasos en Console, actualizado el 28-10).

La segunda forma es una app personalizada en el modo para desarrolladores. Escribes la URL de un servidor MCP en gemini.google.com/devmode, solo tu propia cuenta puede usarla y no hay revisión. Las opciones de autenticación vuelven a ser OAuth o ninguna (usar el modo para desarrolladores, actualizado el 28-10).

La tercera forma es la API Interactions dentro de la API de Gemini. Añades una entrada mcp_server a la lista tools de la petición; esa entrada admite cualquier cabecera HTTP, y allowed_tools limita qué herramientas puede llamar el modelo. Solo funciona con HTTP en streaming (llamadas a funciones en la API de Gemini). Gemini CLI pertenece al mismo grupo: en settings.json, httpUrl más headers lleva una clave de API (configuración MCP de Gemini CLI). Para un equipo hispanohablante, este es el detalle decisivo: la página de regiones de la API de Gemini incluye a España, México, Argentina, Colombia, Chile, Perú y Uruguay, entre muchos otros países (regiones disponibles de la API de Gemini).

CaminoQuién lo usa¿Clave de API en cabecera?¿Revisión?Límites de región y cuentaPara qué sirve
Ficha en Connected Apps PlatformTodos los usuarios elegibles de Gemini y la BúsquedaNo, solo sin autenticación u OAuthSí, paso 9 de ConsoleDesarrolladores de EE. UU.; usuarios en EE. UU. y en inglésServicios con cuentas propias que buscan visibilidad
App personalizada en modo desarrolladorSolo la cuenta que la creóNo, solo sin autenticación u OAuthNo18+, EE. UU., cuenta personal, conexión desde la webPruebas antes de publicar, uso personal
mcp_server en la API de GeminiTus programas y agentesSí, cualquier headersNoRegiones de la API, España y gran parte de Latinoamérica incluidasAnálisis, monitorización e informes
Gemini CLITu terminalSí, cualquier headersNoDonde esté disponible Gemini CLIDesarrolladores que consultan datos y escriben scripts
Gemini EnterprisePersonal de una empresaNo directamente; pasa por ADK y Agent GatewayAprobación del administradorContrato empresarialControl central de herramientas en la empresa

Para el caso empresarial, ya publicamos Gemini Enterprise con MCP para sentimiento de marca. La conclusión allí fue la misma: la conexión MCP empresarial acepta OAuth o nada, y una clave de API necesita un agente ADK en medio. Si lo que quieres es un resumen semanal de publicaciones destacadas, encajan mejor las skills de Gemini, como cuenta Las skills de Gemini sustituyen a los Gems. Para un informe largo con citas, la API Deep Research también puede usar MCP, como explicamos en la API Deep Research de Gemini con MCP para datos sociales. Este artículo responde a una sola pregunta: para los dos caminos que llevan a la app de Gemini, ¿qué tiene que preparar una herramienta de datos y dónde se atasca?

Requisitos y revisión: los nueve pasos de Connected Console

La guía de Console divide el lanzamiento en 9 pasos. No tenemos cuenta en Console, así que la tabla siguiente es un ejemplo de configuración que sigue el texto de la documentación; no lo ejecutamos.

PasoTareaQué prepararLo difícil para una herramienta de datos
1Crear la app y elegir categoríaLa categoría no se puede cambiar después«Consulta de datos» no es una categoría, hay que elegir la más cercana
2Detalles de la appNombre, descripción de una frase y menos de 30 palabras, icono de 512×512 de hasta 1 MB, al menos 3 capacidades y 3 instrucciones de ejemploAl menos 2 instrucciones deben empezar por @NombreDeLaApp y 1 debe citar el nombre de forma natural
3Endpoint MCP y verificación del dominioURL HTTPS pública y un archivo en /.well-known/google-connected-apps que devuelva 200 sin redirecciónEl archivo tiene que estar en el propio dominio del servidor MCP
4Método de autenticaciónSin autenticación; máquina a máquina (Client ID y secreto opcional); o delegada por el usuario (registro previo, CIMD o DCR)No hay opción de clave de API en cabecera
5Cuentas de pruebaCuentas preparadas para los revisores, sin verificación en dos pasosUn servicio de datos de pago tiene que dejar saldo en esas cuentas
6Sincronizar la instantánea de herramientasLa versión publicada queda congelada; la guía sugiere una URL nueva por versiónCualquier cambio en la descripción de una herramienta exige sincronizar otra vez
7DisponibilidadPaíses, idiomas, productos; interruptores por herramienta; señales de contexto; confirmación del usuarioLas herramientas de escritura y de pago necesitan ajustes de confirmación
8ProbadoresDeben usar cuentas @gmail.com; los cambios tardan hasta 10 minutosEl equipo necesita cuentas personales de Gmail
9Enviar a revisiónTras la revisión, el estado pasa a listo para publicarLa guía no da plazos de revisión
Captura de una página de documentación de Google titulada Perform the steps in Google Connected Console, en el paso 4 sobre autenticación. Enumera tres opciones: sin autenticación; máquina a máquina con credenciales de cliente OAuth, con Client ID y secreto opcional; y delegada por el usuario con código de autorización mediante la vinculación de cuentas de Google. Debajo recomienda CIMD o DCR y dice que Google comprueba primero CIMD y luego DCR. La parte delegada está en un recuadro verde azulado. El pie muestra la última actualización del 2026-10-28 UTC.
El paso 4 de Console ofrece tres opciones de autenticación y ninguna para una clave de API en cabecera (captura de la página leída el 2026-11-11, recortada a esta sección). Documentación de Google Connected Apps: Perform the steps in Google Connected Console

La página de requisitos previos tiene más reglas estrictas que es fácil pasar por alto (requisitos previos, actualizado el 30-10). Cada app conectada tiene una única URL MCP global: no se admiten URL por centro de datos, y un dominio de país solo vale para un lanzamiento en ese país. Un servidor que filtre por IP de origen debe permitir 7 rangos de Google, y Google sugiere actualizarlos con regularidad desde su lista de rangos de IP de agentes activados por usuarios. Además, un propietario o administrador de la organización debe aceptar los términos de Console antes de que el resto del equipo pueda seguir, y hacen falta URL públicas de condiciones de servicio y de política de privacidad.

Esa regla afecta a equipos con un dominio para España y otro para México, o con un endpoint europeo por residencia de datos: Connected Apps exige un único endpoint global.

La página del flujo de peticiones MCP añade otra regla: toda petición JSON-RPC de Google lleva User-Agent: Google (flujo de peticiones MCP, actualizado el 27-10). Si tu pasarela bloquea bots por agente de usuario, asegúrate de que deja pasar este.

A las 00:17 hora de Singapur del 11 de noviembre probamos EveryInfra con User-Agent: Google. En /mcp, el saludo inicial y la lista de herramientas devolvieron 200. GET /mcp devolvió 405 con Allow: POST, y la página de optimización del servidor dice que eso es correcto (optimización del servidor, actualizado el 27-10). La ruta /.well-known/google-connected-apps devolvió 404, porque nunca hemos solicitado acceso y no tenemos archivo de verificación. Esta es una autocomprobación que puedes copiar; es un ejemplo de configuración y debes poner tu propio dominio.

bash
# Ejemplo de configuración: autocomprobación antes de solicitar (cambia api.example.com por tu dominio MCP)
curl -s -o /dev/null -w "%{http_code} %{redirect_url}\n" \
  https://api.example.com/.well-known/google-connected-apps      # necesita 200 y sin redirección
curl -s -o /dev/null -w "%{http_code}\n" -X GET https://api.example.com/mcp   # 405 es aceptable
curl -s https://api.example.com/mcp -A "Google" \
  -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"self-check","version":"0"}}}'

Autenticación: cómo entra Gemini en tu servidor

La autenticación es el primer muro para una herramienta de datos. Como la mayoría de los servicios de datos, el /mcp de EveryInfra solo acepta una clave de API en una cabecera de la petición. El cliente crea la clave en la consola, la pone en Claude Desktop, en Cursor o en su propio código, y cada petición la lleva consigo. Ninguna de las tres opciones de autenticación de Google cubre ese caso. El modo para desarrolladores tampoco: su pestaña de autenticación ofrece registro dinámico de clientes o registro manual, y las dos son OAuth (usar el modo para desarrolladores). Un MCP que solo acepta claves falla en el primer paso dentro de la app de Gemini, por bien construido que esté.

¿Y con OAuth? EveryInfra tiene un segundo grupo de endpoints, /mcp/all y uno por plataforma como /mcp/youtube, que aceptan inicio de sesión OAuth. En el mismo minuto recorrimos el orden de descubrimiento de la especificación de autorización de MCP para ver lo que vería Gemini (autorización MCP, 2025-11-25). Una llamada a /mcp/all sin credenciales devolvió 401 a las 00:17:48 hora de Singapur, con la URL de los metadatos del recurso y los ámbitos en la cabecera WWW-Authenticate, tal como pide la sección 5.1 del RFC 9728.

http
HTTP/1.1 401 Unauthorized
www-authenticate: Bearer resource_metadata="https://api.everyinfra.com/.well-known/oauth-protected-resource/mcp/all",
  scope="data:call search:call captcha:call ai:call account:read offline_access"

GET https://api.everyinfra.com/.well-known/oauth-protected-resource/mcp/all   -> 200, authorization_servers: https://auth.everyinfra.com/oidc
GET https://auth.everyinfra.com/oidc/.well-known/oauth-authorization-server     -> 200
  code_challenge_methods_supported: ["S256"]          # PKCE: cumple
  client_id_metadata_document_supported: true        # CIMD: cumple
  registration_endpoint: (el campo no existe)

Los tres primeros pasos pasan. El 401 apunta a los metadatos del recurso, esos metadatos devuelven 200 y los metadatos del servidor de autorización también devuelven 200 (RFC 8414). PKCE usa S256 (RFC 7636). Donde se para es el paso 4, el registro del cliente. La guía OAuth de Google enumera cuatro campos obligatorios: authorization_endpoint, token_endpoint, response_types_supported con code y registration_endpoint. Y añade que la app de Gemini necesita por ahora un endpoint de registro propio, aunque el servidor admita documentos de metadatos de Client ID (guía OAuth, actualizada el 14-09). Ese endpoint es el registro dinámico de clientes del RFC 7591. EveryInfra admite CIMD (borrador CIMD) pero no ofrece registro dinámico, así que, según esa guía, la app de Gemini se detiene aquí.

En este punto dos páginas de Google no dicen lo mismo. La de pasos en Console, actualizada más tarde, el 28 de octubre, recomienda CIMD o DCR para la autenticación delegada y dice que Google comprueba primero CIMD y después DCR (pasos en Console). La guía OAuth del 14 de septiembre dice que la app de Gemini necesita un endpoint de registro. Lo que cuentan los usuarios se inclina hacia la página antigua: en un hilo de r/mcp del 19 de octubre sobre conectores personalizados de Gemini, una respuesta dice que Gemini todavía no admite CIMD y que hay que escribir el Client ID a mano (hilo en r/mcp). Nuestra lectura es que CIMD quizá funcione para una ficha en Console, pero para las pruebas en el modo desarrollador un endpoint de registro es la apuesta segura. No podemos probar ninguno de los dos caminos desde fuera de Estados Unidos; tiene que confirmarlo un desarrollador allí.

Aun con todos los metadatos queda otra puerta. El inicio de sesión OAuth de EveryInfra está abierto a una lista corta de clientes de IA identificados por su URL de CIMD, y las redirecciones de Gemini, bajo oauth-redirect.googleusercontent.com, no están en ella. La guía OAuth de Google pide además vínculos de cuenta de larga duración sin rotación del token de actualización (guía OAuth, vinculación de cuentas de Google). Para un servicio de datos, «admitir OAuth» significa una cadena de trabajo: abrir el registro dinámico o confirmar que se acepta CIMD, añadir las redirecciones de Google a la lista permitida, emitir tokens separados para llamadas de máquina y de usuario, y mantener estables los tokens de actualización. No es un trabajo de fin de semana.

Mucha gente se atasca aquí. En el foro de desarrolladores de Google AI, un hilo del 2 de octubre cuenta que Gemini nunca llama al endpoint de tokens, mientras que el mismo servidor funciona en Claude y en ChatGPT (foro de desarrolladores de Google AI); el 22 de octubre, en r/GeminiAI, alguien preguntaba qué URL de retorno necesita un conector (r/GeminiAI). Otro hilo del mismo foro cuenta que un servidor que anunciaba la versión de protocolo 2026-07-28 recibió de Gemini el mensaje de que la URL no parecía un servidor MCP válido (r/GeminiAI).

Ese último caso encaja con la documentación: la página de optimización del servidor admite versiones de MCP hasta la 2025-11-25 (optimización del servidor). A las 00:27 hora de Singapur pedimos a EveryInfra la versión 2026-07-28 y respondió con 2025-11-25. La especificación de MCP permite esta negociación, en la que el servidor contesta con la versión que admite (especificación MCP 2026-07-28). La versión, por tanto, no bloquea.

Diseño de herramientas: 12 reglas de la documentación de Google

Superada la autenticación, revisores y modelo ven tu lista de herramientas. Las páginas de calidad, optimización del servidor y política de Google fijan muchas reglas para las herramientas. Elegimos 12 que la respuesta de un servidor puede demostrar o desmentir y las comprobamos con las respuestas reales de tools/list e initialize de tres endpoints de EveryInfra. Una sola persona hizo cada llamada, y el archivo de datos guarda la regla y la prueba de cada casilla. Un 2 significa que el endpoint cumple, un 1 que cumple en parte y un 0 que no cumple.

Tabla de calor con 12 filas de reglas de la documentación de Google y 3 columnas para EveryInfra /mcp, /mcp/youtube y /mcp/all. Las casillas verdes azuladas cumplen, las claras cumplen en parte y las grises no cumplen. Transporte, versión de protocolo, instrucciones del servidor, anotaciones en todas las herramientas y JSON en TextContent cumplen en las tres columnas. Lectura sin marca destructiva, sin despachador genérico, enumeraciones para valores fijos y límites de uso como errores JSON-RPC fallan en las tres. El formato de fecha cumple en parte en las tres. El número de herramientas cumple en parte en /mcp/all. El método de autenticación cumple en parte en /mcp/all y falla en las otras dos. El título dice que /mcp cumple 6 reglas y /mcp/all cumple 5.
Regla de GoogleFuente`/mcp``/mcp/youtube``/mcp/all`Prueba
HTTP en streaming, una URL para POSTOptimización del servidorCumpleCumpleCumplePOST devuelve 200 en los tres; GET devuelve 405
Versión de saludo no posterior a 2025-11-25Optimización del servidorCumpleCumpleCumpleTodos devuelven 2025-11-25
Instrucciones del servidor en initializeSolución de problemasCumpleCumpleCumple3.993 / 2.092 / 3.973 caracteres
Anotaciones en todas las herramientasOptimización del servidorCumpleCumpleCumple12/12 y 3/3
Herramienta de lectura sin marca destructivaOptimización del servidor, vídeoNoNoNoeveryinfra_call_api lleva destructiveHint=true
Sin herramientas de despacho genérico ni de descubrimientoPolítica, integridadNoNoNoUna herramienta reparte por plataforma y acción
Enumeraciones para valores fijosOptimización del servidorNoNoNoplatform y action son texto libre
No decenas de herramientasOptimización del servidorCumpleCumpleEn parte12 / 3 / 24 herramientas
Resultados en JSON dentro de TextContentOptimización del servidorCumpleCumpleCumpleLos aciertos van en content[0].text
Errores terminales como códigos JSON-RPCOptimización del servidorNoNoNoEl límite de uso devuelve 200 con isError
Fechas en un formato declaradoOptimización del servidorEn parteEn parteEn parteLa búsqueda usaba hora ISO; los comentarios, «hace 11 días»
Autenticación entre las opciones de GooglePaso 4 de ConsoleNoNoEn parteVer la sección de autenticación

Empecemos por lo que funciona. La página de solución de problemas marca como aviso la falta de instructions en initialize (solución de problemas, actualizado el 27-10). El /mcp de EveryInfra envía 3.993 caracteres de instrucciones, que piden al modelo preguntar por plataforma, palabra clave, cantidad, actualidad y presupuesto y hacer antes una prueba pequeña. A unos 4 caracteres por token, son unos 998 tokens (tokens en la API de Gemini). Los resultados van como JSON dentro de TextContent, que es el formato que Google quiere hoy: la página de optimización dice que structuredContent todavía no se admite.

Dos de los fallos son de estilo y se arreglan fácil. El primero son las enumeraciones: en everyinfra_call_api, platform y action son texto libre. Google sugiere enumeraciones para los valores fijos, de modo que el modelo adivine menos. EveryInfra corrige las malas suposiciones después: a las 00:24 hora de Singapur enviamos a propósito serch en lugar de search, y la respuesta trajo isError, el código unknown_capability, la pista «¿quisiste decir search?», la lista de acciones válidas y una nota de que no se cobró nada. Eso ayuda al modelo a corregirse, pero cuesta una vuelta más. El endpoint por plataforma /mcp/youtube sirve una sola plataforma con 8 acciones, así que podría usar una enumeración desde ya.

El segundo es el formato de fecha. El 11 de noviembre, youtube/search devolvía horas ISO y youtube/comments devolvía texto relativo como «hace 11 días», que el modelo tiene que convertir antes de comparar. Google sugiere declarar el formato en la descripción del campo. Los otros dos fallos son problemas de diseño que llevan más trabajo, y la sección siguiente los trata.

Política: herramientas de despacho genérico y avisos de confirmación

La versión del 2 de noviembre de la política de apps conectadas tiene una sección llamada integridad de la integración. En resumen, una app publicada no debe exponer funciones de descubrimiento dinámico como list_tools o get_schema, ni un despachador genérico en tiempo de ejecución como execute_command o invoke_dynamic_tool. Las definiciones de herramientas quedan fijas en el registro, para que los revisores vean exactamente lo que recibirá el usuario (política de apps conectadas, actualizada el 02-11). La misma política prohíbe envolver o revender API de terceros que no te pertenecen, pide minimizar los datos y prohíbe solicitar el historial de conversaciones.

Captura de la sección Integration integrity de la página de política de apps conectadas de Google. Enumera varias reglas. La regla de esquemas dinámicos de herramientas está en un recuadro verde azulado: nada de funciones de descubrimiento dinámico como list_tools o get_schema, ni despachadores genéricos en tiempo de ejecución como execute_command o invoke_dynamic_tool. El pie muestra la última actualización del 2026-11-02 UTC.
La sección de integridad de la integración prohíbe las herramientas de despacho genérico y de descubrimiento dinámico (captura de la página leída el 2026-11-11, recortada a esta sección). Documentación de Google Connected Apps: Connected apps policy

Esta regla golpea de lleno a los servidores MCP de datos. El catálogo de EveryInfra que leímos a las 00:17 hora de Singapur del 11 de noviembre recoge 106 plataformas y 573 capacidades, 538 de ellas disponibles. Una herramienta por capacidad significaría cientos de herramientas, y la página de optimización del servidor avisa de que «decenas de herramientas» se marcarán como problema. Por eso EveryInfra, como la mayoría de los servicios de datos con muchas plataformas, usa una sola everyinfra_call_api que reparte por plataforma y acción, y una herramienta gratuita, everyinfra_list_capabilities, para que el modelo consulte antes el catálogo. Esta es esa herramienta tal como salió en tools/list a las 00:17, recortada:

json
{
  "name": "everyinfra_call_api",
  "title": "Call a data capability",
  "annotations": { "readOnlyHint": false, "openWorldHint": true, "destructiveHint": true },
  "description": "Call any EveryInfra data capability and get structured JSON. ... Check platform/action, required params and max_limit or page_size with everyinfra_list_capabilities first. ...",
  "inputSchema": {
    "type": "object",
    "required": ["platform", "action"],
    "properties": {
      "platform": { "type": "string", "description": "e.g. xiaohongshu / twitter / tiktok / web" },
      "action":   { "type": "string", "description": "e.g. search / profile / user_posts / post" },
      "params":   { "type": "object" },
      "mode":     { "type": "string", "enum": ["sync", "async"], "default": "sync" }
    }
  }
}

Este diseño funciona bien en Claude, ChatGPT y Cursor, pero con la política de Google rompe dos reglas a la vez. Una ficha necesitaría herramientas fijas con nombre de tarea, como search_youtube_videos, search_reddit_posts o get_reddit_comments, cada una con parámetros fijos y enumeraciones. El consejo de nombres de Google va en la misma línea: nombres del tipo verbo_sustantivo, una tarea por herramienta y parámetros planos. El endpoint /mcp/youtube es un paso en esa dirección, con 3 herramientas y una lista de 4.020 bytes, pero por dentro sigue emparejando call_api con list_capabilities y no divide las herramientas por tarea.

El segundo problema de diseño son los avisos de confirmación. La página de optimización del servidor dice que una herramienta con destructiveHint y openWorldHint a la vez provoca una confirmación del usuario, y que una herramienta sin readOnlyHint cuenta como destructiva. La sesión para desarrolladores es más directa en el minuto 7:52: la fuerza de la confirmación sigue al riesgo, no aparece en cada llamada, y una consulta debería sentirse fluida (sesión para desarrolladores). El centro de ayuda de Gemini añade que Gemini pide al usuario confirmar a mano las acciones de escritura (Ayuda de Gemini: apps personalizadas).

Siete de las 12 herramientas de EveryInfra son de solo lectura: listan capacidades, leen el estado de una tarea, la cuenta o los tickets, generan un enlace de recarga, listan tipos de CAPTCHA y listan peticiones anteriores. La herramienta principal de datos, everyinfra_call_api, lleva destructiveHint=true porque cada llamada descuenta dinero de un monedero, y la especificación de MCP pide que una herramienta que cambia un estado externo lo declare (especificación MCP: herramientas). El resultado probable en Gemini es un aviso de confirmación en cada consulta de datos.

Es un dilema real. Marcarla como de solo lectura da un flujo fluido, pero no es honesto para una herramienta de pago; marcarla como destructiva es honesto, pero muestra un aviso cada vez. La sesión de Google pide marcar las herramientas con honestidad. Nuestra propuesta es sacar el pago del significado de la herramienta: el usuario acepta un presupuesto mensual durante el consentimiento OAuth, dentro de ese presupuesto las herramientas de datos son de verdad de solo lectura, y por encima devuelven un error y no cobran. Eso exige un presupuesto por autorización en el servidor, que EveryInfra no tiene hoy.

Un viaje de ida y vuelta real: lo que devuelven tools/list y tools/call

Abajo está el tipo de petición que Gemini enviaría a un servidor MCP. La enviamos desde nuestra propia máquina con una clave de API de EveryInfra y User-Agent: Google. La primera llamada de datos salió a las 00:18:30 hora de Singapur del 11 de noviembre y buscó en YouTube vídeos sobre Gemini Connected Apps.

bash
curl -s https://api.everyinfra.com/mcp -A "Google" \
  -H "Authorization: Bearer $EVERYINFRA_API_KEY" \
  -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" \
  -H "MCP-Protocol-Version: 2025-11-25" \
  -d '{"jsonrpc":"2.0","id":10,"method":"tools/call","params":{"name":"everyinfra_call_api",
       "arguments":{"platform":"youtube","action":"search","params":{"keyword":"Gemini Connected Apps Platform","sort":"relevance","limit":20}}}}'
# Respuesta (recortada): HTTP 200, 8,36 s, 41.840 bytes
# {"jsonrpc":"2.0","id":10,"result":{"content":[{"type":"text","text":"{\"platform\":\"youtube\",\"action\":\"search\",
#   \"results\":[{...}, {...}, {\"title\":\"Extend your app to Gemini and Search with the Connected Apps Platform\",
#   \"posted_at\":\"2026-10-29T19:55:04+00:00\",\"view_count\":1265, ...}, ... 20 filas],
#   \"billing\":{\"charged\":true,\"charged_usd\":0.000556, ...}}"}]}}
Captura de una tarjeta de código. Arriba, una petición tools/call a https://api.everyinfra.com/mcp con la herramienta everyinfra_call_api, platform youtube, action search, palabra clave Gemini Connected Apps Platform y limit 20, con la etiqueta 2026-11-11 00:18:30 hora de Singapur, HTTP 200, 8,36 s, 41.840 bytes. En medio, el sobre JSON-RPC con el resultado en content[0].text. Abajo, títulos de vídeos, fechas y visualizaciones ya interpretados, con los nombres de creadores particulares ocultos, y billing charged_usd 0.000556 en un recuadro verde azulado.
Una llamada real a una herramienta MCP. El resultado es JSON dentro de TextContent y los datos de facturación van en el mismo texto (nombres de creadores particulares y saldo de la cuenta ocultos). Endpoint MCP de EveryInfra, respuesta bruta del 2026-11-11

La forma es la que pide Google: JSON como texto en content[0].text, sin structuredContent. Ese día cada vídeo traía 22 campos, entre ellos título, enlace, canal, fecha, visualizaciones, duración, miniatura y un fragmento de texto; la lista de parámetros y campos está en la página de la API de búsqueda de vídeos de YouTube. La tabla recoge las 8 llamadas de datos de la primera tanda. Todas fueron a la misma URL MCP, salvo una transcripción por la API REST para comparar.

Hora (Singapur)VíaCapacidadResultadoLatenciaCargo
00:18:30MCPyoutube/search20 vídeos8,36 s0,000556 USD
00:18:52MCPreddit/search14 publicaciones5,14 s0,000556 USD
00:19:08MCPreddit/comments (publicación de r/mcp)5 comentarios11,60 s0,000556 USD
00:19:20MCPreddit/comments (publicación de r/GoogleGemini)4 comentarios9,68 s0,000556 USD
00:19:30MCPreddit/comments (publicación sin comentarios)055,66 s0 USD
00:22:38RESTyoutube/transcript (sesión para desarrolladores)454 segmentos6,09 s0,000556 USD
00:24:28MCPyoutube/comments (sesión para desarrolladores)2 comentarios13,66 s0,000556 USD
00:35:03MCPreddit/search, más recientes primero1 publicación4,30 s0,000556 USD
Gráfico de barras horizontales con la latencia en segundos de 8 llamadas de datos del 11 de noviembre de 2026: youtube/search 8,4; reddit/search 5,1; reddit/comments primera 11,6, segunda 9,7 y tercera 55,7; youtube/transcript 6,1; youtube/comments 13,7; y reddit/search segunda 4,3. La barra de la tercera llamada a reddit/comments es verde azulada. El subtítulo explica que era una publicación sin comentarios, tardó 55,7 segundos, devolvió 0 filas y no costó nada, mientras que las otras 7 llamadas costaron 0,000556 USD cada una.

La latencia mediana fue de 9,0 segundos, y la llamada más lenta merece una nota: una publicación de Reddit sin comentarios tardó 55,7 segundos en devolver 0 filas, y no costó nada. Para Gemini eso tiene dos consecuencias. Primero, el cliente MCP necesita un tiempo de espera largo; Gemini CLI espera 10 minutos por defecto (configuración MCP de Gemini CLI), mientras que el tiempo de espera de la app de Gemini no aparece en la documentación y no pudimos probarlo. Segundo, como los resultados vacíos son gratis, pedir al modelo que pruebe con otra publicación solo cuesta tiempo. Con una herramienta que cobra por llamada, conviene probar palabras clave y orden en pequeño antes de automatizar.

Las respuestas de error también importan, porque Google tiene reglas propias para ellas. A las 00:21:27 hora de Singapur alcanzamos el límite de 10 peticiones por minuto de esta clave. En el mismo segundo, la API REST devolvió HTTP 429 y el endpoint MCP devolvió HTTP 200 con isError: true, el código rate_limited y un retry_after de 33 segundos, con una nota de que no se cobró nada. A las 00:24:42, una llamada sin clave devolvió también HTTP 200 con isError, esta vez con el código unauthorized.

La página de optimización del servidor pide que los errores que el modelo no puede arreglar, como un límite de uso o volver a iniciar sesión, sean errores JSON-RPC; para el límite de uso, -32300 (USER_RATE_LIMITED). El estilo actual funciona en Claude y Cursor, donde el modelo espera retry_after; en Gemini, según la documentación, cuenta como un fallo normal.

Caso (hora de Singapur)API RESTEndpoint MCPLo que pide la página de Google
Límite de uso, 00:21:27HTTP 429, retry-after: 33HTTP 200, isError, rate_limited, retry_after 33Error JSON-RPC -32300
Nombre de acción erróneo, 00:24:41No probadoHTTP 200, isError, unknown_capability, pista para searchUn error de herramienta vale, porque el modelo puede corregirlo
Sin clave, 00:24:42No probadoHTTP 200, isError, unauthorizedUn problema de inicio de sesión que el modelo no puede arreglar: error JSON-RPC
Cargo en cada casoNingunoNingunoSin regla; la documentación no habla de facturación

Tamaño de la respuesta: lo que lee el modelo cuesta más que los datos

Este fue el hallazgo más sorprendente de la primera tanda. Quien desarrolla herramientas de datos de pago por llamada suele vigilar solo la tarifa de datos, pero en Gemini toda la respuesta JSON entra en el contexto del modelo, y esa lectura también tiene precio.

Gráfico de barras agrupadas con los bytes de dos respuestas de búsqueda reales del 11 de noviembre de 2026. youtube/search con 20 vídeos ocupa 39.732 bytes tal como llega y 5.062 bytes con 6 campos. reddit/search con 14 publicaciones ocupa 25.212 bytes tal como llega y 4.274 bytes con 6 campos. Las barras de 6 campos son verdes azuladas, y el título dice que youtube/search baja al 12,7 % de su tamaño.

El texto de la respuesta de youtube/search del 11 de noviembre ocupaba 39.732 bytes, de los que 38.825 correspondían a los 20 resultados con 22 campos cada uno. Para responder «qué vídeos recientes hablan de Connected Apps» bastan 6 campos: título, enlace, canal, fecha, visualizaciones y número de comentarios. Con esos 6, el tamaño baja a 5.062 bytes, el 12,7 % del original. La respuesta de reddit/search tenía 14 publicaciones en 25.212 bytes; con título, enlace, comunidad, hora, votos y comentarios baja a 4.274 bytes, el 17,0 %. La página de optimización del servidor de Google da el mismo consejo: agrega en el servidor y no vuelques datos en bruto al modelo.

Gráfico de barras horizontales con el coste estimado por llamada en dólares estadounidenses a precios del 11 de noviembre de 2026: tarifa de datos de youtube/search 0,000556; el modelo lee el resultado completo, unos 0,00745; el modelo lee 6 campos, unos 0,00095; tarifa de datos de reddit/search 0,000556; el modelo lee el resultado completo, unos 0,004727; el modelo lee 6 campos, unos 0,000801. Las barras de la tarifa de datos son verdes azuladas. El subtítulo explica que la estimación usa unos 4 caracteres por token y la entrada de Gemini 3.8 Flash a 0,75 USD por millón de tokens.

En dólares se ve más claro. La documentación de la API de Gemini dice que un token equivale a unos 4 caracteres (tokens). Con esa regla, el resultado bruto de youtube/search son unos 9.933 tokens. Gemini 3.8 Flash cobra en el nivel de pago 0,75 USD por millón de tokens de entrada hasta el 31 de diciembre de 2026 (precios de la API de Gemini). Una lectura de ese resultado cuesta unos 0,00745 USD, 13,4 veces la tarifa de datos de 0,000556 USD; con 6 campos son unos 1.266 tokens y 0,00095 USD, 1,7 veces. Para reddit/search la proporción baja de 8,5 a 1,4. Estas proporciones usan la tarifa que se cobró de verdad el 11 de noviembre. El catálogo leído el 12 de noviembre ya marca youtube/search a 0,000778 USD y reddit/search a 0,000792 USD; con esos precios, youtube/search pasa de 9,6 a 1,2 veces y reddit/search de 6,0 a 1,0 veces. El cálculo solo cuenta una lectura del resultado de la herramienta y deja fuera la instrucción, el historial y la salida. A partir del 1 de enero de 2027 la entrada de Gemini 3.8 Flash pasa a 1,50 USD por millón de tokens, lo que duplica estas proporciones.

Capacidad (11-11)FilasBytes brutosTokens brutos (est.)Entrada del modelo (est.)Tokens con 6 camposEntrada con 6 camposTarifa de datos
youtube/search2039.7329.9330,00745 USD (13,4×)1.2660,00095 USD (1,7×)0,000556 USD
reddit/search1425.2126.3030,004727 USD (8,5×)1.0680,000801 USD (1,4×)0,000556 USD

En la app de Gemini ese coste lo paga Google, pero la página de optimización cuenta las respuestas grandes como problema de calidad; con la API de Gemini lo pagas tú. En cualquier camino, una herramienta de datos debería ofrecer un parámetro de «solo estos campos» o herramientas con forma de tarea que devuelvan filas ya recortadas.

La lista de herramientas también ocupa contexto

Antes de cualquier llamada, el modelo lee la lista completa de herramientas, y eso se paga en cada turno.

Gráfico de barras horizontales con el tamaño en bytes de la respuesta tools/list de tres endpoints el 11 de noviembre de 2026: /mcp/youtube con 3 herramientas, 4.020 bytes; /mcp con 12 herramientas, 16.250 bytes; /mcp/all con clave y 24 herramientas, 32.921 bytes. La barra de /mcp/youtube es verde azulada. El subtítulo da los tokens estimados a 4 caracteres por token: unos 1.005, 4.063 y 8.230.

Leímos tres listas de herramientas a las 00:17 y las 00:27 hora de Singapur del 11 de noviembre. El /mcp general tiene 12 herramientas en 16.250 bytes, unos 4.063 tokens. El /mcp/youtube por plataforma tiene 3 herramientas en 4.020 bytes, unos 1.005 tokens. El /mcp/all con clave tiene 24 herramientas en 32.921 bytes, unos 8.230 tokens. La definición individual más larga es la de tickets, con 2.958 bytes, seguida de la de búsqueda, con 2.640.

EndpointHerramientasBytes de `tools/list`Tokens (est.)Para qué encaja
/mcp/youtube34.020unos 1.005Una plataforma, lista corta
/mcp1216.250unos 4.063Uso general con clave de API
/mcp/all (con clave)2432.921unos 8.230Clientes que inician sesión con OAuth

Quien solo quiere que Gemini busque en YouTube se ahorra unos 3.000 tokens por turno usando /mcp/youtube en lugar de /mcp. allowed_tools en la API de Gemini e includeTools en Gemini CLI filtran las herramientas en el cliente, pero el cliente puede leer la lista completa al menos una vez. Un servidor que divide sus endpoints por caso de uso da un resultado más fiable. Apunta en la misma dirección que la sección anterior: para Gemini, cuanto más estrechas las herramientas, mejor.

Qué se encuentra al buscar en español

Etiquetamos a mano, por el título, las 14 publicaciones que devolvió nuestra llamada a reddit/search del 11 de noviembre: 8 tratan de conectar MCP a Gemini, sobre todo de OAuth que falla en los conectores personalizados, de cómo enlazar Gemini en la web con Antigravity y de cómo un mismo servidor puede atender a la vez a Claude, ChatGPT y Gemini. El 17 de octubre, en r/modelcontextprotocol, el desarrollador de un MCP de datos bursátiles contó su montaje: OAuth con registro dinámico para Claude y ChatGPT, cabecera Bearer para otros clientes y, para Gemini, una extensión de Gemini CLI en lugar de la app (r/modelcontextprotocol).

Para la versión en español buscamos en YouTube «Gemini aplicaciones conectadas» a las 00:13:42 hora de Singapur del 12 de noviembre (20 vídeos, 0,000778 USD) y aplicamos la misma regla de etiquetado. Una sola persona hizo las etiquetas.

Búsqueda en YouTube (12-11, hora de Singapur)VídeosTítulo que cita la plataforma para desarrolladoresTítulos en españolCoinciden con la búsqueda en inglés del 11-11
«Gemini aplicaciones conectadas», 00:13:4220172

El único título en español que cita la plataforma es la versión traducida de un vídeo en inglés que repasa novedades de Gemini; su transcripción empieza hablando de compartir avatares, no de servidores MCP. Los otros títulos en español enseñan a consultar o vincular apps conectadas en un móvil Android o a sacar más partido a Gemini. Quien busca en español cómo llevar su servicio a Gemini no encuentra hoy ni un tutorial para desarrolladores entre los 20 primeros vídeos; las respuestas están en la documentación de Google, en inglés, y en foros como r/mcp y r/GeminiAI.

Qué se puede hacer hoy desde España o Latinoamérica: API de Gemini y Gemini CLI

Si lo que quieres es que tu equipo o los agentes de tus clientes usen tus datos con modelos Gemini, puedes conectar hoy, sin revisión y sin el límite de Estados Unidos, siempre que tu país esté entre las regiones de la API. Los dos bloques siguientes son ejemplos de configuración que siguen los nombres de campos de Google; no los ejecutamos con una clave de la API de Gemini.

La API Interactions de la API de Gemini admite MCP remoto. La documentación dice que solo funciona con HTTP en streaming y que los nombres de servidor no pueden llevar guion. El objeto headers viaja al servidor MCP con cada petición, y allowed_tools limita qué herramientas puede llamar el modelo (llamadas a funciones en la API de Gemini). Pon en la lista permitida la herramienta de catálogo, que es de solo lectura, y la de datos, y deja fuera las demás, como tickets o enlaces de recarga. En el ejemplo, la instrucción va en español y pide fuentes en español, algo que el modelo puede pasar como parámetros de búsqueda.

python
# Ejemplo de configuración: API Interactions de Gemini con el MCP remoto de EveryInfra (no ejecutado)
import os
from google import genai

client = genai.Client()
interaction = client.interactions.create(
    model="gemini-3.8-flash",
    input="Busca publicaciones de Reddit de esta semana sobre apps MCP personalizadas en Gemini y resume los problemas que cuenta la gente.",
    tools=[{
        "type": "mcp_server",
        "name": "everyinfra_youtube_reddit",          # la documentación pide: sin guion en el nombre
        "url": "https://api.everyinfra.com/mcp",
        "headers": {"Authorization": "Bearer " + os.environ["EVERYINFRA_API_KEY"]},
        "allowed_tools": ["everyinfra_list_capabilities", "everyinfra_call_api", "everyinfra_get_job"],
    }],
)

Gemini CLI usa mcpServers en settings.json (configuración MCP de Gemini CLI). httpUrl usa HTTP en streaming, headers lleva las cabeceras, includeTools es una lista permitida de herramientas y timeout vale 600.000 ms por defecto. Poner trust en true omite todas las confirmaciones, así que déjalo en false con herramientas de pago. La misma página desaconseja escribir secretos en el archivo de configuración; el bloque usa un marcador que debes cambiar por la sintaxis de variables de entorno de la documentación.

json
{
  "mcpServers": {
    "everyinfraYoutube": {
      "httpUrl": "https://api.everyinfra.com/mcp/youtube",
      "headers": { "Authorization": "Bearer <tu clave de API de EveryInfra>" },
      "includeTools": ["everyinfra_list_capabilities", "everyinfra_call_api"],
      "timeout": 120000,
      "trust": false
    }
  }
}

Para un proceso programado, como un resumen cada mañana, encaja mejor la API de Gemini: todo vive en el código y se puede seguir el coste de cada llamada. Para preguntar desde una terminal, Gemini CLI es más cómodo. Los dos usan la misma URL MCP remota, la misma clave y el mismo monedero, así que se puede cambiar de uno a otro sin tocar el servidor.

Ajuste`mcp_server` en la API de Gemini`mcpServers` en Gemini CLI
Dirección del servidorurlhttpUrl
Clave de APIheadersheaders
Lista permitida de herramientasallowed_toolsincludeTools
Tiempo de esperaNo aparece en la documentación que leímostimeout, 600.000 ms por defecto
ConfirmacionesLas decide tu códigotrust: false las mantiene

Los dos caminos comparten dos ventajas: la clave de API funciona tal cual, sin trabajo OAuth solo para Google, y la lista permitida está en tus manos, así que puedes exponer únicamente herramientas de datos y decidir las confirmaciones en tu código. El precio es el alcance: los usuarios corrientes no te verán en la lista de @. La mayoría de quienes usan herramientas de datos son desarrolladores, analistas y equipos que construyen sus propios agentes, y para ellos este camino basta. Los parámetros y campos de cada plataforma están en las páginas de la API de datos de YouTube y la API de datos de Reddit. Para comentarios y transcripciones, consulta la página de la API de comentarios de Reddit, la de comentarios de YouTube y la de transcripciones de YouTube.

Qué cambiar antes de pedir una ficha en Connected Apps

Una ficha tiene sentido para un servicio con cuentas propias, donde cada persona guarda sus datos. La página de calidad de Google pone «mejor con sesión iniciada» en primer lugar, y dice también que una app conectada no sustituye a un canal de datos ni sirve para información genérica que no necesita inicio de sesión (calidad, actualizado el 28-10).

Esa línea pesa mucho para las herramientas de datos públicos. Si tu herramienta solo busca vídeos públicos de YouTube, un revisor puede preguntar por qué el usuario tendría que iniciar sesión en tu app para eso. Distinto es lo que el usuario ha construido dentro de tu servicio: lo que su vigilancia de marca encontró esta semana, o las publicaciones de la competencia que guardó, agrupadas por sentimiento. Eso sí son datos del propio usuario, y encajan bien.

Conviene revisar pronto la política y los términos de cada plataforma. La política de apps conectadas no permite que un servicio envuelva o reempaquete API de terceros que no le pertenecen. Cada plataforma tiene además sus términos, como las políticas para desarrolladores de los servicios de API de YouTube y los términos de la API de datos de Reddit, que fijan cómo se muestran y se guardan los datos. Antes de una ficha, prepárate para explicar qué añade tu herramienta sobre los datos en bruto: agregación, eliminación de duplicados, puntuación, almacenamiento a largo plazo u organización alrededor de las tareas de cada usuario. Solo esa parte es tuya.

Con lo comprobado hasta aquí, estos son los cambios mínimos antes de una ficha:

CambioRegla de GoogleEstado medido en EveryInfra
Registro dinámico y redirecciones de Google permitidasGuía OAuthSin registration_endpoint; redirecciones no permitidas
Herramientas con nombre de tarea, parámetros fijos y enumeracionesPolítica, integridadUna herramienta de despacho genérico
Datos de solo lectura y gasto con presupuesto en el consentimientoOptimización del servidordestructiveHint=true en la herramienta de datos
Límites de uso y errores de sesión como JSON-RPCOptimización del servidorHTTP 200 con isError
Solo los campos necesarios y hora ISOOptimización del servidor22 campos por vídeo el 11-11; fechas relativas en comentarios
Archivo en /.well-known/google-connected-appsPasos en Console, paso 3404

Las MCP Apps deben cumplir el contraste WCAG AA con letra mínima de 13 puntos (pautas de interfaz, actualizado el 28-10). Durante el desarrollo, depura en local con el MCP Inspector y despliega después en un servicio HTTPS público como Cloud Run, igual que en la sesión de Google (documentación de despliegue en Cloud Run). La página de recorridos por sector de Google enumera los tipos de app que busca, como música, creación de contenido, supermercados con el Universal Commerce Protocol o inmobiliarias, cada uno con un recorrido de usuario esperado (recorridos por sector, actualizado el 28-10). El análisis de datos y la vigilancia de redes sociales no están en la lista. Eso no los excluye, pero obliga a elegir una categoría existente.

Coste mensual: un ejemplo pequeño

Pongamos un equipo de comunicación en Madrid que ejecuta un agente con la API de Gemini y el MCP remoto de EveryInfra. Cada mañana el agente prepara un resumen de «novedades de Gemini para desarrolladores»: una búsqueda en YouTube, una en Reddit, los comentarios de 3 publicaciones destacadas y los de 1 vídeo, en total 6 llamadas de datos al día y 180 al mes. Con el catálogo leído el 12 de noviembre de 2026, youtube/search cuesta 0,000778 USD por llamada, reddit/search y reddit/comments 0,000792 USD y youtube/comments 0,000556 USD, así que el mes sale por unos 0,1351 USD en datos. Con el catálogo del 11 de noviembre, cuando las cuatro costaban 0,000556 USD, el mismo mes salía por 0,1001 USD. Los precios actuales están en la página de precios.

PartidaPor díaPor mes (30 días)Nota
Datos de EveryInfra, precios del 11-116 × 0,000556 USD0,1001 USDyoutube/search, reddit/search, 3 × reddit/comments, youtube/comments
Datos de EveryInfra, precios del 12-110,000778 + 0,000792 + 3 × 0,000792 + 0,000556 USDunos 0,1351 USDMismas 6 llamadas
El modelo lee las dos búsquedas en bruto (est., respuestas del 11-11)0,00745 + 0,004727 USDunos 0,3653 USDEntrada de Gemini 3.8 Flash, solo resultados de herramientas
El modelo lee las dos búsquedas con 6 campos (est.)0,00095 + 0,000801 USDunos 0,0525 USDMisma base
Lista de herramientas de /mcp (est.)unos 4.063 tokens por turnosegún el número de turnosUnos 1.005 tokens por turno en /mcp/youtube

La tabla muestra proporciones, no una factura. Con las respuestas del 11 de noviembre, leer en bruto las dos búsquedas cuesta unos 0,3653 USD al mes, 2,7 veces todos los datos a precios del 12 de noviembre; con 6 campos, unos 0,0525 USD, menos que los datos. 1 de nuestras 8 llamadas del 11 de noviembre vino vacía y no costó nada. Esas 8 llamadas costaron 0,003892 USD en total.

Límites y puntos abiertos

Los recuentos de tokens usan la regla de unos 4 caracteres por token; la tokenización real es distinta, así que las cifras de coste del modelo valen solo como proporciones.

Punto abiertoPor qué sigue abiertoQuién puede cerrarlo
¿Acepta la app de Gemini CIMD?La página de Console (28-10) y la guía OAuth (14-09) se contradicenUn desarrollador de EE. UU. en modo desarrollador
Tiempo de espera de la app de GeminiNo aparece en la documentaciónPrueba en EE. UU.
Aspecto del aviso de confirmación y plazo de revisiónLa sesión dice que sigue al riesgo, sin reglaGoogle, o quien pase la revisión
Redirecciones, rangos de IP y versiones de MCPPueden cambiar en la vista previaFecha de actualización de cada página

Por último, las latencias y los tamaños de EveryInfra de este artículo salen de una tanda de llamadas del 11 de noviembre, y los precios, del catálogo leído el 12 de noviembre. Antes de construir sobre youtube/search, comprueba en la página de la API de búsqueda de vídeos de YouTube qué campos se documentan y haz una llamada pequeña para ver qué llega de verdad.

Preguntas frecuentes

¿Gemini Connected Apps Platform tiene coste?

El blog de Google, la página del producto y la documentación de Console no mencionan una cuota por registrarse o publicar, ni un cargo por llamada (página del producto). Sigues pagando tus servidores, el alojamiento y los datos. Si conectas MCP a través de la API de Gemini, las llamadas al modelo siguen los precios de la API de Gemini.

¿Puedo usar Connected Apps Platform desde España o Latinoamérica?

Todavía no. La sesión para desarrolladores dice que la vista previa es solo para desarrolladores de Estados Unidos. Del lado del usuario, las apps personalizadas necesitan estar en Estados Unidos, y las apps conectadas del Modo IA son solo para Estados Unidos y en inglés (Ayuda de Gemini, Ayuda de la Búsqueda). Desde España, México, Argentina, Colombia, Chile o Perú puedes empezar con la API de Gemini o Gemini CLI, que sí están disponibles (regiones de la API de Gemini).

¿Existe una Gemini Connected Apps Platform API?

No hay una API aparte. La interfaz de Connected Apps Platform es MCP: tú ejecutas un servidor MCP remoto y Gemini y la Búsqueda lo llaman como clientes MCP (guía MCP para desarrolladores). El registro, las pruebas y el envío se hacen en la interfaz web de Connected Console, y la documentación no menciona una API de gestión. Si quieres llamar a MCP desde Gemini en tu propio código, el camino es la herramienta mcp_server de la API de Gemini, que es otra cosa.

Mi servidor MCP funciona en Claude. ¿Por qué Gemini no consigue conectarse?

Hay tres causas habituales: la versión del protocolo es posterior a 2025-11-25; los metadatos OAuth no tienen registration_endpoint o las redirecciones de Google no están en la lista permitida; o el servidor solo acepta una clave de API en la cabecera. Empieza por la página de solución de problemas de Google, que recoge errores comunes como el 405, la falta de metadatos del recurso protegido o del servidor de autorización y el registro fallido (solución de problemas).

¿Qué URL de servidor MCP hay que poner en Gemini?

En la app de Gemini y en Connected Console, una única URL HTTPS pública y global que acepte POST con HTTP en streaming; Google no admite URL por centro de datos (requisitos previos). En la API de Gemini va en el campo url de mcp_server, y en Gemini CLI en httpUrl. Para EveryInfra son https://api.everyinfra.com/mcp y los endpoints por plataforma como https://api.everyinfra.com/mcp/youtube; la configuración para cada cliente está en la página del servidor MCP.

Primeros pasos: que funcione primero en tu propio código

  1. Crea una clave de API en la consola de EveryInfra.
  2. Sigue la guía de inicio rápido para enviar con curl un tools/list y un tools/call, y comprueba que la respuesta trae billing. La configuración del MCP remoto para cada cliente está en la página del servidor MCP.
  3. Elige un endpoint estrecho. Si solo necesitas YouTube, usa /mcp/youtube, que reduce la lista de herramientas de unos 4.063 a unos 1.005 tokens.
  4. Configura mcp_server en la API de Gemini o mcpServers en Gemini CLI, y usa allowed_tools o includeTools para exponer solo herramientas de datos.
  5. Prueba primero una palabra clave con un limit pequeño. Mira el tamaño de la respuesta y qué campos llegan, y di al modelo en la instrucción qué campos debe leer.
  6. Si tienes cuentas de usuario propias y piensas en una ficha de Connected Apps, trabaja la lista de cambios de la sección anterior y prueba después en el modo para desarrolladores, cuando tu equipo tenga acceso.

Los parámetros de búsqueda están en la página de la API de búsqueda de vídeos de YouTube y en la de búsqueda de publicaciones de Reddit. Para otras nubes, mira Bedrock AgentCore Gateway con MCP: formato de respuesta y factura y un agente de datos sociales con Airbyte MCP.

Referencias

Leímos todas las páginas de Google el 11 de noviembre de 2026 (hora de Singapur), y la página de regiones de la API de Gemini y la nota de Infobae el 12 de noviembre. Las fechas entre paréntesis son las de publicación o actualización que muestra cada página; las que no tienen fecha no la indican. Las cifras de EveryInfra salen de las respuestas brutas de llamadas reales del 11 y el 12 de noviembre.

  1. Blog de Google: Connected Apps Platform: bring your apps to Gemini and Search (2026-10-28) <https://blog.google/innovation-and-ai/technology/developers-tools/connected-apps-one-place>
  2. Google for Developers: portada de Connected Apps Platform <https://developers.google.com/connected-apps>
  3. Google for Developers: guía para desarrolladores de servidores MCP (actualizada el 2026-10-27) <https://developers.google.com/connected-apps/mcp>
  4. Google for Developers: flujo de peticiones MCP (actualizada el 2026-10-27) <https://developers.google.com/connected-apps/mcp/mcp-flow>
  5. Google for Developers: pautas de calidad para apps conectadas (actualizada el 2026-10-28) <https://developers.google.com/connected-apps/mcp/quality>
  6. Google for Developers: optimización del servidor MCP (actualizada el 2026-10-27) <https://developers.google.com/connected-apps/mcp/server-optimization>
  7. Google for Developers: pautas de interfaz de MCP Apps (actualizada el 2026-10-28) <https://developers.google.com/connected-apps/mcp/guidelines>
  8. Google for Developers: recorridos de usuario por sector (actualizada el 2026-10-28) <https://developers.google.com/connected-apps/mcp/vertical-journeys>
  9. Google for Developers: guía de implementación de OAuth 2.1 (actualizada el 2026-09-14) <https://developers.google.com/connected-apps/mcp/oauth>
  10. Google for Developers: modo para desarrolladores (actualizada el 2026-10-28) <https://developers.google.com/connected-apps/mcp/dev-mode>
  11. Google for Developers: usar el modo para desarrolladores (actualizada el 2026-10-28) <https://developers.google.com/connected-apps/mcp/dev-mode/usage>
  12. Google for Developers: resumen de Google Connected Console <https://developers.google.com/connected-apps/gpc>
  13. Google for Developers: requisitos previos para usar apps conectadas (actualizada el 2026-10-30) <https://developers.google.com/connected-apps/gpc/prerequisites>
  14. Google for Developers: pasos en Google Connected Console (actualizada el 2026-10-28) <https://developers.google.com/connected-apps/gpc/perform-the-steps>
  15. Google for Developers: solución de problemas (actualizada el 2026-10-27) <https://developers.google.com/connected-apps/gpc/troubleshooting>
  16. Google for Developers: política de apps conectadas (actualizada el 2026-11-02) <https://developers.google.com/connected-apps/connected-apps-policy>
  17. Ayuda de Gemini: conectar apps personalizadas a Gemini <https://support.google.com/gemini/answer/17209137?hl=es>
  18. Ayuda de Gemini: usar y gestionar apps conectadas en Gemini <https://support.google.com/gemini/answer/13695044?hl=es>
  19. Ayuda de Gemini: disponibilidad y requisitos de las apps conectadas <https://support.google.com/gemini/table/17434654>
  20. Ayuda de la Búsqueda de Google: usar y gestionar apps conectadas en la Búsqueda <https://support.google.com/websearch/answer/17265703>
  21. Notas de versión de la app de Gemini (entrada del 2026-10-13) <https://gemini.google/release-notes/>
  22. Blog de Google: nuevas apps conectadas en Gemini (2026-09-23) <https://blog.google/innovation-and-ai/products/gemini-app/new-connected-apps-gemini>
  23. Canal Android Developers: Extend your app to Gemini and Search with the Connected Apps Platform (2026-10-29) <https://www.youtube.com/watch?v=-4G-4w9FKDw>
  24. 9to5Google: Google adding more Connected Apps to Gemini and Search (2026-10-28) <https://9to5google.com/2026/10/28/gemini-google-connected-apps-platform>
  25. Infobae: Google simplifica el día a día integrando apps cotidianas en el buscador y en Gemini (2026-10-29) <https://www.infobae.com/tecno/2026/10/29/google-simplifica-el-dia-a-dia-integrando-apps-cotidianas-en-el-buscador-y-en-gemini/>
  26. Model Context Protocol: especificación 2025-11-25 <https://modelcontextprotocol.io/specification/2025-11-25>
  27. Model Context Protocol: autorización (2025-11-25) <https://modelcontextprotocol.io/specification/2025-11-25/basic/authorization>
  28. Model Context Protocol: herramientas (2025-11-25) <https://modelcontextprotocol.io/specification/2025-11-25/server/tools>
  29. Model Context Protocol: especificación 2026-07-28 <https://modelcontextprotocol.io/specification/2026-07-28>
  30. IETF RFC 9728: OAuth 2.0 Protected Resource Metadata <https://www.rfc-editor.org/rfc/rfc9728>
  31. IETF RFC 8414: OAuth 2.0 Authorization Server Metadata <https://www.rfc-editor.org/rfc/rfc8414>
  32. IETF RFC 7591: OAuth 2.0 Dynamic Client Registration Protocol <https://www.rfc-editor.org/rfc/rfc7591>
  33. IETF RFC 7636: Proof Key for Code Exchange <https://www.rfc-editor.org/rfc/rfc7636>
  34. Borrador IETF: OAuth Client ID Metadata Document <https://datatracker.ietf.org/doc/draft-ietf-oauth-client-id-metadata-document/>
  35. GitHub: modelcontextprotocol/inspector <https://github.com/modelcontextprotocol/inspector>
  36. Documentación de la API de Gemini: llamadas a funciones, sección de MCP remoto <https://ai.google.dev/gemini-api/docs/function-calling>
  37. Notas de versión de la API de Gemini (entrada del 2026-11-10) <https://ai.google.dev/gemini-api/docs/changelog>
  38. Precios de la API de Gemini <https://ai.google.dev/gemini-api/docs/pricing>
  39. Documentación de la API de Gemini: entender y contar tokens <https://ai.google.dev/gemini-api/docs/tokens>
  40. Documentación de la API de Gemini: regiones disponibles para Google AI Studio y la API de Gemini <https://ai.google.dev/gemini-api/docs/available-regions>
  41. Documentación de Gemini CLI: servidores MCP con Gemini CLI <https://geminicli.com/docs/tools/mcp-server/>
  42. Android Developers: resumen de AppFunctions <https://developer.android.com/ai/appfunctions>
  43. Google Identity: vinculación de cuentas basada en OAuth <https://developers.google.com/identity/account-linking/oauth-linking>
  44. Documentación de Google Cloud: despliegue en Cloud Run <https://cloud.google.com/run/docs/deploying>
  45. Google: rangos de IP de agentes activados por usuarios (JSON) <https://developers.google.com/static/crawling/ipranges/user-triggered-agents.json>
  46. Servicios de API de YouTube: políticas para desarrolladores <https://developers.google.com/youtube/terms/developer-policies>
  47. Reddit: términos de la API de datos <https://redditinc.com/policies/data-api-terms>
  48. Foro de desarrolladores de Google AI: el OAuth de las apps MCP personalizadas de Gemini nunca canjea el código (2026-10-02) <https://discuss.ai.google.dev/t/gemini-app-spark-custom-apps-mcp-oauth-never-exchanges-the-code-cannot-complete-request-on-oauth-redirect-googleusercontent-com/186405>
  49. Reddit r/mcp: custom connectors - gemini (2026-10-19) <https://www.reddit.com/r/mcp/comments/1xaba94/custom_connectors_gemini/>
  50. Reddit r/GeminiAI: Gemini now supports general MCP servers <https://www.reddit.com/r/GeminiAI/comments/1wwe3u1/gemini_now_supports_general_mcp_servers/>
  51. Reddit r/GeminiAI: Gemini App adding custom Connectors (2026-10-22) <https://www.reddit.com/r/GeminiAI/comments/1xcbzub/gemini_app_adding_custom_connectors/>
  52. Reddit r/modelcontextprotocol: How I got one stock market data MCP server into Claude, ChatGPT and Gemini (2026-10-17) <https://www.reddit.com/r/modelcontextprotocol/comments/1x8lxcq/how_i_got_one_stock_market_data_mcp_server_into/>
  53. Reddit r/GoogleGemini: MCP with Gemini (2026-10-28) <https://www.reddit.com/r/GoogleGemini/comments/1xhword/mcp_with_gemini/>
  54. EveryInfra: endpoint MCP remoto (llamadas reales del 2026-11-11 y el 2026-11-12) <https://api.everyinfra.com/mcp>
  55. EveryInfra: metadatos del recurso protegido de /mcp/all (leídos el 2026-11-11) <https://api.everyinfra.com/.well-known/oauth-protected-resource/mcp/all>
  56. EveryInfra: metadatos del servidor de autorización (leídos el 2026-11-11) <https://auth.everyinfra.com/oidc/.well-known/oauth-authorization-server>
  57. EveryInfra: catálogo de capacidades de datos (leído el 2026-11-11 y el 2026-11-12) <https://api.everyinfra.com/api/v1/social/catalog>

Referencia BL-129

Nuestras estadísticas siempre están activas. Google Analytics, solo con «Permitir analítica». Política de privacidad