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.

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.

¿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.
| Tema | Lo que dice Infobae (29-10) | Lo que dice la documentación de Google |
|---|---|---|
| Quién puede solicitar | Acceso por fases, más desarrolladores y mercados en los próximos meses | Vista previa solo para desarrolladores de EE. UU. (sesión del 29-10) |
| Superficies | Búsqueda, Gemini o ambas | Lo mismo; se elige en Console |
| Después de publicar | Métricas de tráfico, latencia y tasa de errores | Requisitos previos y pasos en Console |
| Usuarios | Más de 50 apps en Search y Gemini | Apps 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.
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.
| Fecha | Cambio | Qué significa para quien hace herramientas de datos | Fuente |
|---|---|---|---|
| 2026-09-23 | Nuevas apps conectadas en Gemini: Airtable, Linear, monday.com, Adobe, Webflow, Experian, Peloton y otras | Ya existe la mención con @ para apps de terceros, pero Google sigue eligiendo la lista | Blog de Google |
| 2026-10-13 | Gemini 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 apps | Notas de versión de Gemini |
| 2026-10-27 a 10-30 | Sale la documentación completa: guía MCP, optimización del servidor, OAuth, modo para desarrolladores, Connected Console | Por primera vez las reglas están por escrito y se pueden revisar línea a línea | Guía MCP, requisitos previos, 30-10 |
| 2026-10-28 | Se abre la vista previa de Connected Apps Platform | Registro autoservicio con revisión, para desarrolladores de EE. UU. | Blog de Google |
| 2026-10-29 | Sesión de Google: servidor FastMCP, despliegue en Cloud Run, prueba en modo desarrollador, envío en Console | Primera demostración completa y confirmación de que solo es para EE. UU. | Vídeo |
| 2026-10-29 | Infobae cuenta el lanzamiento en español: acceso por fases y más mercados en los próximos meses | La prensa en español no menciona el límite a EE. UU. | Infobae |
| 2026-11-02 | Cambia la política: la sección de integridad de la integración prohíbe herramientas de descubrimiento dinámico y de despacho genérico | El diseño habitual de una herramienta que lo llama todo deja de cumplir | Política de apps conectadas |
| 2026-11-10 | La 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 noviembre | Más modelos y precios en el camino de la API de Gemini | Notas 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).
| Camino | Quién lo usa | ¿Clave de API en cabecera? | ¿Revisión? | Límites de región y cuenta | Para qué sirve |
|---|---|---|---|---|---|
| Ficha en Connected Apps Platform | Todos los usuarios elegibles de Gemini y la Búsqueda | No, solo sin autenticación u OAuth | Sí, paso 9 de Console | Desarrolladores de EE. UU.; usuarios en EE. UU. y en inglés | Servicios con cuentas propias que buscan visibilidad |
| App personalizada en modo desarrollador | Solo la cuenta que la creó | No, solo sin autenticación u OAuth | No | 18+, EE. UU., cuenta personal, conexión desde la web | Pruebas antes de publicar, uso personal |
mcp_server en la API de Gemini | Tus programas y agentes | Sí, cualquier headers | No | Regiones de la API, España y gran parte de Latinoamérica incluidas | Análisis, monitorización e informes |
| Gemini CLI | Tu terminal | Sí, cualquier headers | No | Donde esté disponible Gemini CLI | Desarrolladores que consultan datos y escriben scripts |
| Gemini Enterprise | Personal de una empresa | No directamente; pasa por ADK y Agent Gateway | Aprobación del administrador | Contrato empresarial | Control 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.
| Paso | Tarea | Qué preparar | Lo difícil para una herramienta de datos |
|---|---|---|---|
| 1 | Crear la app y elegir categoría | La categoría no se puede cambiar después | «Consulta de datos» no es una categoría, hay que elegir la más cercana |
| 2 | Detalles de la app | Nombre, 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 ejemplo | Al menos 2 instrucciones deben empezar por @NombreDeLaApp y 1 debe citar el nombre de forma natural |
| 3 | Endpoint MCP y verificación del dominio | URL HTTPS pública y un archivo en /.well-known/google-connected-apps que devuelva 200 sin redirección | El archivo tiene que estar en el propio dominio del servidor MCP |
| 4 | Método de autenticación | Sin 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 |
| 5 | Cuentas de prueba | Cuentas preparadas para los revisores, sin verificación en dos pasos | Un servicio de datos de pago tiene que dejar saldo en esas cuentas |
| 6 | Sincronizar la instantánea de herramientas | La versión publicada queda congelada; la guía sugiere una URL nueva por versión | Cualquier cambio en la descripción de una herramienta exige sincronizar otra vez |
| 7 | Disponibilidad | Países, idiomas, productos; interruptores por herramienta; señales de contexto; confirmación del usuario | Las herramientas de escritura y de pago necesitan ajustes de confirmación |
| 8 | Probadores | Deben usar cuentas @gmail.com; los cambios tardan hasta 10 minutos | El equipo necesita cuentas personales de Gmail |
| 9 | Enviar a revisión | Tras la revisión, el estado pasa a listo para publicar | La guía no da plazos de revisión |

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.
# 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/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.
| Regla de Google | Fuente | `/mcp` | `/mcp/youtube` | `/mcp/all` | Prueba |
|---|---|---|---|---|---|
| HTTP en streaming, una URL para POST | Optimización del servidor | Cumple | Cumple | Cumple | POST devuelve 200 en los tres; GET devuelve 405 |
| Versión de saludo no posterior a 2025-11-25 | Optimización del servidor | Cumple | Cumple | Cumple | Todos devuelven 2025-11-25 |
Instrucciones del servidor en initialize | Solución de problemas | Cumple | Cumple | Cumple | 3.993 / 2.092 / 3.973 caracteres |
| Anotaciones en todas las herramientas | Optimización del servidor | Cumple | Cumple | Cumple | 12/12 y 3/3 |
| Herramienta de lectura sin marca destructiva | Optimización del servidor, vídeo | No | No | No | everyinfra_call_api lleva destructiveHint=true |
| Sin herramientas de despacho genérico ni de descubrimiento | Política, integridad | No | No | No | Una herramienta reparte por plataforma y acción |
| Enumeraciones para valores fijos | Optimización del servidor | No | No | No | platform y action son texto libre |
| No decenas de herramientas | Optimización del servidor | Cumple | Cumple | En parte | 12 / 3 / 24 herramientas |
| Resultados en JSON dentro de TextContent | Optimización del servidor | Cumple | Cumple | Cumple | Los aciertos van en content[0].text |
| Errores terminales como códigos JSON-RPC | Optimización del servidor | No | No | No | El límite de uso devuelve 200 con isError |
| Fechas en un formato declarado | Optimización del servidor | En parte | En parte | En parte | La búsqueda usaba hora ISO; los comentarios, «hace 11 días» |
| Autenticación entre las opciones de Google | Paso 4 de Console | No | No | En parte | Ver 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.

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:
{
"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.
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.](/articles/gemini-connected-apps-platform-data-tools/img-mcp-response.webp)
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ía | Capacidad | Resultado | Latencia | Cargo |
|---|---|---|---|---|---|
| 00:18:30 | MCP | youtube/search | 20 vídeos | 8,36 s | 0,000556 USD |
| 00:18:52 | MCP | reddit/search | 14 publicaciones | 5,14 s | 0,000556 USD |
| 00:19:08 | MCP | reddit/comments (publicación de r/mcp) | 5 comentarios | 11,60 s | 0,000556 USD |
| 00:19:20 | MCP | reddit/comments (publicación de r/GoogleGemini) | 4 comentarios | 9,68 s | 0,000556 USD |
| 00:19:30 | MCP | reddit/comments (publicación sin comentarios) | 0 | 55,66 s | 0 USD |
| 00:22:38 | REST | youtube/transcript (sesión para desarrolladores) | 454 segmentos | 6,09 s | 0,000556 USD |
| 00:24:28 | MCP | youtube/comments (sesión para desarrolladores) | 2 comentarios | 13,66 s | 0,000556 USD |
| 00:35:03 | MCP | reddit/search, más recientes primero | 1 publicación | 4,30 s | 0,000556 USD |
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 REST | Endpoint MCP | Lo que pide la página de Google |
|---|---|---|---|
| Límite de uso, 00:21:27 | HTTP 429, retry-after: 33 | HTTP 200, isError, rate_limited, retry_after 33 | Error JSON-RPC -32300 |
| Nombre de acción erróneo, 00:24:41 | No probado | HTTP 200, isError, unknown_capability, pista para search | Un error de herramienta vale, porque el modelo puede corregirlo |
| Sin clave, 00:24:42 | No probado | HTTP 200, isError, unauthorized | Un problema de inicio de sesión que el modelo no puede arreglar: error JSON-RPC |
| Cargo en cada caso | Ninguno | Ninguno | Sin 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.
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.
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) | Filas | Bytes brutos | Tokens brutos (est.) | Entrada del modelo (est.) | Tokens con 6 campos | Entrada con 6 campos | Tarifa de datos |
|---|---|---|---|---|---|---|---|
youtube/search | 20 | 39.732 | 9.933 | 0,00745 USD (13,4×) | 1.266 | 0,00095 USD (1,7×) | 0,000556 USD |
reddit/search | 14 | 25.212 | 6.303 | 0,004727 USD (8,5×) | 1.068 | 0,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.
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.
| Endpoint | Herramientas | Bytes de `tools/list` | Tokens (est.) | Para qué encaja |
|---|---|---|---|---|
/mcp/youtube | 3 | 4.020 | unos 1.005 | Una plataforma, lista corta |
/mcp | 12 | 16.250 | unos 4.063 | Uso general con clave de API |
/mcp/all (con clave) | 24 | 32.921 | unos 8.230 | Clientes 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ídeos | Título que cita la plataforma para desarrolladores | Títulos en español | Coinciden con la búsqueda en inglés del 11-11 |
|---|---|---|---|---|
| «Gemini aplicaciones conectadas», 00:13:42 | 20 | 1 | 7 | 2 |
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.
# 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.
{
"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 servidor | url | httpUrl |
| Clave de API | headers | headers |
| Lista permitida de herramientas | allowed_tools | includeTools |
| Tiempo de espera | No aparece en la documentación que leímos | timeout, 600.000 ms por defecto |
| Confirmaciones | Las decide tu código | trust: 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:
| Cambio | Regla de Google | Estado medido en EveryInfra |
|---|---|---|
| Registro dinámico y redirecciones de Google permitidas | Guía OAuth | Sin registration_endpoint; redirecciones no permitidas |
| Herramientas con nombre de tarea, parámetros fijos y enumeraciones | Política, integridad | Una herramienta de despacho genérico |
| Datos de solo lectura y gasto con presupuesto en el consentimiento | Optimización del servidor | destructiveHint=true en la herramienta de datos |
| Límites de uso y errores de sesión como JSON-RPC | Optimización del servidor | HTTP 200 con isError |
| Solo los campos necesarios y hora ISO | Optimización del servidor | 22 campos por vídeo el 11-11; fechas relativas en comentarios |
Archivo en /.well-known/google-connected-apps | Pasos en Console, paso 3 | 404 |
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.
| Partida | Por día | Por mes (30 días) | Nota |
|---|---|---|---|
| Datos de EveryInfra, precios del 11-11 | 6 × 0,000556 USD | 0,1001 USD | youtube/search, reddit/search, 3 × reddit/comments, youtube/comments |
| Datos de EveryInfra, precios del 12-11 | 0,000778 + 0,000792 + 3 × 0,000792 + 0,000556 USD | unos 0,1351 USD | Mismas 6 llamadas |
| El modelo lee las dos búsquedas en bruto (est., respuestas del 11-11) | 0,00745 + 0,004727 USD | unos 0,3653 USD | Entrada de Gemini 3.8 Flash, solo resultados de herramientas |
| El modelo lee las dos búsquedas con 6 campos (est.) | 0,00095 + 0,000801 USD | unos 0,0525 USD | Misma base |
Lista de herramientas de /mcp (est.) | unos 4.063 tokens por turno | según el número de turnos | Unos 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 abierto | Por qué sigue abierto | Quién puede cerrarlo |
|---|---|---|
| ¿Acepta la app de Gemini CIMD? | La página de Console (28-10) y la guía OAuth (14-09) se contradicen | Un desarrollador de EE. UU. en modo desarrollador |
| Tiempo de espera de la app de Gemini | No aparece en la documentación | Prueba en EE. UU. |
| Aspecto del aviso de confirmación y plazo de revisión | La sesión dice que sigue al riesgo, sin regla | Google, o quien pase la revisión |
| Redirecciones, rangos de IP y versiones de MCP | Pueden cambiar en la vista previa | Fecha 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
- Crea una clave de API en la consola de EveryInfra.
- Sigue la guía de inicio rápido para enviar con curl un
tools/listy untools/call, y comprueba que la respuesta traebilling. La configuración del MCP remoto para cada cliente está en la página del servidor MCP. - 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. - Configura
mcp_serveren la API de Gemini omcpServersen Gemini CLI, y usaallowed_toolsoincludeToolspara exponer solo herramientas de datos. - Prueba primero una palabra clave con un
limitpequeño. Mira el tamaño de la respuesta y qué campos llegan, y di al modelo en la instrucción qué campos debe leer. - 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.
- 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>
- Google for Developers: portada de Connected Apps Platform <https://developers.google.com/connected-apps>
- Google for Developers: guía para desarrolladores de servidores MCP (actualizada el 2026-10-27) <https://developers.google.com/connected-apps/mcp>
- Google for Developers: flujo de peticiones MCP (actualizada el 2026-10-27) <https://developers.google.com/connected-apps/mcp/mcp-flow>
- Google for Developers: pautas de calidad para apps conectadas (actualizada el 2026-10-28) <https://developers.google.com/connected-apps/mcp/quality>
- Google for Developers: optimización del servidor MCP (actualizada el 2026-10-27) <https://developers.google.com/connected-apps/mcp/server-optimization>
- Google for Developers: pautas de interfaz de MCP Apps (actualizada el 2026-10-28) <https://developers.google.com/connected-apps/mcp/guidelines>
- Google for Developers: recorridos de usuario por sector (actualizada el 2026-10-28) <https://developers.google.com/connected-apps/mcp/vertical-journeys>
- 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>
- Google for Developers: modo para desarrolladores (actualizada el 2026-10-28) <https://developers.google.com/connected-apps/mcp/dev-mode>
- Google for Developers: usar el modo para desarrolladores (actualizada el 2026-10-28) <https://developers.google.com/connected-apps/mcp/dev-mode/usage>
- Google for Developers: resumen de Google Connected Console <https://developers.google.com/connected-apps/gpc>
- Google for Developers: requisitos previos para usar apps conectadas (actualizada el 2026-10-30) <https://developers.google.com/connected-apps/gpc/prerequisites>
- Google for Developers: pasos en Google Connected Console (actualizada el 2026-10-28) <https://developers.google.com/connected-apps/gpc/perform-the-steps>
- Google for Developers: solución de problemas (actualizada el 2026-10-27) <https://developers.google.com/connected-apps/gpc/troubleshooting>
- Google for Developers: política de apps conectadas (actualizada el 2026-11-02) <https://developers.google.com/connected-apps/connected-apps-policy>
- Ayuda de Gemini: conectar apps personalizadas a Gemini <https://support.google.com/gemini/answer/17209137?hl=es>
- Ayuda de Gemini: usar y gestionar apps conectadas en Gemini <https://support.google.com/gemini/answer/13695044?hl=es>
- Ayuda de Gemini: disponibilidad y requisitos de las apps conectadas <https://support.google.com/gemini/table/17434654>
- Ayuda de la Búsqueda de Google: usar y gestionar apps conectadas en la Búsqueda <https://support.google.com/websearch/answer/17265703>
- Notas de versión de la app de Gemini (entrada del 2026-10-13) <https://gemini.google/release-notes/>
- Blog de Google: nuevas apps conectadas en Gemini (2026-09-23) <https://blog.google/innovation-and-ai/products/gemini-app/new-connected-apps-gemini>
- 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>
- 9to5Google: Google adding more Connected Apps to Gemini and Search (2026-10-28) <https://9to5google.com/2026/10/28/gemini-google-connected-apps-platform>
- 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/>
- Model Context Protocol: especificación 2025-11-25 <https://modelcontextprotocol.io/specification/2025-11-25>
- Model Context Protocol: autorización (2025-11-25) <https://modelcontextprotocol.io/specification/2025-11-25/basic/authorization>
- Model Context Protocol: herramientas (2025-11-25) <https://modelcontextprotocol.io/specification/2025-11-25/server/tools>
- Model Context Protocol: especificación 2026-07-28 <https://modelcontextprotocol.io/specification/2026-07-28>
- IETF RFC 9728: OAuth 2.0 Protected Resource Metadata <https://www.rfc-editor.org/rfc/rfc9728>
- IETF RFC 8414: OAuth 2.0 Authorization Server Metadata <https://www.rfc-editor.org/rfc/rfc8414>
- IETF RFC 7591: OAuth 2.0 Dynamic Client Registration Protocol <https://www.rfc-editor.org/rfc/rfc7591>
- IETF RFC 7636: Proof Key for Code Exchange <https://www.rfc-editor.org/rfc/rfc7636>
- Borrador IETF: OAuth Client ID Metadata Document <https://datatracker.ietf.org/doc/draft-ietf-oauth-client-id-metadata-document/>
- GitHub: modelcontextprotocol/inspector <https://github.com/modelcontextprotocol/inspector>
- Documentación de la API de Gemini: llamadas a funciones, sección de MCP remoto <https://ai.google.dev/gemini-api/docs/function-calling>
- Notas de versión de la API de Gemini (entrada del 2026-11-10) <https://ai.google.dev/gemini-api/docs/changelog>
- Precios de la API de Gemini <https://ai.google.dev/gemini-api/docs/pricing>
- Documentación de la API de Gemini: entender y contar tokens <https://ai.google.dev/gemini-api/docs/tokens>
- 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>
- Documentación de Gemini CLI: servidores MCP con Gemini CLI <https://geminicli.com/docs/tools/mcp-server/>
- Android Developers: resumen de AppFunctions <https://developer.android.com/ai/appfunctions>
- Google Identity: vinculación de cuentas basada en OAuth <https://developers.google.com/identity/account-linking/oauth-linking>
- Documentación de Google Cloud: despliegue en Cloud Run <https://cloud.google.com/run/docs/deploying>
- Google: rangos de IP de agentes activados por usuarios (JSON) <https://developers.google.com/static/crawling/ipranges/user-triggered-agents.json>
- Servicios de API de YouTube: políticas para desarrolladores <https://developers.google.com/youtube/terms/developer-policies>
- Reddit: términos de la API de datos <https://redditinc.com/policies/data-api-terms>
- 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>
- Reddit r/mcp: custom connectors - gemini (2026-10-19) <https://www.reddit.com/r/mcp/comments/1xaba94/custom_connectors_gemini/>
- Reddit r/GeminiAI: Gemini now supports general MCP servers <https://www.reddit.com/r/GeminiAI/comments/1wwe3u1/gemini_now_supports_general_mcp_servers/>
- Reddit r/GeminiAI: Gemini App adding custom Connectors (2026-10-22) <https://www.reddit.com/r/GeminiAI/comments/1xcbzub/gemini_app_adding_custom_connectors/>
- 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/>
- Reddit r/GoogleGemini: MCP with Gemini (2026-10-28) <https://www.reddit.com/r/GoogleGemini/comments/1xhword/mcp_with_gemini/>
- EveryInfra: endpoint MCP remoto (llamadas reales del 2026-11-11 y el 2026-11-12) <https://api.everyinfra.com/mcp>
- 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>
- EveryInfra: metadatos del servidor de autorización (leídos el 2026-11-11) <https://auth.everyinfra.com/oidc/.well-known/oauth-authorization-server>
- 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