MCP API Integration
Programmatic video analysis for AI assistants and automation workflows
Common Use Cases
📱 Social Media Management
Automatically generate social media posts, hashtags, and engagement content from video uploads.
📚 Content Curation
Extract key insights and summaries from educational videos for knowledge bases and learning materials.
🔍 Research & Analysis
Analyze market research videos, interviews, and presentations for business intelligence.
🤖 AI Assistant Tools
Add video analysis capabilities to Claude, ChatGPT, or custom AI assistants.
📊 Content Analytics
Batch process video libraries to extract themes, topics, and performance insights.
💼 Enterprise Workflows
Integrate with CMS, marketing automation, and content management systems.
What is MCP?
Model Context Protocol (MCP) is a standardized interface that allows AI assistants and automation tools to integrate with external services. Description.Video provides a fully MCP-compatible REST API that enables programmatic video analysis.
🤖 AI Assistant Integration
Connect Description.Video to Claude, ChatGPT, or any AI assistant that supports MCP for seamless video analysis within conversations.
🔧 Workflow Automation
Integrate video analysis into your automation pipelines, content management systems, or batch processing workflows.
Analysis Mode
🧠 Smart Analysis Mode
analyze_video
Optimized internal prompt system for consistent, high-quality analysis. Black box approach with proven templates.
Agent Configuration
To configure AI agents (like Claude Desktop, ChatGPT, or custom assistants) to use Description.Video's MCP service, add this configuration:
MCP Server Configuration
{
"mcpServers": {
"description.video": {
"url": "https://description.video/mcp"
}
}
}
Configuration Notes
- • Place this configuration in your agent's MCP settings file
- • The service name "description.video" can be customized to your preference
- • Ensure your agent supports HTTP-based MCP servers
- • Some agents may require additional authentication or proxy settings
Quick Start
📋 Essential Parameters
🌍 report_language (Required)
24 languages supported:
bengali
bulgarian
chinese
czech
danish
dutch
english
french
german
hindi
hungarian
italian
japanese
norwegian
polish
portuguese
romanian
russian
spanish
swedish
swiss_german
tamil
thai
turkish
🤖 model (Optional)
10 AI models available:
tngtech/deepseek-r1t2-chimera:free
deepseek/deepseek-chat-v3-0324:free
deepseek/deepseek-r1-0528:free
tngtech/deepseek-r1t-chimera:free
google/gemini-2.0-flash-exp:free
moonshotai/kimi-k2:free
qwen/qwen-2.5-72b-instruct:free
z-ai/glm-4.5-air:free
google/gemma-3-27b-it:free
meta-llama/llama-3.3-70b-instruct:free
Default: tngtech/deepseek-r1t2-chimera:free
⚠️ Missing required parameter:
{"error": {"code": -32602, "message": "Invalid params: report_language is required"}}
2. List Available Functions
curl -X POST https://description.video/mcp/ \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "tools/list",
"id": 1
}'
3. Smart Analysis
curl -X POST https://description.video/mcp/ \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "analyze_video",
"arguments": {
"video_url": "https://www.youtube.com/watch?v=UF8uR6Z6KLc",
"report_language": "german"
}
},
"id": 3
}'
Integration Examples
Multi-Language Integration
import requests
def analyze_video(url, lang="english", model=None):
payload = {
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "analyze_video",
"arguments": {
"video_url": url,
"report_language": lang,
**({"model": model} if model else {})
}
},
"id": 1
}
response = requests.post("https://description.video/mcp/", json=payload)
return response.json()["result"]["content"][0]["text"]
# Usage
result = analyze_video(
"https://www.youtube.com/watch?v=UF8uR6Z6KLc",
"german"
)
async function analyzeVideo(url, lang = "english", model) {
const payload = {
jsonrpc: "2.0",
method: "tools/call",
params: {
name: "analyze_video",
arguments: {
video_url: url,
report_language: lang,
...(model && { model })
}
},
id: Date.now()
};
const response = await fetch('https://description.video/mcp/', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(payload)
});
const result = await response.json();
return result.result?.content[0]?.text;
}
// Usage
const result = await analyzeVideo(
'https://www.youtube.com/watch?v=UF8uR6Z6KLc',
'german'
);
curl -X POST https://description.video/mcp/ \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "analyze_video",
"arguments": {
"video_url": "https://www.youtube.com/watch?v=UF8uR6Z6KLc",
"report_language": "german"
}
},
"id": 1
}'
🔧 Key Implementation Notes:
- • All examples use identical MCP JSON-RPC structure
- • Optional parameters use conditional spreading (
**{}
in Python,...
in JS) - • Response parsing:
result.content[0].text
contains the analysis - • Error handling should check for
result.error
field
Technical Specifications
Protocol Details
- Protocol: JSON-RPC 2.0
- Endpoint:
https://description.video/mcp/
- Method: POST
- Content-Type: application/json
Rate Limits
- Analysis requests: 10 per hour per IP
- List tools: Unlimited
- Headers:
X-RateLimit-*
- Error code: HTTP 429 when exceeded
📄 Response Format
{
"jsonrpc": "2.0",
"result": {
"content": [{"type": "text", "text": "Analysis result..."}],
"metadata": {
"task_id": "uuid",
"video_title": "Video Title",
"processing_time": 15.7,
"model_used": "deepseek-r1t2-chimera:free"
}
},
"id": 1
}