Labsco
ahmedaminsa logo

Aljazeera 360

from ahmedaminsa

MCP server for Al Jazeera 360 β€” Connect AI assistants to Al Jazeera's streaming catalog. Search, browse, and retrieve Arabic video content with direct watch links.

πŸ”₯πŸ”₯πŸ”₯βœ“ VerifiedAccount requiredNeeds API keys

Al Jazeera 360 MCP Server

CI Python 3.10+ License: MIT MCP Protocol Smithery

Connect any AI assistant to Al Jazeera 360's streaming catalog β€” search, browse, and retrieve Arabic video content with direct watch links.

An MCP (Model Context Protocol) server that gives AI tools like Claude, ChatGPT, Gemini, and Cursor real-time access to Al Jazeera 360's full content library: documentaries, investigative programs, talk shows, podcasts, and original productions.

⚠️ Unofficial community project. Not affiliated with, endorsed by, or sponsored by Al Jazeera Media Network. It uses the platform's publicly accessible API and links back to aljazeera360.com for all content.


What It Does

Ask your AI assistant questions like:

  • "What's trending on Al Jazeera 360?"
  • "Find documentaries about Palestine"
  • "Show me the latest episodes of Al Daheeh"
  • "Search for videos about Gaza"

The AI connects to this server, fetches real data from Al Jazeera 360, and returns actual video titles, descriptions, durations, and direct watch links to aljazeera360.com.


Tools Available

The server ships with two tool profiles:

ProfileToolsFor whomHow
Core (default)8 discovery toolsEnd users asking AI assistants about contentWorks out of the box
FullAll 24 tools (+ SEO & analytics)Content teams, SEO analystsSet AJ360_ENABLE_SEO_TOOLS=1

A small default toolset keeps AI tool selection fast and accurate. Enable the full profile only if you need the SEO/analytics tools.

Core Discovery Tools (always on)

ToolWhat It Does
list_sectionsLists all 15 sections/channels available on the platform
get_trending_contentReturns featured and most-watched content from the homepage
browse_sectionBrowses all content within a specific section (e.g., Documentaries, Podcasts)
get_video_detailsReturns full metadata for a video: title, description, duration, quality (up to 4K), watch URL
get_series_detailsReturns series info with all available seasons
get_season_episodesLists all episodes within a specific season
search_videosFull-text search across all content (Arabic & English), with optional content type filter
get_latest_episodesReturns the most recently published episodes from any section

SEO & Metadata Tools (requires AJ360_ENABLE_SEO_TOOLS=1)

ToolWhat It Does
generate_seo_contentGenerates optimized Arabic titles, descriptions, and keywords for a video
generate_sitemapGenerates a Google Search Console-ready Video XML Sitemap (paginated)
audit_metadata_qualityAudits catalog health β€” missing descriptions, thumbnails, and categories (paginated)
get_trending_topicsExtracts the top trending keywords and topics across the catalog
compare_sectionsCompares content freshness and activity across all sections
get_series_seo_mapGenerates a complete SEO map for a series with all episodes

Advanced AI & Analytics Tools (requires AJ360_ENABLE_SEO_TOOLS=1)

ToolWhat It Does
build_knowledge_graphBuilds an entity knowledge graph from catalog metadata
generate_faq_schemaGenerates FAQ Schema JSON-LD for a video
get_ai_discoverability_scoreScores how discoverable content is by AI assistants
build_topic_clustersGroups content into SEO topic clusters with pillar and supporting pages
find_evergreen_contentIdentifies content that stays relevant over time
get_host_profileGenerates a Person Schema and profile for a show host
get_genre_reportReports on genre distribution and SEO opportunities
get_searchable_tags_mapMaps the most searched keywords across the catalog (paginated)
get_country_content_mapMaps content by country for geo-targeted SEO (paginated)
generate_series_schemaGenerates TVSeries + TVEpisode JSON-LD Schema for a series

Sections

IDChannel
AJ360-OriginalsAl Jazeera 360 Originals
AJAAl Jazeera Arabic
AJDAl Jazeera Documentary
AtheerAtheer
AJ-PlusAJ+ Arabic
Talk ShowTalk Shows
Investigative ShowInvestigative Programs
PodcastPodcasts
DocumentariesDocumentaries
Field ShowField Reporting
Policy SeriesPolitical Series
Social SeriesSocial Series
Historical SeriesHistorical Series
Biographical SeriesBiographical Series
Culture and Arts SeriesCulture & Arts

Use with Claude Desktop

Add to your config file:

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

Restart Claude Desktop. The Al Jazeera 360 tools will appear automatically.


Use with Any MCP Client

This server uses the standard MCP protocol over stdio. It works with any MCP-compatible client:


How It Works

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)    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Built-in Prompts

The server includes pre-built prompts for common AI scenarios:

PromptDescription
recommend_documentaryFind and recommend documentaries about a specific topic
summarize_latestSummarize the latest episodes from a section
explore_seriesExplore a series β€” find all seasons and episodes

Example Output

Calling search_videos("ΨΊΨ²Ψ©") returns:

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

Analytics Dashboard

The server includes a built-in analytics dashboard that tracks every request made by AI tools.

What It Tracks

  • Which AI tool made the request (Claude, ChatGPT, Cursor, etc.)
  • Which MCP tool was called (search_videos, get_trending_content, etc.)
  • When each request happened (timestamp)
  • How long each request took (response time in ms)
  • Whether it succeeded or failed
  • Top search terms (what users are asking about)
  • Daily/hourly activity patterns

Access the Dashboard

The dashboard starts automatically on port 9090 when you run the server:

http://localhost:9090

For cloud deployments, expose port 9090 alongside the MCP port (8080).

API Endpoints

EndpointReturns
GET /Interactive HTML dashboard (auto-refreshes every 10s)
GET /api/statsJSON summary: total requests, tools usage, top searches, daily breakdown
GET /api/recentJSON list of the 50 most recent requests with full details
GET /api/healthHealth check with version, transport, and links to /privacy and /docs
GET /privacyPrivacy Policy page
GET /docsServer documentation page

Configuration

VariableDefaultDescription
AJ360_ENABLE_DASHBOARDtrueSet to false to disable the dashboard
AJ360_DASHBOARD_PORT9090Port for the analytics HTTP server
AJ360_ANALYTICS_DBanalytics.dbSQLite database file path

Example Stats Output

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

Tech Stack

ComponentTechnology
LanguagePython 3.11+
MCP SDKmcp (Anthropic official)
HTTPhttpx (async)
Retrytenacity (exponential backoff)
AuthFirebase JWT (auto-managed with refresh)
AnalyticsSQLite + built-in HTTP dashboard
Video QualityUp to 4K (2160p)
Transportstdio (local) / Streamable HTTP (cloud, recommended) / SSE (legacy)