
Send a finished video with one tracked link per recipient, and see who watched and how far.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
Every part's { part, etag }, from the PUTs.
What the prospect sees, e.g. "Fleet QA for Pruitt Logistics".
The readable part of the link, optional.
Length in seconds. Needed unless Alto can measure the file.
Who to send it to: one tracked link each. Strings like "Michelle Barba <[email protected]>", or objects { name, email, company, title, note }.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
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.
| Argument | Type | Description |
|---|---|---|
| slug | string | The readable part of the link, optional. |
| parts* | array | Every part's { part, etag }, from the PUTs. |
| title* | string | What the prospect sees, e.g. "Fleet QA for Pruitt Logistics". |
| duration | number | Length in seconds. Needed unless Alto can measure the file. |
| uploadId* | string | |
| recipients | array | Who to send it to: one tracked link each. Strings like "Michelle Barba <[email protected]>", or objects { name, email, company, title, note }. |
| description | string |
{
"type": "object",
"required": [
"uploadId",
"parts",
"title"
],
"properties": {
"slug": {
"type": "string",
"description": "The readable part of the link, optional."
},
"parts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"etag": {
"type": "string"
},
"part": {
"type": "integer"
}
}
},
"description": "Every part's { part, etag }, from the PUTs."
},
"title": {
"type": "string",
"description": "What the prospect sees, e.g. \"Fleet QA for Pruitt Logistics\"."
},
"duration": {
"type": "number",
"description": "Length in seconds. Needed unless Alto can measure the file."
},
"uploadId": {
"type": "string"
},
"recipients": {
"type": "array",
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"note": {
"type": "string"
},
"email": {
"type": "string"
},
"title": {
"type": "string"
},
"company": {
"type": "string"
}
}
}
]
},
"description": "Who to send it to: one tracked link each. Strings like \"Michelle Barba <[email protected]>\", or objects { name, email, company, title, note }."
},
"description": {
"type": "string"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| name* | string | Who it's for, e.g. "Michelle Barba". |
| note | string | A personal note shown on their demo page. |
| string | ||
| title | string | Their job title. |
| company | string | |
| videoId* | string | |
| expiresInDays | integer | null | Days until the link stops working; null never expires; left out uses the workspace default. |
{
"type": "object",
"required": [
"videoId",
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Who it's for, e.g. \"Michelle Barba\"."
},
"note": {
"type": "string",
"description": "A personal note shown on their demo page."
},
"email": {
"type": "string"
},
"title": {
"type": "string",
"description": "Their job title."
},
"company": {
"type": "string"
},
"videoId": {
"type": "string"
},
"expiresInDays": {
"type": [
"integer",
"null"
],
"description": "Days until the link stops working; null never expires; left out uses the workspace default."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| type* | string | video/mp4, video/quicktime or video/webm. |
| bytes* | integer | The file's size in bytes. |
| duration | number | Length in seconds, if known. |
{
"type": "object",
"required": [
"bytes",
"type"
],
"properties": {
"type": {
"type": "string",
"description": "video/mp4, video/quicktime or video/webm."
},
"bytes": {
"type": "integer",
"description": "The file's size in bytes."
},
"duration": {
"type": "number",
"description": "Length in seconds, if known."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| since | string | Only plays in this window: 90m, 24h, 7d, 2w. |
| videoId* | string |
{
"type": "object",
"required": [
"videoId"
],
"properties": {
"since": {
"type": "string",
"description": "Only plays in this window: 90m, 24h, 7d, 2w."
},
"videoId": {
"type": "string"
}
}
}Every recipient link, or one video's, with its status (watching, watched, opened, not opened, expired, disabled) and how much was watched.
| Argument | Type | Description |
|---|---|---|
| status | string | |
| videoId | string |
{
"type": "object",
"properties": {
"status": {
"type": "string"
},
"videoId": {
"type": "string"
}
}
}Your library, newest first, with each video's id, title, share link and totals.
No arguments.
{
"type": "object",
"properties": {}
}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.
| Argument | Type | Description |
|---|---|---|
| filter | string |
{
"type": "object",
"properties": {
"filter": {
"enum": [
"watching",
"engaged",
"dropped"
],
"type": "string"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| url* | string | An https URL of the video file. |
| slug | string | |
| title* | string | |
| duration | number | Length in seconds. Needed unless Alto can measure the file. |
| recipients | array | Who to send it to: one tracked link each. Strings like "Michelle Barba <[email protected]>", or objects { name, email, company, title, note }. |
| description | string |
{
"type": "object",
"required": [
"url",
"title"
],
"properties": {
"url": {
"type": "string",
"description": "An https URL of the video file."
},
"slug": {
"type": "string"
},
"title": {
"type": "string"
},
"duration": {
"type": "number",
"description": "Length in seconds. Needed unless Alto can measure the file."
},
"recipients": {
"type": "array",
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"note": {
"type": "string"
},
"email": {
"type": "string"
},
"title": {
"type": "string"
},
"company": {
"type": "string"
}
}
}
]
},
"description": "Who to send it to: one tracked link each. Strings like \"Michelle Barba <[email protected]>\", or objects { name, email, company, title, note }."
},
"description": {
"type": "string"
}
}
}