{"name":"app.dailystudio/teleprompter","slug":"dailystudio-teleprompter","title":"Daily Studio Teleprompter","description":"Send a shoot's worth of scripts to the Daily Studio teleprompter on iPhone, in one link.","url":"https://mcp.market/server/dailystudio-teleprompter","rating":null,"grade":"C","score":60,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":8,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":null},"uptime":{"percent":100,"checks":20,"ok":20,"last_checked_at":"2026-09-24T05:31:34.880Z","last_ok_at":"2026-09-24T05:31:34.880Z","latency_ms":62},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":null,"website":"https://dailystudio.app","version":"1.0.0","remotes":[{"type":"streamable-http","url":"https://dailystudio.app/mcp"}],"packages":[],"tools":[{"name":"add_scripts_to_plan","description":"Put finished scripts into the user's Daily Studio content plan, each with the day it should go out. Use this when the user asks you to PLAN — a week, a month, a series — rather than to hand them something to record right now. The plan lives on their account: it shows up in the app, on dailystudio.app/plan, and stays there. Calling this twice with the same scripts is safe; duplicates are skipped. Requires a connected Daily Studio account with the plan turned on. To record something immediately, use `send_script_to_teleprompter` instead — that is a delivery, this is a plan.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"collection":{"type":"string","maxLength":80,"description":"Optional name for this batch as a group — a topic ('Customer questions'), a series ('Framing, part 1-5'), or what the week is about. The scripts show up grouped under it in the app and on the web, which is how somebody finds them again later. Use one when the scripts belong together; leave it out for a handful of unrelated ones."},"scripts":{"type":"array","minItems":1,"maxItems":100,"items":{"type":"object","properties":{"id":{"type":"string","maxLength":64,"description":"Optional stable key of YOUR choosing for this script (an idempotency key). Re-sending a batch with the same keys updates those scripts instead of duplicating them — use it when a call may be retried, or to deliberately revise scripts you added earlier."},"text":{"type":"string","minLength":1,"maxLength":20000,"description":"The finished script, plain UTF-8. Newlines allowed."},"collection":{"type":"string","maxLength":80,"description":"Overrides the batch's collection for this one script. Rarely needed."},"title":{"type":"string","maxLength":200,"description":"Short label, e.g. 'Cold plunge hook'. Shown as the row's name in the app and on the web."},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"The day this should go out, as YYYY-MM-DD in the user's own calendar. Omit if the plan is not dated yet — an undated script is a normal thing to have and shows up as backlog."},"platform":{"type":"string","enum":["TikTok","Instagram","YouTube","Facebook","X"],"description":"Where it is meant to be published. Selects that platform's safe-zone overlay when it is recorded."},"wpm":{"type":"integer","minimum":60,"maximum":260,"description":"Optional teleprompter speed for this script."}},"required":["text"],"additionalProperties":false},"description":"The scripts to add, in the order they should sit in the plan."}},"required":["scripts"],"additionalProperties":false}},{"name":"archive_planned_scripts","description":"Archive scripts out of the user's working plan, by id — or restore archived ones with `restore: true`. Archiving is reversible and keeps the script and any recorded video; it is the right way to clear finished or shelved work. Permanent deletion is deliberately not available to assistants — the user does that themselves.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"ids":{"type":"array","minItems":1,"maxItems":100,"items":{"type":"string","maxLength":64},"description":"The scripts to archive (or restore). Ids come from list_planned_scripts."},"restore":{"type":"boolean","description":"true brings archived scripts back into the plan instead. Default false."}},"required":["ids"],"additionalProperties":false}},{"name":"cancel_scheduled_post","description":"Cancel one post that is waiting to go out, by id from list_scheduled_posts. Only works while the post is still waiting; the take becomes approvable again. Confirm with the user before calling this — it withdraws something they approved.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","maxLength":64,"description":"The post's id, from list_scheduled_posts."}},"required":["id"],"additionalProperties":false}},{"name":"edit_planned_scripts","description":"Change scripts already in the user's Daily Studio content plan, by id and in bulk: move them to other days, group them into collections, retitle or rewrite them. This is the tool for 'these contents go on these days, grouped like this' when the content already exists — read the plan first with list_planned_scripts, then send one call with all the changes. Only the fields you send change; one bad entry never drops the batch.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"edits":{"type":"array","minItems":1,"maxItems":100,"description":"The changes, one entry per script. Only the fields you send change; everything else stays. Get ids from list_planned_scripts.","items":{"type":"object","properties":{"id":{"type":"string","maxLength":64,"description":"The script's id, from list_planned_scripts or add_scripts_to_plan."},"title":{"type":["string","null"],"maxLength":200,"description":"New title; null clears it."},"text":{"type":"string","minLength":1,"maxLength":20000,"description":"Replacement script text."},"collection":{"type":["string","null"],"maxLength":80,"description":"Move to this pile; null takes it out of its pile."},"date":{"type":["string","null"],"pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"New go-out day (YYYY-MM-DD, the user's own calendar); null makes it undated."},"platform":{"type":"string","enum":["TikTok","Instagram","YouTube","Facebook","X"]},"wpm":{"type":"integer","minimum":60,"maximum":260}},"required":["id"],"additionalProperties":false}}},"required":["edits"],"additionalProperties":false}},{"name":"get_planned_scripts","description":"Read the full text of specific scripts in the user's content plan, by id — the words themselves, not just titles. Use it before rewriting or reviewing a script, or when the user asks about one ('check the hook on Tuesday's'). Up to 20 per call.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"ids":{"type":"array","minItems":1,"maxItems":20,"items":{"type":"string","maxLength":64},"description":"The scripts to read in full, at most 20 per call. Ids come from list_planned_scripts."}},"required":["ids"],"additionalProperties":false}},{"name":"list_collections","description":"List the collections (piles) the user already groups their scripts into, with counts. Call it before grouping anything so you reuse their existing names instead of inventing near-duplicates.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"list_connected_accounts","description":"List the social accounts the user has connected to Daily Studio, so you know where a video could be published and under which handle. Requires a connected Daily Studio account — the first time you call this, the user is asked to connect one, and the call is retried automatically afterwards. Nothing is published by this tool.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"list_planned_scripts","description":"Read what is already in the user's Daily Studio content plan — each script's id, title, collection, the day it goes out, its place in the shoot order, and how far it has got (written, recorded, uploaded, scheduled, published, or failed). Call this before adding to a plan so you do not repeat what is there, before editing so you hold real ids, and whenever the user asks what they have coming up. Nothing is changed by this tool.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"from":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Only scripts dated on or after this day."},"to":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Only scripts dated on or before this day."},"includeUndated":{"type":"boolean","description":"Include scripts with no date at all (the backlog). Default true."},"collection":{"type":"string","maxLength":80,"description":"Only scripts in this collection. Omit to read the whole plan."}},"additionalProperties":false}},{"name":"list_scheduled_posts","description":"Read what the user has approved for publishing and what happened to it: waiting, going up now, published (with the link), failed (with the reason in plain words), or cancelled. Call it when the user asks 'did my post go out?' or 'why not?'. Nothing is changed by this tool, and new posts cannot be scheduled from here.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"state":{"type":"string","enum":["scheduled","publishing","published","failed","cancelled"],"description":"Only posts in this state. Omit for the whole queue, newest first."}},"additionalProperties":false}},{"name":"reorder_planned_scripts","description":"Set the order the user's camera walks through their scripts — pass ids first-to-record first. Scripts you leave out keep their current order after the ones you name. Use it when the user says what to shoot first, or after planning a batch that should be recorded in sequence.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"ids":{"type":"array","minItems":1,"maxItems":200,"items":{"type":"string","maxLength":64},"description":"Script ids in the order they should be recorded, first first. Scripts you leave out keep their current order, after the ones you name."}},"required":["ids"],"additionalProperties":false}},{"name":"retry_scheduled_post","description":"Put one failed post back in the queue, due now — by id from list_scheduled_posts. Use it after the cause in the failure sentence is fixed (say, a reconnected account). The post goes out within about five minutes.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","maxLength":64,"description":"The post's id, from list_scheduled_posts."}},"required":["id"],"additionalProperties":false}},{"name":"send_script_to_teleprompter","description":"Turn one or more finished video scripts into a single one-tap link that opens the user's Daily Studio app with the script(s) loaded into the teleprompter and the right platform safe-zones selected, ready to record. For one script use `text`; for a batch the user will record back-to-back (a day's 3-4 videos, or a whole content plan — up to 100), use `scripts` — they land as an in-app shoot queue in order, and ONE link carries them all. Call this only once the scripts are final. Returns a link the user taps on their iPhone; on a desktop it opens a page with a QR code to scan.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":8000,"description":"A single finished teleprompter script, plain UTF-8. Newlines allowed. Provide either this or `scripts`, not both."},"title":{"type":"string","maxLength":120,"description":"Optional short label for `text`, e.g. 'Cold plunge hook'."},"wpm":{"type":"integer","minimum":60,"maximum":300,"description":"Optional scroll speed in words per minute. Sets the app's teleprompter speed. Omit to leave the user's setting alone. With `scripts`, applies to items that don't set their own."},"platform":{"type":"string","enum":["TikTok","Instagram","YouTube","Facebook","X Twitter","Generic","None"],"description":"Where the video will be published. Selects that platform's safe-zone overlay so on-screen UI never covers the creator. Omit to leave the user's choice alone. With `scripts`, applies to items that don't set their own."},"scripts":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":8000,"description":"The finished script for this video, plain UTF-8."},"title":{"type":"string","maxLength":120,"description":"Short label shown in the app's shoot queue, e.g. 'Video 2: myth-busting'."},"wpm":{"type":"integer","minimum":60,"maximum":300},"platform":{"type":"string","enum":["TikTok","Instagram","YouTube","Facebook","X Twitter","Generic","None"]}},"required":["text"],"additionalProperties":false},"minItems":1,"maxItems":100,"description":"A batch of scripts (in recording order) delivered as a single link — up to 100 of them, 400000 characters of script in total. The app queues them; after each recording it offers the next. Provide either this or `text`, not both."}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}],"scan":{"score":60,"grade":"C","scanned_at":"2026-09-23T21:39:29.954Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-23T21:39:29.935Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 319ms"]},"poisoning":{"score":15,"max":15,"notes":["12 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 4 write-action tools with no auth"]},"maintenance":{"score":3,"max":15,"notes":["no repository listed"]},"identity":{"score":4,"max":10,"notes":["verified namespace with website, no repo"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"},{"id":"maint.no-repo","severity":"low","component":"maintenance","title":"No source repository listed"}],"inputs":{"probes":[{"url":"https://dailystudio.app/mcp","reachable":true,"authRequired":false,"latencyMs":319,"serverInfo":{"name":"safevertical","version":"1.0.0"}}],"packages":[],"repo":{"found":false},"icon":{"url":"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Crect width='48' height='48' rx='11' fill='%23FAF6EF'/%3E%3Crect x='14' y='6' width='20' height='36' rx='4.5' fill='%23141414'/%3E%3Crect x='17' y='15.5' width='14' height='2.6' rx='1.3' fill='%23FAF6EF'/%3E%3Crect x='16' y='20.5' width='16' height='4' rx='2' fill='%23FF4D8D'/%3E%3Crect x='18' y='27' width='12' height='2.6' rx='1.3' fill='%23FAF6EF'/%3E%3C/svg%3E","source":"site"},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":8}}}},"grade_history":[],"reviews":[]}