Notion MCP con dos agentes: clave, hora y conteo en una tabla de competencia

La memoria de Notion es privada y una tabla de equipo pide sus reglas. Probamos 150 filas: qué clave, qué hora y qué conteo guardan Claude Code y Codex.

Ilustración. Dos máquinas distintas, una a cada lado, envían tarjetas por una cinta hacia un mismo archivador en el centro. Un cajón del medio brilla en verde azulado y guarda tarjetas bien ordenadas. Junto al archivador, una bandeja pequeña recoge algunas tarjetas repetidas. La imagen muestra a dos agentes que escriben en una sola tabla y los duplicados que las reglas apartan.

El 4 de noviembre de 2026, Notion presentó Notion MCP como «un cerebro compartido» para todos tus agentes. Pero esa memoria es una base de datos privada de cada persona, no una tabla de equipo. Si quieres que Claude Code y Codex (con una cuenta de ChatGPT) escriban datos de redes sociales de la competencia en una misma base de Notion, lo difícil sigue en tus manos: qué campo sirve de clave para no duplicar, qué hora cuenta como actualización y qué conteo manda cuando dos fuentes no coinciden.

Nuestra prueba lo deja claro: siete llamadas de listado devolvieron 130 filas y solo 68 (52,3 %) se podían guardar tal cual como «publicación nueva de la marca». De las otras 62, 3 eran videos fijados antiguos, 19 venían de otras cuentas (2 colaboraciones en Instagram y 17 videos ajenos a la cuenta principal en la búsqueda de TikTok) y 40 eran filas de YouTube con fechas relativas como «10d ago». Hicimos 12 llamadas reales a la API de datos de EveryInfra el 8 de noviembre de 2026, entre las 00:17 y las 00:48 (hora de Singapur), una de ellas sin clave y sin cobro, sobre dos marcas de cuidado de la piel, CeraVe y The Ordinary, en TikTok, Instagram y YouTube. Añadimos una búsqueda en español, «cerave piel grasa», que sumó otras 20 filas con un perfil muy distinto: solo 4 eran del último mes. Con precios de catálogo, tres marcas y dos agentes que corren una vez al día cuestan 0,048372 USD por semana en llamadas de datos, unos 0,21 USD al mes.

Este artículo resuelve un trabajo concreto. Un equipo de marca en México, Colombia o España ya usa Claude Code para scripts y Codex, con su cuenta de ChatGPT, para investigar. Las dos herramientas pueden conectarse a Notion MCP y al servidor MCP remoto de EveryInfra. El equipo quiere que cada agente traiga una parte de los datos de la competencia y los escriba en una misma base de Notion, para que el lunes todos abran la misma tabla.

Primero explicamos qué lanzó Notion y dónde están sus límites. Después diseñamos la tabla, mostramos lo que enseñaron los datos reales, damos la configuración de los dos clientes y sumamos el costo semanal. No ejecutamos nada dentro de un espacio de trabajo de Notion. Por eso cada paso del lado de Notion aparece como «ejemplo de configuración», basado en la documentación oficial de Notion, Anthropic y OpenAI. Cada cifra de EveryInfra sale de una respuesta real de la API.

Ilustración. Una mesa con dos ranuras. Dos manos robóticas, una a cada lado, sostienen una tarjeta sobre cada ranura. Un marco verde azulado rodea la ranura izquierda y su tarjeta tiene una marca de verificación: esa tarjeta se queda. Una copia de la misma tarjeta cae por un tobogán a la derecha hacia una caja pequeña: la copia se descarta. Junto a cada ranura hay un reloj sin números, que indica que cada tarjeta conserva su propia hora.
Cuando dos agentes escriben en una sola tabla, Notion no decide cuál tarjeta es la repetida. Esa regla la defines tú.

Qué lanzó Notion el 4 de noviembre y qué significa «memoria»

El 4 de noviembre de 2026, la cuenta de Notion en X anunció que ChatGPT, Claude, Muse y Bot ya pueden guardar lo que aprenden en una misma memoria dentro de Notion y usar las mismas habilidades (publicación de Notion en X). El mismo hilo ofrece un texto de configuración para ChatGPT y otro para Claude; a los demás agentes les basta pegar una línea que les pide seguir la guía de configuración de la documentación para desarrolladores y usar Notion como su sistema de contexto.

El Centro de ayuda lo resume en tres ideas. Cada agente conectado puede retomar el trabajo donde lo dejó el anterior. Los agentes guardan tus preferencias, decisiones y detalles de proyecto en una base Memories que solo tú puedes ver y editar. El texto de configuración respeta la estructura actual de tu espacio y pregunta antes de crear o cambiar algo (Centro de ayuda de Notion: Notion MCP).

La función de memoria ya existía desde octubre: las notas del 19 de octubre dicen que la sincronización de memoria empezó a funcionar ese día (notas del 19 de octubre). Lo del 4 de noviembre añadió, sobre todo, textos de configuración.

La documentación para desarrolladores aclara qué es esa memoria. Es una base Memories personal más una página About que la resume, y Notion crea ambas la primera vez que guardas un recuerdo. Tus recuerdos te pertenecen y no dan a ningún cliente acceso a contenido que tú no puedas ver. La memoria por MCP funciona en todos los planes, pero solo con conexiones que actúan como el usuario; no funciona con conexiones que pertenecen al espacio de trabajo (documentación de Notion: memoria personal). Para escribir un recuerdo se llama a notion-create-pages con parent igual a "memory" (referencia de herramientas de páginas).

Dos páginas oficiales no coinciden en un punto. La página del Centro de ayuda sobre Memories dice que funcionan en espacios con Notion AI activado, y Notion AI forma parte de Business y Enterprise (Ver tus Memories de Notion Agent). La documentación para desarrolladores dice «todos los planes». No pudimos probar cada plan. La comprobación segura es sencilla: intenta guardar un recuerdo en tu propio espacio.

Con estas fuentes juntas, la conclusión es clara. La memoria de Notion sirve para cosas como «esta persona quiere los riesgos al principio del informe» o «estas son las marcas del proyecto». No sirve para cientos de publicaciones de la competencia al día que lee todo un equipo. Esos datos van en una base de equipo normal, con campos y reglas que diseñas tú.

PreguntaMemories personal de NotionBase de competencia del equipo (este artículo)
Quién la veSolo túEl equipo, según permisos de página y de columna
Cómo escribe el agentenotion-create-pages con parent: "memory"notion-create-pages en la base, notion-update-page para cambiar
Tipo de conexiónSolo conexiones de usuarioAmbas; los tokens MCP del espacio requieren Business o Enterprise
Para qué sirvePreferencias, decisiones, contextoUna fila estructurada por publicación
DuplicadosLos gestiona NotionNo hay restricción única; el agente busca antes de escribir
Probado aquíNoLado de datos probado; lado de Notion como ejemplo de configuración

Por qué los datos de competencia van en una base y no en Memories

Hay tres razones. La primera es la visibilidad: Memories es privada y el agente de un colega no puede leer la tuya, mientras que una tabla de competencia existe para que la lea un grupo. La segunda es la forma de los datos: un recuerdo es un texto corto que completa el contexto al inicio de la siguiente conversación, y una publicación de la competencia es un registro con columnas fijas que se ordena, se filtra y se cuenta por semana, justo lo que hacen bien las bases y vistas de Notion.

La tercera razón es la trazabilidad. El 29 de octubre Notion añadió notion-get-version-changes, que lista qué cambió en una página o base durante un periodo y quién hizo cada cambio, incluidas las ediciones de Notion AI, de los agentes personalizados y de los clientes MCP. El 3 de noviembre llegó notion-restore-version, que devuelve una página o base a un momento anterior (registro de cambios para desarrolladores, referencia de herramientas de historial). Cuando dos agentes escriben en la misma tabla, puedes saber cuál escribió mal y deshacerlo. Una memoria privada no te da nada de eso.

Hay otro detalle que se pasa por alto. Una base de Notion no tiene restricción de clave única. La propiedad ID numera cada fila, pero ese número lo genera Notion y no se puede editar (Centro de ayuda: propiedades de base de datos); empieza en 1 y se asigna a cada página (Centro de ayuda: propiedad Unique ID). No impide que entre un duplicado desde fuera. Si los dos agentes creen que el mismo video de TikTok es nuevo, la tabla tendrá dos filas. Por eso hay que diseñar la búsqueda de duplicados antes de empezar y mantener pequeña cada consulta.

