Aljazeera 360

Servidor MCP para Al Jazeera 360 — Conecta asistentes de IA al catálogo de streaming de Al Jazeera. Busca, navega y recupera contenido de video en árabe con enlaces directos de visualización.

Documentación

Servidor MCP de Al Jazeera 360

CI Python 3.10+ License: MIT MCP Protocol Smithery

Conecta cualquier asistente de IA al catálogo de streaming de Al Jazeera 360: busca, explora y recupera contenido de video en árabe con enlaces de visualización directos.

Un servidor MCP (Protocolo de Contexto de Modelos) que brinda a herramientas de IA como Claude, ChatGPT, Gemini y Cursor acceso en tiempo real a la biblioteca completa de contenido de Al Jazeera 360: documentales, programas de investigación, talk shows, podcasts y producciones originales.

⚠️ Proyecto comunitario no oficial. No está afiliado, respaldado ni patrocinado por Al Jazeera Media Network. Utiliza la API de acceso público de la plataforma y enlaza de vuelta a aljazeera360.com para todo el contenido.


⚡ Conexión rápida — Sin necesidad de instalación

Una instancia alojada está activa en Cloudflare. Añade esto a la configuración de tu cliente MCP y listo:

{
  "mcpServers": {
    "aljazeera360": {
      "type": "http",
      "url": "https://aljazeera360-mcp.ahmed-26d.workers.dev/mcp"
    }
  }
}

La primera solicitud después de estar inactivo tarda unos segundos (arranque en frío del contenedor) — las solicitudes posteriores son rápidas.

Luego pregúntale a tu asistente: "¿Qué está en tendencia en Al Jazeera 360?" — o en árabe: "ايه أحدث حلقات الدحيح؟"


Qué Hace

Haz preguntas a tu asistente de IA como:

  • "¿Qué está en tendencia en Al Jazeera 360?"
  • "Encuentra documentales sobre Palestina"
  • "Muéstrame los últimos episodios de Al Daheeh"
  • "Busca videos sobre Gaza"

La IA se conecta a este servidor, obtiene datos reales de Al Jazeera 360 y devuelve títulos de video reales, descripciones, duraciones y enlaces de visualización directos a aljazeera360.com.


Herramientas Disponibles

El servidor incluye dos perfiles de herramientas:

PerfilHerramientasPara quiénCómo
Core (predeterminado)8 herramientas de descubrimientoUsuarios finales que preguntan a asistentes de IA sobre contenidoFunciona de inmediato
CompletoLas 24 herramientas (+ SEO y analítica)Equipos de contenido, analistas de SEOEstablecer AJ360_ENABLE_SEO_TOOLS=1

Un conjunto de herramientas predeterminado pequeño mantiene la selección de herramientas de IA rápida y precisa. Activa el perfil completo solo si necesitas las herramientas de SEO/analítica.

Herramientas de Descubrimiento Core (siempre activas)

HerramientaQué Hace
list_sectionsLista las 15 secciones/canales disponibles en la plataforma
get_trending_contentDevuelve contenido destacado y más visto de la página principal
browse_sectionExplora todo el contenido dentro de una sección específica (p. ej., Documentales, Podcasts)
get_video_detailsDevuelve metadatos completos de un video: título, descripción, duración, calidad (hasta 4K), URL de visualización
get_series_detailsDevuelve información de la serie con todas las temporadas disponibles
get_season_episodesLista todos los episodios dentro de una temporada específica
search_videosBúsqueda de texto completo en todo el contenido (árabe e inglés), con filtro opcional por tipo de contenido
get_latest_episodesDevuelve los episodios publicados más recientemente de cualquier sección

Herramientas de SEO y Metadatos (requiere AJ360_ENABLE_SEO_TOOLS=1)

HerramientaQué Hace
generate_seo_contentGenera títulos, descripciones y palabras clave optimizadas en árabe para un video
generate_sitemapGenera un Sitemap XML de Video listo para Google Search Console (paginado)
audit_metadata_qualityAudita la salud del catálogo: descripciones, miniaturas y categorías faltantes (paginado)
get_trending_topicsExtrae las palabras clave y temas más populares del catálogo
compare_sectionsCompara la frescura y actividad del contenido en todas las secciones
get_series_seo_mapGenera un mapa SEO completo para una serie con todos los episodios

