Aljazeera 360

Servidor MCP para Al Jazeera 360 — Conecte assistentes de IA ao catálogo de streaming da Al Jazeera. Pesquise, navegue e recupere conteúdo em vídeo em árabe com links diretos para assistir.

Documentação

Servidor MCP Al Jazeera 360

CI Python 3.10+ License: MIT MCP Protocol Smithery

Conecte qualquer assistente de IA ao catálogo de streaming da Al Jazeera 360 — pesquise, navegue e recupere conteúdo de vídeo em árabe com links diretos de exibição.

Um servidor MCP (Model Context Protocol) que dá a ferramentas de IA como Claude, ChatGPT, Gemini e Cursor acesso em tempo real à biblioteca completa de conteúdo da Al Jazeera 360: documentários, programas investigativos, talk shows, podcasts e produções originais.

⚠️ Projeto comunitário não oficial. Não é afiliado, endossado ou patrocinado pela Al Jazeera Media Network. Ele usa a API publicamente acessível da plataforma e faz link de volta para aljazeera360.com para todo o conteúdo.


⚡ Conexão Rápida — Sem Necessidade de Instalação

Uma instância hospedada está ativa na Cloudflare. Adicione isto à configuração do seu cliente MCP e pronto:

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

A primeira solicitação após inatividade leva alguns segundos (inicialização a frio do contêiner) — as solicitações subsequentes são rápidas.

Depois pergunte ao seu assistente: "O que está em alta na Al Jazeera 360?" — ou em árabe: "ايه أحدث حلقات الدحيح؟"


O Que Ele Faz

Faça perguntas ao seu assistente de IA como:

  • "O que está em alta na Al Jazeera 360?"
  • "Encontre documentários sobre a Palestina"
  • "Mostre-me os últimos episódios de Al Daheeh"
  • "Pesquise vídeos sobre Gaza"

A IA se conecta a este servidor, busca dados reais da Al Jazeera 360 e retorna títulos reais de vídeos, descrições, durações e links diretos de exibição para aljazeera360.com.


Ferramentas Disponíveis

O servidor vem com dois perfis de ferramentas:

PerfilFerramentasPara quemComo
Core (padrão)8 ferramentas de descobertaUsuários finais que perguntam a assistentes de IA sobre conteúdoFunciona imediatamente
FullTodas as 24 ferramentas (+ SEO e análise)Equipes de conteúdo, analistas de SEODefina AJ360_ENABLE_SEO_TOOLS=1

Um conjunto de ferramentas padrão pequeno mantém a seleção de ferramentas da IA rápida e precisa. Ative o perfil completo somente se precisar das ferramentas de SEO/análise.

Ferramentas Core de Descoberta (sempre ativas)

FerramentaO Que Ela Faz
list_sectionsLista todas as 15 seções/canais disponíveis na plataforma
get_trending_contentRetorna conteúdo em destaque e mais assistido da página inicial
browse_sectionNavega por todo o conteúdo dentro de uma seção específica (ex.: Documentários, Podcasts)
get_video_detailsRetorna metadados completos de um vídeo: título, descrição, duração, qualidade (até 4K), URL de exibição
get_series_detailsRetorna informações da série com todas as temporadas disponíveis
get_season_episodesLista todos os episódios dentro de uma temporada específica
search_videosPesquisa de texto completo em todo o conteúdo (árabe e inglês), com filtro opcional por tipo de conteúdo
get_latest_episodesRetorna os episódios publicados mais recentemente de qualquer seção

Ferramentas de SEO e Metadados (requer AJ360_ENABLE_SEO_TOOLS=1)

FerramentaO Que Ela Faz
generate_seo_contentGera títulos, descrições e palavras-chave otimizados em árabe para um vídeo
generate_sitemapGera um Sitemap XML de Vídeo pronto para o Google Search Console (paginado)
audit_metadata_qualityAudita a saúde do catálogo — descrições, miniaturas e categorias ausentes (paginado)
get_trending_topicsExtrai as principais palavras-chave e tópicos em alta no catálogo
compare_sectionsCompara a atualidade e a atividade do conteúdo em todas as seções
get_series_seo_mapGera um mapa de SEO completo para uma série com todos os episódios

Ferramentas Avançadas de IA e Análise (requer AJ360_ENABLE_SEO_TOOLS=1)