Diseño de campos: 11 campos de datos, cada uno con su origen

La tabla tiene 11 campos de datos. Seguimos tres reglas: guardar solo lo que el informe semanal necesita; que cada campo corresponda a un campo de response_fields en el catálogo de EveryInfra; y que un mismo nombre signifique lo mismo en todas las plataformas. El catálogo es gratuito: GET https://api.everyinfra.com/api/v1/social/catalog devuelve los parámetros, los campos de respuesta y el price_usd de cada capacidad (catálogo de EveryInfra).

Campo en NotionTipoTikTok (`tiktok/user_videos`, `tiktok/search`)Instagram (`instagram/user_posts`)YouTube (`youtube/user_posts`, `youtube/video`)
Key (título)Títulotiktok: + idinstagram: + post_idyoutube: + id
PlatformSelecciónValor fijoValor fijoValor fijo
BrandSelecciónSegún author_usernameSegún author_usernameSegún author_username
URLURLurlurlurl
Posted atFecha (UTC)posted_atposted_atposted_at de youtube/video
TextTexto, primeros 200 caracterestexttexttitle
ViewsNúmeroview_countFalta en algunas publicacionesview_count
LikesNúmerolike_countlike_countlike_count
CommentsNúmerocomment_countcomment_countcomment_count
Observed atFecha (UTC)Hora de la llamadaHora de la llamadaHora de la llamada
AgentSelecciónclaude-codecodexcodex

Tres de estas filas las definimos solo después de ver datos reales; el texto del catálogo no basta. Primero, la columna Key no puede ser de tipo número para los identificadores de TikTok; más abajo explicamos por qué. Segundo, Instagram devuelve dos identificadores: post_id, un código corto de 11 caracteres como DfU4LSwCopm, e id, con la forma «número_número», como 4023087433800911462_260452448, donde la parte tras el guion bajo es la cuenta. Usamos post_id porque coincide con el código de la URL de la publicación y una persona lo puede comprobar a simple vista. Tercero, la hora de publicación de YouTube debe venir de youtube/video, no de la lista del canal.

Un último detalle viene de Notion. Si tu base tiene una columna llamada «URL», Notion MCP la guarda bajo la clave userDefined:URL y, desde el 16 de octubre, lo avisa en la lista warnings de la respuesta (entrada del 16 de octubre del registro de cambios). Cuando el agente actualice esa fila después, debe usar el nombre de clave que vino en la respuesta.

Los datos reales también nos llevaron a añadir columnas de control que el agente calcula con reglas y que no vienen de la API: Count precision (si un conteo es exacto o redondeado), Owned (si la cuenta que publica es la propia marca) y, para la búsqueda en español, First seen (la primera vez que el agente vio la publicación) y Saves, que toma collect_count. Las secciones siguientes muestran por qué.

Ilustración. Abajo hay tres cajas de vidrio transparente: una guarda una tarjeta alta, otra una tarjeta ancha y otra una ficha redonda, que representan tres plataformas con datos de forma distinta. De cada caja sale un tubo hacia arriba y los tres tubos llegan a un mismo estante con una fila de tarjetas idénticas. El tubo de la derecha es verde azulado y muestra los datos ya normalizados en un solo formato.
Tres plataformas devuelven tres formas de datos. Normalízalas en un solo conjunto de campos antes de escribir en Notion.

Llamadas reales: 7 listados, 130 filas y menos del 60 % listas para guardar

Hicimos las llamadas en dos tandas el 8 de noviembre de 2026, entre las 00:18 y las 00:27, hora de Singapur. Repartimos el trabajo como lo haría un equipo: Claude Code se encarga de TikTok, y Codex, con una cuenta de ChatGPT, se encarga de Instagram y YouTube. Elegimos CeraVe y The Ordinary porque las dos marcas tienen cuentas oficiales en las tres plataformas y publican a menudo; una es una marca de farmacia de gran consumo y la otra apunta a quienes leen ingredientes. Todas las llamadas usaron la misma clave de prueba.

Hora de SingapurCapacidadParámetrosFilasCobroPapel
00:18:08tiktok/user_videosusername: cerave, limit: 20200,000556 USDClaude Code
00:18:28tiktok/searchkeyword: cerave, content_type: video200,000556 USDClaude Code
00:18:44youtube/user_postsurl: youtube.com/@CeraVe200,000556 USDCodex
00:19:02instagram/user_postsusername: cerave (asíncrona)200,000556 USDCodex
00:21:58tiktok/user_videos (por MCP)username: theordinary, limit: 10100,000556 USDClaude Code
00:25:49youtube/videoURL de un video de CeraVe10,000556 USDCodex
00:26:30instagram/user_postsusername: theordinary (asíncrona)200,000556 USDCodex
00:27:35youtube/user_postsurl: youtube.com/@theordinary200,000556 USDCodex
00:34:09tiktok/searchkeyword: cerave piel grasa200,000556 USDClaude Code

Cada llamada tiene precio fijo: limit 20 y limit 10 cuestan lo mismo, 0,000556 USD. El catálogo marca instagram/user_posts como asíncrona: la petición devuelve de inmediato un 202 y un poll_url, consultamos esa dirección y a las 00:21:47 llegaron 20 filas. Los «7 listados» son todas las llamadas de la tabla salvo la consulta única de youtube/video y la búsqueda en español, que analizamos aparte. Juntos devolvieron 130 filas.

Clasificamos esas 130 filas con una regla fija en un script. Una fila se puede guardar como «publicación nueva de la marca» solo si cumple tres condiciones: la cuenta que publica es la de la marca, is_pinned no es verdadero y posted_at es una hora absoluta en formato ISO 8601.

Gráfico de barras horizontales apiladas. Siete barras representan siete llamadas, cada una con hasta 20 filas, en cuatro colores: publicación de la marca con fecha completa, video fijado antiguo, publicado por otra cuenta y solo fecha relativa. tiktok/user_videos de CeraVe tiene 17 filas propias y 3 videos fijados antiguos. tiktok/user_videos de The Ordinary tiene 10 filas propias. tiktok/search de cerave tiene 3 filas de la cuenta de la marca y 17 de otras cuentas. instagram/user_posts de CeraVe tiene 18 filas propias y 2 de otras cuentas. instagram/user_posts de The Ordinary tiene 20 filas propias. youtube/user_posts tiene 20 filas con solo fecha relativa para cada marca. Título: 7 llamadas, 130 filas, menos del 60 % entra tal cual en Notion.

El gráfico muestra tres tipos de filas que parecen datos pero no se pueden guardar tal cual. El primero son los videos fijados. Los 3 primeros videos del perfil de TikTok de CeraVe están fijados y se publicaron el 10 de febrero, el 24 de febrero y el 31 de agosto de 2026; el de agosto tiene 71,4 millones de vistas. Aparecen al principio de la lista de «videos recientes». Si un agente toma las primeras filas como publicaciones de la semana, presenta un anuncio de agosto como nuevo y suma 71,4 millones de vistas a esta semana. La respuesta trae el campo is_pinned, así que basta con filtrar, pero el agente tiene que saber que debe hacerlo. Las 10 filas de The Ordinary no tenían videos fijados, de modo que revisar una sola cuenta no basta para ver el problema.

El segundo tipo son las publicaciones de otras cuentas. Entre las 20 filas de Instagram de CeraVe, 2 vienen de otras cuentas: un evento conjunto de una cafetería del 6 de noviembre y un video en colaboración con una celebridad del 22 de octubre. Aparecen en el perfil de la marca porque las colaboraciones de Instagram se muestran en las dos cuentas. Decidir si cuentan para el alcance de la marca es una decisión de negocio; en cualquier caso, la tabla necesita una columna que diga «quien publica no es la marca», o el informe sumará a la marca los «me gusta» de otra cuenta.

El tercer tipo son las fechas relativas de YouTube. Las llamadas youtube/user_posts de las dos marcas devolvieron 20 filas cada una y todos los valores de posted_at eran texto relativo como «10d ago», «2w ago», «1mo ago» o «1y ago». No es un error de la API: la lista de videos del canal muestra así las fechas. Pero una tabla que agrupa por semana no puede usar «1mo ago», que puede significar 30 o 59 días. Más abajo explicamos cómo completar ese dato.