Herramientas Avanzadas de IA y Analítica (requiere AJ360_ENABLE_SEO_TOOLS=1)

HerramientaQué Hace
build_knowledge_graphConstruye un grafo de conocimiento de entidades a partir de los metadatos del catálogo
generate_faq_schemaGenera el Esquema JSON-LD de FAQ para un video
get_ai_discoverability_scorePuntúa cuán descubrible es el contenido por asistentes de IA
build_topic_clustersAgrupa contenido en clústeres de temas SEO con páginas pilares y de soporte
find_evergreen_contentIdentifica contenido que sigue siendo relevante con el tiempo
get_host_profileGenera un Esquema de Persona y perfil para el presentador de un programa
get_genre_reportInforma sobre la distribución de géneros y oportunidades de SEO
get_searchable_tags_mapMapea las palabras clave más buscadas en el catálogo (paginado)
get_country_content_mapMapea contenido por país para SEO geodirigido (paginado)
generate_series_schemaGenera el Esquema JSON-LD de TVSeries + TVEpisode para una serie

Secciones

IDCanal
AJ360-OriginalsOriginales de Al Jazeera 360
AJAAl Jazeera Árabe
AJDAl Jazeera Documental
AtheerAtheer
AJ-PlusAJ+ Árabe
Talk ShowTalk Shows
Investigative ShowProgramas de Investigación
PodcastPodcasts
DocumentariesDocumentales
Field ShowReportajes de Campo
Policy SeriesSeries Políticas
Social SeriesSeries Sociales
Historical SeriesSeries Históricas
Biographical SeriesSeries Biográficas
Culture and Arts SeriesCultura y Artes

Inicio Rápido

Instalación

git clone https://github.com/ahmedaminsa/aljazeera360-mcp-server.git
cd aljazeera360-mcp-server
pip install -r requirements.txt

Configurar Autenticación

El servidor admite múltiples métodos de autenticación (en orden de prioridad):

  1. Token de Refresco (Recomendado) — Se renueva automáticamente cada 10 minutos, válido por ~1 año:

    export AJ360_REFRESH_TOKEN="eyJ..."
    
  2. Token de Autenticación — Token directo, expira en ~10 minutos:

    export AJ360_AUTH_TOKEN="eyJ..."
    
  3. Modo Invitado — Sin configuración necesaria. El servidor crea automáticamente una sesión de invitado.

Cómo obtener tu token de refresco:

  1. Abre https://www.aljazeera360.com en tu navegador
  2. Inicia sesión con tu cuenta
  3. Abre DevTools → Consola → Ejecuta: localStorage.getItem('dice:refreshToken')
  4. Copia el valor del token

Prueba

python test_server.py

Las herramientas Core se prueban contra la API en vivo.

Ejecutar

python server.py

Uso con Claude Desktop

Añade a tu archivo de configuración:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "aljazeera360": {
      "command": "python",
      "args": ["/full/path/to/aljazeera360-mcp-server/server.py"],
      "env": {
        "AJ360_REFRESH_TOKEN": "your-refresh-token-here"
      }
    }
  }
}

Reinicia Claude Desktop. Las herramientas de Al Jazeera 360 aparecerán automáticamente.


Uso con Cualquier Cliente MCP

Este servidor habla el protocolo MCP estándar sobre stdio (local) y HTTP Transmisible (alojado). Funciona con cualquier cliente compatible con MCP:


Configuración

