Alto
Send a finished video with one tracked link per recipient, and see who watched and how far.
我该使用它吗
质量与安全性
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"alto": {
"url": "https://alto.video/mcp"
}
}
}远程端点
https://alto.video/mcpstreamable-httphttps://alto.video/api/mcpstreamable-http它能做什么
工具清单
工具(8)
🟡create_upload(bytes, type, duration)
Start uploading a finished video (MP4, MOV or WebM) in parts. Returns an uploadId and one URL per part: PUT each part's exact bytes to its URL with the same Authorization header, keep the etag each PUT answers, then call complete_upload. Parts are partBytes long except the last.
输入模式
{
"type": "object",
"properties": {
"bytes": {
"type": "integer",
"description": "The file's size in bytes."
},
"type": {
"type": "string",
"description": "video/mp4, video/quicktime or video/webm."
},
"duration": {
"type": "number",
"description": "Length in seconds, if known."
}
},
"required": [
"bytes",
"type"
]
}🟡complete_upload(uploadId, parts, title, description, duration, ...)
Join the parts of an upload started with create_upload, create the video, and make one tracked link per recipient. Returns the video, its share link and each recipient's link.
输入模式
{
"type": "object",
"properties": {
"uploadId": {
"type": "string"
},
"parts": {
"type": "array",
"description": "Every part's { part, etag }, from the PUTs.",
"items": {
"type": "object",
"properties": {
"part": {
"type": "integer"
},
"etag": {
"type": "string"
}
}
}
},
"title": {
"type": "string",
"description": "What the prospect sees, e.g. \"Fleet QA for Acme Logistics\"."
},
"description": {
"type": "string"
},
"duration": {
"type": "number",
"description": "Length in seconds. Needed unless Alto can measure the file."
},
"slug": {
"type": "string",
"description": "The readable part of the link, optional."
},
"recipients": {
"type": "array",
"description": "Who to send it to: one tracked link each. Strings like \"Dana Whitfield <[email protected]>\", or objects { name, email, company, title, note }.",
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"email": {
"type": "string"
},
"company": {
"type": "string"
},
"title": {
"type": "string"
},
"note": {
"type": "string"
}
}
}
]
}
}
},
"required": [
"uploadId",
"parts",
"title"
]
}🟡upload_video(url, title, description, duration, slug, ...)
Upload a finished video that is already online (an https URL Alto can download, up to 2 GB), create it, and make one tracked link per recipient. For a file on your machine, use create_upload.
输入模式
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "An https URL of the video file."
},
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"duration": {
"type": "number",
"description": "Length in seconds. Needed unless Alto can measure the file."
},
"slug": {
"type": "string"
},
"recipients": {
"type": "array",
"description": "Who to send it to: one tracked link each. Strings like \"Dana Whitfield <[email protected]>\", or objects { name, email, company, title, note }.",
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"email": {
"type": "string"
},
"company": {
"type": "string"
},
"title": {
"type": "string"
},
"note": {
"type": "string"
}
}
}
]
}
}
},
"required": [
"url",
"title"
]
}🟡create_link(videoId, name, email, company, title, ...)
Make a tracked link to a video for one person, so every view is tied to them. Returns the link's URL to paste into an email.
输入模式
{
"type": "object",
"properties": {
"videoId": {
"type": "string"
},
"name": {
"type": "string",
"description": "Who it's for, e.g. \"Dana Whitfield\"."
},
"email": {
"type": "string"
},
"company": {
"type": "string"
},
"title": {
"type": "string",
"description": "Their job title."
},
"note": {
"type": "string",
"description": "A personal note shown on their demo page."
},
"expiresInDays": {
"type": [
"integer",
"null"
],
"description": "Days until the link stops working; null never expires; left out uses the workspace default."
}
},
"required": [
"videoId",
"name"
]
}🟢get_moments(videoId, since)
Plays, how much people watched, how far each chapter reached and which one was rewatched, and where the most viewers left. Part of Pro's full API.
输入模式
{
"type": "object",
"properties": {
"videoId": {
"type": "string"
},
"since": {
"type": "string",
"description": "Only plays in this window: 90m, 24h, 7d, 2w."
}
},
"required": [
"videoId"
]
}🟢list_viewers(filter)
Everyone who opened one of your links: recipients, people their links were forwarded to, and anonymous viewers, with how much they watched and whether they're watching now.
输入模式
{
"type": "object",
"properties": {
"filter": {
"type": "string",
"enum": [
"watching",
"engaged",
"dropped"
]
}
}
}🟢list_links(videoId, status)
Every recipient link, or one video's, with its status (watching, watched, opened, not opened, expired, disabled) and how much was watched.
输入模式
{
"type": "object",
"properties": {
"videoId": {
"type": "string"
},
"status": {
"type": "string"
}
}
}🟢list_videos
Your library, newest first, with each video's id, title, share link and totals.
输入模式
{
"type": "object",
"properties": {}
}社区
证据