La búsqueda en español: «cerave piel grasa» trae contenido que no caduca

La búsqueda con tiktok/search responde a otra pregunta que el listado del perfil. El perfil muestra lo que publica la marca; la búsqueda muestra quién habla de la marca. A las 00:34:09 buscamos «cerave piel grasa» y llegaron 20 videos de 19 cuentas distintas. Solo uno venía de la cuenta de la marca: un video en inglés publicado en Estados Unidos el 1 de julio de 2026, con 158 442 vistas. Los otros 19 eran de creadores.

Campo de `tiktok/search`«cerave piel grasa» (20 videos, 00:34:09)«cerave» (20 videos, 00:18:28)
countryEE. UU. 8, Bolivia 3, México 3, Colombia, España, Guatemala, Honduras, Perú y Ecuador 1 cada unoEE. UU. 13, Canadá 2, otros 5 países 1 cada uno
languagees 18, en 2en 19, th 1
Publicados en los últimos 30 días4 de 2013 de 20
Publicados en los últimos 7 días3 de 2012 de 20
Publicación más antigua13 de marzo de 202417 de mayo de 2026
Mediana de vistas38 29112 018
Mediana de guardados por cada «me gusta»0,470,09
Videos en común con la otra búsqueda00

La diferencia más útil está en las fechas y en los guardados. En español, la búsqueda trae sobre todo videos que siguen vivos durante meses: rutinas para piel grasa, comparaciones de limpiadores, explicaciones de ingredientes. Solo 4 de 20 eran del último mes y el más antiguo tenía casi dos años y ocho meses. Además, la gente los guarda mucho: la mediana de collect_count dividido entre like_count fue 0,47, unas cinco veces más que en la búsqueda «cerave» en inglés. El video con más guardados acumulaba 80 354.

Tipo de filaEjemplo en nuestros datosDónde vaColumna que manda
Publicación propia con fecha completa68 de 130 filas de listadosTabla de publicaciones de marcaPosted at
Video fijado antiguo3 videos de CeraVe en TikTokNo entraNo aplica
Colaboración de otra cuenta2 filas de Instagram de CeraVeTabla de marca con Owned en «no»Posted at
Solo fecha relativa40 filas de YouTubeEspera a youtube/videoPosted at, tras completarla
Video de creador en la búsqueda19 de 20 en «cerave piel grasa»Tabla de «quién habla de la marca»First seen

Esto cambia el diseño de la tabla. Si el agente trata «entró hoy en la tabla» como «se publicó esta semana», el informe del lunes dirá que la conversación sobre la marca creció, cuando en realidad la búsqueda solo trajo videos de 2024 y 2025. Por eso añadimos First seen, la hora en que el agente vio la publicación por primera vez, que nunca cambia después, separada de Posted at. Y añadimos Saves, porque en este tipo de contenido los guardados dicen más que los «me gusta»: un video que la gente guarda es una referencia a la que volverá.

Ninguno de los 20 videos tenía is_ad verdadero y solo uno llevaba una etiqueta de colaboración pagada en hashtags. Que is_ad sea falso no significa que no haya patrocinio: ese campo marca espacios de anuncio en el feed, no publicaciones de creadores pagadas por la marca. La página de búsqueda por palabra clave en TikTok lista todos los campos de cada fila.

La clave para no duplicar: qué identificador y por qué no puede ser un número

Cuando dos agentes escriben en la misma tabla, la mayoría de los duplicados vienen de una misma publicación que devuelven dos capacidades. Nos pasó con las dos llamadas de TikTok de CeraVe en inglés: el resultado de tiktok/user_videos y el de tiktok/search comparten 3 identificadores de video. Si Claude Code escribe primero la lista del perfil y luego la búsqueda sin comprobar, la tabla gana 3 filas de más. La solución es una clave que no cambie entre capacidades: el nombre de la plataforma más el identificador propio de la publicación, por ejemplo tiktok:7704741979216694541. Antes de escribir, el agente busca la clave; si existe, actualiza la fila, y si no, crea una nueva.

El tipo de la clave da más problemas que su contenido. Los identificadores de video de TikTok tienen 19 dígitos; los 40 de las dos llamadas de CeraVe los tienen, y EveryInfra los devuelve como cadenas JSON. El problema llega después. Si un agente decide que «esto es un número» y lo escribe en una propiedad numérica de Notion, o lo trata como número en JavaScript, el valor se rompe. Un número de JavaScript es un doble IEEE 754 y el mayor entero que representa con exactitud es 2^53 − 1, es decir, 9 007 199 254 740 991 (MDN: Number.MAX_SAFE_INTEGER). Un identificador de TikTok de 19 dígitos es unas 850 veces mayor. Nuestro script convirtió los 40 identificadores a doble y de vuelta: 0 de 40 quedaron intactos y los últimos dígitos cambiaron siempre.

Por eso la clave debe ser texto, y la columna de título es el mejor lugar. Los permisos por columna no pueden restringir el título en Notion (Centro de ayuda: acceso a propiedades) y Notion recomienda a los agentes apoyarse en títulos claros y descriptivos (consejos de Notion MCP). En la búsqueda en español no hubo ningún video repetido con el perfil ni con la búsqueda en inglés, pero eso no cambia la regla: el próximo lunes, un video de la marca puede aparecer en las dos listas.

Los 3 videos compartidos mostraron otro problema: el mismo video tiene conteos con distinta precisión según la capacidad. Las dos llamadas se hicieron con solo 20 segundos de diferencia.

Identificador del videoVistas en `tiktok/user_videos`Vistas en `tiktok/search`«Me gusta» en `tiktok/user_videos`«Me gusta» en `tiktok/search`
7680224710004722958 (31 ago, fijado)71 400 00071 440 95022 90022 850
7704741979216694541 (5 nov)44894489163163
7705119448046357774 (6 nov)253825388282

Los conteos pequeños coinciden. En los grandes, la lista del perfil da valores redondeados (71 400 000 y 22 900) y la búsqueda da valores más exactos (71 440 950 y 22 850). Así que «gana la última escritura» es una mala regla: si el lado de Codex actualiza después esa fila con un valor redondeado, el exacto 71 440 950 se convierte en 71 400 000. Proponemos la columna Count precision con dos valores, exacto o redondeado, y una prueba en dos pasos. Primero, si tienes dos lecturas del mismo video, por ejemplo una del perfil y otra de la búsqueda, el valor con menos ceros al final es el exacto y el otro es el redondeado. Segundo, si solo tienes una lectura, mira la forma del número: un conteo de 10 000 o más es redondeado si se puede escribir como K o M con un decimal, como 22 900 (22,9K), 115 700 (115,7K) o 71 400 000 (71,4M).

La prueba de forma tiene un error conocido: un conteo exacto que cae en un número redondo, como 22 000, también parece redondeado. Un video de CeraVe publicado el 17 de octubre de 2026 (UTC) marcó 10 000 vistas en las dos lecturas, y el número solo no dice si es exacto. Un conteo redondeado no reemplaza a uno exacto, salvo que el nuevo sea más de un 1 % mayor. Estas reglas salen de 3 videos compartidos, y solo uno tiene conteos grandes; la muestra es pequeña, así que pruébalas con tus propias marcas antes de confiar en ellas.

La hora de actualización: Observed at, Posted at y el «10d ago» de YouTube

Una tabla que los agentes actualizan una y otra vez necesita dos horas: Posted at dice cuándo se publicó y Observed at dice cuándo el agente leyó los conteos. Leímos el perfil de TikTok de CeraVe dos veces, a las 00:18:08 y a las 00:48:17, con 30 minutos de diferencia. De los 17 videos no fijados, 6 ganaron vistas y el más reciente, del 6 de noviembre, subió un 0,99 %. 3 no cambiaron, y uno de ellos muestra 115 700, un conteo redondeado que oculta pequeños cambios. Los otros 8 perdieron entre un 0,01 % y un 0,07 % de sus vistas.

Cambio entre las 00:18:08 y las 00:48:17VideosRango
Subieron6+0,01 % a +0,99 %
Sin cambio30 %
Bajaron8−0,01 % a −0,07 %

Que los conteos bajen indica que la plataforma los corrige después, así que «quedarse con el mayor de dos valores» también es mala regla: hay que confiar en la lectura exacta más reciente. Sin Observed at, dos filas con conteos distintos el lunes no dicen nada, porque no se distingue el crecimiento real de dos lecturas hechas a distintas horas.

