Labsco
MCP SERVER

Kaltura MCP Server

by zoharbabin

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

Video Generation & EditingVerified
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` (0.2.0 in pyproject), 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.