Claude Artifacts MCP: un panel de competencia que se actualiza cada vez que alguien lo abre
Los artifacts publicados de Claude llaman a conectores MCP con la cuenta de quien los abre. Probamos 9 marcas en TikTok, YouTube e Instagram, con costes.

En julio de 2026, Claude dio a los artifacts publicados una capacidad nueva. Cada vez que alguien abre la página, esta puede llamar a conectores MCP a través de las conexiones de claude.ai de esa misma persona (resumen de la semana 29 de Claude Code). Encaja muy bien con un panel de competencia que muestre datos frescos a quien lo abra. El 2026-11-05, entre las 00:18 y la 01:05 (hora de Singapur), consultamos las publicaciones recientes de 9 marcas en TikTok, YouTube e Instagram con el servidor MCP remoto de EveryInfra. Fueron 39 llamadas de datos, 38 cobradas y 1 reembolsada, por 0,021128 USD en total. En la parte de Claude, todo el artículo es un ejemplo de configuración: escribimos el código de la página del panel y lo probamos en nuestro equipo con esas respuestas reales, pero no lo publicamos en claude.ai.
Este artículo está pensado para un equipo de marketing que trabaja en español y sigue a marcas de moda. Por eso el ejemplo principal son Zara, Mango y Bershka. Las tres marcas de cámaras (GoPro, Insta360 y DJI) aparecen en la prueba de ida y vuelta y en la comparación entre dos rondas.
El hallazgo más útil tiene que ver con la anotación de nuestra propia herramienta. La herramienta de datos de EveryInfra, everyinfra_call_api, se declara hoy con readOnlyHint: false y destructiveHint: true. Es la anotación actual de nuestra herramienta, no una regla de la plataforma Claude para las herramientas de datos. La consecuencia práctica es que el entorno de páginas de Claude no guarda en caché sus resultados ni permite llamarla con el método de vigilancia que refresca solo. La caché la tiene que guardar la propia página, y una página sin caché propia paga en cada apertura.
Para 10 personas que abren el panel 3 veces al día, son 900 aperturas, 8100 llamadas cobradas y 4,50 USD al mes. Si los resultados se guardan en el almacenamiento compartido del artifact y se refrescan cada 6 horas, el mismo uso cuesta 0,60 USD al mes. El dinero es poco. Lo que de verdad cuesta es la espera y el límite por minuto. Nuestra llamada síncrona más lenta tardó 69 segundos, y una clave compartida recibe 90 llamadas en un minuto si 10 personas abren el panel antes de una reunión.

Qué es claude artifacts mcp: la página consulta los datos al abrirse
Un artifact es algo que Claude crea y que puedes enseñar a otras personas. Cuentan los documentos, las presentaciones, los diseños, los paneles y las pequeñas herramientas. El Centro de ayuda de Claude lo describe como una página que se puede compartir, que puede guardar datos y que puede conectarse a tus aplicaciones (What are artifacts and how do I use them?, leído el 2026-11-05). Los artifacts creados antes del 2026-09-16 ahora se llaman «legacy artifacts». Este artículo trata de la parte de «conectar tus aplicaciones». Al abrirse, la página llama a una herramienta de un servidor MCP a través de un conector de claude.ai y dibuja el resultado.
La documentación de Claude Code es la más detallada (Artifacts, leída el 2026-11-05). Una página publicada puede llamar a conectores MCP cada vez que alguien la ve. Así muestra datos actuales y no una foto fija de la sesión que la creó. La página consulta los datos al cargarse. También puede refrescarlos cada cierto tiempo o cuando alguien pulsa un botón de actualizar. Las respuestas se guardan en el navegador de quien mira, así que una página reabierta dibuja primero lo guardado y después se actualiza.
Cuando Claude publica la página, declara a qué conectores puede llamar. La página no puede llamar a nada que quede fuera de esa declaración. Solo valen los conectores de tu cuenta de claude.ai. Los servidores locales de .mcp.json en Claude Code pueden dar datos mientras Claude crea la página, pero la página publicada no puede llamarlos.
En Claude Code, la función salió la semana del 13 al 17 de julio de 2026 (de la v2.1.207 a la v2.1.212). El resumen dice que la página puede llamar a conectores «each time someone views it», y que cada llamada pasa por las conexiones propias de quien la ve (resumen de la semana 29). Los artifacts de los chats de claude.ai ya tenían MCP y almacenamiento persistente desde el 2025-10-21 (Turn ideas into interactive AI-powered apps). La entrada del 2026-09-16 en las notas de versión dice que los diseños, las presentaciones y los documentos ya funcionan en cualquier conversación (notas de versión).
| Dato | Qué dice la fuente | Fuente y fecha de lectura |
|---|---|---|
| Planes que permiten llamadas a conectores desde un artifact | Pro, Max, Ultra, Team y Enterprise, en la web y en el escritorio | support.claude.com 17153992, 2026-11-05 |
| Versión mínima de Claude Code para publicar estas páginas | v2.1.209 | code.claude.com/docs/en/artifacts, 2026-11-05 |
| Qué conexión usa quien mira | La suya; la página nunca ve credenciales | code.claude.com/docs/en/artifacts, 2026-11-05 |
| Primera llamada | Cada persona aprueba antes de la primera llamada al conector | La misma página |
| Herramientas que piden aprobación en cada acción | No están disponibles en los artifacts | support.claude.com 17153992, 2026-11-05 |
| Almacenamiento de la página | Hasta 20 MB por artifact, solo texto, personal y compartido | support.claude.com 17153992, 2026-11-05 |
| Enlaces públicos | Centro de ayuda: sin «Anyone with the link» si el artifact se conecta a aplicaciones. Claude Code: se puede compartir en público, pero quien no inicia sesión o es de fuera no ve las partes en vivo | support.claude.com 9547008 y code.claude.com, 2026-11-05 |
| Interruptor de la organización | «Enable artifact connectors» en Organization settings | code.claude.com y support.claude.com 16994751, 2026-11-05 |
Quién puede usarlo: planes, aplicaciones e interruptores de administración
La sección «Connect your apps to an artifact» del Centro de ayuda nombra los planes Pro, Max, Ultra, Team y Enterprise. Las aplicaciones son Claude en la web y en el escritorio (support 17153992). La misma página dice que los artifacts necesitan el ajuste «Cloud code execution and file creation». El plan Free no está en la lista. Los conectores personalizados sí están en todos los planes, y Free tiene un máximo de uno (Get started with custom connectors using remote MCP). Pero una cuenta Free no puede crear un artifact que llame a conectores. Por tanto, este panel necesita al menos un plan de pago.
Los precios salen de la página de precios de Claude, leída el 2026-11-05 (claude.com/pricing). Para un equipo de 10 personas con puestos estándar de Team y pago mensual, los puestos cuestan 250 USD al mes. Al lado de esa cifra, el coste de datos que calculamos más abajo es muy pequeño.
| Plan | Precio al mes | ¿Artifacts con conectores? |
|---|---|---|
| Free | 0 USD | No |
| Pro | 17 USD con pago anual, 20 USD con pago mensual | Sí |
| Max | Desde 100 USD | Sí |
| Ultra | 200 USD | Sí |
| Team, puesto estándar | 20 USD con pago anual, 25 USD con pago mensual | Sí, si la organización lo activa |
| Team, puesto premium | 100 USD con pago anual, 125 USD con pago mensual | Sí, si la organización lo activa |
| Enterprise | 20 USD por puesto más el uso a precio de API | Sí, si la organización lo activa |
Team y Enterprise añaden dos interruptores. El primero activa o desactiva los artifacts en la organización. El segundo controla las llamadas a conectores desde los artifacts. La documentación de Claude Code lo sitúa en Organization settings > Capabilities, con el nombre «Enable artifact connectors» (Artifacts). El mismo interruptor afecta también a las páginas creadas en los chats de claude.ai. La guía de administración añade un detalle que se pasa por alto con facilidad. Los administradores no pueden limitar a qué aplicaciones llega un artifact, y el uso cuenta para el límite de cada persona (Artifacts admin guide for Team and Enterprise plans).
Qué conexión se usa cuando otra persona abre la página
Esta es la regla más importante, y la fuente es clara. Cuando una página publicada llama a un conector, la llamada usa la cuenta de quien está viendo la página. No usa la cuenta de quien la publicó. Dos personas que abren el mismo panel pueden ver datos distintos, porque sus cuentas tienen accesos distintos. La página nunca ve las credenciales de nadie, porque claude.ai hace las llamadas en su nombre.
Cada persona aprueba antes de la primera llamada de la página a un conector. Quien la rechaza, o quien no ha conectado ese conector, sigue viendo la página, pero sin las partes en vivo (Artifacts, «How connector calls work for viewers», leída el 2026-11-05). El Centro de ayuda dice lo mismo: cada persona conecta sus propias aplicaciones, aunque el artifact sea compartido o público (support 17153992).

