The Vivu MCP connector routes your AI agent's tool calls to Vivu's own MCP server through Scalekit. Each user signs in to Vivu once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 11 tools.
- Tools
- 11
- What they doRead · write · destructive
- 7 · 2 · 27 read2 write2 destructive
- Users sign in with
- OAuth
- OAuth app
- Your own Vivu MCP server app
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret>Create the Vivu MCP connection
In AgentKit > Connections, create a Vivu MCP connection and copy its redirect URI. The name you give it is the
connection_nameyour code passes. See Configure connections.Register an OAuth app
Vivu MCP server connections use your own OAuth app. Register one with Vivu MCP server and add the redirect URI you copied.
Then enter the app's Client ID and Client Secret on the Vivu MCP connection.
Authorize a user and make your first call
quickstart.mts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'import { createInterface } from 'node:readline/promises'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENVIRONMENT_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'vivumcp'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Vivu MCP:', link)const rl = createInterface({ input: process.stdin, output: process.stdout })await rl.question('Press Enter after authorizing...')rl.close()// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'vivumcp_vivu_get_account',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "vivumcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Vivu MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="vivumcp_vivu_get_account",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user signs in once. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_toolvivumcp_vivu_get_accountShow the Vivu account connected to this assistant.Read-onlyGet connected Vivu account
Show the Vivu account connected to this assistant.
Inputs
This tool takes no inputs.
vivumcp_vivu_get_search_resultsWait for a pending video search and return its final results when ready.Read-onlyGet video search results
Wait for a pending video search and return its final results when ready.
Inputs
job_idstringrequired- Search identifier returned by the search tool.
vivumcp_vivu_get_usageCheck the connected account's remaining allowance and plan information.Read-onlyGet Usage
Check the connected account's remaining allowance and plan information.
Inputs
This tool takes no inputs.
vivumcp_vivu_get_video_summaryRead a video's saved overview and optional timestamped section summaries.Read-onlyRead video summary
Read a video's saved overview and optional timestamped section summaries. Use this when asked what a video is about.
Inputs
project_idstringrequired- Project containing the video.
video_idstringrequired- Video to summarize.
end_msstring- Optional end of the section range in milliseconds.
include_segmentsboolean- Include section summaries.default
false limitinteger- Maximum sections in this response.default
50 offsetinteger- Section pagination offset.default
0 start_msinteger- Start of the section range in milliseconds.default
0
vivumcp_vivu_list_projectsList the video projects available to the signed-in user.Read-onlyList Vivu projects
List the video projects available to the signed-in user.
Inputs
This tool takes no inputs.
vivumcp_vivu_list_videosList videos and indexing status in a cloud project.Read-onlyList project videos
List videos and indexing status in a cloud project.
Inputs
project_idstringrequired- Project to list videos from.
vivumcp_vivu_open_upload_pageGet a secure browser page for uploading videos to a project.Read-onlyOpen video upload page
Get a secure browser page for uploading videos to a project.
Inputs
project_idstringrequired- Project to upload videos to.
vivumcp_vivu_create_projectCreate a cloud video project.WriteCreate a Vivu project
Create a cloud video project.
Inputs
namestringrequired- Name of the new project.
descriptionstring- Optional description of the project.default
visibilitystring- Who can see the project.one of
organizationprivatedefaultorganization
vivumcp_vivu_search_videosSearch a cloud video project for matching moments.WriteSearch videos
Search a cloud video project for matching moments.
Inputs
project_idstringrequired- Project to search.
querystringrequired- Description of the video moments to find.
maximum_resultsinteger- Maximum number of final matching moments to return.default
20 modestring- Choose faster results or more precise results.one of
fastprecisedefaultprecise
vivumcp_vivu_delete_projectPermanently delete a project and its videos.DestructiveDelete a Vivu project
Permanently delete a project and its videos.
- Idempotent
Inputs
project_idstringrequired- Project to delete.
vivumcp_vivu_delete_videoPermanently delete a video from a project.DestructiveDelete a project video
Permanently delete a video from a project.
- Idempotent
Inputs
project_idstringrequired- Project containing the video.
video_idstringrequired- Video to delete.
No tools match.