Gráfico de columnas. El eje horizontal muestra las fechas de publicación de 17 videos de TikTok de CeraVe no fijados, del 6 de noviembre hacia atrás hasta el 15 de octubre. El eje vertical muestra el cambio porcentual de vistas entre dos lecturas. El video más reciente cambió más y aparece en verde azulado. Los videos más antiguos cambiaron menos y algunos bajaron un poco. Título: mismos videos, 30 minutos después, unas suben y otras bajan.

El problema de Posted at está en YouTube. Como vimos, youtube/user_posts solo da fechas relativas. A las 00:25:49 consultamos un video de CeraVe con youtube/video. La lista del canal decía «10d ago» y la consulta individual devolvió posted_at igual a 2026-10-28T04:00:20+00:00, es decir, el mediodía del 28 de octubre en Singapur, 10 días y 20 horas antes de la llamada: «10d ago» es un valor redondeado hacia abajo.

Campo`youtube/user_posts` (00:18:44)`youtube/video` (00:25:49)
posted_at«10d ago»2026-10-28T04:00:20+00:00
Duración«0:25»«00:00:25»
view_count664670

Las vistas pasaron de 664 a 670 porque entre las dos lecturas hubo 7 minutos. El campo oficial snippet.publishedAt de la API de YouTube también es una hora ISO 8601 (YouTube Data API: Videos), así que guarda todas las horas como valores ISO 8601 o RFC 3339 en UTC (RFC 3339) y nunca texto como «10d ago», que cambia de significado cada día.

Completar la fecha cuesta muy poco. Cada semana, el lado de Codex llama una vez a youtube/video por cada video nuevo de la lista del canal. Nuestros datos muestran 3 videos normales de CeraVe en las últimas tres semanas («10d», «2w» y «3w ago») y 1 de The Ordinary («3w ago»): unos 0,7 videos por marca y semana, o unos 2 por semana para tres marcas. Calculamos con 3 por semana para dejar margen, unas 13 consultas al mes a 0,000556 USD cada una. La página de video individual de YouTube lista los campos de esa consulta.

notion mcp claude code: ejemplo de configuración del lado de Claude Code

Claude Code necesita dos servidores MCP remotos: Notion y EveryInfra. La configuración oficial de Notion es un comando; después ejecutas /mcp dentro de Claude Code e inicias sesión con OAuth. La opción --scope project escribe la configuración en .mcp.json, en la raíz del proyecto, para que el equipo la comparta (documentación de Notion: conectar Claude Code). EveryInfra usa una clave Bearer en la cabecera. Los servidores HTTP remotos de Claude Code aceptan la opción --header, y los valores ${VAR} de .mcp.json se expanden desde variables de entorno al cargar el archivo (documentación MCP de Claude Code). Lo que sigue es un ejemplo de configuración; no ejecutamos este proyecto dentro de Claude Code.

bash
# Notion: OAuth. Tras añadirlo, ejecuta /mcp en Claude Code para iniciar sesión.
claude mcp add --transport http notion https://mcp.notion.com/mcp --scope project

# EveryInfra: la clave Bearer sale de una variable de entorno, no del repositorio.
export EVERYINFRA_API_KEY=...   # guárdala en tu perfil de shell o gestor de secretos
claude mcp add --transport http everyinfra https://api.everyinfra.com/mcp \
  --header "Authorization: Bearer ${EVERYINFRA_API_KEY}" --scope project
json
{
  "mcpServers": {
    "notion": { "type": "http", "url": "https://mcp.notion.com/mcp" },
    "everyinfra": {
      "type": "http",
      "url": "https://api.everyinfra.com/mcp",
      "headers": { "Authorization": "Bearer ${EVERYINFRA_API_KEY}" }
    }
  }
}

La documentación de Claude Code avisa de algo importante: una entrada JSON con url pero sin type se trata como servidor local stdio, se omite y aparece un error. Escribe siempre "type": "http" (documentación MCP de Claude Code). Vigila también el número de herramientas. El servidor MCP de EveryInfra tiene 12 y la lista completa de Notion MCP supera las cincuenta (lista de herramientas de Notion MCP). Los dos juntos ocupan bastante contexto; Notion sugiere ejecutar /context para ver cuántos tokens usa cada servidor. Para este trabajo, del lado de EveryInfra bastan dos herramientas: everyinfra_call_api y everyinfra_get_job.

Para ejecutar el trabajo de forma programada hay dos caminos, cada uno con su costo. Las tareas programadas locales de Claude Code Desktop leen los archivos de configuración de tu equipo, así que el .mcp.json con cabecera funciona; pero solo corren mientras la aplicación está abierta y el equipo despierto, y si el equipo duerme esa ejecución se salta (tareas programadas de escritorio). Las tareas programadas en la nube, antes llamadas routines, corren en la nube de Anthropic aunque tu equipo esté apagado; están en los planes Pro, Max, Ultra, Team y Enterprise y se ejecutan como mucho una vez por hora (tareas programadas en la nube). Usan los conectores de tu cuenta de claude.ai. No probamos cómo llevar a esa ejecución un servidor privado con cabecera; depende de tus variables de entorno en la nube y de la configuración del repositorio, así que haz una prueba antes de depender de ella.

notion mcp connector: por qué ChatGPT web no acepta una cabecera y Codex sí

El lado de ChatGPT tiene una trampa más que el de Claude. En ChatGPT web, un servidor MCP propio ahora es un plugin: abres ChatGPT Plugins, pulsas el signo más, eliges Add custom MCP server, escribes un nombre y la URL del servidor, y eliges un método de autenticación. La documentación de OpenAI solo lista tres métodos: OAuth, sin autenticación, y OAuth o sin autenticación combinados (documentación de OpenAI: Add custom MCP server). No hay un campo para una cabecera fija; en el foro de OpenAI ya se preguntó lo mismo cuando salió el modo desarrollador (hilo de la comunidad de OpenAI). El servidor MCP remoto de EveryInfra usa una clave Bearer. Comprobamos /.well-known/oauth-protected-resource y /.well-known/oauth-authorization-server y los dos devuelven 404: hoy el servidor no admite OAuth.

¿Puede conectarse igualmente ChatGPT web? A las 00:17:36 llamamos a tools/call sin clave. El servidor respondió unauthorized y el texto del error indica que la clave puede ir en la cabecera Authorization: Bearer o en el parámetro ?key=, y que no hubo cobro. En teoría, podrías elegir «sin autenticación» en ChatGPT y pegar una URL con ?key=. No lo recomendamos: la clave quedaría visible en la configuración del plugin, en el historial del navegador y en registros, y cualquiera del espacio que vea esa configuración vería la clave. No probamos ese camino en ChatGPT.

El camino más seguro para el lado de ChatGPT es Codex. El Centro de ayuda de OpenAI indica que, si inicias sesión en Codex con una cuenta de ChatGPT, Codex usa los límites de tu plan, y que desde diciembre los planes Plus, Pro y Business comparten un mismo uso entre ChatGPT y Codex (ChatGPT Work and Codex, Understanding ChatGPT and Codex usage limits). La configuración MCP de Codex admite bearer_token_env_var: le das el nombre de una variable de entorno y Codex pone su valor en la cabecera Authorization (documentación MCP de Codex). Para Notion, la documentación de Notion añade [mcp_servers.notion] a ~/.codex/config.toml y luego ejecuta codex mcp login notion para OAuth (documentación de Notion: conectar Codex). Este es el ejemplo de configuración:

toml
# ~/.codex/config.toml (ejemplo de configuración, sin probar)
[mcp_servers.notion]
url = "https://mcp.notion.com/mcp"

[mcp_servers.everyinfra]
url = "https://api.everyinfra.com/mcp"
bearer_token_env_var = "EVERYINFRA_API_KEY"
enabled_tools = ["everyinfra_call_api", "everyinfra_get_job"]
tool_timeout_sec = 120
default_tools_approval_mode = "writes"