VariableRequeridaPredeterminadoDescripción
AJ360_REFRESH_TOKENNo—Token de refresco de larga duración (~1 año). Mejor para producción.
AJ360_AUTH_TOKENNoModo invitadoToken de autenticación de corta duración (~10 min). Bueno para pruebas rápidas.
AJ360_API_KEYSí—Clave de API de la plataforma (pública, de las solicitudes de red del navegador). No se incluye ninguna predeterminada — debes proporcionarla.
MCP_TRANSPORTNostreamable-httpModo de transporte: stdio (local), streamable-http (nube, recomendado) o sse (nube heredado).
MCP_PORTNo8080Puerto para el transporte HTTP (implementación en la nube).
AJ360_ALLOWED_HOSTSolo nube—Nombre de host público de tu implementación (sin esquema). Requerido al autoalojar en un dominio personalizado — la protección contra reenlace de DNS rechaza hosts desconocidos con 421.
AJ360_ENABLE_SEO_TOOLSNooffEstablecer a 1 para registrar las 16 herramientas de SEO/analítica (perfil completo).
AJ360_ENABLE_DASHBOARDNotrueActivar/desactivar el panel de analítica.
AJ360_DASHBOARD_PORTNo9090Puerto para el panel de analítica.
AJ360_DASHBOARD_TOKENNo—Secreto compartido para los endpoints de datos de analítica (/api/stats, /api/recent). Cuando se establece, los llamadores deben enviar Authorization: Bearer <token> o ?token=<token>. Muy recomendado para cualquier implementación pública/en la nube.
AJ360_ANALYTICS_DBNoanalytics.dbRuta a la base de datos SQLite de analítica.

El servidor solo necesita AJ360_API_KEY para ejecutarse — la autenticación recurre automáticamente a una sesión de invitado. Para acceso completo al contenido, proporciona también un token de refresco.


Implementación

La instancia de producción se ejecuta en Contenedores de Cloudflare — tutorial completo en deploy/cloudflare/README.md (envuelve el Dockerfile en un Contenedor de Cloudflare detrás de un pequeño Worker; requiere el plan Workers de Pago y Docker local para implementaciones). Cualquier plataforma de contenedores funciona — alternativas abajo.

Deploy to Render

Docker

docker build -t aljazeera360-mcp .
docker run -p 8080:8080 -e MCP_TRANSPORT=streamable-http -e AJ360_REFRESH_TOKEN=your-token aljazeera360-mcp

Google Cloud Run

gcloud builds submit --tag gcr.io/YOUR_PROJECT/aljazeera360-mcp
gcloud run deploy aljazeera360-mcp \
  --image gcr.io/YOUR_PROJECT/aljazeera360-mcp \
  --platform managed \
  --allow-unauthenticated \
  --set-env-vars="MCP_TRANSPORT=streamable-http,AJ360_REFRESH_TOKEN=your-token"

Render / Railway / Fly.io

Conecta este repositorio — se implementa automáticamente desde el Dockerfile incluido. Establece las variables de entorno en el panel (incluyendo AJ360_ALLOWED_HOST=<your-domain> para que la protección contra reenlace de DNS acepte tu host).


Cómo Funciona

Your AI Assistant
       │
       │  MCP Protocol (stdio / Streamable HTTP)
       ▼
┌──────────────────────────┐
│  This MCP Server         │
│  ┌────────────────────┐  │
│  │ Token Manager      │  │
│  │ (auto-refresh)     │  │
│  ├────────────────────┤  │
│  │ 24 Tools + Prompts │  │
│  │ + Retry + Cache    │  │
│  └────────────────────┘  │
└──────────┬───────────────┘
           │
           │  HTTPS (authenticated)
           ▼
┌──────────────────────────┐
│  Al Jazeera 360 API      │
│  (Vesper/Dice Platform)  │
└──────────┬───────────────┘
           │
           ▼
┌──────────────────────────┐
│  aljazeera360.com        │
│  (Direct watch links)    │
└──────────────────────────┘

Prompts Integrados

El servidor incluye prompts preconstruidos para escenarios comunes de IA:

PromptDescripción
recommend_documentaryEncuentra y recomienda documentales sobre un tema específico
summarize_latestResume los últimos episodios de una sección
explore_seriesExplora una serie — encuentra todas las temporadas y episodios

Ejemplo de Salida

Llamar a search_videos("غزة") devuelve:

{
  "query": "غزة",
  "total_results": 20,
  "results": [
    {
      "title": "المسعفون أهداف إسرائيل المتنقلة!",
      "type": "VOD",
      "duration": "24:53",
      "id": "965741",
      "watch_url": "https://www.aljazeera360.com/video/965741"
    },
    {
      "title": "قيادة السنوار لجهاز حماس الأمني",
      "type": "VOD",
      "duration": "54:57",
      "id": "953659",
      "watch_url": "https://www.aljazeera360.com/video/953659"
    }
  ]
}

Panel de Analítica

El servidor incluye un panel de analítica integrado que rastrea cada solicitud realizada por herramientas de IA.

