Kaltura MCP Server
Kaltura 模型上下文协议 (MCP) 服务器
Kaltura MCP 服务器是模型上下文协议 (MCP)的一个实现,它为 AI 模型提供对 Kaltura 媒体管理功能的访问。
概述
该服务器使 AI 模型能够:
将媒体上传到 Kaltura
检索媒体元数据
搜索媒体
管理类别
管理用户和权限
通过实现模型上下文协议,该服务器允许 AI 模型以标准化方式与 Kaltura 的 API 交互,从而更容易将 Kaltura 的功能集成到 AI 工作流程中。
Related MCP server: Pure Agentic MCP Server
要求
Python :3.10 或更高版本(官方支持 3.10、3.11、3.12)
操作系统:Linux、macOS、Windows
依赖项:查看
pyproject.toml的完整列表
存储库结构
kaltura-mcp-public存储库包含完整、独立的 Kaltura MCP 服务器实现,包括:
所有必要的代码
全面的文档
Docker 支持
安装脚本
示例客户端
测试脚本
安装
使用 Docker
选项 1:使用预构建的 Docker 镜像
最简单的入门方法是使用我们预先构建的多架构 Docker 映像(支持 x86_64/amd64 和 ARM64/Apple Silicon):
# Pull the latest image
docker pull ghcr.io/zoharbabin/kaltura-mcp:latest
# Create a config file
cp config.yaml.example config.yaml
# Edit config.yaml with your Kaltura API credentials
# Run the container
docker run -p 8000:8000 -v $(pwd)/config.yaml:/app/config.yaml ghcr.io/zoharbabin/kaltura-mcp:latest选项 2:使用 Docker Compose 进行本地构建
或者,您可以在本地构建图像:
# Clone the repository
git clone https://github.com/zoharbabin/kaltura-mcp.git
cd kaltura-mcp
# Build and run with Docker Compose
docker-compose up手动安装
# Clone the repository
git clone https://github.com/zoharbabin/kaltura-mcp.git
cd kaltura-mcp
# Create a virtual environment (Python 3.10 or higher required)
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -e .
# Configure the server
cp config.yaml.example config.yaml
# Edit config.yaml with your Kaltura API credentials
# Run the server
python -m kaltura_mcp.server配置
Kaltura MCP 服务器支持统一的配置系统,支持 YAML 和 JSON 格式。开始使用:
将
config.yaml.example复制到config.yaml并使用您的 Kaltura API 凭据对其进行编辑:
kaltura:
partner_id: YOUR_PARTNER_ID
admin_secret: YOUR_ADMIN_SECRET
user_id: YOUR_USER_ID
service_url: https://www.kaltura.com/api_v3您还可以使用环境变量进行配置:
export KALTURA_PARTNER_ID=YOUR_PARTNER_ID
export KALTURA_ADMIN_SECRET=YOUR_ADMIN_SECRET
export KALTURA_USER_ID=YOUR_USER_ID有关更详细的配置选项,请参阅配置指南。
用法
与克劳德
要将 Kaltura MCP 服务器与 Claude 一起使用,请参阅与 Claude 一起使用指南。
使用 MCP CLI
要将 Kaltura MCP 服务器与 MCP CLI 一起使用,请参阅使用 MCP CLI指南。
以编程方式
要以编程方式使用 Kaltura MCP 服务器,请参阅示例目录。
可用工具
Kaltura MCP 服务器提供以下工具:
media_upload:将媒体文件上传到 Kalturamedia_get:检索媒体元数据media_update:更新媒体元数据media_delete:删除媒体category_list:列出类别category_get:检索类别元数据category_add:添加新类别category_update:更新类别元数据category_delete:删除类别user_list:列出用户user_get:检索用户元数据user_add:添加新用户user_update:更新用户元数据user_delete:删除用户
可用资源
Kaltura MCP 服务器提供以下资源:
media://{entry_id}:媒体条目元数据category://{category_id}:类别元数据user://{user_id}:用户元数据
贡献
有关如何为该项目做出贡献的详细信息,请参阅CONTRIBUTING.md 。
执照
该项目根据 AGPLv3 许可证获得许可 - 有关详细信息,请参阅LICENSE文件。
Available Tools
16 toolsget_analyticsA
Get detailed analytics in TABLE format for reporting. USE WHEN: Creating reports, comparing metrics, ranking content, analyzing performance, exporting data. RETURNS: Structured data with headers/rows. EXAMPLES: 'Show top 10 videos by views', 'Compare user engagement by category', 'Export monthly performance report'. Use list_analytics_capabilities to see all 60+ report types. For charts/graphs, use get_analytics_timeseries instead.
| Name | Required | Description | Default |
|---|---|---|---|
| from_date | Yes | Start date in YYYY-MM-DD format (e.g., '2024-01-01') | |
| to_date | Yes | End date in YYYY-MM-DD format (e.g., '2024-01-31') | |
| report_type | No | Type of analytics report (default: 'content'). Common options: 'content' (video performance), 'user_engagement' (viewer behavior), 'geographic' (location data), 'platforms' (device/OS breakdown). Run list_analytics_capabilities for all 60+ types. | |
| entry_id | No | Optional: Filter analytics for specific video (e.g., '1_abc123'). Leave empty for all content. | |
| user_id | No | Optional user ID for user-specific reports | |
| categories | No | Optional category filter | |
| dimension | No | Optional dimension for grouping (e.g., 'device', 'country') | |
| limit | No | Max results per page (default: 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key traits: the tool returns structured data in table format, supports various report types (implied by examples), and references pagination via the 'limit' parameter. However, it doesn't explicitly mention rate limits, authentication needs, or error handling, leaving some gaps for a tool with 8 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded, starting with the core purpose, followed by usage guidelines, return format, examples, and sibling tool references. Every sentence adds value without redundancy, making it efficient and easy to parse for an AI agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (8 parameters, no output schema, no annotations), the description does a good job of covering purpose, usage, and behavioral context. It includes examples and references to sibling tools, but lacks details on output structure (beyond 'structured data with headers/rows') and error cases, which could be more complete for a reporting tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 8 parameters thoroughly. The description adds minimal parameter-specific semantics beyond what's in the schema (e.g., implying 'report_type' options through examples), but it doesn't provide additional syntax or format details. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('Get detailed analytics') and resource ('in TABLE format for reporting'), distinguishing it from siblings like 'get_analytics_timeseries' for charts/graphs. It explicitly mentions the format and use case, making it highly specific and differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidelines with a 'USE WHEN:' section listing scenarios (e.g., creating reports, comparing metrics) and clear alternatives: 'Use list_analytics_capabilities to see all 60+ report types' and 'For charts/graphs, use get_analytics_timeseries instead.' This gives comprehensive guidance on when to use this tool versus others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_analytics_timeseriesA
Get time-series analytics data optimized for charts and visualizations. Use this when creating graphs, dashboards, or tracking trends over time.
| Name | Required | Description | Default |
|---|---|---|---|
| from_date | Yes | Start date in YYYY-MM-DD format (e.g., '2024-01-01') | |
| to_date | Yes | End date in YYYY-MM-DD format (e.g., '2024-01-31') | |
| report_type | No | Report type (default: 'content') | |
| metrics | No | Metrics to include (e.g., ['plays', 'views']) | |
| entry_id | No | Optional: Track single video's performance over time (e.g., '1_abc123'). Leave empty for platform-wide trends. | |
| interval | No | Time grouping for data points (default: 'days'). Use 'hours' for <7 day ranges, 'days' for monthly, 'weeks' for quarterly, 'months' for yearly views. Affects data granularity. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It indicates this is a read operation ('Get') and specifies the data format ('optimized for charts and visualizations'), but doesn't mention rate limits, authentication requirements, pagination, or error conditions. It provides some context about the tool's specialized purpose but lacks comprehensive behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise with just two sentences that each earn their place. The first sentence states the purpose and specialization, the second provides clear usage guidelines. No wasted words, and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 6 parameters, no annotations, and no output schema, the description provides good purpose and usage context but lacks details about the return format, data structure, or what 'optimized for charts' actually means in practice. Given the complexity and absence of output schema, more information about the response format would be helpful for complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 6 parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema descriptions. The baseline score of 3 is appropriate when the schema does the heavy lifting for parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('Get time-series analytics data') and distinguishes it from siblings by specifying it's 'optimized for charts and visualizations'. It explicitly differentiates from general analytics tools like 'get_analytics' by focusing on time-series data for visualization purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance with 'Use this when creating graphs, dashboards, or tracking trends over time.' This gives clear context for when to select this tool versus alternatives like 'get_analytics' (general analytics) or 'get_realtime_metrics' (real-time data).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_attachment_contentA
Download or read ATTACHED FILES from videos. USE WHEN: Accessing supplementary materials, downloading PDFs, getting presentation slides, reading attached documents. RETURNS: File content (if text) or download URL. EXAMPLE: 'Download the PDF slides', 'Read the attached notes'. Use after list_attachment_assets to get specific attachment ID.
| Name | Required | Description | Default |
|---|---|---|---|
| attachment_asset_id | Yes | Attachment ID from list_attachment_assets (format: '1_xyz789') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes what the tool does (downloads or reads attached files), mentions the return behavior ('RETURNS: File content (if text) or download URL'), and provides context about prerequisites (needs attachment ID from list_attachment_assets). However, it doesn't mention potential limitations like file size restrictions, authentication requirements, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with clear sections (purpose, usage guidelines, returns, examples, prerequisites), uses bullet-like formatting without actual bullets, and every sentence adds value. It's appropriately sized for the tool's complexity and front-loads the most important information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (single parameter, no annotations, no output schema), the description is quite complete. It covers purpose, usage scenarios, return values, examples, and prerequisites. The main gap is the lack of output schema, so the description must describe returns, which it does adequately but could be more specific about format distinctions between text content and download URLs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents the single parameter (attachment_asset_id). The description adds minimal value beyond the schema by mentioning that the ID comes from 'list_attachment_assets' and giving a format example, but this is essentially redundant with the schema's description. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Download or read') and resource ('ATTACHED FILES from videos'), distinguishing it from siblings like get_caption_content (captions) or get_download_url (general downloads). It explicitly mentions attachment files, which differentiates it from other media-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance with 'USE WHEN:' listing specific scenarios (accessing supplementary materials, downloading PDFs, etc.), includes an alternative tool ('Use after list_attachment_assets to get specific attachment ID'), and gives concrete examples ('Download the PDF slides', 'Read the attached notes'). This clearly tells the agent when and how to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_caption_contentA
Get actual CAPTION TEXT or download captions file. USE WHEN: Reading video transcript, downloading subtitles, analyzing spoken content, creating accessible content. RETURNS: Full caption text and download URL. EXAMPLE: 'Get English subtitles for video', 'Read transcript to find mentions of topic'. Use after list_caption_assets to get specific caption ID.
| Name | Required | Description | Default |
|---|---|---|---|
| caption_asset_id | Yes | Caption ID from list_caption_assets (format: '1_xyz789') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does well by specifying what the tool returns ('Full caption text and download URL') and providing example use cases. However, it doesn't mention potential limitations like file format, size constraints, or authentication requirements that would be helpful for a download operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with clear sections (purpose, usage guidelines, returns, examples, prerequisites). Every sentence adds value with no redundant information. The front-loaded purpose statement immediately communicates the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema, the description provides good context about what the tool does, when to use it, and what it returns. It could be more complete by specifying output format details or potential error conditions, but given the tool's relative simplicity and the absence of annotations, it covers most essential information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents the single parameter. The description adds some context by mentioning the parameter comes from 'list_caption_assets' and provides format examples, but doesn't add significant semantic meaning beyond what the schema provides. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('Get actual CAPTION TEXT or download captions file') and identifies the resource (caption content). It distinguishes from sibling tools by specifying this is for caption content retrieval rather than analytics, attachments, or other media assets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance with a 'USE WHEN:' section listing specific scenarios (reading transcripts, downloading subtitles, analyzing content, creating accessible content). It also mentions when to use it in relation to a sibling tool ('Use after list_caption_assets to get specific caption ID'), giving clear context and prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_download_urlA
Get direct DOWNLOAD link for video files. USE WHEN: User needs to download/save video locally, export for editing, backup content, share downloadable link. RETURNS: Time-limited secure URL for downloading. EXAMPLE: 'Download video 1_abc123', 'Get mp4 file for editing'. Different from streaming - this is for saving files.
| Name | Required | Description | Default |
|---|---|---|---|
| entry_id | Yes | Video to download (format: '1_abc123') | |
| flavor_id | No | Optional: Choose specific quality/format. Leave empty for default. Use list_media_entries to see available flavors. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively reveals key traits: the tool returns a 'Time-limited secure URL' (implying expiration and authentication needs) and is for 'saving files' (clarifying the download intent). However, it doesn't mention rate limits, error conditions, or file size considerations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with clear sections (purpose, usage guidelines, returns, examples, differentiation) in just four sentences. Every sentence adds value: the first states the core function, the second provides usage context, the third describes the return value, and the fourth gives examples and differentiation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description does well by explaining the return value ('Time-limited secure URL') and providing usage guidance. However, it could be more complete by detailing the URL's expiration timeframe or error cases, given the mutation-like nature of generating download links.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents both parameters (entry_id format, flavor_id optionality and purpose). The description adds no additional parameter semantics beyond what's in the schema, maintaining the baseline score of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Get direct DOWNLOAD link') and resource ('for video files'), distinguishing it from sibling tools like get_thumbnail_url (thumbnails) or get_media_entry (metadata). It explicitly contrasts with 'streaming' to clarify this is for saving files, not playback.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes an explicit 'USE WHEN:' section listing four concrete scenarios (download/save locally, export for editing, backup content, share downloadable link) and provides two examples. It also differentiates from streaming, giving clear context for when to choose this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_geographic_breakdownA
Analyze viewer LOCATIONS and regional performance. USE WHEN: Understanding global reach, planning regional strategies, checking market penetration, optimizing CDN, compliance checks. RETURNS: Views/viewers by country/region/city with percentages. EXAMPLES: 'Which countries watch our content?', 'Show US state breakdown', 'Find top 10 cities for viewership'. Includes map-ready data.
| Name | Required | Description | Default |
|---|---|---|---|
| from_date | Yes | Start date in YYYY-MM-DD format (e.g., '2024-01-01') | |
| to_date | Yes | End date in YYYY-MM-DD format (e.g., '2024-01-31') | |
| granularity | No | Location detail level (default: 'country'): 'world' = continents, 'country' = nations, 'region' = states/provinces, 'city' = cities. Higher detail requires region_filter. | |
| region_filter | No | Zoom into specific area: For region view use country code (e.g., 'US' for US states), for city view use 'US-CA' for California cities. Required for region/city granularity. | |
| metrics | No | Metrics to include |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes what the tool returns (views/viewers by geographic units with percentages), mentions 'map-ready data' as a behavioral trait, and provides example queries. However, it doesn't mention potential limitations like data latency, access permissions, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with purpose, usage guidelines, returns, and examples in distinct sections. Every sentence earns its place by providing essential information without redundancy. The formatting with clear sections enhances readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 parameters, 100% schema coverage, but no annotations or output schema, the description provides good contextual completeness. It covers purpose, usage scenarios, return format, and examples. The main gap is the lack of output schema, but the description compensates by describing what's returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description doesn't add significant parameter semantics beyond what's in the schema, though it reinforces the geographic focus. The baseline of 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('analyze viewer locations and regional performance') and distinguishes it from siblings by focusing on geographic breakdown rather than general analytics, time-series, or other media-specific operations. It explicitly mentions the resource being analyzed (viewer locations).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance with a 'USE WHEN:' section listing five specific scenarios (understanding global reach, planning regional strategies, checking market penetration, optimizing CDN, compliance checks). This gives clear context for when to select this tool over alternatives like general analytics tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_media_entryA
Get complete metadata for a single video/media file. USE WHEN: You have a specific entry_id and need full details (title, description, duration, tags, thumbnail, status). RETURNS: Complete media metadata including URLs, dimensions, creation date. EXAMPLE: After search finds entry_id='1_abc123', use this to get full video details.
| Name | Required | Description | Default |
|---|---|---|---|
| entry_id | Yes | The media entry ID (format: '1_abc123' or '0_xyz789') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes what the tool returns ('complete metadata including URLs, dimensions, creation date') and implies it's a read-only operation by using 'Get' and providing an example of usage after search. However, it doesn't mention potential errors (e.g., invalid entry_id), rate limits, or authentication needs, leaving some behavioral aspects uncovered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with three distinct parts: purpose statement, usage guidelines, and an example. Each sentence adds value without redundancy, and it's front-loaded with the core purpose. The total length is appropriate for the tool's complexity, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 parameter, no output schema, no annotations), the description is nearly complete. It covers purpose, usage, returns, and provides an example. The main gap is the lack of output schema, so the description doesn't specify the exact structure of returned metadata, but it lists key fields (title, description, etc.), which mitigates this. For a simple read tool, this is sufficient but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the schema already documenting the entry_id parameter's type, format, and requirement. The description adds minimal value beyond this by mentioning entry_id in the 'USE WHEN' section and example, but doesn't provide additional semantic context (e.g., where to obtain entry_id from, or validation rules). This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Get complete metadata') and resource ('a single video/media file'), distinguishing it from siblings like search_entries (which finds IDs) or get_thumbnail_url (which retrieves only thumbnails). It explicitly mentions what details are included (title, description, duration, tags, thumbnail, status), making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes an explicit 'USE WHEN' section that specifies when to use this tool ('You have a specific entry_id and need full details') and provides an example contrasting with search_entries. This clearly guides the agent on when to choose this tool over alternatives like search_entries (for finding IDs) or other get_* tools that return partial data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_quality_metricsA
Analyze streaming QUALITY and viewer experience. USE WHEN: Troubleshooting playback issues, monitoring streaming performance, optimizing delivery, investigating viewer complaints. RETURNS: Buffer rates, bitrate averages, error rates, startup times, quality scores. EXAMPLES: 'Why are users complaining about buffering?', 'Check streaming quality by device type', 'Find videos with poor performance'. Helps ensure smooth playback.
| Name | Required | Description | Default |
|---|---|---|---|
| from_date | Yes | Start date in YYYY-MM-DD format (e.g., '2024-01-01') | |
| to_date | Yes | End date in YYYY-MM-DD format (e.g., '2024-01-31') | |
| metric_type | No | Quality aspect to analyze (default: 'overview'): 'overview' = general quality, 'experience' = user QoE scores, 'engagement' = quality impact on viewing, 'stream' = technical metrics, 'errors' = playback failures. | |
| entry_id | No | Optional entry ID for content-specific analysis | |
| dimension | No | Optional dimension (e.g., 'device', 'geography') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It does well by specifying what the tool returns (buffer rates, bitrate averages, error rates, startup times, quality scores) and its purpose (analyzing quality, troubleshooting, monitoring). However, it doesn't mention potential limitations like data freshness, rate limits, or authentication requirements, leaving some behavioral aspects unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and appropriately sized, using clear sections (purpose, usage guidelines, returns, examples) with zero wasted sentences. Each section adds distinct value, and the information is front-loaded with the core purpose stated first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only analysis tool with 5 parameters and no output schema, the description provides good contextual completeness by explaining what the tool does, when to use it, what it returns, and giving examples. However, without annotations or output schema, it could benefit from more detail about the return format structure or data interpretation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 5 parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema, maintaining the baseline score of 3 since the schema does the heavy lifting for parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('analyze streaming QUALITY and viewer experience') and resources ('streaming quality metrics'), distinguishing it from sibling tools like get_analytics or get_realtime_metrics by focusing specifically on quality metrics rather than general analytics or real-time data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides usage guidelines with 'USE WHEN:' section listing specific scenarios (troubleshooting playback issues, monitoring streaming performance, optimizing delivery, investigating viewer complaints), and includes examples that illustrate appropriate contexts, giving clear guidance on when to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_realtime_metricsA
Get LIVE analytics updating every 30 seconds. USE WHEN: Monitoring live events/streams, building real-time dashboards, tracking immediate campaign impact, detecting issues as they happen. RETURNS: Current active viewers, plays per minute, bandwidth usage. EXAMPLES: 'How many people watching right now?', 'Monitor live event performance', 'Track viral video in real-time'. Different from historical analytics - this is NOW.
| Name | Required | Description | Default |
|---|---|---|---|
| report_type | No | What to monitor (default: 'viewers'): 'viewers' = active viewer count, 'geographic' = viewer locations, 'quality' = streaming performance/buffering. | |
| entry_id | No | Optional entry ID for content-specific metrics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key traits: real-time nature ('updating every 30 seconds'), scope ('LIVE analytics'), and return values. However, it doesn't mention potential limitations like rate limits, authentication needs, or error conditions, which would be helpful for a real-time monitoring tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (purpose, usage guidelines, returns, examples, differentiation) and every sentence adds value. It's appropriately sized for a tool with real-time complexity, front-loading key information without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's real-time monitoring complexity and lack of output schema, the description does well by explaining return values and providing usage examples. However, without annotations and with behavioral aspects like rate limits or error handling unaddressed, there's room for improvement in fully preparing an agent for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents both parameters. The description doesn't add any parameter-specific information beyond what's in the schema, maintaining the baseline score of 3. The 'RETURNS' section describes output values but doesn't clarify how they map to parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('Get LIVE analytics') and resources ('analytics updating every 30 seconds'), distinguishing it from siblings like 'get_analytics' or 'get_analytics_timeseries' by emphasizing real-time nature. The final sentence explicitly differentiates it from historical analytics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidelines with a dedicated 'USE WHEN:' section listing specific scenarios (monitoring live events, building real-time dashboards, tracking campaign impact, detecting issues). It also states when not to use it ('Different from historical analytics - this is NOW'), offering clear alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_thumbnail_urlA
Get video THUMBNAIL/POSTER image. USE WHEN: Displaying video previews, creating galleries, showing video cards, generating custom thumbnails. RETURNS: Image URL with your specified size. EXAMPLES: 'Get thumbnail for video 1_abc123', 'Create 400x300 preview image', 'Get frame from 30 seconds in'. Can capture any frame from video.
| Name | Required | Description | Default |
|---|---|---|---|
| entry_id | Yes | Video to get thumbnail from (format: '1_abc123') | |
| width | No | Thumbnail width in pixels (default: 120) | |
| height | No | Thumbnail height in pixels (default: 90) | |
| second | No | Video timestamp in seconds to capture (default: 5) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: it returns an image URL, allows size specification, and can capture frames from any timestamp. However, it doesn't mention potential limitations like rate limits, authentication needs, or error conditions, which would be helpful for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (purpose, usage, returns, examples) and is appropriately sized. However, the examples could be more concise, and some phrasing ('Can capture any frame from video') is slightly redundant with earlier content, preventing a perfect score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (4 parameters, no output schema, no annotations), the description is largely complete. It covers purpose, usage, returns, and examples, but lacks details on output format beyond 'Image URL' and doesn't address error handling or constraints, which would enhance completeness for a tool with no structured output or annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal value beyond the schema by mentioning 'specified size' and 'any frame from video', which align with width/height and second parameters but don't provide additional semantic context. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('Get video THUMBNAIL/POSTER image') and distinguishes it from siblings by focusing on thumbnail generation rather than analytics, content retrieval, or listing operations. It explicitly identifies the resource (video thumbnail) and the action (get).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance with a 'USE WHEN:' section listing scenarios like displaying previews, creating galleries, and generating custom thumbnails. It distinguishes from siblings by focusing on visual preview needs rather than data analysis or content access, though it doesn't name specific alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_video_retentionA
Analyze WHERE viewers stop watching in a video. USE WHEN: Optimizing video content, finding boring sections, identifying engaging moments, improving completion rates. RETURNS: 101 data points (0-100%) showing viewer count at each percent of video. EXAMPLES: 'Where do viewers drop off in video 1_abc123?', 'What parts get replayed?', 'Compare retention for anonymous vs logged-in users'. Shows exact percentages where audience is lost.
| Name | Required | Description | Default |
|---|---|---|---|
| entry_id | Yes | Video to analyze (required, format: '1_abc123'). Get from search_entries or get_media_entry. | |
| from_date | No | Start date (optional, defaults to 30 days ago) | |
| to_date | No | End date (optional, defaults to today) | |
| user_filter | No | Optional viewer segment: 'anonymous' (not logged in), 'registered' (logged in), 'user@email.com' (specific user), 'cohort:students' (named group). Compare different audience behaviors. | |
| compare_segments | No | Compare filtered segment vs all viewers |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: it returns '101 data points (0-100%) showing viewer count at each percent of video,' specifies that it 'Shows exact percentages where audience is lost,' and implies analysis rather than mutation. However, it lacks details on rate limits, authentication needs, or data freshness, which are minor gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with the core purpose, followed by usage guidelines, return values, and examples. Every sentence adds value without redundancy, making it efficient and easy to parse for an AI agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a 5-parameter analytics tool with no annotations and no output schema, the description is largely complete. It covers purpose, usage, return format, and examples. However, it could benefit from more details on output structure or error handling, which slightly reduces completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal parameter semantics beyond the schema, such as implying user_filter allows comparison of 'anonymous vs logged-in users' in the examples. This meets the baseline of 3, as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool's purpose: 'Analyze WHERE viewers stop watching in a video.' It specifies the verb ('analyze') and resource ('video retention'), and clearly distinguishes it from siblings like get_analytics or get_quality_metrics by focusing on viewer retention patterns rather than general analytics or technical metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidelines with 'USE WHEN: Optimizing video content, finding boring sections, identifying engaging moments, improving completion rates.' It lists specific scenarios for when to use this tool, and the examples further clarify its application, such as comparing retention for different user segments.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_analytics_capabilitiesA
Discover ALL analytics capabilities of this system. USE WHEN: User asks 'what analytics can you do?', exploring available reports, understanding metrics options, learning about analytics features. RETURNS: Complete list of 7 analytics functions with descriptions, 60+ report types, available dimensions, time intervals. EXAMPLE: Always run this when user first asks about analytics. No parameters needed - just call it!
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses behavioral traits: returns a complete list with details (7 functions, 60+ reports, dimensions, intervals), and states no parameters needed. However, it lacks info on rate limits, auth needs, or error handling, leaving some gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, followed by usage guidelines, returns, and example. Sentences are efficient, but could be slightly more streamlined (e.g., combining some usage examples). Overall, minimal waste and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 0 parameters, no annotations, and no output schema, the description provides good context: purpose, usage, return details, and example. However, it doesn't specify output format or error cases, leaving some completeness gaps for a tool with no structured output info.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0 parameters and 100% schema coverage, the baseline is 4. The description adds value by explicitly stating 'No parameters needed - just call it!', clarifying that no inputs are required beyond what the empty schema indicates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Discover' and resource 'ALL analytics capabilities', specifying the scope comprehensively. It distinguishes from siblings like get_analytics (which likely retrieves specific data) by focusing on listing available capabilities rather than fetching analytics data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides when-to-use scenarios: 'User asks what analytics can you do?', exploring reports, understanding metrics, learning features. It includes an example: 'Always run this when user first asks about analytics', offering clear guidance on context and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_attachment_assetsA
Find FILES ATTACHED to videos. USE WHEN: Looking for supplementary materials, PDFs, slides, documents linked to video. RETURNS: List of attached files with names, types, sizes, IDs. EXAMPLES: 'What documents are attached to training video?', 'Find PDF slides for presentation'. Attachments are additional files uploaded with videos.
| Name | Required | Description | Default |
|---|---|---|---|
| entry_id | Yes | Video to check for attachments (format: '1_abc123') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well by stating it 'RETURNS: List of attached files with names, types, sizes, IDs', disclosing output format. It adds context that 'Attachments are additional files uploaded with videos', clarifying what attachments are. However, it doesn't mention potential limitations like empty results or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with clear sections (purpose, usage, returns, examples, clarification), uses bullet-like formatting without waste, and is front-loaded with the core action. Every sentence adds value, such as the examples that reinforce usage context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with 1 parameter (100% schema coverage) and no output schema, the description is nearly complete: it covers purpose, usage, returns, and examples. It lacks details on output structure (e.g., pagination) or error handling, but given the low complexity, this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (the entry_id parameter is fully described in the schema as 'Video to check for attachments (format: '1_abc123')'), so the baseline is 3. The description doesn't add any parameter-specific information beyond what the schema provides, but it doesn't need to compensate for gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Find FILES ATTACHED to videos') and resource ('videos'), distinguishing it from sibling tools like get_attachment_content (which retrieves content) or get_media_entry (which gets video metadata). It explicitly mentions 'supplementary materials, PDFs, slides, documents' to clarify scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states 'USE WHEN: Looking for supplementary materials, PDFs, slides, documents linked to video' and provides examples like 'What documents are attached to training video?', giving clear context for when to use this tool versus alternatives like get_attachment_content (for file content) or search_entries (for broader video searches).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_caption_assetsA
Find all CAPTIONS/SUBTITLES for a video. USE WHEN: Checking if video has captions, finding available languages, preparing for accessibility, getting transcript. RETURNS: List of caption files with languages, formats (SRT/VTT), IDs. EXAMPLE: 'Does video 1_abc123 have captions?', 'List subtitle languages available'. First step before getting caption content.
| Name | Required | Description | Default |
|---|---|---|---|
| entry_id | Yes | Video to check for captions (format: '1_abc123') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes what the tool does (lists caption files with languages, formats, IDs), its purpose (checking availability, finding languages), and its role in a workflow (first step before getting content). However, it doesn't mention potential limitations like pagination, error conditions, or authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with clear sections (purpose, usage guidelines, returns, examples, workflow positioning). Every sentence adds value: the first states the core function, the second provides usage contexts, the third specifies returns, and the fourth gives examples and workflow role. No wasted words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema, the description provides excellent context: clear purpose, usage guidelines, return information, examples, and workflow positioning. The only minor gap is the lack of explicit mention of what happens when no captions exist or error scenarios, but overall it's highly complete for this tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the single parameter 'entry_id' fully documented in the schema as 'Video to check for captions (format: '1_abc123')'. The description doesn't add any additional parameter semantics beyond what's already in the schema, so it meets the baseline for high schema coverage without compensating value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Find all CAPTIONS/SUBTITLES for a video') and resource ('video'), distinguishing it from sibling tools like get_caption_content (which retrieves actual content) and list_attachment_assets (which lists different asset types). It explicitly identifies what it returns, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage scenarios with 'USE WHEN: Checking if video has captions, finding available languages, preparing for accessibility, getting transcript' and positions it as 'First step before getting caption content', clearly indicating when to use this tool versus alternatives like get_caption_content. This gives comprehensive guidance on appropriate contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_categoriesA
Browse content organization hierarchy. USE WHEN: Exploring content structure, finding category IDs for filtering, understanding content taxonomy. Categories organize videos into folders/topics. RETURNS: Tree structure with category names, IDs, parent-child relationships. EXAMPLE: Find all videos in 'Training' category by first getting category ID.
| Name | Required | Description | Default |
|---|---|---|---|
| search_text | No | Optional text to filter categories (e.g., 'training', 'marketing') | |
| limit | No | Maximum number of categories to return (default: 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by disclosing key behaviors: returns a tree structure with names, IDs, and parent-child relationships, and provides a practical example of how to use the output. It doesn't mention rate limits or authentication needs, but covers the core operational behavior adequately.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with clear sections (purpose, usage guidelines, returns, example), front-loaded with core purpose, and every sentence adds value without redundancy. The example is practical and illustrative without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with no annotations and no output schema, the description provides good context: clear purpose, usage guidelines, return format description, and an example. It could mention pagination or default behavior more explicitly, but covers most essential aspects given the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents both parameters. The description adds no additional parameter semantics beyond what's in the schema, maintaining the baseline score of 3 for adequate but not enhanced parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('browse content organization hierarchy') and resource ('categories'), distinguishing it from siblings like search_entries or list_attachment_assets by focusing on hierarchical taxonomy rather than media content or analytics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'USE WHEN' section provides clear scenarios: exploring content structure, finding category IDs for filtering, and understanding taxonomy. It distinguishes this tool from search_entries by emphasizing hierarchy browsing rather than direct content search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_entriesA
SEARCH for videos or LIST all content. USE WHEN: Finding videos by keyword, listing newest content, discovering what's available, filtering by date/category. POWERFUL SEARCH across titles, descriptions, tags, captions. EXAMPLES: 'Find videos about python', 'Show newest 10 videos' (use query='*' sort_field='created_at'), 'Search in transcripts for keyword', 'List videos from last week'. This is your primary discovery tool!
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search terms or '*' for all. EXAMPLES: '*' = list all videos, 'marketing' = find marketing content, '"exact phrase"' = exact match, 'python programming' = videos containing both words. ALWAYS use '*' when listing newest/all videos. | |
| search_type | No | Search scope: 'unified' (all fields), 'entry' (titles/descriptions), 'caption' (transcripts), 'metadata' (custom fields), 'cuepoint' (chapters). Default: 'unified' | |
| match_type | No | Match type: 'partial' (contains), 'exact_match' (exact phrase), 'starts_with' (prefix), 'exists' (has value), 'range' (numeric/date). Default: 'partial' | |
| specific_field | No | Specific field to search within the selected scope. Common fields: 'name', 'description', 'tags', 'created_at'. Leave blank to search all fields. | |
| boolean_operator | No | Boolean operator for multi-term queries: 'and' (all terms), 'or' (any term), 'not' (exclude). Default: 'and' | |
| include_highlights | No | Include highlighted matching text snippets in results. Default: true | |
| custom_metadata | No | Custom metadata search parameters. Requires both profile_id and xpath. Used for searching custom metadata fields. | |
| date_range | No | Filter entries by creation date range. Use YYYY-MM-DD format. | |
| max_results | No | Maximum number of results to return (default: 20, max: 100) | |
| sort_field | No | Field to sort by. Options: 'created_at' (creation date), 'updated_at' (last modified), 'name' (alphabetical), 'views' (view count), 'plays' (play count), 'last_played_at' (recent activity), 'rank' (relevance), 'start_date' (schedule start), 'end_date' (schedule end). Default: 'created_at' | |
| sort_order | No | Sort direction. Use 'desc' for newest/highest first (default), 'asc' for oldest/lowest first. For finding latest content, use 'desc' with 'created_at' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'POWERFUL SEARCH across titles, descriptions, tags, captions' and 'primary discovery tool,' which gives some behavioral context (e.g., broad search capabilities). However, it lacks details on permissions, rate limits, pagination, or error handling, leaving gaps for a tool with 11 parameters and no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with key information (purpose and usage) and uses bullet-like examples efficiently. However, it includes some redundancy (e.g., repeating search capabilities) and could be slightly more streamlined, but overall it's well-structured and earns its place with helpful guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (11 parameters, no output schema, no annotations), the description is adequate but incomplete. It covers purpose and usage well but lacks behavioral details (e.g., response format, error cases) and doesn't fully address the tool's richness. It's a minimum viable description that leaves the agent to rely heavily on the schema for execution.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal parameter semantics beyond the schema, such as implying the tool handles 'videos' and 'content' and giving example queries, but it doesn't provide additional meaning or clarify complex interactions between parameters. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('SEARCH for videos or LIST all content') and resource ('videos'/'content'). It distinguishes this as the 'primary discovery tool' from siblings that appear to be more specific retrieval tools (like get_media_entry, get_caption_content, etc.), making the scope and role explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states 'USE WHEN:' with multiple scenarios (finding by keyword, listing newest content, discovering what's available, filtering by date/category). It provides concrete examples and distinguishes this as the go-to tool for discovery, implying alternatives are not needed for these tasks, though it doesn't name specific sibling tools to avoid.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose with no significant overlap. The descriptions explicitly differentiate tools like get_analytics vs get_analytics_timeseries, get_download_url vs get_thumbnail_url, and list_* vs get_* functions. The USE WHEN sections help agents understand exactly when to use each specific tool.
All tools follow a consistent verb_noun pattern with perfect uniformity. Every tool name uses snake_case with clear action prefixes: 'get_' for retrieving specific data, 'list_' for discovering available resources, and 'search_' for finding content. This creates a predictable and intuitive naming convention throughout the entire set.
With 16 tools, this server provides comprehensive coverage of video platform functionality without being overwhelming. The tools cover analytics, media management, content discovery, and supplementary materials - all appropriate for a Kaltura video platform server. Each tool serves a distinct purpose that justifies its inclusion.
The tool set provides complete coverage for video platform operations including content discovery (search_entries, list_categories), metadata retrieval (get_media_entry), analytics (multiple get_analytics variants), media access (get_download_url, get_thumbnail_url), and supplementary materials (captions, attachments). The surface covers the entire lifecycle from discovery to detailed analysis.
Maintenance
Related MCP Connectors
A Model Context Protocol server for Wix AI tools
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Model Context Protocol server for Studex tools, notifications, and profile integrations
Intelligent context infrastructure for AI teams: knowledge graph, sessions, tasks, documents.
Related MCP Servers
- FlicenseBqualityDmaintenanceImplements the Model Context Protocol (MCP) to provide AI models with a standardized interface for connecting to external data sources and tools like file systems, databases, or APIs.1153
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol implementation with a modular architecture that exposes capabilities through specialized agents, enabling seamless integration with Claude Desktop and web applications.2
- AlicenseNot gradedqualityDmaintenanceEnables AI models to upload, retrieve, search, and manage media in Kaltura, including categories and users, via the Model Context Protocol.1MIT
- AlicenseNot gradedqualityDmaintenanceProvides AI-powered media generation tools including image, speech, video, OCR, and voice conversion via the Model Context Protocol.16MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/zoharbabin/kaltura-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server