{"name":"Vidext","title":"Vidext — AI learning orchestrator","description":"Vidext turns a single prompt into a structured learning path — outline, narrated slides, and AI-generated imagery — grounded in the organization's own documents. Built for agents: Studio is available over a remote MCP endpoint.","url":"https://staging.vidext.com/sign-in","website":"https://vidext.io","documentation":"https://staging.vidext.com/llms.txt","fullDocumentation":"https://staging.vidext.com/llms-full.txt","mcp":{"name":"Vidext Studio","description":"Vidext Studio is an AI learning orchestrator exposed over MCP: turn a prompt into a structured learning path with outlines, narrated slides, and AI-generated imagery, grounded in the organization's own documents.","endpoint":"https://staging.vidext.com/api/mcp/studio","transport":"streamable-http","protocolVersion":"2025-06-18","serverCard":"https://staging.vidext.com/.well-known/mcp/server-card.json"},"auth":{"type":"oauth2","authorizationServer":"https://staging.vidext.com/.well-known/oauth-authorization-server","protectedResource":"https://staging.vidext.com/.well-known/oauth-protected-resource"},"tools":[{"name":"list_studio_projects","title":"List Studio projects","description":"STEP 1 (DISCOVERY) — List the Vidext Studio projects the user already has access to. Use this tool first whenever the user refers to continuing, editing, finding, opening, or iterating on an existing course/project. Returns projects ordered by most-recently-updated."},{"name":"list_studio_courses","title":"List Studio courses","description":"COURSE DISCOVERY — List the multi-module Vidext Studio courses the user already has access to. Use this tool first whenever the user refers to continuing, editing, finding, opening, or monitoring an existing course-level workflow. Returns courses ordered by most-recently-updated with active module counts."},{"name":"get_studio_course_status","title":"Get Studio course status","description":"COURSE STATUS — Fetch a course and aggregate each ordered module's Studio planner/builder state into stable status values: pending, running, ready, or failed. Use this after list_studio_courses or start_studio_course_planning to monitor a multi-module course without polling modules one by one."},{"name":"draft_studio_outline","title":"Draft Studio outline","description":"PLAN-ONLY — Start outline generation for a Vidext Studio course from a single prompt, without running the content builder. Use this when the user wants to plan, draft, preview, sketch, or review the structure before committing to a full build. Returns immediately with projectId, plannerRunId, awaitingOutline=true, and build-context readiness; poll get_studio_outline_status until outlineReady is true. Idempotent: when called with a projectId whose outline run is already in flight, returns kind=\"in_progress\" with the existing plannerRunId instead of starting a new run. When a fresh run is started, returns kind=\"started\"."},{"name":"start_studio_build","title":"Start Studio build","description":"FULL PIPELINE — Create/build/generate a complete Vidext Studio course and keep the request open until the outline is ready, the plan is approved, and the builder reaches completed or failed. Use this when the user asks to create, build, generate, make, produce, or ship a course."},{"name":"create_studio_document_uploads","title":"Create Studio document uploads","description":"DOCUMENT UPLOAD STEP 1 — Create pending Studio document records and presigned R2 upload URLs for local files. After uploading each file directly to its uploadUrl with the returned requiredHeaders, call complete_studio_document_uploads."},{"name":"complete_studio_document_uploads","title":"Complete Studio document uploads","description":"DOCUMENT UPLOAD STEP 2 — Complete pending Studio document uploads after files have been PUT to the uploadUrl returned by create_studio_document_uploads. Verifies each object in R2, enqueues document processing, and optionally starts a Studio draft/build using the completed documentIds."},{"name":"start_studio_course_planning","title":"Start Studio course planning","description":"COURSE PLANNING PIPELINE STEP 1 — Create a source-grounded course-level curriculum and ordered project module shells for review. Does not start module planners until confirm_studio_course_structure is called."},{"name":"confirm_studio_course_structure","title":"Confirm Studio course structure","description":"COURSE PLANNING PIPELINE STEP 2 — Confirm the reviewed course structure and start each module's Studio planner. Module planners receive already-imported source documents and skip prompt URL import."},{"name":"approve_studio_plan","title":"Approve Studio plan","description":"FULL PIPELINE STEP 2 — Call the planner's approve_plan tool to approve the current outline and start the builder. Returns builderRunId on success. If the response is a retryable build-context error, wait briefly and retry approve_studio_plan with the same projectId."},{"name":"get_studio_outline_status","title":"Get Studio outline status","description":"POLL — Fetch the latest planner outline status for a project after draft_studio_outline or module planner startup returns awaitingOutline=true. Use this to check phase, outlineReady, plannerRunId, isOutlineBuilding, and outlineError without rerunning outline generation."},{"name":"open_studio_project_for_edit","title":"Open Studio project for edit","description":"EDIT MODE — Reopen an existing finished Vidext Studio project into planner outline phase so it can be edited through MCP. Use this before changing a previously built course."},{"name":"edit_studio_outline","title":"Edit Studio outline","description":"EDIT MODE — Apply concrete editing instructions to the current outline of an existing Vidext Studio project. Use after open_studio_project_for_edit or when the project is already in outline phase. When applying one of the returned outlineSuggestions, pass its id as appliedSuggestionId so the planner can keep the remaining suggestions and mark the chosen one applied. The response includes a diffSummary describing which chapters were added, removed, or modified by this single edit so callers can detect when an unrelated chapter changed."},{"name":"edit_studio_project_content","title":"Edit Studio project content","description":"FINISHED CONTENT EDITOR — Apply direct, validated edits to the published Studio course.json snapshot. Use this for concrete text edits, quiz edits, image src URL replacements using already-uploaded/provided media URLs, adding/removing/reordering/moving scenes, changing scene layouts, or regenerating current narration/audio/avatar media for a scene in an already-built course without reopening planner state. Committed edits synthesize narration audio for touched scenes and generate avatar video for touched avatar-driven scenes only."},{"name":"rebuild_studio_project","title":"Rebuild Studio project","description":"EDIT MODE — Start a new builder run from the current editable outline of an existing Vidext Studio project, without regenerating the outline from the original prompt. Use this after editing a finished course."},{"name":"get_studio_build_status","title":"Get Studio build status","description":"POLL — Fetch the latest build state for a project. If approve_studio_plan or rebuild_studio_project returned builderRunId, pass it to fetch that exact run. If no builderRunId was returned, pass projectId only to inspect whether the build is not_started or handoff_failed. Call repeatedly until builderState.status becomes completed or failed. When status is failed, also check builderState.retryable: true means transient infrastructure and false means the failure is genuine."},{"name":"connector_search","title":"Search connected connector","description":"CONNECTOR SEARCH — Search connected external knowledge sources such as Google Drive, Microsoft Teams, and Notion. Use this when the user asks to gather source material from a connected provider. Returns sanitized item metadata only; call connector_read with an item's externalId to retrieve content."},{"name":"connector_read","title":"Read connected connector item","description":"CONNECTOR READ — Read content from one connected external connector item by provider and external id. Use connector_search first to discover item ids."}]}