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
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.compara 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:
| Perfil | Ferramentas | Para quem | Como |
|---|---|---|---|
| Core (padrão) | 8 ferramentas de descoberta | Usuários finais que perguntam a assistentes de IA sobre conteúdo | Funciona imediatamente |
| Full | Todas as 24 ferramentas (+ SEO e análise) | Equipes de conteúdo, analistas de SEO | Defina 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)
| Ferramenta | O Que Ela Faz |
|---|---|
list_sections | Lista todas as 15 seções/canais disponíveis na plataforma |
get_trending_content | Retorna conteúdo em destaque e mais assistido da página inicial |
browse_section | Navega por todo o conteúdo dentro de uma seção específica (ex.: Documentários, Podcasts) |
get_video_details | Retorna metadados completos de um vídeo: título, descrição, duração, qualidade (até 4K), URL de exibição |
get_series_details | Retorna informações da série com todas as temporadas disponíveis |
get_season_episodes | Lista todos os episódios dentro de uma temporada específica |
search_videos | Pesquisa de texto completo em todo o conteúdo (árabe e inglês), com filtro opcional por tipo de conteúdo |
get_latest_episodes | Retorna os episódios publicados mais recentemente de qualquer seção |
Ferramentas de SEO e Metadados (requer AJ360_ENABLE_SEO_TOOLS=1)
| Ferramenta | O Que Ela Faz |
|---|---|
generate_seo_content | Gera títulos, descrições e palavras-chave otimizados em árabe para um vídeo |
generate_sitemap | Gera um Sitemap XML de Vídeo pronto para o Google Search Console (paginado) |
audit_metadata_quality | Audita a saúde do catálogo — descrições, miniaturas e categorias ausentes (paginado) |
get_trending_topics | Extrai as principais palavras-chave e tópicos em alta no catálogo |
compare_sections | Compara a atualidade e a atividade do conteúdo em todas as seções |
get_series_seo_map | Gera 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)
| Ferramenta | O Que Ela Faz |
|---|---|
build_knowledge_graph | Constrói um grafo de conhecimento de entidades a partir dos metadados do catálogo |
generate_faq_schema | Gera Schema JSON-LD de FAQ para um vídeo |
get_ai_discoverability_score | Pontua o quão descobrível é o conteúdo por assistentes de IA |
build_topic_clusters | Agrupa conteúdo em clusters de tópicos de SEO com páginas pilares e de suporte |
find_evergreen_content | Identifica conteúdo que permanece relevante ao longo do tempo |
get_host_profile | Gera um Schema de Pessoa e perfil para o apresentador de um programa |
get_genre_report | Relata sobre distribuição de gêneros e oportunidades de SEO |
get_searchable_tags_map | Mapeia as palavras-chave mais pesquisadas no catálogo (paginado) |
get_country_content_map | Mapeia conteúdo por país para SEO geodirecionado (paginado) |
generate_series_schema | Gera Schema JSON-LD de TVSeries + TVEpisode para uma série |
Seções
| ID | Canal |
|---|---|
AJ360-Originals | Originais Al Jazeera 360 |
AJA | Al Jazeera Árabe |
AJD | Al Jazeera Documentário |
Atheer | Atheer |
AJ-Plus | AJ+ Árabe |
Talk Show | Talk Shows |
Investigative Show | Programas Investigativos |
Podcast | Podcasts |
Documentaries | Documentários |
Field Show | Reportagem de Campo |
Policy Series | Séries Políticas |
Social Series | Séries Sociais |
Historical Series | Séries Históricas |
Biographical Series | Séries Biográficas |
Culture and Arts Series | Cultura 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):
-
Refresh Token (Recomendado) — Atualiza automaticamente a cada 10 minutos, válido por ~1 ano:
export AJ360_REFRESH_TOKEN="eyJ..." -
Auth Token — Token direto, expira em ~10 minutos:
export AJ360_AUTH_TOKEN="eyJ..." -
Modo Convidado — Nenhuma configuração necessária. O servidor cria automaticamente uma sessão de convidado.
Como obter seu refresh token:
- Abra https://www.aljazeera360.com no seu navegador
- Faça login com sua conta
- Abra DevTools → Console → Execute:
localStorage.getItem('dice:refreshToken') - 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:
- Claude Desktop
- Cursor
- Continue
- Windsurf
- MCP Inspector (para testes)
- Qualquer cliente MCP personalizado
Configuração
| Variável | Obrigatória | Padrão | Descrição |
|---|---|---|---|
AJ360_REFRESH_TOKEN | Não | — | Refresh token de longa duração (~1 ano). Melhor para produção. |
AJ360_AUTH_TOKEN | Não | Modo convidado | Auth token de curta duração (~10 min). Bom para testes rápidos. |
AJ360_API_KEY | Sim | — | Chave da API da plataforma (pública, das solicitações de rede do navegador). Nenhum padrão incluído — você deve fornecê-la. |
MCP_TRANSPORT | Não | streamable-http | Modo de transporte: stdio (local), streamable-http (nuvem, recomendado) ou sse (nuvem legado). |
MCP_PORT | Não | 8080 | Porta para o transporte HTTP (implantação em nuvem). |
AJ360_ALLOWED_HOST | Somente 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_TOOLS | Não | off | Defina como 1 para registrar as 16 ferramentas de SEO/análise (perfil completo). |
AJ360_ENABLE_DASHBOARD | Não | true | Ativa/desativa o painel de análise. |
AJ360_DASHBOARD_PORT | Não | 9090 | Porta para o painel de análise. |
AJ360_DASHBOARD_TOKEN | Nã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_DB | Não | analytics.db | Caminho 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.
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:
| Prompt | Descrição |
|---|---|
recommend_documentary | Encontre e recomende documentários sobre um tópico específico |
summarize_latest | Resuma os últimos episódios de uma seção |
explore_series | Explore 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
| Endpoint | Retorna |
|---|---|
GET / | Painel HTML interativo (atualiza automaticamente a cada 10s) |
GET /api/stats | Resumo JSON: total de solicitações, uso de ferramentas, principais pesquisas, detalhamento diário |
GET /api/recent | Lista JSON das 50 solicitações mais recentes com detalhes completos |
GET /api/health | Verificação de saúde com versão, transporte e links para /privacy e /docs |
GET /privacy | Página de Política de Privacidade |
GET /docs | Página de documentação do servidor |
Configuração
| Variável | Padrão | Descrição |
|---|---|---|
AJ360_ENABLE_DASHBOARD | true | Defina como false para desativar o painel |
AJ360_DASHBOARD_PORT | 9090 | Porta 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_DB | analytics.db | Caminho 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
| Componente | Tecnologia |
|---|---|
| Linguagem | Python 3.10+ |
| SDK MCP | mcp (oficial da Anthropic) |
| HTTP | httpx (assíncrono) |
| Repetição | tenacity (backoff exponencial) |
| Autenticação | Firebase JWT (gerenciado automaticamente com refresh) |
| Análise | SQLite + painel HTTP integrado |
| Qualidade de Vídeo | Até 4K (2160p) |
| Transporte | stdio (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ça | O que faz |
|---|---|
.claude/agents/onvesper-expert.md | Agente 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 skill | Aná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.py | Coletor 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