Para este panel, «la conexión de quien mira» puede significar dos cosas. En cada caso, el coste y el límite por minuto recaen en personas distintas. En el primer caso, el conector usa inicio de sesión con OAuth. Cada persona entra en su propia cuenta de EveryInfra al añadir el conector. Cada llamada de la página se cobra del saldo de esa persona y cuenta para el límite por minuto de esa persona.
En el segundo caso, el conector usa una sola clave de API compartida. Un Owner de Team o Enterprise añade el conector y escribe la clave en una cabecera de la petición. El Centro de ayuda dice que así todas las personas que usan el conector reciben el acceso de esa clave (support 11175166). En la forma, cada persona sigue usando «su conexión». En la práctica, todo el coste y todas las llamadas caen en una sola cuenta de EveryInfra.
Hay dos grupos de personas que no ven datos en vivo. El artículo del Centro de ayuda sobre compartir tiene las reglas (Share artifacts, leído el 2026-11-05). Si un artifact se conecta a aplicaciones o usa Claude, no se puede compartir con «Anyone with the link». Para las personas invitadas desde fuera de la organización, las partes que usan Claude o conectores no funcionan. Se puede invitar a un máximo de 50 personas externas por artifact.
La documentación de Claude Code dice que una página con conectores se puede compartir en público. Pero las llamadas no se hacen para quien no ha iniciado sesión en claude.ai ni para quien es de fuera de la organización. Las dos fuentes no coinciden sobre los enlaces públicos. Sí coinciden en el resultado: la gente de fuera no ve datos en vivo. Este artículo sigue la regla más estricta del Centro de ayuda y comparte el panel solo dentro de la organización.
En Reddit, una persona preguntó cómo enseñar un panel con base de datos a responsables sin licencia de Claude; la respuesta fue que hace falta un miembro con sesión iniciada (hilo de r/ClaudeCode). En otro hilo, el panel salía vacío para todo el equipo porque cada persona no había conectado y aprobado los conectores (hilo de r/ClaudeAI). Pon en cada sección en vivo una nota breve con el conector que hace falta.
Límites de llamadas: lo que está escrito y lo que no
El 2026-11-05 leímos las páginas sobre conectores de artifacts en claude.com, support.claude.com, code.claude.com y docs.claude.com. Ninguna da una cifra como «llamadas por minuto» o «llamadas al día» para las llamadas de un artifact a sus conectores. La guía de administración solo dice que el uso de los artifacts cuenta para el límite de cada persona. Las definiciones de tipos que trae nuestra instalación local de Claude Code incluyen un código de error rate_limited, con la nota «reservado, hoy nunca se devuelve». La respuesta honesta es esta: Claude no publica un tope de llamadas para estas páginas. Lo que puede frenarte son los límites escritos de la tabla siguiente y el límite propio del servidor del conector.
| Límite | Valor | Fuente | Efecto en el panel |
|---|---|---|---|
| Tamaño de un resultado en claude.ai y escritorio | Unos 150.000 caracteres | claude.com/docs/connectors/building, 2026-11-05 | 20 vídeos de TikTok son unos 50.000 bytes |
| Tiempo máximo de una llamada en claude.ai y escritorio | 240 segundos | La misma página | Nuestra llamada síncrona más lenta tardó 69 segundos |
| Espera de respuesta del entorno de la página | Unos 130 segundos | Definiciones de tipos de nuestra instalación local de Claude Code 2.1.309, versión 0.2.96 (no es documentación pública, puede cambiar) | Las plataformas lentas necesitan modo asíncrono y consultas periódicas |
| Almacenamiento del artifact | 20 MB cada uno, solo texto | support.claude.com 17153992 | Guardar solo los campos recortados |
| Invitaciones externas | Hasta 50 por artifact, sin partes en vivo | support.claude.com 9547008 | Compartir dentro de la organización |
| Límite por minuto de EveryInfra | 60 por cuenta de forma predeterminada, todas las claves juntas | everyinfra.com/pricing, 2026-11-05 | Con una clave compartida, el equipo tiene 60 por minuto |
| Límite propio de una clave de EveryInfra | Puede ser menor que el de la cuenta; nuestra clave de prueba tenía 10 por minuto | Respuesta 429 de las 00:19:51 (hora de Singapur) del 2026-11-05 | Dar al panel su propia clave |
La tercera fila merece una nota. Claude Code incluye una copia local de las definiciones de tipos del entorno de los artifacts. Leímos la versión 0.2.96, que venía con Claude Code 2.1.309. Dice que la página obtiene su función de llamada con claude.use("mcp") y que espera unos 130 segundos una respuesta. Ese archivo no es una página web pública y puede cambiar. Lo tratamos solo como el comportamiento actual. Si una documentación pública cubre la misma regla, manda la documentación pública.
Qué datos necesita el panel: tres plataformas y tres capacidades
Mantuvimos el panel pequeño. Cada marca tiene tres filas: TikTok, YouTube e Instagram. Cada fila muestra publicaciones al día, mediana de vistas o de «me gusta», tasa de interacción en TikTok, seguidores y antigüedad de la última publicación. Debajo de la tabla, la página dibuja las vistas de cada vídeo de TikTok de los últimos 30 días. Los datos salen de tres capacidades de EveryInfra. Los precios son los valores price_usd del catálogo que leímos a las 00:15 (hora de Singapur) del 2026-11-05 (catálogo).
| Plataforma | Capacidad | Parámetros que enviamos | Precio por llamada | Síncrona o asíncrona | Campos que usa la página |
|---|---|---|---|---|---|
| TikTok | tiktok/user_videos | username, limit 20 (máximo 50) | 0,000556 USD | Síncrona | Fecha, vistas, «me gusta», comentarios, compartidos, fijado, seguidores, verificado |
| YouTube | youtube/user_posts | url del canal, limit 20 (máximo 50) | 0,000556 USD | Síncrona | Título, fecha relativa, vistas, suscriptores |
instagram/user_posts | username, limit 20 (30 por defecto, máximo 200) | 0,000556 USD | Asíncrona: se cobra al enviar, las consultas son gratis | Fecha, tipo, «me gusta», comentarios |
Las tres se cobran por llamada, no por fila, y un resultado vacío se reembolsa. Las páginas de cada plataforma son API de datos de TikTok, API de datos de YouTube y API de datos de Instagram.
¿Por qué no usar la API de cada plataforma? La de YouTube tiene una cuota de 10.000 unidades al día y exige tu propio proyecto de Google Cloud (costes de cuota de YouTube, actualizada el 2026-11-03). Business Discovery de Instagram exige tu propia cuenta profesional y un token (documentación de Meta). /v2/video/list/ de TikTok solo lista los vídeos del usuario que dio permiso (documentación de TikTok), así que no sirve para la competencia. Un conector es más fácil de mantener que tres juegos de tokens.
Cómo se calcula cada celda: frecuencia, medianas y tasa de interacción
La página calcula cada número al dibujarse. La caché solo guarda campos en bruto, así que puedes cambiar una fórmula sin volver a consultar. «Publicaciones al día» es el número de publicaciones no fijadas dividido entre los días que van desde la más antigua de ellas hasta el momento de la consulta. YouTube da fechas relativas como «hace 3 semanas» o «hace 2 meses». Al pasarlas a días, la precisión es de una semana o un mes. Por eso la celda de YouTube solo sirve para ver el orden de magnitud.
No usamos «publicaciones en los últimos 30 días». La prueba dos explica por qué: 20 filas no cubren 30 días en una cuenta muy activa.
La página usa medianas y no medias para las vistas y los «me gusta». Las vistas de redes sociales son muy desiguales. En los 20 vídeos más recientes de Zara en TikTok, el más visto tenía 3,6 millones de vistas y el menos visto 3592. Uno o dos éxitos suben mucho la media, y la media cambia de un día a otro. La tasa de interacción de TikTok es la suma de «me gusta», comentarios y compartidos, dividida entre las vistas de cada vídeo. La celda muestra la mediana de esas tasas.
La capacidad de YouTube no devuelve «me gusta», y la de Instagram no devuelve vistas. Esas celdas quedan vacías, y la página no las rellena con otras cifras. Los «seguidores» salen del recuento del autor en la primera fila. La capacidad de Instagram no lo devuelve, así que esa celda también queda vacía.
Paso 1: añadir EveryInfra como conector de Claude (ejemplo de configuración)
EveryInfra tiene dos direcciones MCP remotas para dos formas de pago. Los pasos de abajo son un ejemplo de configuración. No iniciamos sesión en Claude en la web para esta prueba. Los nombres de la interfaz salen del Centro de ayuda de Claude del 2026-11-05, así que compáralos con lo que veas.
La primera opción da a cada persona su propia cuenta de EveryInfra. Usa la dirección https://api.everyinfra.com/mcp/all. Una petición sin credenciales recibe un 401 y una cabecera WWW-Authenticate. La cabecera apunta a un documento de metadatos cuyo campo authorization_servers nombra el servicio de inicio de sesión de EveryInfra. Lo probamos a las 00:12 (hora de Singapur) del 2026-11-05 (documento de metadatos). Es el flujo estándar de MCP. El servidor publica los metadatos del recurso protegido según el RFC 9728, y el cliente los usa para encontrar el servidor de autorización (autorización MCP, 2025-11-25, RFC 9728).
La documentación de conectores de Claude dice que su cliente OAuth sigue las versiones 2025-03-26, 2025-06-18 y 2025-11-25 de la especificación de autorización. La dirección de retorno es https://claude.ai/api/mcp/auth_callback (Build an MCP server for Claude). Esta dirección ofrece 24 herramientas.
La segunda opción da una sola clave a todo el equipo. Usa la dirección https://api.everyinfra.com/mcp. Al añadir el conector, escribe Authorization: Bearer <EVERYINFRA_API_KEY> en «Request headers». Esta dirección ofrece 12 herramientas y solo acepta clave. Ojo con un límite. La documentación de autenticación de conectores de Claude marca las credenciales fijas en cabeceras como beta para un grupo limitado de organizaciones (Authentication for connectors, leída el 2026-11-05). Los Owners de otras organizaciones ni siquiera ven la sección «Request headers». La documentación añade que esa clave es una credencial de la organización, no de una persona, y que las peticiones de todos los miembros llevan la misma clave.
| OAuth en `/mcp/all` | Clave compartida en `/mcp` | |
|---|---|---|
| Quién paga | La cuenta de EveryInfra de cada persona | La única cuenta dueña de la clave |
| Límite por minuto | 60 por cada cuenta | 60 para todo el equipo, o el límite propio de la clave |
| Herramientas | 24 | 12 |
| Quién lo configura | Cualquier usuario de pago de Claude | Un Owner de Team o Enterprise, y solo si tiene la beta de «Request headers» |
| Riesgo principal | Cada persona necesita cuenta y saldo en EveryInfra | Todas las llamadas llevan la misma clave |
Ejemplo de configuración (Claude web o escritorio, cuenta Pro o Max)
1. Customize > Connectors > + Add > Add custom connector
2. Name: EveryInfra <- el código de la página debe usar este nombre exacto
3. URL: https://api.everyinfra.com/mcp/all
4. Authentication: Sign in when needed <- cada persona entra en su cuenta de EveryInfra
5. Add. En los permisos del conector, pon everyinfra_call_api en Always allow
(el Centro de ayuda dice que las herramientas que piden aprobación en cada acción no funcionan en artifacts)
Ejemplo de configuración (Team o Enterprise, lo añade un Owner, una clave compartida)
1. Organization settings > Connectors > Add custom connector
2. URL: https://api.everyinfra.com/mcp
3. Request headers: Authorization: Bearer <EVERYINFRA_API_KEY>
(beta, solo algunas organizaciones ven este campo; crea una clave aparte con su propio límite por minuto)
4. Organization settings > Capabilities > activa Enable artifact connectors
5. Cada miembro pulsa Connect en Customize > ConnectorsEl paso 5 es donde empiezan casi todos los problemas. Claude reparte las herramientas de cada conector en dos grupos, «solo lectura» y «escritura o borrado». Cada grupo se puede poner en Always allow, Needs approval o Blocked (Use connectors to extend Claude's capabilities). En su declaración, everyinfra_call_api tiene readOnlyHint: false, destructiveHint: true y openWorldHint: true. Leímos la respuesta en bruto de tools/list a las 00:12 (hora de Singapur) del 2026-11-05. Es la anotación actual de nuestra herramienta. En la especificación MCP, estos campos los declara la propia herramienta como pistas sobre su comportamiento (esquema MCP, 2026-07-28).
En qué grupo queda lo indica la página de permisos de tu cuenta; este ejemplo de configuración no abrió esa página en claude.ai. Lo que hay que hacer es esto: después de añadir el conector, abre los permisos de sus herramientas, busca el grupo donde está everyinfra_call_api y ponlo en Always allow. El Centro de ayuda dice que las herramientas de conector que piden aprobación en cada acción no están disponibles en los artifacts. Así que, si la herramienta se queda en «Needs approval», el panel se queda vacío. La herramienta de consulta everyinfra_get_job está marcada como de solo lectura, así que esto no le afecta.
Paso 2: esqueleto de una página claude code artifacts mcp
El núcleo de la página hace tres cosas. Declara a qué herramientas del conector llama. Mira primero la caché compartida. Solo paga una llamada cuando la caché es demasiado antigua. Abajo está la parte de consulta de nuestro panel. La página completa tiene unas 110 líneas, y omitimos el código de la tabla y de los gráficos. claude.use("mcp") y claude.use("db") son las dos entradas del entorno de la página. Cada una devuelve null cuando la vista no puede usarla, así que la página tiene que dibujarse igual sin ellas.
// Declaración de capacidades que Claude envía al publicar.
// La página no puede llamar a herramientas fuera de ella.
// capabilities: { mcp: { servers: [{ server: "EveryInfra",
// tools: ["everyinfra_call_api", "everyinfra_get_job"] }] },
// db: {} }
const SERVER = "EveryInfra", CALL = "everyinfra_call_api", JOB = "everyinfra_get_job";
const TTL_MS = 6 * 3600 * 1000; // caché compartida: 6 horas
const req = (b, p) => ({
tiktok: { platform: "tiktok", action: "user_videos", params: { username: b.tiktok, limit: 50 } },
youtube: { platform: "youtube", action: "user_posts", params: { url: b.youtube, limit: 50 } },
instagram: { platform: "instagram", action: "user_posts", params: { username: b.instagram, limit: 50 } },
}[p]);
const KEEP = ["id", "post_id", "posted_at", "view_count", "like_count", "comment_count",
"share_count", "is_pinned", "author_follower_count", "author_is_verified"];
const trim = (rows) => rows.map((r) => Object.fromEntries(KEEP.filter((k) => k in r).map((k) => [k, r[k]])));
let mcp = null, db = null;
async function fetchRows(b, p, force) {
const key = `cache/${b.name}-${p}`.toLowerCase();
if (db && !force) { // 1. leer primero la caché compartida
const snap = await db.doc(key).get().catch(() => null);
if (snap?.exists && Date.now() - snap.data().fetchedAt < TTL_MS) return snap.data();
}
if (!mcp) throw { code: "no_mcp" };
let out = (await mcp.callTool(SERVER, CALL, req(b, p))).payload; // 2. una llamada de pago
for (let i = 0; out.job_id && out.status !== "succeeded" && i < 20; i++) {
if (["failed", "cancelled"].includes(out.status)) throw { code: "job_" + out.status };
await new Promise((r) => setTimeout(r, 15000)); // Instagram es asíncrono; consultar es gratis
out = (await mcp.callTool(SERVER, JOB, { job_id: out.job_id })).payload;
}
const doc = { fetchedAt: Date.now(), rows: trim(out.results || []) }; // 3. guardar solo los campos que usamos
if (db) db.doc(key).set(doc).catch(() => {}); // quien solo puede ver no escribe, pero ve los datos
return doc;
}
(async () => { [mcp, db] = await Promise.all([claude.use("mcp"), claude.use("db")]); load(false); })();Varias partes de este código salen de las respuestas reales. Primero, payload es el primer bloque de texto del resultado, que el entorno ya convierte de JSON. EveryInfra devuelve texto JSON, así que la página lee payload.results directamente.
Segundo, cada respuesta trae además los bloques billing y quota. Ahí están el cobro de esa llamada y el saldo de la cuenta. Con una clave compartida, el código de la página puede leer el saldo de la cuenta de la organización. Por eso trim se queda solo con los diez campos que usa la página. No escribe el saldo en el almacenamiento compartido ni lo muestra.
Tercero, la página no reintenta sola una llamada fallida. Las definiciones de tipos locales dicen que, en una herramienta que no es de solo lectura, un tiempo agotado o una conexión perdida dejan el resultado en duda. Una llamada nueva tiene que esperar a que la persona vuelva a actuar. Un 429 de EveryInfra no se cobra, así que la página puede poner un botón de «Reintentar» junto a ese error.
El entorno de la página devuelve códigos de error, y cada uno pide un mensaje distinto. La tabla relaciona los códigos de las definiciones de tipos con lo que muestra nuestra página.
| Código de error | Qué significa | Qué muestra la página |
|---|---|---|
server_not_connected | La persona no tiene un conector con ese nombre | «Añade el conector de EveryInfra» |
approval_required | La llamada necesita la aprobación de la persona | Un botón que repite la misma llamada una vez |
needs_reauth | La sesión del conector caducó | «Vuelve a conectar EveryInfra en Settings > Connectors» |
tool_error | La herramienta se ejecutó e informó de un fallo, como un 429 | El texto del error y un botón de «Reintentar» |
server_unavailable | No hubo respuesta a tiempo o hubo un error del servidor | «No disponible», sin reintento automático para esta herramienta de pago |

No tomamos esta captura en claude.ai: en la parte de Claude, este artículo solo da un ejemplo de configuración y no publicamos el panel allí. Una pequeña simulación de claude.use() dio al mismo código las respuestas reales guardadas, y cada celda coincide con un script aparte en Python. La captura no muestra el aviso de permisos ni la primera aprobación de claude.ai.
Una ida y vuelta real: una llamada a cada plataforma
Primero, la ida y vuelta en bruto de TikTok. A las 00:18:50 (hora de Singapur) del 2026-11-05 enviamos un tools/call a https://api.everyinfra.com/mcp. La herramienta era everyinfra_call_api, con el usuario de TikTok de GoPro y limit 20. A los 22,22 segundos llegaron 49.956 bytes de JSON con 20 vídeos. Uno era un anuncio fijado de 2025. Los otros 19 iban del más nuevo al más antiguo, y el más nuevo era del 2026-11-04, publicado 2,3 horas antes de la consulta. Cada fila tenía 35 campos, y billing.charged_usd era 0.000556.

La llamada de YouTube salió a las 00:19:16. Volvió en 11,66 segundos con 13.047 bytes y 20 vídeos con título, vistas y suscriptores del canal (11,3 millones en el caso de GoPro). No había «me gusta». Las fechas eran relativas, como «4d ago», «3w ago» y «1mo ago». Las vistas venían redondeadas, como 125.000 y 300.000.
Dos de las 20 filas eran raras. Su campo de fecha decía «and NASA» o «and» más el nombre de un colaborador, y sus vistas eran 0. Son vídeos que GoPro publicó junto con otra cuenta. La página tiene que separarlos y dejarlos fuera de la mediana. Si no, bajan la mediana de vistas.
Instagram es asíncrono. Enviamos la petición de GoPro a las 00:19:28. A los 8,48 segundos llegó un ID de trabajo con status: running y la indicación de leer el resultado con everyinfra_get_job. El cobro se hace al enviar, y las consultas son gratis. En la primera ronda solo leímos los trabajos después de enviar las tres marcas. El trabajo de GoPro seguía en marcha 23 segundos después del envío. A los 223 segundos ya había terminado, con 20 publicaciones y 34.031 bytes.
El trabajo de DJI lo consultamos cada 15 segundos. Estaba en running a las 00:23:27, en finalizing a las 00:23:43 y en succeeded a las 00:23:58, unos 56 segundos en total. La respuesta de Instagram trae «me gusta» y comentarios, pero no vistas ni seguidores. Las notas de campos del catálogo dicen lo mismo: esta capacidad no devuelve esos datos y da como máximo 48 publicaciones.
Prueba 1: cuánto tarda cada llamada
Una apertura hace 9 llamadas. El tiempo de cada una decide cuánto tiempo pasa la primera pantalla vacía. El gráfico de abajo muestra las 36 llamadas de las tres rondas, un punto por llamada. La mediana de TikTok fue de 21,23 segundos y la de YouTube, de 14,00 segundos. Las dos tienen una cola larga de 50 a 70 segundos.
En moda, las llamadas de TikTok de Mango y Bershka tardaron 52,78 y 50,21 segundos, y la de Zara, 16,82 segundos. La llamada de YouTube de Oura tardó 69,16 segundos y luego devolvió 0 filas, con reembolso automático. Los envíos de Instagram son rápidos, con una mediana de 2,12 segundos. El resultado tarda después entre uno y varios minutos más.
| Llamada | Llamadas | Mediana (s) | Más rápida (s) | Más lenta (s) |
|---|---|---|---|---|
| TikTok síncrona | 12 | 21,23 | 8,62 | 52,78 |
| YouTube síncrona | 12 | 14,00 | 8,71 | 69,16 |
| Envío a Instagram | 12 | 2,12 | 1,90 | 12,19 |
| Instagram listo (cota superior) | 12 | 143 | 47 | 510 |
Estas cifras cambian el diseño de la página de tres maneras. Primero, la página tiene que enviar las 9 llamadas en paralelo. En cola, en el peor caso la primera pantalla tarda cinco o seis minutos en completarse. Incluso en paralelo, la celda más lenta tarda más de un minuto, así que cada celda necesita su propio estado de «cargando».
Segundo, Instagram tiene que usar envío, ID de trabajo y consultas periódicas. Una sola llamada síncrona no sirve. El entorno de la página espera unos 130 segundos una respuesta, y las aplicaciones alojadas de Claude cortan una llamada a los 240 segundos. En la segunda ronda, nuestro trabajo de Instagram más lento tardó 510 segundos desde el envío hasta la primera consulta con éxito. Parte de ese tiempo se debe a que consultamos tarde. En la tercera ronda consultamos cada 15 segundos, y los tres trabajos terminaron en 47 a 59 segundos. Tercero, una caché elimina toda esta espera: leer 9 celdas del almacenamiento compartido tarda milisegundos.
Prueba 2: hasta dónde llegan 20 filas
Las rondas uno y dos usaron limit 20. En cuentas muy activas, 20 filas no llenan una ventana de 30 días. Las marcas de moda de este artículo lo muestran bien. Los 20 vídeos de Mango en TikTok cubrían solo 14,1 días, y los 18 vídeos no fijados de Bershka, 16,3 días. Zara publica menos en TikTok, y sus 20 vídeos cubrían 40,2 días. En Instagram, las 20 publicaciones cubrían 15,3 días en Zara, 21,4 en Mango y 22,1 en Bershka. Por eso la página muestra publicaciones al día y no publicaciones en 30 días.
La mejor solución es subir limit. Las tres capacidades se cobran por llamada. TikTok y YouTube aceptan hasta 50 filas, e Instagram hasta 200, y más filas cuestan lo mismo. A las 01:03–01:05 (hora de Singapur) hicimos 3 llamadas más con limit 50. Mango en TikTok pasó de 14,1 días con 20 filas a 56,1 días con 50 filas. Insta360 en TikTok pasó de 7,2 a 24,0 días, y GoPro en YouTube, de unos 150 a unos 365 días. Cada llamada siguió costando 0,000556 USD.
El precio es el tamaño. Cada fila de TikTok tiene 35 campos. 20 filas son unos 50.000 bytes, y 50 filas llegaron a 137.072 bytes. Eso deja solo unos 13.900 caracteres (la llamada de Insta360 devolvió 136.062) por debajo del límite de 150.000 caracteres por resultado en las aplicaciones alojadas de Claude. Es lo que más queremos destacar de estas pruebas. No subas limit al máximo sin comprobarlo. TikTok con 50 filas ya está cerca del límite, y más allá hace falta paginar o usar el modo asíncrono.
| Llamada (2026-11-05, hora de Singapur) | Días en 20 filas | Días en 50 filas | Caracteres devueltos | Margen hasta 150.000 | Segundos |
|---|---|---|---|---|---|
| Insta360 TikTok, 01:03:59 | 7,2 | 24,0 | 136.062 | 13.938 | 19,75 |
| Mango TikTok, 01:04:27 | 14,1 | 56,1 | 121.794 | 28.206 | 30,70 |
| GoPro YouTube, 01:05:06 | 150 | 365 | 31.212 | 118.788 | 11,52 |
YouTube es el caso contrario en estas marcas. Zara, Mango y Bershka publican muy poco en YouTube: entre 0,05 y 0,11 vídeos al día. Sus 20 vídeos más recientes van de 180 a 365 días atrás. Para un panel de moda, la celda de YouTube cambia poco de una semana a otra, y una caché de 24 horas es suficiente para esa fila.
Esta tabla resume la segunda ronda de las tres marcas de moda. El vídeo de TikTok más reciente de Mango y el de Bershka eran del 2026-11-04, y la publicación de Instagram más reciente de Zara era del 2026-11-03.
| Marca y plataforma | Publicaciones al día | Mediana de vistas | Mediana de «me gusta» | Tasa de interacción | Seguidores |
|---|---|---|---|---|---|
| Zara, TikTok | 0,50 | 2.500.000 | — | 0,73 % | 15.000.000 |
| Zara, YouTube | 0,05 | 1.200.000 | — | — | 171.000 |
| Zara, Instagram | 1,31 | — | 14.118,5 | — | — |
| Mango, TikTok | 1,41 | 459.450 | — | 0,46 % | 828.200 |
| Mango, YouTube | 0,11 | 2050 | — | — | 93.100 |
| Mango, Instagram | 0,93 | — | 1743,5 | — | — |
| Bershka, TikTok | 1,11 | 1.800.000 | — | 0,75 % | 4.800.000 |
| Bershka, YouTube | 0,05 | 539.000 | — | — | 43.600 |
| Bershka, Instagram | 0,91 | — | 6067,5 | — | — |
Prueba 3: tendencia de vistas en TikTok
La parte baja del panel dibuja las vistas de cada vídeo de TikTok de los últimos 30 días. El gráfico usa las respuestas reales de la segunda ronda para las tres marcas de moda, en escala logarítmica. Aquí aparece un contraste claro con las marcas de cámaras. Los vídeos de moda tienen muchas más vistas: la mediana de Zara fue de 2,5 millones, la de Bershka de 1,8 millones y la de Mango de 459.450. En cambio, la tasa de interacción es baja: 0,73 % en Zara, 0,75 % en Bershka y 0,46 % en Mango. En las marcas de cámaras, la tasa iba del 2,96 % al 5,17 %.
Cada punto es el total de vistas en el momento de la consulta, del 2026-10-06 al 2026-11-04, no las vistas de un periodo fijo. Un vídeo de ayer siempre parece más flojo que uno de hace tres semanas. Para comparar de verdad, guarda las vistas de cada vídeo la primera vez que aparece y vuelve a consultar 48 horas después. El almacenamiento compartido guarda ese historial; la caché del navegador solo guarda el último resultado.
Prueba 4: cuánto cambiaron los datos en 41 minutos
La antigüedad adecuada de la caché depende de lo rápido que cambien los datos. A las 01:00–01:03 (hora de Singapur) repetimos las llamadas de la primera ronda para las tres marcas de cámaras en las tres plataformas. La separación con la primera ronda fue de unos 41 minutos. Comparamos las vistas o los «me gusta» de las mismas publicaciones.
Entre las dos rondas no apareció ninguna publicación nueva en las 9 celdas. Casi todos los cambios están en las publicaciones de los dos últimos días. En TikTok cambiaron 15 vídeos de Insta360, pero la mediana solo subió un 0,18 %. La mayor subida fue la de un vídeo del 2026-11-03, de 247.300 a 259.800 vistas (+5,05 %). En DJI, la mayor fue la de un vídeo del 2026-11-04 (+5,37 %). En GoPro solo cambiaron 5 vídeos.
En Instagram cambiaron más publicaciones (de 12 a 17 de 20), pero la mediana subió en torno al 0,1 %. Las dos mayores subidas fueron publicaciones nuevas del 2026-11-04: una de Insta360 pasó de 742 a 916 «me gusta» (+23,4 %) y una de DJI, de 2406 a 2700 (+12,2 %). En YouTube cambió como mucho 1 de 20 vídeos por canal, porque las vistas vienen redondeadas.
| Marca y plataforma | Campo | Filas que cambiaron de 20 | Cambio mediano | Cambio máximo |
|---|---|---|---|---|
| GoPro TikTok | Vistas | 5 | 0,00 % | 6,14 % |
| GoPro YouTube | Vistas | 1 | 0,00 % | 0,26 % |
| GoPro Instagram | «Me gusta» | 16 | 0,06 % | 0,46 % |
| Insta360 TikTok | Vistas | 15 | 0,18 % | 5,05 % |
| Insta360 YouTube | Vistas | 0 | 0,00 % | 0,00 % |
| Insta360 Instagram | «Me gusta» | 12 | 0,10 % | 23,45 % |
| DJI TikTok | Vistas | 14 | 0,36 % | 5,37 % |
| DJI YouTube | Vistas | 1 | 0,00 % | 1,20 % |
| DJI Instagram | «Me gusta» | 17 | 0,10 % | 12,22 % |
La conclusión es clara. Para celdas como publicaciones al día o mediana de vistas, una caché compartida de 6 horas casi no pierde información: las publicaciones antiguas cambiaron menos de un 1 % en 41 minutos. Si el panel debe seguir cómo crecen las publicaciones nuevas, dales una fila propia para las últimas 48 horas con una caché más corta, por ejemplo de 1 hora.
Prueba 5: tamaño de la respuesta y almacenamiento compartido
El almacenamiento de un artifact es de 20 MB, solo texto (support 17153992). Las 9 respuestas en bruto de una apertura suman unos 326 KB. Con trim, que deja diez campos, bajan a 27,6 KB, el 8,5 % del original. Aunque guardes una copia cada 6 horas como historial, 120 copias al mes ocupan solo 3,3 MB, muy por debajo de 20 MB. No guardes la respuesta completa. El tamaño es una razón. La otra es el saldo de la cuenta que viene dentro, porque todos los miembros pueden leer el almacenamiento compartido.
Trampas en los datos: cuentas equivocadas, vídeos en colaboración y resultados vacíos
De las 27 celdas de datos de esta prueba, tres no podían ir al panel tal cual. Cada una tenía una causa distinta, y la página tiene que detectar todas.
| Caso | Ejemplo real (2026-11-05, hora de Singapur) | Cobro | Qué hace la página |
|---|---|---|---|
| El usuario es de otra persona | Garmin en TikTok: el usuario que dedujimos del nombre de la marca devolvió 1 fila de una cuenta sin verificar con 21 seguidores | 0,000556 USD | Marcar «revisar cuenta» si hay muy pocos seguidores o author_is_verified es false, y dejarla fuera de la comparación |
| Vídeos en colaboración | GoPro, Insta360 y DJI en YouTube tenían de 2 a 4 filas con fecha «and» más un colaborador y 0 vistas | Cobro normal | Dejar fuera de la mediana las filas con fecha ilegible y listarlas como «colaboraciones» |
| Resultado vacío | La dirección del canal de YouTube de Oura devolvió 0 filas tras 69,16 segundos | Reembolsado, 0 USD | Mostrar «no hay publicaciones en esta dirección» y pedir que se revise |
| Vídeos fijados | 5 de las 9 cuentas de TikTok tenían vídeos fijados, 2 en Bershka y 3 en Insta360 y en DJI | Cobro normal | Quitar los fijados antes de calcular frecuencia y medianas |
| Límite por minuto agotado | 4 respuestas 429 en la primera ronda, 3 de ellas a las 00:19:51; el texto decía que el límite propio de la clave era de 10 por minuto | Sin cobro | Mostrar los segundos de retry_after y un botón de «Reintentar» |
La primera fila es la más fácil de pasar por alto. El usuario de una marca en TikTok no siempre es el nombre de la marca. El que probamos pertenece a una pequeña cuenta personal. La llamada se cobra igual, porque la API sí devolvió contenido. Cuando añadas una marca por primera vez, pide a Claude en un chat que revise la cuenta con una capacidad de perfil como tiktok/profile. Comprueba la verificación y el número de seguidores, y solo entonces pon el usuario en la página.
Coste por apertura: 10 personas, 3 aperturas al día
Con el precio del catálogo del 2026-11-05, cada una de las tres capacidades cuesta 0,000556 USD por llamada. El panel tiene 3 marcas y 3 plataformas por marca, así que una apertura son 9 llamadas y 0,005004 USD. La herramienta de consulta de Instagram, everyinfra_get_job, es gratis. Los resultados vacíos se reembolsan y las respuestas 429 no se cobran.
| Opción | Consultas al mes | Llamadas cobradas | Coste de datos al mes | Nota |
|---|---|---|---|---|
| Sin caché | Las 900 aperturas | 8100 | 4,50 USD | 10 personas × 3 aperturas × 30 días × 0,005004 USD |
| Por persona, 24 horas | 1 al día cada una, 300 | 2700 | 1,50 USD | La caché integrada no puede hacerlo porque nuestra herramienta se marca hoy como no de solo lectura; usa el almacenamiento personal |
| Compartida, 6 horas | 4 al día, 120 | 1080 | 0,60 USD | En el almacenamiento compartido del artifact; consulta quien abre primero tras caducar |
| Compartida, 24 horas | 1 al día, 30 | 270 | 0,15 USD | Buena para un panel que se mira en la reunión semanal |
| Referencia: 10 puestos estándar de Team, pago mensual | — | — | 250 USD | claude.com/pricing, 2026-11-05 |
Todas estas cantidades son pequeñas frente a 250 USD por 10 puestos de Team. Aun así, hay dos detalles. Con OAuth, la primera persona que abre la página después de que caduque la caché paga esa consulta. Así que quien llega primero cada mañana paga por todo el equipo. La cantidad es mínima, pero dilo en la página. Con una clave compartida, todos los cobros salen de la única cuenta de la organización. Si el saldo se acaba, el panel de todo el equipo se queda vacío a la vez. Configura un aviso de saldo bajo para esa cuenta en la consola de EveryInfra.
Cómo usar la caché para no pagar en cada apertura
El entorno de las páginas de Claude tiene su propia caché de llamadas. Para las herramientas declaradas de solo lectura (readOnlyHint: true), guarda los resultados 5 minutos por defecto, y se puede subir hasta 7 días. La documentación de Artifacts también dice que una página reabierta dibuja primero las respuestas guardadas. Pero las definiciones de tipos de nuestra instalación local de Claude Code 2.1.309 (versión 0.2.96, no es documentación pública) añaden una regla. Si una herramienta declara readOnlyHint: false, las opciones de caché se ignoran y la llamada nunca se guarda. La página tampoco puede usar con ella el método watchTool, que refresca solo.
La anotación actual de everyinfra_call_api entra en esa regla. Por eso el entorno nunca reutiliza un resultado por ti y cada llamada se cobra. Lo que te toca es sencillo: que la página guarde su propia caché. Así lo hacemos nosotros.
Recomendamos el almacenamiento compartido del artifact (la capacidad db). Guarda el resultado recortado y la hora de consulta de cada celda. Al abrir, léelo primero, y vuelve a consultar solo pasadas 6 horas. Esto ayuda de tres maneras. El coste baja de 4,50 USD a 0,60 USD al mes. Con la caché fresca, la primera pantalla tarda milisegundos y no un minuto. Y baja la carga por minuto, como muestra el siguiente gráfico.
Por defecto, los Contributors y roles superiores pueden escribir en el almacenamiento compartido, y quien solo puede ver se limita a leer. Así, una persona con permiso de solo lectura que abre una página caducada paga una consulta y ve datos frescos. Pero no puede guardar el resultado, y la siguiente persona vuelve a consultar. El código tiene que aceptar este caso.
El límite por minuto solo importa con una clave compartida. EveryInfra permite 60 llamadas por minuto por cuenta de forma predeterminada, sumando todas las claves (página de precios). Supongamos que 10 personas abren en el mismo minuto, antes de una reunión, una página sin caché. Son 90 llamadas en una cuenta, y las últimas 30 reciben un 429. No se cobran, pero esas celdas quedan vacías.
La clave de prueba de este artículo tenía su propio límite de 10 por minuto. En la primera ronda lo alcanzó 4 veces, 3 de ellas a las 00:19:51. El texto decía que el límite propio de la clave se había agotado y pedía reintentar a los 9 segundos. Así que da al panel su propia clave, con un límite por minuto menor que el de la cuenta. De ese modo, el panel nunca agota las llamadas que necesitan otros programas de la misma cuenta.
Una caché compartida también tiene costes, como explican los comentarios de un panel de soporte técnico en HaloPSA (hilo de r/halopsa). Los datos guardados se consultaron con los accesos de la primera persona, así que otra puede ver datos fuera de sus accesos. Con datos públicos de redes esto no importa; con datos internos, sí. Además, cualquier Contributor puede reescribir la caché con las reglas por defecto. Limita esa escritura a los Editors si te preocupa.
Cambios recientes
El 2026-10-28, Anthropic añadió a Claude for Legal una galería de artifacts jurídicos listos para usar. La publicación llama a los artifacts «herramientas interactivas, como seguimientos y paneles», y dice que los conectores traen las fuentes que los equipos ya usan (Introducing artifacts for legal work with Claude). Harvey, uno de los socios de lanzamiento, publicó ese mismo día. Su artifact Intake se conecta a Harvey a través del servidor MCP de Harvey (blog de Harvey). El 2026-10-21, las notas de versión del Centro de ayuda recogieron Claude Duet y otras novedades (notas de versión). El 2026-10-15, las plantillas de artifacts pasaron a estar activadas por defecto en Enterprise, según las mismas notas.
El 2026-10-08, Claude Dashboards y Claude Motion entraron en beta. Dashboards está en los planes de pago y se conecta a plataformas de datos como BigQuery y Snowflake. También funciona con otros conectores, y cada gráfico muestra cuándo se actualizaron sus datos por última vez (blog de Claude, Get started with Claude dashboards). El reportaje de The New Stack de ese día cita a un portavoz de Anthropic: por defecto, las conexiones de cada persona ejecutan las consultas de un panel compartido (The New Stack). Dashboards está pensado para SQL sobre un almacén de datos. Para una página que llama a APIs de datos de redes, como esta, un artifact normal con un conector MCP es más directo.
En Claude Code, la v2.1.209 corrigió que una publicación aceptara nombres de herramientas que el conector no ofrece. Desde la v2.1.265, la publicación comprueba los nombres que declara la página y se rechaza si ninguno coincide (registro de cambios de Claude Code, Artifacts). La versión más reciente que vimos el 2026-11-05 fue la v2.1.318.
Hay una incidencia de GitHub todavía abierta. El 2026-08-06, una persona contó que al actualizar un artifact desde una sesión en la nube se borran los permisos de sus conectores, y que la aplicación no ofrece dónde volver a darlos (claude-ai-mcp #787). Una persona en Reddit se topó con el mismo error, «not in this artifact's mcp_tools allowlist» (hilo de r/ClaudeAI).
Preguntas frecuentes sobre claude artifacts
¿Pueden los Claude Artifacts llamar a conectores MCP conectados?
Sí. Fuente: la sugerencia de Google «claude code artifacts can now call mcp connectors». Un artifact publicado puede llamar a herramientas MCP cada vez que alguien lo abre, con los conectores de claude.ai de esa persona. Necesitas un plan Pro, Max, Ultra, Team o Enterprise. Para publicar desde Claude Code hace falta la v2.1.209 o posterior. Solo cuentan los conectores de claude.ai, y la página publicada no puede llamar a servidores de un .mcp.json local (Artifacts).
¿Tienen límite las llamadas de claude artifacts mcp?
Fuente: la sugerencia de Google «claude artifacts mcp limits». A fecha del 2026-11-05, la documentación pública de Claude no da un límite de llamadas para los conectores de un artifact. Solo dice que el uso cuenta para el límite de cada persona. Los límites escritos son unos 150.000 caracteres por resultado y 240 segundos por llamada en claude.ai y en el escritorio (Build an MCP server for Claude). También cuenta el límite del servidor del conector: EveryInfra permite 60 llamadas por minuto por cuenta de forma predeterminada.
¿Puede ver los datos en vivo alguien sin cuenta de Claude?
No. Fuente: un hilo de r/ClaudeCode que pregunta cómo enseñar un panel con base de datos a responsables sin licencia de Claude. Para la gente de fuera y para quien abre un enlace público sin sesión, las partes con conectores no se ejecutan. El Centro de ayuda añade que los artifacts conectados a aplicaciones no pueden usar «Anyone with the link» (Share artifacts). Para lectores externos, exporta una copia fija o crea una pequeña web interna con su propio inicio de sesión.
¿Por qué mi panel compartido sale vacío para mis compañeros?
Fuente: un hilo de r/ClaudeAI en el que el panel salía vacío para todo el equipo. Los conectores son de cada cuenta. Cada persona tiene que conectar todos los conectores que usa la página y aprobar la primera llamada. En Team y Enterprise, comprueba que «Enable artifact connectors» está activado. Comprueba también que la herramienta no está en «Needs approval» en los permisos del conector. Si la página llama a nombres de herramientas que el conector no ofrece, sale vacía para todo el mundo (solución de problemas de Artifacts).
¿Qué significa «not in this artifact's allowlist» después de volver a publicar?
Fuente: un hilo de r/ClaudeAI y la incidencia 787 de claude-ai-mcp en GitHub. Las herramientas a las que puede llamar una página las decide la declaración que se envía al publicar, no el código de la página. Una actualización desde una sesión en la nube puede borrar esa declaración. En los hilos, lo único que funcionó fue volver a publicar desde una sesión en tu propio equipo, con la lista completa del conector y de los nombres de herramientas.
¿Puede una caché compartida mostrar datos que no tocan o ser modificada por alguien?
Fuente: los comentarios de una publicación de r/halopsa sobre un panel de soporte técnico. Sí, los dos riesgos son reales. Los datos guardados se consultaron con los accesos de la primera persona que los pidió. Con las reglas por defecto, los Contributors pueden escribir los documentos de caché. Los datos públicos de redes de la competencia no tienen diferencias de acceso. Para evitar cambios, limita la escritura en la ruta de la caché a los Editors. Entonces los demás miembros consultarán en cada apertura de una página caducada.
¿Cuestan algo extra los claude artifacts?
Fuente: la sugerencia de Google «do claude artifacts cost money». Los artifacts vienen con los planes de pago y no tienen un precio propio, y el uso cuenta para el límite de cada persona. Las llamadas a la API de datos van aparte. En el ejemplo de este artículo, una apertura cuesta 0,005004 USD. Con 10 personas y 3 aperturas al día, sin caché cuesta 4,50 USD al mes y con caché compartida de 6 horas, 0,60 USD.
Cómo empezar
- Regístrate en EveryInfra y añade saldo. Sigue la guía rápida para obtener una clave o preparar el inicio de sesión con OAuth. Las guías del MCP remoto están en servidor MCP y configuración del MCP remoto.
- Añade el conector en Claude como en el ejemplo de configuración. Llámalo EveryInfra y pon
everyinfra_call_apien Always allow. - En un chat de Claude, llama al conector una vez por marca. Revisa usuarios, direcciones de canal y campos devueltos.
- Pide a Claude que cree la página a partir del esqueleto de este artículo. Declara las capacidades
mcpydb, publícala y compártela solo dentro de la organización. - Cada compañero conecta el conector y aprueba la primera llamada. Indica en la página la antigüedad de la caché y quién paga la consulta cuando caduca.
Lecturas relacionadas
- Subagentes de Claude Code: subagentes Haiku consultan cuentas de marca de TikTok en paralelo: los mismos datos de TikTok, consultados en paralelo por subagentes en Claude Code.
- Especificación MCP 2026 y uso en producción: declaraciones de herramientas, autorización y MCP remoto en producción.
El blog de EveryInfra tiene otros dos artículos sobre competencia. Un SKILL.md para cuatro herramientas de IA: análisis de reseñas de la competencia convierte el análisis de reseñas en una Agent Skill. Se ejecuta una vez en una herramienta como Claude Code o Codex y produce un informe fijo. ChatGPT Spaces como panel de competencia en redes usa una página compartida de un ChatGPT Space. Esa página no se actualiza sola. Una tarea programada semanal escribe cifras nuevas, así que quien la mira siempre ve los datos de la última tarea.
Este artículo cambia dos cosas: cuándo se consultan los datos y quién los paga. Un artifact de Claude consulta los datos en el momento en que cada persona abre la página, con los conectores de esa persona. Por eso la frecuencia no la decide una tarea programada, sino cuántas personas abren el panel y con qué frecuencia. Quien paga tampoco es quien creó una tarea. Con OAuth, paga cada persona que abre la página. Con una clave compartida, paga la organización que escribió la clave. Estos dos hechos deciden el diseño de la caché, y todas las pruebas de abajo giran en torno a ellos. Si solo necesitas un informe semanal fijo, los otros dos artículos son más sencillos.
Referencias
- Centro de ayuda de Claude, What are artifacts and how do I use them?, leído el 2026-11-05: https://support.claude.com/en/articles/17153992-what-are-artifacts-and-how-do-i-use-them
- Centro de ayuda de Claude, Share artifacts, leído el 2026-11-05: https://support.claude.com/en/articles/9547008-share-artifacts
- Centro de ayuda de Claude, Artifacts admin guide for Team and Enterprise plans, leído el 2026-11-05: https://support.claude.com/en/articles/16994751-artifacts-admin-guide-for-team-and-enterprise-plans
- Centro de ayuda de Claude, Get started with custom connectors using remote MCP, leído el 2026-11-05: https://support.claude.com/en/articles/11175166-get-started-with-custom-connectors-using-remote-mcp
- Centro de ayuda de Claude, Use connectors to extend Claude's capabilities, leído el 2026-11-05: https://support.claude.com/en/articles/11176164-use-connectors-to-extend-claude-s-capabilities
- Centro de ayuda de Claude, Get started with Claude dashboards, leído el 2026-11-05: https://support.claude.com/en/articles/17454700-get-started-with-claude-dashboards
- Centro de ayuda de Claude, Release notes, leído el 2026-11-05: https://support.claude.com/en/articles/12138966-release-notes
- Documentación de Claude Code, Artifacts, leída el 2026-11-05: https://code.claude.com/docs/en/artifacts
- Claude Code, resumen de la semana 29 (del 13 al 17 de julio de 2026), leído el 2026-11-05: https://code.claude.com/docs/en/whats-new/2026-w29
- Claude Code, índice de novedades, leído el 2026-11-05: https://code.claude.com/docs/en/whats-new
- Documentación de Claude Code, Connect Claude Code to tools via MCP, leída el 2026-11-05: https://code.claude.com/docs/en/mcp
- Registro de cambios de Claude Code en GitHub, leído el 2026-11-05: https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md
- Registro de cambios de Claude Code en la documentación, leído el 2026-11-05: https://code.claude.com/docs/en/changelog
- Documentación para desarrolladores de claude.com, Build an MCP server for Claude, leída el 2026-11-05: https://claude.com/docs/connectors/building
- Documentación para desarrolladores de claude.com, Authentication for connectors, leída el 2026-11-05: https://claude.com/docs/connectors/building/authentication
- Documentación de la API de Claude, MCP connector, leída el 2026-11-05: https://docs.claude.com/en/docs/agents-and-tools/mcp-connector
- Página de precios de Claude, leída el 2026-11-05: https://claude.com/pricing
- Blog de Claude, Build live dashboards and animate explainers with Claude (2026-10-08), leído el 2026-11-05: https://claude.com/blog/dashboards-and-motion
- Claude, Introducing artifacts for legal work with Claude (2026-10-28), leído el 2026-11-05: https://claude.com/resources/articles/introducing-artifacts-for-legal-work
- Claude, Turn ideas into interactive AI-powered apps (con la nota de actualización del 2025-10-21), leído el 2026-11-05: https://claude.com/resources/articles/build-artifacts
- GitHub anthropics/claude-ai-mcp, incidencia 787 (abierta el 2026-08-06), leída el 2026-11-05: https://github.com/anthropics/claude-ai-mcp/issues/787
- Especificación MCP 2025-06-18, Tools, leída el 2026-11-05: https://modelcontextprotocol.io/specification/2025-06-18/server/tools
- Especificación MCP 2025-06-18, Authorization, leída el 2026-11-05: https://modelcontextprotocol.io/specification/2025-06-18/basic/authorization
- Especificación MCP 2025-11-25, Authorization, leída el 2026-11-05: https://modelcontextprotocol.io/specification/2025-11-25/basic/authorization
- Especificación MCP 2026-07-28, Schema Reference, leída el 2026-11-05: https://modelcontextprotocol.io/specification/2026-07-28/schema
- IETF RFC 9728, OAuth 2.0 Protected Resource Metadata, leído el 2026-11-05: https://datatracker.ietf.org/doc/html/rfc9728
- IETF RFC 6750, OAuth 2.0 Bearer Token Usage, leído el 2026-11-05: https://datatracker.ietf.org/doc/html/rfc6750
- MDN, 429 Too Many Requests, leído el 2026-11-05: https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/429
- Google for Developers, costes de cuota de la API de datos de YouTube (actualizado el 2026-11-03), leído el 2026-11-05: https://developers.google.com/youtube/v3/determine_quota_cost
- Meta for Developers, IG User Business Discovery, leído el 2026-11-05: https://developers.facebook.com/docs/instagram-platform/instagram-graph-api/reference/ig-user/business_discovery
- Meta for Developers, límites de frecuencia de la Graph API, leído el 2026-11-05: https://developers.facebook.com/docs/graph-api/overview/rate-limiting
- TikTok for Developers, List Videos, leído el 2026-11-05: https://developers.tiktok.com/doc/tiktok-api-v2-video-list
- TikTok for Developers, Understanding TikTok API Rate Limits, leído el 2026-11-05: https://developers.tiktok.com/doc/tiktok-api-v2-rate-limit
- MCP remoto de EveryInfra (tools/list y tools/call), 2026-11-05: https://api.everyinfra.com/mcp
- Metadatos del recurso protegido de EveryInfra para /mcp/all, leídos a las 00:12 (hora de Singapur) del 2026-11-05: https://api.everyinfra.com/.well-known/oauth-protected-resource/mcp/all
- Catálogo de capacidades de datos de EveryInfra, leído a las 00:15 (hora de Singapur) del 2026-11-05: https://api.everyinfra.com/api/v1/social/catalog
- Documento OpenAPI de EveryInfra, leído el 2026-11-05: https://api.everyinfra.com/openapi.json
- Reddit r/ClaudeCode, Share an artifact with a database to users without a Claude License, leído el 2026-11-05: https://www.reddit.com/r/ClaudeCode/comments/1xhwscj/help_needed_share_an_artifact_with_a_database_to/
- Reddit r/ClaudeAI, Has anyone gotten a Claude artifact with connectors to work for their whole team?, leído el 2026-11-05: https://www.reddit.com/r/ClaudeAI/comments/1wb1ep7/has_anyone_gotten_a_claude_artifact_with/
- Reddit r/ClaudeAI, Problem with Artifact MCP permissions, leído el 2026-11-05: https://www.reddit.com/r/ClaudeAI/comments/1vr1k8q/problem_with_artifact_mcp_permissions_how_can_i/
- Reddit r/halopsa, The mother of all HaloPSA dashboards, built in Claude artifacts, leído el 2026-11-05: https://www.reddit.com/r/halopsa/comments/1wfttq0/the_mother_of_all_halopsa_dashboards_built_in/
- Reddit r/ClaudeAI, Artifacts cannot invoke custom MCP connectors, leído el 2026-11-05: https://www.reddit.com/r/ClaudeAI/comments/1q8gp3l/artifacts_cannot_invoke_custom_mcp_connectors/
- The New Stack, Claude can now build your dashboards (2026-10-08), leído el 2026-11-05: https://thenewstack.io/claude-dashboards-data-motion/
- Harvey, Harvey Brings Intake to Claude for Legal Artifacts Launch (2026-10-28), leído el 2026-11-05: https://www.harvey.ai/blog/harvey-intake-claude-for-legal-artifact
Referencia BL-87