FerramentaO Que Ela Faz
build_knowledge_graphConstrói um grafo de conhecimento de entidades a partir dos metadados do catálogo
generate_faq_schemaGera Schema JSON-LD de FAQ para um vídeo
get_ai_discoverability_scorePontua o quão descobrível é o conteúdo por assistentes de IA
build_topic_clustersAgrupa conteúdo em clusters de tópicos de SEO com páginas pilares e de suporte
find_evergreen_contentIdentifica conteúdo que permanece relevante ao longo do tempo
get_host_profileGera um Schema de Pessoa e perfil para o apresentador de um programa
get_genre_reportRelata sobre distribuição de gêneros e oportunidades de SEO
get_searchable_tags_mapMapeia as palavras-chave mais pesquisadas no catálogo (paginado)
get_country_content_mapMapeia conteúdo por país para SEO geodirecionado (paginado)
generate_series_schemaGera Schema JSON-LD de TVSeries + TVEpisode para uma série

Seções

IDCanal
AJ360-OriginalsOriginais Al Jazeera 360
AJAAl Jazeera Árabe
AJDAl Jazeera Documentário
AtheerAtheer
AJ-PlusAJ+ Árabe
Talk ShowTalk Shows
Investigative ShowProgramas Investigativos
PodcastPodcasts
DocumentariesDocumentários
Field ShowReportagem de Campo
Policy SeriesSéries Políticas
Social SeriesSéries Sociais
Historical SeriesSéries Históricas
Biographical SeriesSéries Biográficas
Culture and Arts SeriesCultura e Artes

Início Rápido

Instalação

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

Configurar Autenticação

O servidor suporta múltiplos métodos de autenticação (em ordem de prioridade):

  1. Refresh Token (Recomendado) — Atualiza automaticamente a cada 10 minutos, válido por ~1 ano:

    export AJ360_REFRESH_TOKEN="eyJ..."
    
  2. Auth Token — Token direto, expira em ~10 minutos:

    export AJ360_AUTH_TOKEN="eyJ..."
    
  3. Modo Convidado — Nenhuma configuração necessária. O servidor cria automaticamente uma sessão de convidado.

Como obter seu refresh token:

  1. Abra https://www.aljazeera360.com no seu navegador
  2. Faça login com sua conta
  3. Abra DevTools → Console → Execute: localStorage.getItem('dice:refreshToken')
  4. Copie o valor do token

Teste

python test_server.py

As ferramentas Core são testadas contra a API ao vivo.

Executar

python server.py

Uso com Claude Desktop

Adicione ao seu arquivo de configuração:

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"
      }
    }
  }
}

Reinicie o Claude Desktop. As ferramentas da Al Jazeera 360 aparecerão automaticamente.


Uso com Qualquer Cliente MCP

Este servidor fala o protocolo MCP padrão via stdio (local) e Streamable HTTP (hospedado). Funciona com qualquer cliente compatível com MCP:


Configuração

VariávelObrigatóriaPadrãoDescrição
AJ360_REFRESH_TOKENNão—Refresh token de longa duração (~1 ano). Melhor para produção.
AJ360_AUTH_TOKENNãoModo convidadoAuth token de curta duração (~10 min). Bom para testes rápidos.
AJ360_API_KEYSim—Chave da API da plataforma (pública, das solicitações de rede do navegador). Nenhum padrão incluído — você deve fornecê-la.
MCP_TRANSPORTNãostreamable-httpModo de transporte: stdio (local), streamable-http (nuvem, recomendado) ou sse (nuvem legado).
MCP_PORTNão8080Porta para o transporte HTTP (implantação em nuvem).
AJ360_ALLOWED_HOSTSomente nuvem—Nome de host público da sua implantação (sem esquema). Necessário ao auto-hospedar em um domínio personalizado — a proteção contra rebinding de DNS rejeita hosts desconhecidos com 421.
AJ360_ENABLE_SEO_TOOLSNãooffDefina como 1 para registrar as 16 ferramentas de SEO/análise (perfil completo).
AJ360_ENABLE_DASHBOARDNãotrueAtiva/desativa o painel de análise.
AJ360_DASHBOARD_PORTNão9090Porta para o painel de análise.
AJ360_DASHBOARD_TOKENNão—Segredo compartilhado para os endpoints de dados de análise (/api/stats, /api/recent). Quando definido, os chamadores devem enviar Authorization: Bearer <token> ou ?token=<token>. Fortemente recomendado para qualquer implantação pública/em nuvem.
AJ360_ANALYTICS_DBNãoanalytics.dbCaminho para o banco de dados SQLite de análise.

O servidor precisa apenas de AJ360_API_KEY para executar — a autenticação recorre automaticamente a uma sessão de convidado. Para acesso completo ao conteúdo, forneça também um refresh token.


Implantação

