list_sectionsLABSCO SUMMARY
Eight tools by default, and the small default set is the design rather than the whole catalogue.
The SEO and analytics half stays unregistered until AJ360_ENABLE_SEO_TOOLS is set, so an assistant answering a viewer's question chooses from a short list instead of a long one — which is often the difference between the right tool being picked and a plausible neighbour being picked. Turn the full profile on when the job is catalogue work: sitemaps, metadata audits, topic clusters and schema generation all live there. On credentials, a guest session is enough to browse and the refresh token is what opens full content access; and if you deploy this yourself on a custom domain, set the allowed host or the rebinding guard will answer 421 to your own traffic.
What it is
An unaffiliated MCP server over Al Jazeera 360's publicly accessible API, returning real titles, descriptions, durations and direct watch links back to aljazeera360.com. Eight discovery tools are on by default; a second profile of SEO and analytics tools registers only when you switch it on.
What you get
- list_sections returns all 15 channels — AJ360-Originals, Al Jazeera Arabic, Al Jazeera Documentary, AJ+ Arabic, Podcasts, Investigative Programs and the rest
- get_trending_content returns featured and most-watched items from the homepage, browse_section walks one channel, and get_latest_episodes returns the newest episodes from any section
- search_videos is full-text across Arabic and English, with an optional content-type filter
- get_video_details returns title, description, duration, quality up to 4K and the watch URL; get_series_details lists a series with its seasons and get_season_episodes the episodes inside one
- With AJ360_ENABLE_SEO_TOOLS=1 the full profile appears: generate_seo_content for Arabic titles, descriptions and keywords, generate_sitemap for a paginated video XML sitemap, audit_metadata_quality for missing descriptions, thumbnails and categories, plus get_trending_topics, compare_sections and get_series_seo_map
- The same switch adds the analytics side: build_knowledge_graph, generate_faq_schema, generate_series_schema for TVSeries and TVEpisode JSON-LD, get_ai_discoverability_score, build_topic_clusters, find_evergreen_content, get_host_profile, get_genre_report, get_searchable_tags_map and get_country_content_map
Requirements
A hosted instance answers at https://aljazeera360-mcp.ahmed-26d.workers.dev/mcp with nothing to install — the first request after idle takes a few seconds while the container starts. Locally it wants Python 3.10+ and runs server.py, with MCP_TRANSPORT switching between stdio and streamable-http. AJ360_API_KEY is required and is the platform's public key taken from browser network requests; no default is bundled. Authentication otherwise falls back to an automatic guest session, or supply AJ360_AUTH_TOKEN, which lasts about 10 minutes, or AJ360_REFRESH_TOKEN, which lasts about a year and refreshes every 10 minutes — read it from a logged-in browser with localStorage.getItem('dice:refreshToken'). Self-hosting on a custom domain needs AJ360_ALLOWED_HOST, since the DNS-rebinding guard answers 421 to unknown hosts, and AJ360_DASHBOARD_TOKEN belongs on anything public. Not affiliated with or endorsed by Al Jazeera Media Network. MIT.
Setup effort
Paste a URL — add the endpoint to your client
USE CASES
Finding something to watch on a subject
Full-text search across Arabic and English with a content-type filter, then the full record for anything worth opening — including the link that plays it.
Catching up on a series
Pull the series with its seasons, then list the episodes inside the season you stopped at, rather than scrolling a page.
Seeing what the platform is pushing right now
Featured and most-watched items from the homepage, and the newest episodes across whichever section you follow.
Auditing catalogue metadata
Find the entries missing descriptions, thumbnails or categories, and generate Arabic titles, descriptions and keywords for the ones that need them.
Getting a catalogue indexed properly
Produce a paginated video XML sitemap for Search Console and the TVSeries and TVEpisode structured data that goes with a series.
24 tools
Listed in project docs. Your client may show a different list.
get_trending_contentbrowse_sectionget_video_detailsget_series_detailsget_season_episodessearch_videosget_latest_episodesgenerate_seo_contentgenerate_sitemapaudit_metadata_qualityget_trending_topicscompare_sectionsget_series_seo_mapbuild_knowledge_graphgenerate_faq_schemaget_ai_discoverability_scorebuild_topic_clustersfind_evergreen_contentget_host_profileget_genre_reportget_searchable_tags_mapget_country_content_mapgenerate_series_schemaBEFORE YOU INSTALL
What to know first
Tools you get
24 tools named in the project's documentation.
Requires
A client that can reach a remote MCP server over HTTP
INSTALLATION
Connect your client
Add the endpoint to your client.
Server setup
https://aljazeera360-mcp.ahmed-26d.workers.dev/mcpMCP Clients
Claude Desktop — stdio
git clone https://github.com/ahmedaminsa/aljazeera360-mcp-server.git
cd aljazeera360-mcp-server
pip install -r requirements.txtAdd this to claude_desktop_config.json, with the full path to server.py in your clone
{
"mcpServers": {
"aljazeera360": {
"command": "python",
"args": [
"<YOUR_PATH_TO_ALJAZEERA360_MCP_SERVER>/server.py"
],
"env": {
"MCP_TRANSPORT": "stdio",
"AJ360_API_KEY": "<YOUR_AJ360_API_KEY>",
"AJ360_REFRESH_TOKEN": "<YOUR_AJ360_REFRESH_TOKEN>"
}
}
}
}AJ360_API_KEY is required and has no default: it is the platform's public key, visible in the network requests aljazeera360.com makes in your browser. AJ360_REFRESH_TOKEN is optional (without it the server uses a guest session); to get one, sign in at aljazeera360.com and run localStorage.getItem('dice:refreshToken') in the browser console. MCP_TRANSPORT must be stdio here, because the server otherwise starts as an HTTP server.
Cursor — HTTP, Continue — HTTP
{
"mcpServers": {
"aljazeera360": {
"type": "http",
"url": "https://aljazeera360-mcp.ahmed-26d.workers.dev/mcp"
}
}
}Windsurf — HTTP
{
"mcpServers": {
"aljazeera360": {
"type": "http",
"serverUrl": "https://aljazeera360-mcp.ahmed-26d.workers.dev/mcp"
}
}
}