Dos valores salen de las llamadas reales. El tool_timeout_sec por defecto es 60 segundos y una llamada síncrona de EveryInfra puede esperar hasta 85. Nuestras llamadas síncronas por REST tardaron entre 3,8 y 32,5 segundos (la búsqueda en español, 12,5; la más lenta, youtube/video), y las plataformas lentas pueden pasar de 60, así que usamos 120. Con default_tools_approval_mode = "writes", Codex pide aprobación solo para las herramientas que no están marcadas como de solo lectura. EveryInfra marca everyinfra_call_api con readOnlyHint: false y destructiveHint: true, porque cada llamada cuesta dinero, así que Codex te preguntará cada vez; everyinfra_get_job está marcada como de solo lectura y consultar un trabajo no pide aprobación. ChatGPT web sigue la misma lógica: trata una herramienta sin readOnlyHint como de escritura y pide aprobación, y puedes hacer que recuerde la decisión durante la conversación (documentación de OpenAI). La sección de herramientas de la especificación MCP define estas anotaciones.

ClienteConectar NotionConectar EveryInfra (clave Bearer)Ejecución programadaEstado aquí
Claude Code (local)OAuth con /mcp--header o headers en .mcp.jsonTarea local de escritorio, equipo despiertoEjemplo de configuración
Codex (cuenta de ChatGPT)OAuth con codex mcp login notionbearer_token_env_varSin probarEjemplo de configuración
Plugin de ChatGPT webApp de Notion del directorio, OAuthSolo «sin autenticación» con ?key=; no recomendadoSin probarSin probar
Cualquier cliente hacia EveryInfraNo aplicaCabecera BearerNo aplica12 llamadas reales
Animación de flujo. Arriba a la izquierda está Claude Code, que ejecuta tiktok/user_videos y tiktok/search. Debajo está Codex con cuenta de ChatGPT, que ejecuta instagram/user_posts y youtube/user_posts. Las dos líneas se unen en la caja del MCP remoto de EveryInfra, a la derecha. Debajo está «Normalizar: clave, hora absoluta, precisión», luego «Buscar clave: notion-query-data-sources en modo vista». El camino gira a la izquierda hacia «Crear o actualizar: notion-create-pages o notion-update-page» y termina en la tabla de competencia de Notion, en verde azulado, con una fila por publicación y 11 campos. Un punto gris y uno verde azulado representan a los dos agentes y recorren el camino por turnos.

Un viaje real de ida y vuelta: lo que envía el modelo y lo que vuelve

Con la configuración lista, esto es lo que ocurre a nivel MCP cuando un agente trae el perfil de TikTok de The Ordinary. El 8 de noviembre de 2026, a las 00:21:58 hora de Singapur, enviamos un tools/call JSON-RPC directamente a https://api.everyinfra.com/mcp, con la herramienta everyinfra_call_api y los argumentos plataforma tiktok, acción user_videos, usuario theordinary y límite 10. El servidor respondió con HTTP 200. result.content[0].text contiene una cadena JSON que, al analizarla, tiene 10 videos y un objeto billing con charged_usd igual a 0,000556.

Captura de una respuesta real del MCP de EveryInfra en dos partes. Arriba, los argumentos de la petición tools/call: un recuadro verde azulado marca action user_videos, y los demás argumentos son platform tiktok, username theordinary y limit 10. Abajo, la respuesta analizada: count es 10. Recuadros verde azulado marcan el id del primer video, 7705177610602532114, y posted_at 2026-11-06T21:44:30+00:00. view_count es 50600, like_count es 2908 e is_pinned es false. En billing, charged es true y un recuadro marca charged_usd 0.000556. Se omiten los otros 9 videos y se quitaron los campos de saldo y cuota.
Un viaje real de tools/call por MCP. Quitamos los campos de saldo y cuota y dejamos solo el primer video. Captura del 8 de noviembre de 2026, hora de Singapur. Respuesta real de la API de EveryInfra, 2026-11-08 00:21 SGT

Dos detalles de este viaje importan para la tabla. Primero, el id es la cadena "7705177610602532114", entre comillas: la API no lo trata como número y el error solo puede aparecer cuando el agente escribe en la tabla. Segundo, la respuesta completa de 10 videos ocupa 26 253 bytes, unos 2,6 KB por video, con decenas de campos: URLs de portada, música, biografía del autor y más. Si un agente pega la respuesta entera en el cuerpo de una página de Notion, cada fila pesa mucho y la siguiente búsqueda lee más. Por eso fijamos la lista de campos de antemano.

Cuánto pesa una fila: por qué escribimos solo 11 campos

Volvimos a serializar las mismas filas con solo los 11 campos permitidos y la fila media quedó en 419 bytes, frente a 0,7–2,6 KB de las filas originales. La diferencia viene de tres cosas: las URL firmadas de imágenes y videos, que caducan y luego no sirven; el perfil completo del autor, que se repite en cada fila; y los objetos anidados de música y etiquetas.

Gráfico de barras horizontales con los bytes medios por fila. tiktok/user_videos por REST tiene 2319 bytes, tiktok/user_videos por MCP 2625 bytes, instagram/user_posts 1763 bytes, youtube/user_posts 657 bytes y una fila de Notion con los 11 campos de este artículo unos 419 bytes, en verde azulado. Título: una fila original pesa 0,7 a 2,6 KB y una fila de la tabla unos 0,4 KB.

Las filas pequeñas ayudan de tres maneras. La primera es el límite de escritura de Notion: en una llamada a notion-create-pages, todas las páginas comparten un mismo límite de análisis, y si el contenido es muy grande o complejo, la llamada entera falla y no se crea ninguna página (referencia de herramientas de páginas). La segunda es el contexto del agente: la búsqueda de duplicados lee las filas de las últimas dos semanas, y con filas pequeñas caben más. La tercera es quien lee la tabla el lunes, que solo necesita estas columnas. Si quieres conservar la respuesta original, guárdala en un archivo local junto al agente y pon solo un enlace en la tabla.

Escribir en Notion: buscar la clave y luego crear o actualizar

El lado de Notion usa tres herramientas: notion-query-data-sources lee las filas actuales, notion-create-pages crea filas y notion-update-page las actualiza (referencia de herramientas de bases, referencia de herramientas de páginas). La búsqueda tiene tres límites que definen el diseño de la tabla.

Captura de la documentación para desarrolladores de Notion, página «Manage databases and views, technical reference», sección «Query across data sources». Tres recuadros verde azulado marcan tres partes. El primero dice que el modo filas acepta filtro y orden opcionales y que limit vale 50 por defecto con un máximo de 100. El segundo dice que la respuesta trae results y has_more, que cada resultado usa los nombres de las propiedades como claves y que el modo filas no devuelve cursor. El tercero es una nota azul: el modo vista está disponible en todos los planes sin cuota propia, el SQL sobre una o varias fuentes es ilimitado en Business y Enterprise con Notion AI, los demás planes comparten una cuota medida de SQL de una sola fuente y el modo filas usa esa misma cuota.
Tres límites de notion-query-data-sources: el modo filas devuelve como mucho 100 filas sin cursor, y solo el modo vista no consume cuota en ningún plan. Captura del 8 de noviembre de 2026, hora de Singapur. Documentación para desarrolladores de Notion
Límite de NotionValorFuente
Modo filas, filas por llamada50 por defecto, máximo 100, sin cursorReferencia de herramientas de bases
Modo vistaLibre en todos los planesReferencia de herramientas de bases
Cuota de SQL y modo filasIlimitada en Business y Enterprise con Notion AI; medida en los demás planesReferencia de herramientas de bases
Peticiones por conexión600 por minuto en Business y Enterprise, 180 en los demásLímites de peticiones
Consultas a fuentes de datosUnas 3 por segundoLímites de peticiones
Reintento automáticoUna vez, si la espera es de 2 segundos o menosLímites de Notion MCP

Primero, el modo filas devuelve como mucho 100 filas y sin cursor, así que la fila 101 no se puede leer. Segundo, en Free y Plus el SQL y el modo filas comparten una cuota medida, y solo el modo vista, que consulta una vista guardada, es libre en todos los planes; el SQL ilimitado solo existe en Business y Enterprise con Notion AI (documentación de Notion: diferencias por plan). En Reddit, usuarios de Plus cuentan que una consulta que antes funcionaba ahora pide Business o Enterprise (Reddit: Did Notion just significantly change the MCP capabilities on the free plan?), y otro usuario se queja de que el agente solo veía las primeras 25 entradas de una base (Reddit: The reason why Notion MCP is a big fail). Tercero, la frecuencia: hay límites por conexión y uno aparte para consultas a fuentes de datos (límites de peticiones de Notion); si la espera es de 2 segundos o menos, Notion MCP reintenta una vez por su cuenta, y si es mayor devuelve un error rate_limited al agente (límites de Notion MCP).

