{"name":"video.alto/alto","slug":"alto","title":"Alto","description":"Send a finished video with one tracked link per recipient, and see who watched and how far.","url":"https://mcp.market/server/alto","rating":null,"grade":"B","score":81,"certified":false,"status":"active","category":"media","tags":["media"],"presence":{"score":8,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":null},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-11-04T09:00:35.460Z","last_ok_at":"2026-11-04T09:00:35.460Z","latency_ms":288},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":null,"website":"https://alto.video/docs/cli-and-mcp","version":"1.0.0","remotes":[{"type":"streamable-http","url":"https://alto.video/mcp"},{"type":"streamable-http","url":"https://alto.video/api/mcp","headers":[{"description":"Bearer followed by an Alto API key (Settings › API & agents), for coding agents that upload local files in parts","isRequired":true,"isSecret":true,"name":"Authorization"}]}],"packages":[],"tools":[{"name":"complete_upload","description":"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.","write_action":true,"price_micros":0,"input_schema":{"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 <dana@acme.example>\", 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"]}},{"name":"create_link","description":"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.","write_action":true,"price_micros":0,"input_schema":{"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"]}},{"name":"create_upload","description":"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.","write_action":true,"price_micros":0,"input_schema":{"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"]}},{"name":"get_moments","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"videoId":{"type":"string"},"since":{"type":"string","description":"Only plays in this window: 90m, 24h, 7d, 2w."}},"required":["videoId"]}},{"name":"list_links","description":"Every recipient link, or one video's, with its status (watching, watched, opened, not opened, expired, disabled) and how much was watched.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"videoId":{"type":"string"},"status":{"type":"string"}}}},{"name":"list_videos","description":"Your library, newest first, with each video's id, title, share link and totals.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"list_viewers","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"filter":{"type":"string","enum":["watching","engaged","dropped"]}}}},{"name":"upload_video","description":"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.","write_action":true,"price_micros":0,"input_schema":{"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 <dana@acme.example>\", 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"]}}],"scan":{"score":81,"grade":"B","scanned_at":"2026-10-01T23:10:53.273Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-01T23:10:53.243Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 520ms (auth required)"]},"poisoning":{"score":15,"max":15,"notes":["8 tool descriptions checked"]},"auth":{"score":15,"max":15,"notes":["OAuth resource metadata advertised on 401"]},"maintenance":{"score":3,"max":15,"notes":["no repository listed"]},"identity":{"score":8,"max":10,"notes":["endpoint served from the registry-verified namespace domain"]}},"findings":[{"id":"maint.no-repo","severity":"low","component":"maintenance","title":"No source repository listed"}],"inputs":{"probes":[{"url":"https://alto.video/mcp","reachable":true,"authRequired":true,"latencyMs":520,"authScheme":"oauth"},{"url":"https://alto.video/api/mcp","reachable":true,"authRequired":false,"latencyMs":1047,"serverInfo":{"name":"alto","version":"1.0.0"}}],"packages":[],"repo":{"found":false},"icon":{"url":"https://alto.video/brand/kit/alto-mark-512.png","source":"registry","width":512,"height":512},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":8}}}},"grade_history":[],"reviews":[]}