A instância de produção roda em Cloudflare Containers — tutorial completo em deploy/cloudflare/README.md (envolve o Dockerfile em um Cloudflare Container atrás de um pequeno Worker; requer o plano Workers Paid e Docker local para implantações). Qualquer plataforma de contêiner funciona — alternativas abaixo.

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

Conecte este repositório — implantação automática a partir do Dockerfile incluído. Defina as variáveis de ambiente no painel (incluindo AJ360_ALLOWED_HOST=<your-domain> para que a proteção contra rebinding de DNS aceite seu host).


Como 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

O servidor inclui prompts pré-construídos para cenários comuns de IA:

PromptDescrição
recommend_documentaryEncontre e recomende documentários sobre um tópico específico
summarize_latestResuma os últimos episódios de uma seção
explore_seriesExplore uma série — encontre todas as temporadas e episódios

Exemplo de Saída

Chamar search_videos("غزة") retorna:

{
  "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"
    }
  ]
}

Painel de Análise

O servidor inclui um painel de análise integrado que rastreia cada solicitação feita por ferramentas de IA.

O Que Ele Rastreia

  • Qual ferramenta de IA fez a solicitação (Claude, ChatGPT, Cursor, etc.)
  • Qual ferramenta MCP foi chamada (search_videos, get_trending_content, etc.)
  • Quando cada solicitação aconteceu (timestamp)
  • Quanto tempo cada solicitação levou (tempo de resposta em ms)
  • Se teve sucesso ou falhou
  • Principais termos de pesquisa (sobre o que os usuários estão perguntando)
  • Padrões de atividade diários/por hora

Acessar o Painel

O painel inicia automaticamente na porta 9090 quando você executa o servidor:

http://localhost:9090

Para implantações em nuvem, exponha a porta 9090 junto com a porta MCP (8080).

Endpoints da API

EndpointRetorna
GET /Painel HTML interativo (atualiza automaticamente a cada 10s)
GET /api/statsResumo JSON: total de solicitações, uso de ferramentas, principais pesquisas, detalhamento diário
GET /api/recentLista JSON das 50 solicitações mais recentes com detalhes completos
GET /api/healthVerificação de saúde com versão, transporte e links para /privacy e /docs
GET /privacyPágina de Política de Privacidade
GET /docsPágina de documentação do servidor

Configuração

VariávelPadrãoDescrição
AJ360_ENABLE_DASHBOARDtrueDefina como false para desativar o painel
AJ360_DASHBOARD_PORT9090Porta para o servidor HTTP de análise
AJ360_DASHBOARD_TOKEN—Segredo compartilhado necessário para ler /api/stats e /api/recent. Defina isso em qualquer implantação pública.
AJ360_ANALYTICS_DBanalytics.dbCaminho do arquivo do banco de dados SQLite

Exemplo de Saída de Estatí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}
  ]
}

Pilha de Tecnologia

ComponenteTecnologia
LinguagemPython 3.10+
SDK MCPmcp (oficial da Anthropic)
HTTPhttpx (assíncrono)
Repetiçãotenacity (backoff exponencial)
AutenticaçãoFirebase JWT (gerenciado automaticamente com refresh)
AnáliseSQLite + painel HTTP integrado
Qualidade de VídeoAté 4K (2160p)
Transportestdio (local) / Streamable HTTP (nuvem, recomendado) / SSE (legado)

Licença

MIT


Operações de SEO e Base de Conhecimento Vesper (assistida por IA)

Este repositório também funciona como um espaço de trabalho de operações de SEO assistido por IA para a plataforma. Abra-o no Claude Code e você obtém:

PeçaO que faz
.claude/agents/onvesper-expert.mdAgente especialista na plataforma Vesper/Deltatre que alimenta o aljazeera360.com — pergunte qualquer coisa sobre Back Office, DVE, licenças, publicidade, etc.
onvesper-kb/Espelho offline completo da documentação oficial do Vesper (317 páginas, reconstrua a qualquer momento com bash onvesper-kb/refresh.sh)
/seo-report skillAnálise profunda de SEO sob demanda: executa as ferramentas de SEO, lê tendências e transforma descobertas em etapas exatas de correção no Back Office
scripts/seo_snapshot.pyColetor de métricas por trás da skill (pontuações de descobribilidade, auditorias de metadados, mapas de tags). Relatórios são gerados localmente sob demanda — nunca commitados.
export AJ360_API_KEY=…
python scripts/seo_snapshot.py   # → reports/seo/<date>.md (local only)

Contribuindo

PRs são bem-vindos. Consulte CONTRIBUTING.md para diretrizes.

Execute os testes antes de enviar:

python test_server.py