Con esos límites y el volumen real de publicaciones, el diseño sale solo. Entre el 1 y el 7 de noviembre, hora de Singapur, las dos marcas publicaron 22 veces en TikTok e Instagram: CeraVe 5 en TikTok y 3 en Instagram, The Ordinary 5 en TikTok y 9 en Instagram. A ese ritmo, tres marcas hacen unas 66 publicaciones en dos semanas; con YouTube y un margen, el total sigue por debajo de 100. Por eso usamos en Notion una vista guardada llamada «Últimos 14 días», que filtra por Posted at y ordena por Key. Antes de escribir, los dos agentes leen esa vista en modo vista y comparan claves por su lado: una clave nueva crea una página y una conocida se actualiza. Así la búsqueda no consume la cuota de Free o Plus y no choca con el tope de 100 filas. Cuando dos semanas superen 100 publicaciones, crea una vista por marca o por plataforma.

La búsqueda en español añade un matiz. Como trae videos de hace meses, filtrar la vista por Posted at dejaría fuera la mayoría y el agente los creería nuevos cada semana. Para la tabla de «quién habla de la marca», la vista debe filtrar por First seen, no por Posted at.

Gráfico de columnas agrupadas. El eje horizontal muestra TikTok e Instagram, cada uno con dos columnas: CeraVe en gris y The Ordinary en verde azulado. TikTok: CeraVe 5, The Ordinary 5. Instagram: CeraVe 3, The Ordinary 9. Título: del 1 al 7 de noviembre, las dos marcas publicaron 22 veces en TikTok e Instagram. El subtítulo indica que el conteo va del 1 de noviembre a las 00:00 al 8 de noviembre a las 00:00, hora de Singapur, y que YouTube no se puede contar por semana porque la lista del canal solo da fechas relativas.

Este es un ejemplo de llamada de creación con los nombres de campo de este artículo:

json
{
  "parent": "<fuente de datos de la tabla; ver la descripción de notion-create-pages>",
  "pages": [{
    "properties": {
      "Key": "tiktok:7705177610602532114",
      "Platform": "tiktok",
      "Brand": "The Ordinary",
      "URL": "https://www.tiktok.com/@theordinary/video/7705177610602532114",
      "date:Posted at:start": "2026-11-06T21:44:30Z",
      "Views": 50600, "Likes": 2908,
      "date:Observed at:start": "2026-11-07T16:21:58Z",
      "Agent": "claude-code", "Count precision": "rounded"
    }
  }]
}

Es un ejemplo de configuración. Escribimos la forma a partir de la referencia de herramientas de páginas de Notion; para la forma exacta de parent en una fila de base, sigue la descripción de notion-create-pages en tu cliente. En la respuesta, una fecha aparece bajo una clave del tipo date:<nombre>:start (referencia de herramientas de páginas). No creamos esta página en Notion. Después de escribir, lee properties y warnings en la respuesta: Notion te dirá si guardó una clave con otro nombre, y ese es el que debes usar en las actualizaciones.

La página de reglas: una sola página que dice a cada agente qué escribir

Dos agentes solo se mantienen coordinados si leen las mismas reglas. La guía de configuración de Notion pide al agente encontrar o crear una página Agent Operating Guide en el espacio y leerla al empezar cada trabajo (guía de configuración de Notion). Añade a esa página una sección corta, «Tabla de competencia», que quepa en una pantalla y con reglas que un agente pueda seguir paso a paso.

ReglaQué hace el agente
1. RepartoClaude Code escribe solo filas de tiktok; Codex, solo de instagram y youtube. Cualquier otra plataforma se salta.
2. ClaveKey = plataforma + «:» + identificador. Copia la cadena tal cual. En Instagram, usa post_id.
3. HoraPosted at, Observed at y First seen en UTC, ISO 8601. La hora de YouTube solo viene de youtube/video. First seen no se cambia nunca.
4. SobrescrituraUn conteo redondeado no reemplaza a uno exacto salvo que sea más de un 1 % mayor. Observed at solo avanza. Entre dos exactos, gana la lectura más reciente aunque sea menor.
5. ExcepcionesOwned en «no» para publicaciones de otras cuentas. Los videos con is_pinned verdadero no entran. Los videos de creadores van a una tabla aparte.
6. ErroresAnte rate_limited, espera retry_after_seconds y reintenta una vez. Si falla otra vez, se detiene y deja un comentario en la página de reglas con el lote fallido.

La regla 4 es la que más se olvida, porque «quedarse con el valor mayor» parece prudente, y los datos de arriba muestran que los conteos también bajan. La regla 6 importa porque un agente que encuentra un error tiende a buscar otro camino, y en una tabla compartida un rodeo silencioso es peor que una parada.

Tener las reglas en Notion y no en el texto de cada agente tiene una ventaja: un solo cambio vale para los dos. Desde Notion 3.8, el historial de versiones de una página nombra a quien la editó, incluidos los agentes (notas de la versión 3.8), así que también sabrás quién tocó la página de reglas. Si puedes, déjala en solo lectura para los agentes. Notion admite permisos por columna en las bases y los agentes pueden tener sus propios permisos (Centro de ayuda: acceso a propiedades), pero eso solo existe en Business y Enterprise. En Plus, lo práctico es guardar la página donde las conexiones de los agentes no puedan editar y revisar su historial una vez por semana.

Costo semanal: llamadas de datos, suscripciones y cuotas de Notion

El costo tiene tres partes: las llamadas de datos a EveryInfra, dos suscripciones de IA y el plan de Notion. Las llamadas de datos se calculan con el price_usd del catálogo. El plan cubre tres marcas: cada día, Claude Code llama una vez por marca a tiktok/user_videos y a tiktok/search, y Codex llama una vez por marca a instagram/user_posts y a youtube/user_posts, en total 12 llamadas al día. Además, cada semana Codex llama a youtube/video para unos 3 videos nuevos de YouTube. Las 5 capacidades cuestan 0,000556 USD por llamada en el catálogo (precios de EveryInfra).

ConceptoPrecio unitarioLlamadas por semanaCosto semanalCosto mensual (30 días)
tiktok/user_videos × 3 marcas0,000556 USD210,011676 USD0,050040 USD
tiktok/search × 3 marcas0,000556 USD210,011676 USD0,050040 USD
instagram/user_posts × 3 marcas0,000556 USD210,011676 USD0,050040 USD
youtube/user_posts × 3 marcas0,000556 USD210,011676 USD0,050040 USD
youtube/video para fechas0,000556 USD30,001668 USD0,007228 USD (13 llamadas)
Total de llamadas de datos870,048372 USD0,207388 USD (373 llamadas)

Para las suscripciones leímos cada página de precios el 8 de noviembre de 2026. Notion Plus cuesta 12 USD por persona al mes con pago mensual o 10 USD al mes con pago anual; Business, 24 USD o 20 USD con pago anual (precios de Notion). Claude Pro cuesta 20 USD al mes o 17 USD al mes con pago anual (precios de Claude). ChatGPT Plus cuesta 20 USD al mes (Centro de ayuda de OpenAI: What is ChatGPT Plus?). Las llamadas de datos suman unos 0,21 USD al mes; Notion Plus con pago mensual, la opción más barata, cuesta unas 58 veces más. Casi todo el costo son suscripciones; los límites reales son la cuota de búsqueda de Notion y el uso de los dos productos de IA, que deciden si puedes correr cada día.

Gráfico de barras horizontales en escala logarítmica, con un paso por cada factor de 10. Cinco barras muestran el costo mensual: llamadas a EveryInfra en este diseño, unos 0,207 USD, en verde azulado; Notion Plus mensual, 12 USD por persona; Claude Pro mensual, 20 USD; ChatGPT Plus mensual, 20 USD; Notion Business mensual, 24 USD por persona. Título: las llamadas de datos cuestan unos 0,21 USD al mes.

Si añades cada día la búsqueda en español por marca, como «cerave piel grasa», sumas 21 llamadas y 0,011676 USD por semana. Para un equipo que sigue a la vez el mercado de Estados Unidos y el latinoamericano, el costo de datos sigue siendo una fracción de un centavo por día y marca.

