Centro para desarrolladores

TubExperto API

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.

Referencia de TubExperto Link (MCP)

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.

Transporte: Streamable HTTP (POST, JSON-RPC 2.0)
Endpoint: https://tubexperto.com/api/mcp/stream
HerramientaDescripciónCréditos
list_my_expertsLista tus expertos/canales suscritosGratis
search_my_expertsBusca entre tus expertos por palabra claveGratis
list_expertsExplora todos los expertos públicos del catálogoGratis
get_expert_infoObtén información detallada de un experto concretoGratis
query_knowledge_baseBusca en TODOS los expertos a la vez2 cr
query_expertHazle una pregunta a un experto concreto2 cr
query_expert_panelPregunta a 2-5 expertos simultáneamente2 cr
compare_expertsCompara 2-5 expertos sobre un tema (síntesis)2 cr
list_videosLista los vídeos de un experto (paginado)Gratis
get_latest_videosObtén los vídeos más recientes de un canalGratis
get_video_summaryObtén el resumen de un vídeo con capítulos y marcas de tiempoGratis
suggest_channelsEncuentra nuevos canales para seguir por temaGratis
recommend_videosObtén vídeos recomendados/en tendenciaGratis

API REST

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.

URL base

https://tubexperto.com/api

Endpoint de MCP Stream (JSON-RPC)

POST /api/mcp/stream
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.

Autenticación

TubExperto usa dos tipos de token, ambos se envían como Authorization: Bearer <token>.

Claves de API

te_
  • +Persistentes, nunca caducan
  • +Ideales para integraciones servidor a servidor
  • +Se guardan como hash bcrypt, no se pueden recuperar tras crearlas
  • Gestiónalas en Panel → Claves de API

Tokens de sesión

mcpl_
  • +Caducan a los 7 días, se pueden rotar automáticamente
  • +Por dispositivo, para conexiones de clientes de IA
  • +Se guardan como hash SHA-256
  • Genéralos en Panel → TubExperto Link
Nunca expongas tokens en código de cliente ni en repositorios públicos. Rótalos de inmediato si se ven comprometidos.

Ejemplos de inicio rápido

Conéctate a TubExperto en menos de 5 minutos. Sustituye mcpl_... por tu token real.

$cURL

curl -X POST https://tubexperto.com/api/mcp/stream \
  -H "Authorization: Bearer mcpl_..." \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "list_my_experts",
      "arguments": {}
    }
  }'

PyPython

import requests

TOKEN = "mcpl_..."
BASE_URL = "https://tubexperto.com/api/mcp/stream"

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)

JSNode.js

const TOKEN = "mcpl_...";
const BASE_URL = "https://tubexperto.com/api/mcp/stream";

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);

Límites de uso y créditos

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.

PlanPeticiones/mesCréditos/mesSesiones MCP
Free30*10 (welcome)1
Pro600302
Max2,000803
Team600/seat2505
Enterprise10,000250+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.

¿Listo para construir?

Consigue tu token de API desde el panel y empieza a consultar tu base de conocimiento de YouTube en minutos.