LabscoMCP early access ↗
zoharbabinMCP SERVER · OFFICIAL PROJECT

Kaltura MCP Server

Search and analyse a Kaltura media library read-only — entries and captions, download and thumbnail URLs, retention curves, real-time and geographic analytics.

by zoharbabin ↗Video Generation & Editing✓ Official

LABSCO SUMMARY

Retention curves and captions are the two that change what you can ask.

get_video_retention shows where viewers actually leave a video, which is a different question from how many watched it, and caption content turns a media library into something searchable by what was said rather than by title. The analytics tools are split by purpose on purpose — time series for charts, real-time for monitoring, quality metrics for streaming problems — so you get the shape you need instead of a generic table to reshape. Read-only throughout: it will not change or delete anything in your account, which makes it safe to attach to a production Kaltura partner.

What it is

A read-only MCP server for the Kaltura video platform. It covers discovery (searching entries, browsing categories, reading captions and attachments) and a full analytics suite built as purpose-specific tools rather than one generic report call. Nothing it exposes writes back to Kaltura.

What you get

  • Media searched with control over search type, match type, specific field, boolean operator, custom metadata, date range, sorting and highlights, and any entry opened in full — search_entries, get_media_entry
  • Categories listed and searched, with the whole hierarchy and entry counts also available as a cached resource at kaltura://categories/tree — list_categories
  • Captions and subtitles listed for an entry and their content retrieved with a download URL, which is how a video becomes searchable text — list_caption_assets, get_caption_content
  • Attachments listed and their content returned as base64 — list_attachment_assets, get_attachment_content
  • Direct download and thumbnail URLs, the thumbnail at a width, height and second you choose — get_download_url, get_thumbnail_url
  • Analytics as distinct tools: general reporting data, time series shaped for charts, viewer retention curves showing where people drop off, live metrics refreshed roughly every 30 seconds, quality-of-experience and streaming performance, and geographic breakdown by country, region or city — get_analytics, get_analytics_timeseries, get_video_retention, get_realtime_metrics, get_quality_metrics, get_geographic_breakdown
  • The analytics surface itself discoverable, with 60+ report types documented and cached at kaltura://analytics/capabilities — list_analytics_capabilities
  • Guided prompts for the multi-step jobs: an analytics wizard, a natural-language content search, an accessibility audit over captions, and a full retention analysis report as HTML or Markdown
  • Recent entries available as an addressable resource at kaltura://media/recent/{count}, up to 100 entries, cached for 5 minutes

Requirements

A Kaltura account and its API credentials from KMC → Settings → Integration Settings: the service URL, your numeric partner ID, the admin secret and a user ID. Locally these go in a .env file the server loads from the project directory — run setup_env.py to write it with 600 permissions and print the exact client configuration. The project is kaltura-mcp (version 0.2.0), a name PyPI does not have, and it provides kaltura-mcp for stdio, kaltura-mcp-remote for the hosted HTTP/SSE server and kaltura-mcp-proxy to bridge a remote server into a stdio client. Hosting it remotely additionally needs JWT_SECRET_KEY, OAUTH_REDIRECT_URI, SERVER_HOST and SERVER_PORT; users then authorize through a web form and receive a JWT that expires after 24 hours, with credentials encrypted inside it.

Setup effort

Build from source — git clone https://github.com/zoharbabin/kaltura-mcp.git