Crea sobre TubExperto. Conecta tus aplicaciones, automatiza flujos de trabajo e integra el conocimiento de YouTube en tus productos usando nuestro servidor TubExperto Link (MCP) y la API REST.
42 herramientas, opciones de transporte, autenticación, límites de uso
Especificación OpenAPI 3.0, playground interactivo, ejemplos de código
Claves de API (te_), tokens de sesión (mcpl_), permisos, límites por plan
Python, Node.js, cURL: conéctate en 5 minutos
Cuotas por plan, coste en créditos por operación
TubExperto expone un servidor TubExperto Link (MCP) vía Streamable HTTP, basado en el estándar Model Context Protocol. Conecta cualquier cliente de IA compatible con MCP usando un único endpoint.
42 herramientas. Cada una declara su título y si es de solo lectura o modifica datos; tu IA te pide confirmación antes de las que gastan créditos, borran o publican.
query_knowledge_baseGasta créditosBusca en los experts (canales de YouTube) del usuario en TubExperto para responder una pregunta sobre temas que cubren sus canales, p. ej. "¿qué dicen mis experts sobre X?", "busca en mi base de conocimiento". Sin expertIds busca en TODOS los canales del usuario. Opcionalmente pasa expertIds para acotar a 2+ canales concretos (p. ej. comparar perspectivas). Cuesta 2 créditos.
query_expertGasta créditosPregunta a un expert/canal de YouTube concreto. Úsala cuando el usuario mencione un canal específico: "¿qué dice midudev sobre X?", "pregúntale a Fireship sobre Y". Cuesta 1 crédito.
list_my_expertsSolo lecturaLista tus experts/canales de YouTube en TubExperto. Úsala si el usuario pregunta: "¿qué experts tengo?", "muéstrame mis canales", "¿qué canales sigo?", "lista mis experts de TubExperto". Gratis.
get_expert_infoSolo lecturaObtén info detallada de un expert concreto: temas, descripción, suscriptores, vídeos recientes. Úsala si el usuario pregunta por los detalles o estadísticas de un canal.
search_my_expertsSolo lecturaBusca entre tus experts por palabra clave o tema. Úsala si el usuario pregunta "¿tengo algún expert sobre X?", "¿cuál de mis canales cubre Y?", "busca mi expert sobre Z". Gratis.
list_videosSolo lecturaLista los vídeos de un expert/canal concreto con paginación. Úsala si el usuario pregunta "¿qué vídeos tiene X?", "muéstrame vídeos de Y", "últimos vídeos de Z". Gratis.
suggest_channelsSolo lecturaDescubre canales de YouTube nuevos sobre un tema que el usuario aún no ha añadido. Úsala si el usuario pide "recomiéndame canales sobre X", "busca canales sobre Y"; también sirve cuando una consulta sobre sus experts no encuentra nada. El tema puede estar en cualquier idioma: busca por significado, así que "artificial intelligence" encuentra canales con temas en español. Gratis.
recommend_videosSolo lecturaObtén los vídeos más populares/vistos de los canales que sigues. Úsala si el usuario pregunta "¿qué veo?", "mejores vídeos de mis canales", "vídeos más vistos", "recomiéndame algo". Gratis.
list_expertsSolo lecturaBusca experts de YouTube disponibles en el catálogo de TubExperto por tema o categoría. Úsala para descubrir experts antes de añadirlos. Gratis.
get_latest_videosSolo lecturaObtén los vídeos más recientes de un canal/expert de YouTube. Úsala si el usuario pregunta "¿qué hay nuevo de X?", "últimas subidas de Y". Gratis.
get_transcriptSolo lecturaObtén la transcripción íntegra de un vídeo. Úsala si el usuario pide "dame la transcripción", "muéstrame lo que dijeron", "texto completo del vídeo X", o cuando necesites el contenido del vídeo para un análisis profundo. Formatos: "chunks" (canónico: bloques semánticos limpios con timestamps, por defecto), "full_text" (texto plano limpio, sin timestamps, sin duplicados), "segments" (cues crudos con timestamp por línea). Las transcripciones largas llegan en partes: el pie dice "Pide part: N" y vuelves a llamar con ese part. Gratis (0 créditos).
get_video_summaryGasta créditosObtén un resumen del vídeo con capítulos, temas clave y timestamps. Úsala si el usuario pide "resume este vídeo", "¿de qué va el vídeo X?", "dame las ideas clave". Cuesta 2 créditos.
query_expert_panelGasta créditosHazle la misma pregunta a 2-5 experts y obtén sus respuestas INDEPENDIENTES en paralelo — tipo panel. Úsala cuando el usuario quiera oír la respuesta completa de cada expert por separado: "¿qué piensan X e Y sobre Z?", "pregúntale a varios experts". Para una comparación estructurada (acuerdos, desacuerdos, ángulos únicos) usa compare_experts. Cuesta 1 crédito por expert.
compare_expertsGasta créditosAnaliza cómo 2-5 experts tratan un tema concreto y produce UNA síntesis estructurada con acuerdos, desacuerdos, perspectivas únicas y profundidad de cobertura. Úsala cuando el usuario quiera un análisis contrastivo: "compara X e Y en el tema Z", "¿en qué se diferencian mis experts sobre W?", "¿quién discrepa sobre V?". Distinta de query_expert_panel, que devuelve la respuesta completa de cada expert por separado. Cuesta 1 crédito por expert.
query_video_batchGasta créditosHazle UNA pregunta a 2-8 vídeos sueltos de YouTube a la vez, SIN crear un experto/canal persistente. Úsala cuando el usuario quiera comparar o sintetizar unos pocos vídeos concretos de canales distintos, o una lista puntual que no quiere convertir en un canal: "¿qué dicen estos 5 vídeos sobre X?", "resume estos enlaces juntos", "¿estas dos opiniones sobre el mismo tema coinciden?". Cada vídeo tiene que estar ya indexado — usa lazy_index_video o import_videos primero si alguno no está en la biblioteca. Cada afirmación se cita con su vídeo y su timestamp. Cuesta 1 crédito por vídeo (igual que query_expert_panel/compare_experts).
find_best_expert_for_topicSolo lecturaEncuentra el mejor expert para un tema concreto. Primero revisa la biblioteca del usuario; si no hay coincidencias, recomienda experts públicos del catálogo de TubExperto y devuelve un deep-link al catálogo filtrado. El tema puede estar en cualquier idioma (coincide por significado, no por palabras exactas). Úsala si el usuario pregunta "¿quién es el mejor expert para X?", "búscame el mejor expert de marketing", "¿cuál de mis experts sabe de Y?". Gratis.
get_chaptersSolo lecturaObtén la lista de capítulos de un vídeo con timestamps y deep-links. Úsala si el usuario pide "¿qué capítulos tiene este vídeo?", "dame las secciones", "salta al tema [X] del vídeo". Devuelve capítulos cacheados — sin coste Gemini. Gratis.
tubexperto_balanceSolo lecturaDevuelve el plan actual del usuario, balance mensual de créditos, créditos usados en el periodo y límites MCP activos. Úsala si el usuario pregunta "¿cuántas preguntas me quedan?", "¿qué plan tengo?", "¿estoy cerca del límite?", "how many questions do I have left", "what plan am I on". Gratis — no consume créditos.
founder_statusSolo lecturaDevuelve el estado del usuario en el programa de fundadores de TubExperto (por invitación personal): perfil de fundador, plan gratuito y hasta cuándo, la comisión de partner y si está activa, su enlace de partner, y cómo va el compromiso «mientras colabore» (días con actividad y opiniones frente a los mínimos, y el plazo si lo hay). Úsala si el usuario pregunta "¿soy fundador?", "¿cómo va mi cuenta de fundador?", "mi tarjeta de fundador", "mi enlace de partner", "am I a founder". Gratis y de solo lectura. Si el usuario no es fundador, lo dice.
get_due_reviewsSolo lecturaDevuelve las preguntas de quiz pendientes de repaso espaciado (SM-2) ahora mismo, más un resumen (total de tarjetas, pendientes, racha, desglose por expert). Úsala si el usuario pregunta "¿qué tengo que repasar?", "tarjetas de repaso pendientes", "mi racha de repaso". Gratis — no consume créditos. Solo lectura: no puntúa ni reprograma nada.
search_videosSolo lecturaBusca vídeos sobre un tema en TRES ámbitos: los experts suscritos por el usuario (instantáneo, gratis), el catálogo compartido de TubExperto (vídeos importados por cualquier usuario — enlace instantáneo gratis), y/o YouTube global (descubrimiento, aún no indexado). Devuelve una lista numerada con un `searchId` que `import_videos` puede referenciar. Úsala si el usuario pide "mejores vídeos sobre X", "búscame vídeos de Y", "qué ver para aprender Z". Pasa `channelId` para buscar DENTRO de un canal de YouTube, incluidos los vídeos que TubExperto aún no ha indexado (cada resultado dice si ya está importado y cuánto cuesta importarlo); con `channelId` y sin `topic` lista los últimos vídeos subidos del canal. Gratis. El scope por defecto `auto` combina los tres.
import_videosGasta créditosImporta vídeos seleccionados a la biblioteca TubExperto del usuario. Acepta `{searchId, indices[]}` (referencia la lista numerada que devolvió `search_videos`) O `{videoIds[]}` (IDs directos). Los vídeos ya presentes en el catálogo compartido son instantáneos y gratis; los vídeos nuevos cuestan 1 crédito cada uno y se encolan para procesamiento (transcript + análisis + capítulos). Devuelve resultados por vídeo y handles de polling. Máx 10 por llamada. El canal del vídeo debe ser ya un expert — usa `subscribe_to_channel` antes si hace falta.
get_import_statusSolo lecturaConsulta el estado de importaciones de vídeo iniciadas con `import_videos` (o suscripciones de canal con `subscribe_to_channel`). Acepta `jobIds[]` o `videoIds[]`. Devuelve el progreso por etapa (transcript/embeddings/analysis) y las `capabilities` de cada job: `queryable` indica que query_expert ya funciona y `summarizable` que get_video_summary ya funciona. Consulta hasta `allReady: true` para preguntar, y hasta `allSummarizable: true` antes de pedir resúmenes. Gratis.
search_channelsSolo lecturaBusca canales de YouTube sobre un tema. Combina el catálogo de TubExperto (canales importados por cualquier usuario, suscribirse=gratis) y descubrimiento global en YouTube. Devuelve una lista numerada más un `searchId` que `subscribe_to_channel` puede referenciar. Úsala si el usuario pide "busca canales sobre X", "recomiéndame canales nuevos de Y". Gratis.
subscribe_to_channelAñade datosAñade un canal de YouTube a la biblioteca del usuario como expert. Acepta `{channelId}` (UC… o @handle), `{channelUrl}`, o `{searchId, index}` de una llamada previa a `search_channels`. La suscripción cuesta 0 créditos, pero un canal NUEVO ocupa un hueco de experto del plan; importar vídeos luego con `import_videos` cuesta 1 crédito por vídeo nuevo. La respuesta devuelve `cost` y `expertSlots` (huecos restantes para canales nuevos) — muéstraselos al usuario para que sepa el coste antes de importar. Para canales importados por otros usuarios, da acceso instantáneo. Para canales nuevos, crea el expert y preselecciona los N vídeos más recientes para posible importación.
list_channel_uploadsSolo lecturaLista todos los vídeos (subidas) en orden cronológico de UN canal de YouTube por `{channelId}`, `{channelUrl}` o `{expertId}` (para un expert que ya está en la biblioteca). Devuelve una lista numerada y un `searchId` reutilizable, así puedes luego llamar a `import_videos {searchId, indices:[…]}` igual que tras search_videos. Gratis. Úsala cuando el usuario quiera ver o importar "el canal entero" / "todos los vídeos de X" en lugar de una búsqueda por tema. Límite: maxResults<=200.
lazy_index_videoGasta créditosObtén la transcripción/info de un vídeo de YouTube por URL o ID aunque su canal NO esté indexado todavía. Flujo en dos pasos con confirmación previa: llama SIN confirm para conocer el coste (1 crédito por vídeo nuevo; gratis para el admin propietario y para Shorts) — devuelve un mensaje de confirmación y NO cobra. Llama de nuevo con confirm:true para (1) obtener la transcripción EN CRUDO al instante y (2) lanzar la indexación completa del canal (resumen, capítulos, búsqueda) en segundo plano. Úsala cuando el usuario pegue un enlace de YouTube y pida "dame la transcripción / qué dice este vídeo" de un canal que no ha añadido. Para vídeos que ya están en la biblioteca usa get_transcript.
start_topic_researchGasta créditosLanza una investigación abierta en YouTube sobre un tema para el que el usuario todavía no tiene canales. TubExperto planifica las búsquedas, descubre vídeos candidatos en el catálogo, Innertube y YouTube, LEE sus transcripciones y devuelve una ruta curada: secciones en orden de aprendizaje, cada vídeo con su motivo, su nivel y qué minutos ver. Úsala para "enséñame lo mejor sobre X", "cómo se fundó <empresa>", "quiero dominar <habilidad>", "analiza a este competidor", es decir, siempre que el usuario NO sepa ya a qué canal preguntar. Asíncrona: devuelve un `researchId` al instante y la ruta está lista en 90-300 s; consulta con get_topic_research cada 15-30 s. Cuesta créditos según la profundidad: quick 2, standard 4, deep 8 — reembolso íntegro si falla o se cancela. El plan gratuito solo puede lanzar `quick`, dos veces por semana.
get_topic_researchSolo lecturaConsulta una investigación lanzada con start_topic_research. Mientras corre devuelve `status`, la etapa del pipeline (planning → discovering → triaging → sampling → curating), `progress` y `estimatedSecondsRemaining` — consulta cada 15-30 s, una investigación tarda de 90 a 300 s. Cuando termina devuelve la ruta curada completa, un Markdown listo para presentar, el `conversationId` del hilo en el que vive esta investigación y los `nextSteps` (cuánto costaría importar, qué canales se pueden seguir). Una vez terminada, responde las dudas del usuario con continue_topic_research en vez de volver a investigar: es gratis y usa lo que esta investigación ya leyó.
continue_topic_researchAñade datosHaz una pregunta más sobre una investigación ya terminada, usando el material que leyó. Sirve para las dudas posteriores sobre una investigación ("¿y qué decía sobre X?", "¿cuál de estos va mejor para empezar?", "resúmeme el tercer vídeo"): responde con las transcripciones de la ruta y las páginas web que se leyeron, las cita como enlaces `[videoId@mm:ss]` al segundo exacto y recuerda los turnos anteriores del hilo. Es GRATIS y no cuesta créditos (la investigación se pagó al lanzarla), así que sale más barata que lanzar una segunda investigación sobre el mismo tema. Si para responder hace falta más vídeo del que se muestreó, vuelve en `needsImport` con el coste en créditos de importarlo; di el coste y pregunta antes de llamar a import_topic_research_videos. El turno queda escrito en la conversación de la investigación (`conversationId`), que el usuario también ve en la web.
list_topic_researchSolo lecturaLista las investigaciones del usuario, de la más reciente a la más antigua, con su tema, objetivo, profundidad, estado, el título de la ruta cuando ya está terminada y el `conversationId` de su hilo cuando ya lo tiene (null significa que nadie ha hecho todavía ninguna pregunta de seguimiento). Úsala si el usuario pregunta "¿qué he investigado?", "¿ya está mi investigación?" o se refiere a una investigación anterior sin dar su id. Gratis.
cancel_topic_researchBorra o revocaCancela una investigación que sigue en marcha, o borra una que ya terminó. Cancelar devuelve íntegros los créditos cobrados; borrar una investigación terminada la elimina junto con su ruta de forma definitiva (los vídeos ya importados siguen en la biblioteca). La respuesta indica cuál de las dos cosas ha ocurrido. Gratis.
import_topic_research_videosGasta créditosImporta los vídeos de una investigación terminada a la biblioteca del usuario para poder preguntarles con query_knowledge_base. Pasa `videoIds` para importar solo los que el usuario haya elegido; omítelo para importar la ruta entera. Cuesta 1 crédito por vídeo nuevo y 0 por los que ya están en el catálogo compartido — indica SIEMPRE el coste (está en los nextSteps de get_topic_research) y pide conformidad al usuario antes de llamar. Los canales que aún no son experts se suscriben como parte de la importación (cada canal nuevo ocupa un hueco de experto); un canal sin hueco manda sus vídeos a `skipped[]` y el resto se importa igual. Los vídeos importados quedan en una playlist en el orden en que la ruta los enseña.
follow_topic_research_channelsAñade datosSigue canales que ha encontrado una investigación, para que entren en la biblioteca del usuario como experts. Solo se aceptan canales de esa investigación. Seguir es gratis, pero cada canal nuevo ocupa un hueco de experto del plan; un canal sin hueco vuelve en `skipped[]`. Los canales que ya están en el catálogo se siguen al instante (`followed[]`); un canal que nadie ha indexado queda en cola (`queued[]`, con un `importJobId`) y se prepara en segundo plano: consulta `get_import_status` con esos ids. Distinto de importar: seguir añade el canal, importar añade los vídeos concretos de la ruta. Pregunta al usuario antes de llamar.
generate_topic_research_quizGasta créditosCuesta 1 crédito. Genera un cuestionario sobre una investigación, para comprobar qué ha retenido de verdad el usuario. No hace falta importar nada: se construye con lo que la propia investigación leyó (los extractos, resúmenes y momentos clave de sus vídeos) y con la transcripción guardada de los vídeos que el usuario ya tenga en su biblioteca. Pasa `videoId` para preguntar sobre un solo vídeo de la ruta; omítelo para un cuestionario de toda la ruta. Corre en segundo plano: la primera llamada responde `queued` y el cuestionario está listo en 1-2 minutos, así que vuelve a llamarla para recogerlo. Volver a llamarla es gratis: devuelve el trabajo en curso o el cuestionario ya hecho sin cobrar dos veces. Cuesta lo que cuesta un cuestionario en el plan (una vez por ámbito), con reembolso si la generación falla.
export_topic_researchSolo lecturaExporta el informe de una investigación terminada: título, resumen, la ruta numerada con enlace y motivo por vídeo, la respuesta o el análisis de competencia, los canales y los huecos. `md` (el valor por defecto) devuelve el Markdown en línea, listo para mostrar o guardar; `pdf` y `docx` devuelven un enlace de descarga. Gratis.
ask_tubexperto_conversationsSolo lecturaBusca en las conversaciones guardadas en TubExperto (no en el historial ni en la memoria propios de Claude ni de ningún asistente): los chats que el usuario tuvo dentro de TubExperto con sus canales, vídeos, paneles e investigaciones, en la web de TubExperto, su app o a través de estas tools de TubExperto. Responde una pregunta sobre ellas con citas numeradas a cada conversación de TubExperto, p. ej. "¿qué le pregunté a TubExperto sobre X?", "¿en qué quedamos en TubExperto sobre Y?", "¿ya investigué Z en TubExperto?". Busca en las conversaciones guardadas de TubExperto, no en la base de conocimiento de los canales: para lo que dice un CANAL sobre un tema, la tool es query_knowledge_base. Búsqueda híbrida (significado + palabras exactas) sobre los mensajes que el usuario puede leer. Gratis; el plan gratuito tiene 5 al día.
export_conversationAñade datosExporta una conversación del usuario, o una sola respuesta, como nota para su aplicación de notas: `markdown` (simple), `obsidian` (frontmatter YAML con título, canales, fechas y etiquetas; preguntas como callouts) o `notion` (Markdown listo para el importador de Notion). Cada cita se convierte en un enlace al vídeo de YouTube en ese segundo exacto, con la lista de fuentes de cada respuesta. El Markdown vuelve en línea. Con `destination: "notion"` se crea directamente como página en el Notion del usuario si lo tiene conectado (si no, devuelve el Markdown preparado para Notion). Sin `conversationId` exporta la conversación MCP más reciente del usuario. Gratis.
list_public_linksSolo lecturaLista los enlaces públicos activos del usuario con su URL, visitas y shareId. Gratis.
revoke_public_linkBorra o revocaRevoca uno de los enlaces públicos del usuario: la página deja de funcionar al momento. Gratis.
helpSolo lecturaMuestra lo que puedes hacer con TubExperto. Úsala si el usuario pide "ayuda", "¿qué puedo hacer?", "¿cómo funciona TubExperto?", "recuérdame qué puedo preguntar", "help", "what can I do". Gratis.
Todas las herramientas MCP también están disponibles como endpoints REST estándar. La API sigue OpenAPI 3.0 y usa cuerpos de petición/respuesta en JSON.
https://tubexperto.com/api
POST https://mcp.tubexperto.com
Content-Type: application/json
Authorization: Bearer <token>
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_my_experts",
"arguments": {}
}
}Explora y prueba todos los endpoints en el playground interactivo de la API, o descarga la especificación OpenAPI.
TubExperto usa dos tipos de token, ambos se envían como Authorization: Bearer <token>.
te_mcpl_Conéctate a TubExperto en menos de 5 minutos. Sustituye mcpl_... por tu token real.
curl -X POST https://mcp.tubexperto.com \
-H "Authorization: Bearer mcpl_..." \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_my_experts",
"arguments": {}
}
}'import requests
TOKEN = "mcpl_..."
BASE_URL = "https://mcp.tubexperto.com"
headers = {
"Authorization": f"Bearer {TOKEN}",
"Content-Type": "application/json",
}
def call_tool(name: str, arguments: dict = {}):
payload = {
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {"name": name, "arguments": arguments},
}
response = requests.post(BASE_URL, json=payload, headers=headers)
response.raise_for_status()
return response.json()
# List all your experts
experts = call_tool("list_my_experts")
print(experts)
# Ask a question to a specific expert
answer = call_tool("query_expert", {
"expertId": "your-expert-id",
"question": "What are the main topics covered in this channel?"
})
print(answer)const TOKEN = "mcpl_...";
const BASE_URL = "https://mcp.tubexperto.com";
async function callTool(name, arguments_ = {}) {
const response = await fetch(BASE_URL, {
method: "POST",
headers: {
Authorization: `Bearer ${TOKEN}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
jsonrpc: "2.0",
id: 1,
method: "tools/call",
params: { name, arguments: arguments_ },
}),
});
if (!response.ok) {
throw new Error(`HTTP ${response.status}: ${await response.text()}`);
}
return response.json();
}
// List all your experts
const experts = await callTool("list_my_experts");
console.log(experts);
// Search across all experts at once (costs 2 credits)
const results = await callTool("query_knowledge_base", {
question: "What are the best JavaScript frameworks for 2025?",
});
console.log(results);Las cuotas se reinician cada mes. Los créditos solo se consumen en las herramientas marcadas arriba con un coste en créditos. Las herramientas de lectura del plan gratuito nunca consumen créditos.
| Plan | Peticiones/mes | Créditos/mes | Sesiones MCP |
|---|---|---|---|
| Free | 30* | 10 (de bienvenida) | 1 |
| Pro | 600 | 30 | 2 |
| Max | 2,000 | 80 | 3 |
| Team | 600/seat | 250 | 5 |
| Enterprise | 10,000 | 250+ | 999 |
* Free se mide en realidad por semana (7 preguntas, ventana móvil de 7 días); 30/mes es el equivalente aproximado mostrado aquí para comparar con el resto de planes.
HTTP 429: límite de peticiones superado
Se devuelve cuando superas tu cuota (semanal en Free, mensual en el resto). Reinténtalo tras el tiempo indicado en la cabecera Retry-After.
HTTP 402: créditos insuficientes
Se devuelve cuando llamas a una herramienta con coste en créditos y tu saldo es 0. Recarga créditos desde tu panel.
Consigue tu token de API desde el panel y empieza a consultar tu base de conocimiento de YouTube en minutos.