ProductoPago mensualPago anual (por mes)Leído
Notion Plus (por persona)12 USD10 USD2026-11-08
Notion Business (por persona)24 USD20 USD2026-11-08
Claude Pro20 USD17 USD2026-11-08
ChatGPT Plus20 USDNo consta2026-11-08
Llamadas de datos de EveryInfra (este diseño)0,207388 USDNo aplica2026-11-08

Hay dos costos que no aparecen en ninguna factura. El primero es el método de búsqueda que permite tu plan de Notion: en Free o Plus, la búsqueda de duplicados debe usar el modo vista, no SQL; solo Business con Notion AI deja a los agentes comparar tablas con SQL sin límite. El segundo es la autenticación para ejecuciones sin supervisión: los tokens MCP de Notion, que conectan con un token Bearer sin iniciar sesión en el navegador, solo se crean en Business y Enterprise y solo los crean los propietarios del espacio (preguntas frecuentes de Notion). En Free y Plus hay que usar OAuth, así que la tarea programada debe correr en un cliente que conserve esa sesión.

Límites y precauciones

Primero, no probamos el lado de Notion. Todos los nombres de herramientas, parámetros y límites de Notion de este artículo salen de la documentación para desarrolladores tal como la leímos el 8 de noviembre de 2026, y entre el 13 de octubre y el 5 de noviembre Notion cambió sus herramientas MCP cada dos o tres días (registro de cambios). Vuelve a leer la documentación antes de construir. El paquete de servidor MCP local de código abierto que publicó Notion al principio ya no se desarrolla activamente, y la propia Notion remite al servidor remoto https://mcp.notion.com/mcp (GitHub: makenotion/notion-mcp-server).

Segundo, ChatGPT web no tiene hoy una buena forma de conectarse a EveryInfra: no admitimos OAuth y ?key= deja la clave en la configuración y en los registros. Para el lado de ChatGPT, usa Codex. En Reddit también hay usuarios que cuentan que Notion deja de funcionar o no conecta dentro de ChatGPT (Reddit: Notion MCP not working in ChatGPT); eso no lo podemos depurar por Notion ni por OpenAI.

Tercero, los datos de cada plataforma tienen sus propios límites. tiktok/search devuelve videos relacionados con la palabra clave, no todos; en español, además, trae mucho contenido antiguo. youtube/user_posts solo da fechas relativas, instagram/user_posts incluye colaboraciones, los conteos cambian con el tiempo y algunas capacidades redondean los grandes. Márcalo en columnas en lugar de suponer que los datos están limpios. Del lado de EveryInfra, los parámetros incorrectos, las llamadas fallidas y los resultados vacíos no se cobran, y cada cobro aparece en billing.charged_usd (servidor MCP de EveryInfra).

Cuarto, dos agentes pueden escribir la misma fila a la vez. Nuestro diseño reparte por plataforma, de modo que cada fila tiene un solo autor. Si dejas que los dos agentes traigan la misma plataforma, añade una regla para que solo uno pueda escribir una Key dada en 10 minutos y revisa notion-get-version-changes de forma periódica.

Quinto, las zonas horarias. La tabla guarda UTC, pero una fecha de Notion se muestra en la zona horaria de quien la mira: en Ciudad de México se verá UTC menos 6 horas en noviembre. Decide en qué zona se corta la semana antes de contar. Este artículo cuenta del 1 de noviembre a las 00:00 al 8 de noviembre a las 00:00, hora de Singapur, que en UTC va del 31 de octubre a las 16:00 al 7 de noviembre a las 16:00. Si un agente corta la semana en UTC y el otro en hora local, los números no coinciden y la causa cuesta encontrarla. Escribe la zona en la página de reglas y filtra la vista semanal en esa misma zona.

Sexto, los datos de personas comunes. La mayoría de los resultados de búsqueda son de creadores, y cada fila trae su nombre visible, biografía y avatar. La tabla de competencia necesita el enlace, la hora y los conteos, no el perfil del creador, que además queda desactualizado. Cuando el informe cite a un creador, enlaza la publicación en lugar de nombrar a la persona, y si agrupas por creador, usa el identificador de autor de la plataforma.

Novedades del sector (octubre y noviembre de 2026)

FechaCambio en Notion MCP o alrededorQué cambia para la tabla
2026-10-13Notion 3.8: controles de MCP, permisos por columna, historial con autorPuedes ver qué agente editó qué
2026-10-19Agentes renovados, sincronización de memoriaLa memoria personal ya funciona
2026-10-27Ediciones sugeridas y notion-view-versionRevisar antes de aceptar
2026-10-29notion-get-version-changesAuditar escrituras de cada agente
2026-11-03notion-restore-versionDeshacer una escritura errónea
2026-11-04«Cerebro compartido»Textos de configuración para ChatGPT y Claude

El 4 de noviembre de 2026, Notion presentó MCP como un cerebro compartido para todos los agentes y publicó textos de configuración para ChatGPT y Claude (publicación de Notion en X). Para el lector, significa que Notion trata ya como línea principal que muchos agentes lean y escriban en un mismo espacio, y que las herramientas seguirán cambiando deprisa.

El 3 de noviembre de 2026, Notion MCP añadió notion-restore-version; el 29 de octubre, notion-get-version-changes; y el 27 de octubre, las ediciones sugeridas y notion-view-version (registro de cambios). Para el lector, significa que las escrituras erróneas de un agente ya se pueden encontrar, ver y deshacer, y que compartir una tabla entre dos agentes es mucho menos arriesgado que hace un mes.

A principios de noviembre de 2026, el Centro de ayuda de OpenAI anunció que desde diciembre el uso de Plus, Pro y Business se comparte entre ChatGPT y Codex y se mide en tokens (Understanding ChatGPT and Codex usage limits). Para el lector, significa que una tarea diaria de datos en Codex consume la misma cuota que tus conversaciones en ChatGPT, así que conviene recortar pronto las respuestas largas.

Preguntas frecuentes

¿Cuál es la notion mcp server url?

La URL del servidor remoto es https://mcp.notion.com/mcp, con Streamable HTTP; si un cliente no lo admite, puede usar la URL SSE https://mcp.notion.com/sse (documentación de Notion). La URL del MCP remoto de EveryInfra es https://api.everyinfra.com/mcp. (Origen de la pregunta: sugerencias de Google «notion mcp server url» y «notion mcp url».)

¿Cómo funciona la claude code notion mcp authentication?

Ejecuta claude mcp add --transport http notion https://mcp.notion.com/mcp, escribe /mcp en Claude Code y sigue el inicio de sesión OAuth (documentación de Notion). Si necesitas una conexión sin navegador, en Business o Enterprise el propietario del espacio puede crear un token MCP en el portal para desarrolladores, y el cliente lo envía como token Bearer. (Origen: sugerencias «claude code notion mcp authentication» y «setup notion mcp claude code».)

¿Qué hago si notion mcp chatgpt not working?

Comprueba primero que usas ChatGPT web: según la documentación de OpenAI, los plugins MCP propios se añaden en la web, y los roles del espacio y ajustes de seguridad como Lockdown pueden limitarlos (documentación de OpenAI). El registro de cambios de Notion del 20 de octubre añade que las herramientas nuevas solo aparecen en ChatGPT cuando OpenAI revisa la app de Notion actualizada (registro de cambios). En los hilos de Reddit sobre este problema, la mayoría de las respuestas dicen «esperar a la corrección» o «usar Claude mientras tanto» (hilo de Reddit). (Origen: sugerencia «notion mcp chatgpt not working».)

¿Funciona notion mcp codex?

Sí. La documentación de Notion da la configuración para Codex: añade [mcp_servers.notion] con la URL a ~/.codex/config.toml y ejecuta codex mcp login notion; para un equipo, pon la misma configuración en .codex/config.toml en la raíz del proyecto (documentación de Notion). Si inicias sesión en Codex con una cuenta de ChatGPT, Codex usa los límites de tu plan. (Origen: sugerencia «notion mcp codex».)

¿Se puede usar Notion MCP en el plan gratuito?

Se puede conectar, con límites. En Free y Plus, el SQL tiene una cuota medida de una sola fuente y el modo filas cuenta contra ella; solo las consultas a vistas guardadas son libres. Los tokens MCP requieren Business o Enterprise y algunos filtros de búsqueda solo funcionan en esos planes (preguntas frecuentes de Notion). (Origen: publicación de Reddit «Did Notion just significantly change the MCP capabilities on the free plan?».)

