Alto
Send a finished video with one tracked link per recipient, and see who watched and how far.
사용해야 할까요
품질 및 안전성
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`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": {}
}커뮤니티
증거