Qué Rastrea

  • Qué herramienta de IA hizo la solicitud (Claude, ChatGPT, Cursor, etc.)
  • Qué herramienta MCP fue llamada (search_videos, get_trending_content, etc.)
  • Cuándo ocurrió cada solicitud (marca de tiempo)
  • Cuánto tardó cada solicitud (tiempo de respuesta en ms)
  • Si tuvo éxito o falló
  • Términos de búsqueda principales (sobre qué preguntan los usuarios)
  • Patrones de actividad diarios/por hora

Acceder al Panel

El panel se inicia automáticamente en el puerto 9090 cuando ejecutas el servidor:

http://localhost:9090

Para implementaciones en la nube, expón el puerto 9090 junto al puerto MCP (8080).

Endpoints de API

EndpointDevuelve
GET /Panel HTML interactivo (se actualiza automáticamente cada 10 s)
GET /api/statsResumen JSON: solicitudes totales, uso de herramientas, búsquedas principales, desglose diario
GET /api/recentLista JSON de las 50 solicitudes más recientes con detalles completos
GET /api/healthVerificación de salud con versión, transporte y enlaces a /privacy y /docs
GET /privacyPágina de Política de Privacidad
GET /docsPágina de documentación del servidor

Configuración

VariablePredeterminadoDescripción
AJ360_ENABLE_DASHBOARDtrueEstablecer a false para desactivar el panel
AJ360_DASHBOARD_PORT9090Puerto para el servidor HTTP de analítica
AJ360_DASHBOARD_TOKEN—Secreto compartido requerido para leer /api/stats y /api/recent. Establece esto en cualquier implementación pública.
AJ360_ANALYTICS_DBanalytics.dbRuta del archivo de base de datos SQLite

Ejemplo de Salida de Estadísticas

{
  "total_requests": 1247,
  "success_rate": "99.2%",
  "tools_usage": [
    {"tool": "search_videos", "calls": 523, "avg_response_ms": 340},
    {"tool": "get_trending_content", "calls": 312, "avg_response_ms": 180}
  ],
  "clients": [
    {"client": "claude-desktop", "requests": 890},
    {"client": "cursor", "requests": 357}
  ],
  "top_searches": [
    {"term": "\u063a\u0632\u0629", "count": 89},
    {"term": "\u0641\u0644\u0633\u0637\u064a\u0646", "count": 67}
  ]
}

Pila Tecnológica

ComponenteTecnología
LenguajePython 3.10+
SDK MCPmcp (oficial de Anthropic)
HTTPhttpx (asíncrono)
Reintentostenacity (retroceso exponencial)
AutenticaciónFirebase JWT (gestionado automáticamente con refresco)
AnalíticaSQLite + panel HTTP integrado
Calidad de VideoHasta 4K (2160p)
Transportestdio (local) / HTTP Transmisible (nube, recomendado) / SSE (heredado)

Licencia

MIT


Operaciones de SEO y Base de Conocimiento Vesper (asistida por IA)

Este repositorio funciona también como un espacio de trabajo de operaciones de SEO asistido por IA para la plataforma. Ábrelo en Claude Code y obtienes:

PiezaQué hace
.claude/agents/onvesper-expert.mdAgente experto en la plataforma Vesper/Deltatre que impulsa aljazeera360.com: pregúntale cualquier cosa sobre Back Office, DVE, licencias, publicidad, etc.
onvesper-kb/Espejo offline completo de la documentación oficial de Vesper (317 páginas, reconstruible en cualquier momento con bash onvesper-kb/refresh.sh)
/seo-report skillAnálisis SEO profundo bajo demanda: ejecuta las herramientas SEO, lee tendencias y convierte los hallazgos en pasos exactos de corrección en Back Office
scripts/seo_snapshot.pyColector de métricas detrás de la skill (puntuaciones de descubribilidad, auditorías de metadatos, mapas de etiquetas). Los informes se generan localmente bajo demanda; nunca se confirman.
export AJ360_API_KEY=…
python scripts/seo_snapshot.py   # → reports/seo/<date>.md (local only)

Contribuciones

Se aceptan pull requests. Consulta CONTRIBUTING.md para las pautas.

Ejecuta las pruebas antes de enviar:

python test_server.py