¿Puede chatgpt notion mcp write escribir en una base?

Sí. La documentación de OpenAI indica que ChatGPT admite herramientas de lectura y escritura de servidores MCP y pide aprobar las escrituras por defecto (documentación de OpenAI). notion-create-pages y notion-update-page son herramientas de escritura, y las de borrado como notion-delete-pages exigen además user_confirmed: true en los argumentos. (Origen: sugerencia «chatgpt notion mcp write».)

Primeros pasos

  1. Regístrate en el inicio rápido de EveryInfra, crea una clave de API y guárdala en la variable de entorno EVERYINFRA_API_KEY.
  2. En Notion, crea la tabla de competencia con los 11 campos de datos y las columnas de control de este artículo. Usa el título para Key y añade la vista «Últimos 14 días».
  3. En Claude Code, añade los dos servidores MCP del ejemplo de configuración. En Codex, añade los dos bloques a config.toml.
  4. Ejecuta cada lado una vez a mano: pide a Claude Code tiktok/user_videos de una marca y a Codex instagram/user_posts de la misma marca. Comprueba que cada ejecución añade un grupo de filas y que ninguna Key se repite.
  5. Cuando las filas estén bien, programa la tarea y revisa notion-get-version-changes una vez por semana para ver qué agente escribió qué.

Los campos de cada plataforma están en las páginas de TikTok Scraper API, Instagram Scraper API y YouTube Scraper API. Las páginas de videos de perfil de TikTok, búsqueda en TikTok, publicaciones de perfil de Instagram, videos de canal de YouTube y video individual de YouTube listan todos los parámetros.

Lecturas relacionadas

Referencias

  1. «Give all your agents one shared brain in Notion», Notion en X, 2026-11-04, https://x.com/NotionHQ/status/2118059335930744999
  2. Connect AI tools with Notion MCP, Centro de ayuda de Notion, leído el 2026-11-08, https://www.notion.com/help/notion-mcp
  3. Set up Notion for your agent (guía de configuración), documentación de Notion, leído el 2026-11-08, https://developers.notion.com/prompts/setup
  4. Use shared Skills and delegate to Notion Custom Agents (memoria personal), documentación de Notion, leído el 2026-11-08, https://developers.notion.com/guides/mcp/tools-skills-agents
  5. Connect Notion to your AI assistant with MCP, documentación de Notion, modificado el 2026-10-28, https://developers.notion.com/guides/mcp/get-started-with-mcp
  6. Notion MCP tools for projects, tasks, and teamwork, documentación de Notion, leído el 2026-11-08, https://developers.notion.com/guides/mcp/mcp-supported-tools
  7. Notion MCP FAQs and complete tool list, documentación de Notion, leído el 2026-11-08, https://developers.notion.com/guides/mcp/tools-faqs
  8. Database and view tools in Notion MCP, documentación de Notion, leído el 2026-11-08, https://developers.notion.com/guides/mcp/tools-databases-reference
  9. Page creation and editing tools in Notion MCP, documentación de Notion, leído el 2026-11-08, https://developers.notion.com/guides/mcp/tools-pages-reference
  10. Comments and change history tools in Notion MCP, documentación de Notion, leído el 2026-11-08, https://developers.notion.com/guides/mcp/tools-comments-reference
  11. Notion MCP rate limits, documentación de Notion, leído el 2026-11-08, https://developers.notion.com/guides/mcp/rate-limits
  12. Request limits, referencia de la API de Notion, leído el 2026-11-08, https://developers.notion.com/reference/request-limits
  13. Changelog, documentación de Notion, entradas del 2026-10-13 al 2026-11-05, https://developers.notion.com/page/changelog
  14. Connect AI assistants to Notion with MCP (resumen), documentación de Notion, leído el 2026-11-08, https://developers.notion.com/docs/mcp
  15. Agents, rebuilt to do more for less, notas de versión de Notion, 2026-10-19, https://www.notion.com/releases/2026-10-19
  16. Notion 3.8: Context for your agents, notas de versión de Notion, 2026-10-13, https://www.notion.com/releases/2026-10-13
  17. View your Notion Agent Memories, Centro de ayuda de Notion, leído el 2026-11-08, https://www.notion.com/help/view-your-notion-agent-memories
  18. Manage database property access, Centro de ayuda de Notion, leído el 2026-11-08, https://www.notion.com/help/database-property-access
  19. Precios, Notion, leído el 2026-11-08, https://www.notion.com/pricing
  20. makenotion/notion-mcp-server, GitHub, leído el 2026-11-08, https://github.com/makenotion/notion-mcp-server
  21. Connect Claude Code to tools via MCP, documentación de Claude Code, leído el 2026-11-08, https://code.claude.com/docs/en/mcp
  22. Schedule recurring tasks in Claude Code Desktop, documentación de Claude Code, leído el 2026-11-08, https://code.claude.com/docs/en/desktop-scheduled-tasks
  23. Automate work with scheduled tasks, documentación de Claude Code, leído el 2026-11-08, https://code.claude.com/docs/en/routines
  24. Precios, Claude, leído el 2026-11-08, https://claude.com/pricing
  25. Add custom MCP server, documentación de OpenAI, leído el 2026-11-08, https://developers.openai.com/api/docs/guides/custom-mcp-server
  26. Model Context Protocol (Codex), documentación de OpenAI, leído el 2026-11-08, https://developers.openai.com/codex/mcp
  27. ChatGPT Work and Codex, Centro de ayuda de OpenAI, leído el 2026-11-08, https://help.openai.com/en/articles/20001275-chatgpt-work-and-codex
  28. Understanding ChatGPT and Codex usage limits, Centro de ayuda de OpenAI, leído el 2026-11-08, https://help.openai.com/en/articles/20001625-understanding-chatgpt-and-codex-usage-limits
  29. What is ChatGPT Plus?, Centro de ayuda de OpenAI, leído el 2026-11-08, https://help.openai.com/en/articles/6950777-what-is-chatgpt-plus
  30. MCP server tools now in ChatGPT developer mode, comunidad de OpenAI, 2025-09-10, https://community.openai.com/t/mcp-server-tools-now-in-chatgpt-developer-mode/1357233
  31. Tools (anotaciones), especificación de Model Context Protocol 2025-06-18, https://modelcontextprotocol.io/specification/2025-06-18/server/tools
  32. Number.MAX_SAFE_INTEGER, MDN, leído el 2026-11-08, https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER
  33. RFC 3339: Date and Time on the Internet: Timestamps, IETF, 2002-07, https://www.rfc-editor.org/rfc/rfc3339
  34. Videos (snippet.publishedAt), YouTube Data API, leído el 2026-11-08, https://developers.google.com/youtube/v3/docs/videos
  35. Did Notion just significantly change the MCP capabilities on the free plan?, Reddit r/Notion, leído el 2026-11-08, https://www.reddit.com/r/Notion/comments/1uc5cje/did_notion_just_significantly_change_the_mcp/
  36. The reason why Notion MCP is a big fail, Reddit r/Notion, leído el 2026-11-08, https://www.reddit.com/r/Notion/comments/1t7kpxp/the_reason_why_notion_mcp_is_a_big_fail/
  37. Notion MCP not working in ChatGPT, Reddit r/Notion, leído el 2026-11-08, https://www.reddit.com/r/Notion/comments/1ps8y93/notion_mcp_not_working_in_chatgpt_is_anyone_else/
  38. Database properties, Centro de ayuda de Notion, leído el 2026-11-08, https://www.notion.com/help/database-properties
  39. Unique ID property, Centro de ayuda de Notion, leído el 2026-11-08, https://www.notion.com/help/unique-id
  40. Catálogo de capacidades de EveryInfra, EveryInfra, leído el 2026-11-08, https://api.everyinfra.com/api/v1/social/catalog
  41. Endpoint MCP remoto de EveryInfra, EveryInfra, probado el 2026-11-08, https://api.everyinfra.com/mcp

Referencia BL-111

Nuestras estadísticas de visitas propias están siempre activas. Google Analytics, que nos ayuda a entender cómo se usan nuestras páginas públicas (no tu espacio de trabajo con sesión iniciada), solo se activa con tu permiso. Consulta nuestra Política de privacidad.