- Home
- MCP servers
- Kaltura
Kaltura
- python
5
GitHub Stars
python
Language
6 months ago
First Indexed
2 months ago
Catalog Refreshed
Documentation & install
Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.
Installation
Add the following to your MCP client configuration file.
Configuration
View docs{
"mcpServers": {
"zoharbabin-kaltura-mcp": {
"command": "kaltura-mcp",
"args": [],
"env": {
"KALTURA_USER_ID": "YOUR_USER_ID",
"KALTURA_PARTNER_ID": "YOUR_PARTNER_ID",
"KALTURA_SERVICE_URL": "https://cdnapisec.kaltura.com",
"KALTURA_ADMIN_SECRET": "YOUR_ADMIN_SECRET"
}
}
}
}You can use the Kaltura MCP Server to perform read-only, secure operations against Kaltura data. It lets you search, filter, analyze captions and transcripts, browse categories, and retrieve analytics in a controlled, local or remote deployment that keeps credentials secure while enabling powerful AI-assisted content discovery.
How to use
Choose your deployment mode based on your needs. For personal use and direct Claude Desktop integration, run a local MCP server (stdio mode). For hosted services or multiple users, deploy a remote MCP server (HTTP/SSE mode) and connect clients through a proxy or direct transport.
How to install
# Prerequisites: ensure you have Python 3.8+ and Git installed
# 1) Clone the MCP server repository
git clone https://github.com/zoharbabin/kaltura-mcp.git
cd kaltura-mcp
# 2) Install dependencies in editable mode
pip install -e .
# Optional: install the MCP package if you prefer a packaged approach
pip install kaltura-mcp
Next, configure your environment securely. Use the interactive setup to create a .env file and tailor settings for either stdio (local) or remote (hosted) mode.
Configuration and using the MCP server
Local MCP Server (stdio mode) setup guides you through: choosing stdio vs remote, securely entering Kaltura credentials, and generating a .env file with proper permissions. For personal use, you will point Claude Desktop to this local MCP server executable. The path to the MCP command is discovered during setup and stored in your Claude Desktop configuration.
Remote MCP Server (HTTP/SSE mode) requires additional environment variables for JWT signing, OAuth flow, and server binding. You will run a remote server using the provided commands and expose an HTTP/SSE endpoint for MCP transport. Clients connect by providing the server URL and a JWT or token obtained through the on-server authorization flow.
Security and credentials
Credentials are handled securely in both modes. In local mode, credentials stay in ~/.env and are not exposed over the network. In remote mode, credentials are encrypted inside tokens and transmitted over TLS. Tokens have a 24-hour default expiry and scopes restrict access to read-only Kaltura operations. Always protect your .env file (permissions should be 600) and avoid committing secrets to version control.
Hardening tips include using HTTPS in production, rotating JWT secrets, enabling auditing and monitoring, and applying network controls such as firewalls or VPN access where appropriate.
Troubleshooting and tips
If the MCP server doesn’t start, verify that the MPL command path is correct and that the environment file exists and is readable. Check that the credentials you entered in the setup match those configured in your Kaltura account. Ensure the .env file has correct permissions and that the server process is running in the expected directory.
For Claude Desktop integration, ensure the configuration points to the correct local MCP command and that the CLI path is accessible in your shell (use which kaltura-mcp to locate it). After changes, restart Claude Desktop fully to apply the new settings.
Notes on deployment options
Local deployment (stdio) is ideal for solo work and direct integration. Remote deployment (HTTP/SSE) is suited for hosting as a service, multi-tenant scenarios, and centralized management. Use a proxy client if you want seamless compatibility with Claude Desktop when combining local and remote setups.
Available tools
get_media_entry
Retrieve detailed information about a specific media entry by entry_id.
list_categories
List and search content categories with optional text filtering and limits.
get_analytics
Provide general analytics data suitable for reporting and analysis.
get_analytics_timeseries
Return time-series analytics data for charting and trend analysis.
get_video_retention
Analyze viewer retention across a video to identify drop-off points.
get_realtime_metrics
Fetch live analytics data updated at regular intervals.
get_quality_metrics
Provide QoE metrics and streaming performance indicators.
get_geographic_breakdown
Aggregate analytics by geographic location at various granularities.
list_analytics_capabilities
Return the available analytics functions and capabilities.
get_download_url
Obtain a direct download URL for a media entry, optionally with a flavor.
get_thumbnail_url
Get a thumbnail or preview image URL with specified dimensions.
search_entries
Search and discover media entries with filtering and sorting options.
list_caption_assets
List available captions for a media entry.
get_caption_content
Retrieve caption or subtitle content for a given caption asset.
list_attachment_assets
List attachments associated with a media entry.
get_attachment_content
Retrieve attachment content details and data in base64 format.
analytics_wizard
Interactive guide to create comprehensive analytics reports.
content_discovery
Natural language search assistant for finding media.
accessibility_audit
Check content accessibility compliance for specified scope.
retention_analysis
Create a retention analysis report for a video over a time period.