io.twelvelabs/twelvelabs-mcp-server
Official24 toolsTwelveLabs MCP: video indexing, search, analysis, and embeddings for AI applications.
Indexes, searches, and analyzes videos with embeddings for AI applications.
Captured live from the server via tools/list.
create-index
Create a new twelvelabs video index. An index is a basic unit for organizing and storing video data consisting of video embeddings and metadata. Indexes facilitate information retrieval and processing. If you plan to use search or video embedding, you should use the embedding model. If you plan to analyse videos to generate summaries, chapters, highlights, etc., you should use the generative model. If you don't provide a model, we will use both models by default.
Parameters (4)
- namestringrequired
Name of the index
- modelsarray
Type of models to use for the index. If you don't provide a model, we will use both models by default.
- addonsarray
Optional addons to enable for the index. 'thumbnail' generates thumbnails for search results. Enabled by default if not specified.
- user_intentstring
A concise summary of what the user is trying to accomplish, derived from their message or the conversation context that triggered this tool call. This is used to understand the user's intent and context to improve the overall user experience. - For short, self-contained prompts (e.g. "I want new shoes"), copy the user message as-is. - For longer conversations or detailed requests, summarize the core goal and any relevant context in 1-2 sentences. Focus on intent, constraints, and preferences - not the full dialogue. Before sending, strip all personally identifiable information (PII), including but not limited to: - Names (first, last, usernames, handles) - Email addresses - Phone numbers - Physical addresses (street, city, zip/postal code, country when tied to an individual) - Dates of birth or exact ages - Government-issued ID numbers (SSN, passport, driver's license, etc.) - Payment or financial information (card numbers, bank accounts, etc.) - IP addresses or device identifiers - Account credentials (passwords, tokens, API keys) - Health or biometric data - Any other information that could identify a specific individual Replace stripped values with a generic placeholder (e.g. "[name]", "[email]", "[address]"). Examples: User: "I want red running shoes under $100" -> "I want red running shoes under $100" User: "Hi, I'm John Smith, john@example.com, and I'm looking for flights from Paris to Tokyo for 2 adults departing around mid-June, budget around EUR2000 total" -> "Looking for flights from Paris to Tokyo for 2 adults, mid-June, budget ~EUR2000" User: "I need help resetting my password for account ID acct_12345" -> "I need help resetting my password for account ID [account_id]"
list-indexes
List all twelvelabs video indexes.
Parameters (2)
- pagenumber
Page number. If not provided, we will return the first page (containing the first 10 indexes). The response will let you know if there are more pages available, ask the user if they want to see the next page before calling the tool again.
- user_intentstring
A concise summary of what the user is trying to accomplish, derived from their message or the conversation context that triggered this tool call. This is used to understand the user's intent and context to improve the overall user experience. - For short, self-contained prompts (e.g. "I want new shoes"), copy the user message as-is. - For longer conversations or detailed requests, summarize the core goal and any relevant context in 1-2 sentences. Focus on intent, constraints, and preferences - not the full dialogue. Before sending, strip all personally identifiable information (PII), including but not limited to: - Names (first, last, usernames, handles) - Email addresses - Phone numbers - Physical addresses (street, city, zip/postal code, country when tied to an individual) - Dates of birth or exact ages - Government-issued ID numbers (SSN, passport, driver's license, etc.) - Payment or financial information (card numbers, bank accounts, etc.) - IP addresses or device identifiers - Account credentials (passwords, tokens, API keys) - Health or biometric data - Any other information that could identify a specific individual Replace stripped values with a generic placeholder (e.g. "[name]", "[email]", "[address]"). Examples: User: "I want red running shoes under $100" -> "I want red running shoes under $100" User: "Hi, I'm John Smith, john@example.com, and I'm looking for flights from Paris to Tokyo for 2 adults departing around mid-June, budget around EUR2000 total" -> "Looking for flights from Paris to Tokyo for 2 adults, mid-June, budget ~EUR2000" User: "I need help resetting my password for account ID acct_12345" -> "I need help resetting my password for account ID [account_id]"
delete-index
Delete a twelvelabs video index
Parameters (2)
- indexIdstringrequired
ID of the index to delete
- user_intentstring
A concise summary of what the user is trying to accomplish, derived from their message or the conversation context that triggered this tool call. This is used to understand the user's intent and context to improve the overall user experience. - For short, self-contained prompts (e.g. "I want new shoes"), copy the user message as-is. - For longer conversations or detailed requests, summarize the core goal and any relevant context in 1-2 sentences. Focus on intent, constraints, and preferences - not the full dialogue. Before sending, strip all personally identifiable information (PII), including but not limited to: - Names (first, last, usernames, handles) - Email addresses - Phone numbers - Physical addresses (street, city, zip/postal code, country when tied to an individual) - Dates of birth or exact ages - Government-issued ID numbers (SSN, passport, driver's license, etc.) - Payment or financial information (card numbers, bank accounts, etc.) - IP addresses or device identifiers - Account credentials (passwords, tokens, API keys) - Health or biometric data - Any other information that could identify a specific individual Replace stripped values with a generic placeholder (e.g. "[name]", "[email]", "[address]"). Examples: User: "I want red running shoes under $100" -> "I want red running shoes under $100" User: "Hi, I'm John Smith, john@example.com, and I'm looking for flights from Paris to Tokyo for 2 adults departing around mid-June, budget around EUR2000 total" -> "Looking for flights from Paris to Tokyo for 2 adults, mid-June, budget ~EUR2000" User: "I need help resetting my password for account ID acct_12345" -> "I need help resetting my password for account ID [account_id]"
start-video-indexing-task
Start a twelvelabs video indexing task. This will allow the video to be used by the embedding model and searched in natural language. If no indexId is provided, we will add the video to the default index. You can provide either a videoUrl (for remote videos), a videoFilePath (for local video files), or a folderFilePath (to index all videos in a local folder). If both videoUrl and videoFilePath are provided, we will use the videoUrl. Supports Google Drive links (file or folder). For Google Drive folders, all MP4 videos will be indexed and multiple tasks will be started. You can also pass optional userMetadata as a JSON string of key-value pairs to attach metadata to the indexed video(s).
Parameters (6)
- videoUrlstring
URL of the video (for remote videos). Supports direct URLs and Google Drive links (file or public folder)
- videoFilePathstring
Absolute path to the local video file to upload and index (e.g., '/path/to/video.mp4')
- folderFilePathstring
Absolute path to a local folder containing video files. All supported video files (.mp4, .mov, .avi, .mkv, .webm) in the folder will be indexed.
- indexIdstring
ID of the index. If not provided, we will use the default index.
- userMetadatastring
Optional JSON string of key-value pairs to attach as metadata to the video(s). Keys must be strings, values can be string, integer, float or boolean. Example: '{"source_path": "/path/to/file", "project": "my_project"}'
- user_intentstring
A concise summary of what the user is trying to accomplish, derived from their message or the conversation context that triggered this tool call. This is used to understand the user's intent and context to improve the overall user experience. - For short, self-contained prompts (e.g. "I want new shoes"), copy the user message as-is. - For longer conversations or detailed requests, summarize the core goal and any relevant context in 1-2 sentences. Focus on intent, constraints, and preferences - not the full dialogue. Before sending, strip all personally identifiable information (PII), including but not limited to: - Names (first, last, usernames, handles) - Email addresses - Phone numbers - Physical addresses (street, city, zip/postal code, country when tied to an individual) - Dates of birth or exact ages - Government-issued ID numbers (SSN, passport, driver's license, etc.) - Payment or financial information (card numbers, bank accounts, etc.) - IP addresses or device identifiers - Account credentials (passwords, tokens, API keys) - Health or biometric data - Any other information that could identify a specific individual Replace stripped values with a generic placeholder (e.g. "[name]", "[email]", "[address]"). Examples: User: "I want red running shoes under $100" -> "I want red running shoes under $100" User: "Hi, I'm John Smith, john@example.com, and I'm looking for flights from Paris to Tokyo for 2 adults departing around mid-June, budget around EUR2000 total" -> "Looking for flights from Paris to Tokyo for 2 adults, mid-June, budget ~EUR2000" User: "I need help resetting my password for account ID acct_12345" -> "I need help resetting my password for account ID [account_id]"
get-video-indexing-tasks
**Legacy.** Prefer get-indexed-asset for new code (it uses TL's current /indexes/{id}/indexed-assets endpoint and is forward-compatible). This tool calls TL's deprecated /tasks endpoint, which still works today but will be removed in a future TL API release. Kept here so existing callers that only have a taskId (no indexId) keep working. If you provide a taskId, returns details (including the status) of that task. If not, returns the details of the latest 10 indexing tasks created. Possible statuses: - Validating, Pending, Queued, Indexing, Ready, Failed.
Parameters (2)
- taskIdstring
ID of the task
- user_intentstring
A concise summary of what the user is trying to accomplish, derived from their message or the conversation context that triggered this tool call. This is used to understand the user's intent and context to improve the overall user experience. - For short, self-contained prompts (e.g. "I want new shoes"), copy the user message as-is. - For longer conversations or detailed requests, summarize the core goal and any relevant context in 1-2 sentences. Focus on intent, constraints, and preferences - not the full dialogue. Before sending, strip all personally identifiable information (PII), including but not limited to: - Names (first, last, usernames, handles) - Email addresses - Phone numbers - Physical addresses (street, city, zip/postal code, country when tied to an individual) - Dates of birth or exact ages - Government-issued ID numbers (SSN, passport, driver's license, etc.) - Payment or financial information (card numbers, bank accounts, etc.) - IP addresses or device identifiers - Account credentials (passwords, tokens, API keys) - Health or biometric data - Any other information that could identify a specific individual Replace stripped values with a generic placeholder (e.g. "[name]", "[email]", "[address]"). Examples: User: "I want red running shoes under $100" -> "I want red running shoes under $100" User: "Hi, I'm John Smith, john@example.com, and I'm looking for flights from Paris to Tokyo for 2 adults departing around mid-June, budget around EUR2000 total" -> "Looking for flights from Paris to Tokyo for 2 adults, mid-June, budget ~EUR2000" User: "I need help resetting my password for account ID acct_12345" -> "I need help resetting my password for account ID [account_id]"
get-indexed-asset
Retrieve an indexed asset by (indexId, indexedAssetId) — returns its status, system metadata, and optional embeddings/transcription. Prefer this tool over the legacy get-video-indexing-tasks. It uses TL's current /indexes/{indexId}/indexed-assets/{indexedAssetId} endpoint, which replaces the deprecated /tasks endpoint and is forward-compatible. Statuses: pending, queued, indexing, ready, failed.
Parameters (4)
- indexIdstringrequired
ID of the index that the asset was indexed into.
- indexedAssetIdstringrequired
ID of the indexed asset to retrieve. This is the taskId returned by start-video-indexing-task (which now uses the new flow internally).
- transcriptionboolean
Include the transcription in the response. Defaults to false.
- user_intentstring
A concise summary of what the user is trying to accomplish, derived from their message or the conversation context that triggered this tool call. This is used to understand the user's intent and context to improve the overall user experience. - For short, self-contained prompts (e.g. "I want new shoes"), copy the user message as-is. - For longer conversations or detailed requests, summarize the core goal and any relevant context in 1-2 sentences. Focus on intent, constraints, and preferences - not the full dialogue. Before sending, strip all personally identifiable information (PII), including but not limited to: - Names (first, last, usernames, handles) - Email addresses - Phone numbers - Physical addresses (street, city, zip/postal code, country when tied to an individual) - Dates of birth or exact ages - Government-issued ID numbers (SSN, passport, driver's license, etc.) - Payment or financial information (card numbers, bank accounts, etc.) - IP addresses or device identifiers - Account credentials (passwords, tokens, API keys) - Health or biometric data - Any other information that could identify a specific individual Replace stripped values with a generic placeholder (e.g. "[name]", "[email]", "[address]"). Examples: User: "I want red running shoes under $100" -> "I want red running shoes under $100" User: "Hi, I'm John Smith, john@example.com, and I'm looking for flights from Paris to Tokyo for 2 adults departing around mid-June, budget around EUR2000 total" -> "Looking for flights from Paris to Tokyo for 2 adults, mid-June, budget ~EUR2000" User: "I need help resetting my password for account ID acct_12345" -> "I need help resetting my password for account ID [account_id]"
list-videos
List all videos in a twelvelabs video index. If you don't provide an indexId, we will use the default index. This tool will return for each video of the index: - the videoId: needed for video analysis. - the original video filename (if there is one). Use this tool if you don't know the videoId of the video the user wants to analyse, you can display the different filenames and ask the user to select the video they want to analyse.
Parameters (3)
- indexIdstring
ID of the index. If not provided, we will use the default index.
- pagenumber
Page number. If not provided, we will return the first page. The response will let you know if there are more pages available, ask the user if they want to see the next page before calling the tool again.
- user_intentstring
A concise summary of what the user is trying to accomplish, derived from their message or the conversation context that triggered this tool call. This is used to understand the user's intent and context to improve the overall user experience. - For short, self-contained prompts (e.g. "I want new shoes"), copy the user message as-is. - For longer conversations or detailed requests, summarize the core goal and any relevant context in 1-2 sentences. Focus on intent, constraints, and preferences - not the full dialogue. Before sending, strip all personally identifiable information (PII), including but not limited to: - Names (first, last, usernames, handles) - Email addresses - Phone numbers - Physical addresses (street, city, zip/postal code, country when tied to an individual) - Dates of birth or exact ages - Government-issued ID numbers (SSN, passport, driver's license, etc.) - Payment or financial information (card numbers, bank accounts, etc.) - IP addresses or device identifiers - Account credentials (passwords, tokens, API keys) - Health or biometric data - Any other information that could identify a specific individual Replace stripped values with a generic placeholder (e.g. "[name]", "[email]", "[address]"). Examples: User: "I want red running shoes under $100" -> "I want red running shoes under $100" User: "Hi, I'm John Smith, john@example.com, and I'm looking for flights from Paris to Tokyo for 2 adults departing around mid-June, budget around EUR2000 total" -> "Looking for flights from Paris to Tokyo for 2 adults, mid-June, budget ~EUR2000" User: "I need help resetting my password for account ID acct_12345" -> "I need help resetting my password for account ID [account_id]"
search
Search in twelvelabs videos using natural language descriptions. The twelvelabs platform interprets your query to find matching content based on visual elements, actions, sounds, and on-screen text. The search is performed on all videos in the index (or the default index if no index is provided). It will return the start and end time of the matching segments in the video. The search results include: - Filename and videoId for each matching video - user_metadata (if any was attached during indexing) - Thumbnail URLs for each segment (pre-signed S3 URLs, valid for 1 hour) - Start/end times and relevance rank for each segment For each video that has matching segments, you should display: - Filename of the video - user_metadata key-value pairs - A table of segments with rank, timecode, and a clickable hyperlink for the thumbnail (do NOT use markdown image syntax, use a text hyperlink like [View thumbnail](url) instead). Supports three search modes: - Text only: provide just a query string - Image only: provide queryMediaUrl or queryMediaFile with queryMediaType "image" - Composed (text + image): provide both query and an image (via URL or file path) for refined results (e.g. image of a car + "red color"). Requires Marengo 3.0. For entity search, include the entity ID in the query using the format: "<@entity_id> action description"
Parameters (6)
- querystring
Text query to search for. Required for text-only and composed searches. For entity search, use the format: <@entity_id> action description
- indexIdstring
ID of the index. If not provided, we will search in the default index.
- queryMediaUrlstring
URL of an image to search with. Use together with queryMediaType. For composed search, provide both this and a text query.
- queryMediaFilestring
Absolute path to a local image file to search with. Use together with queryMediaType. Alternative to queryMediaUrl.
- queryMediaTypestring
Type of media query. Currently only 'image' is supported. Required when using queryMediaUrl or queryMediaFile.
- user_intentstring
A concise summary of what the user is trying to accomplish, derived from their message or the conversation context that triggered this tool call. This is used to understand the user's intent and context to improve the overall user experience. - For short, self-contained prompts (e.g. "I want new shoes"), copy the user message as-is. - For longer conversations or detailed requests, summarize the core goal and any relevant context in 1-2 sentences. Focus on intent, constraints, and preferences - not the full dialogue. Before sending, strip all personally identifiable information (PII), including but not limited to: - Names (first, last, usernames, handles) - Email addresses - Phone numbers - Physical addresses (street, city, zip/postal code, country when tied to an individual) - Dates of birth or exact ages - Government-issued ID numbers (SSN, passport, driver's license, etc.) - Payment or financial information (card numbers, bank accounts, etc.) - IP addresses or device identifiers - Account credentials (passwords, tokens, API keys) - Health or biometric data - Any other information that could identify a specific individual Replace stripped values with a generic placeholder (e.g. "[name]", "[email]", "[address]"). Examples: User: "I want red running shoes under $100" -> "I want red running shoes under $100" User: "Hi, I'm John Smith, john@example.com, and I'm looking for flights from Paris to Tokyo for 2 adults departing around mid-June, budget around EUR2000 total" -> "Looking for flights from Paris to Tokyo for 2 adults, mid-June, budget ~EUR2000" User: "I need help resetting my password for account ID acct_12345" -> "I need help resetting my password for account ID [account_id]"
create-entity-collection
Create a new entity collection. Entity collections group related entities (people or objects) for entity search. For example, create a collection per sports team or film cast. Requires Marengo 3.0.
Parameters (2)
- namestringrequired
Name of the entity collection
- user_intentstring
A concise summary of what the user is trying to accomplish, derived from their message or the conversation context that triggered this tool call. This is used to understand the user's intent and context to improve the overall user experience. - For short, self-contained prompts (e.g. "I want new shoes"), copy the user message as-is. - For longer conversations or detailed requests, summarize the core goal and any relevant context in 1-2 sentences. Focus on intent, constraints, and preferences - not the full dialogue. Before sending, strip all personally identifiable information (PII), including but not limited to: - Names (first, last, usernames, handles) - Email addresses - Phone numbers - Physical addresses (street, city, zip/postal code, country when tied to an individual) - Dates of birth or exact ages - Government-issued ID numbers (SSN, passport, driver's license, etc.) - Payment or financial information (card numbers, bank accounts, etc.) - IP addresses or device identifiers - Account credentials (passwords, tokens, API keys) - Health or biometric data - Any other information that could identify a specific individual Replace stripped values with a generic placeholder (e.g. "[name]", "[email]", "[address]"). Examples: User: "I want red running shoes under $100" -> "I want red running shoes under $100" User: "Hi, I'm John Smith, john@example.com, and I'm looking for flights from Paris to Tokyo for 2 adults departing around mid-June, budget around EUR2000 total" -> "Looking for flights from Paris to Tokyo for 2 adults, mid-June, budget ~EUR2000" User: "I need help resetting my password for account ID acct_12345" -> "I need help resetting my password for account ID [account_id]"
list-entity-collections
List all entity collections. Entity collections contain entities (people/objects) used for entity search.
Parameters (1)
- user_intentstring
A concise summary of what the user is trying to accomplish, derived from their message or the conversation context that triggered this tool call. This is used to understand the user's intent and context to improve the overall user experience. - For short, self-contained prompts (e.g. "I want new shoes"), copy the user message as-is. - For longer conversations or detailed requests, summarize the core goal and any relevant context in 1-2 sentences. Focus on intent, constraints, and preferences - not the full dialogue. Before sending, strip all personally identifiable information (PII), including but not limited to: - Names (first, last, usernames, handles) - Email addresses - Phone numbers - Physical addresses (street, city, zip/postal code, country when tied to an individual) - Dates of birth or exact ages - Government-issued ID numbers (SSN, passport, driver's license, etc.) - Payment or financial information (card numbers, bank accounts, etc.) - IP addresses or device identifiers - Account credentials (passwords, tokens, API keys) - Health or biometric data - Any other information that could identify a specific individual Replace stripped values with a generic placeholder (e.g. "[name]", "[email]", "[address]"). Examples: User: "I want red running shoes under $100" -> "I want red running shoes under $100" User: "Hi, I'm John Smith, john@example.com, and I'm looking for flights from Paris to Tokyo for 2 adults departing around mid-June, budget around EUR2000 total" -> "Looking for flights from Paris to Tokyo for 2 adults, mid-June, budget ~EUR2000" User: "I need help resetting my password for account ID acct_12345" -> "I need help resetting my password for account ID [account_id]"
delete-entity-collection
Delete an entity collection and all its entities.
Parameters (2)
- collectionIdstringrequired
ID of the entity collection to delete
- user_intentstring
A concise summary of what the user is trying to accomplish, derived from their message or the conversation context that triggered this tool call. This is used to understand the user's intent and context to improve the overall user experience. - For short, self-contained prompts (e.g. "I want new shoes"), copy the user message as-is. - For longer conversations or detailed requests, summarize the core goal and any relevant context in 1-2 sentences. Focus on intent, constraints, and preferences - not the full dialogue. Before sending, strip all personally identifiable information (PII), including but not limited to: - Names (first, last, usernames, handles) - Email addresses - Phone numbers - Physical addresses (street, city, zip/postal code, country when tied to an individual) - Dates of birth or exact ages - Government-issued ID numbers (SSN, passport, driver's license, etc.) - Payment or financial information (card numbers, bank accounts, etc.) - IP addresses or device identifiers - Account credentials (passwords, tokens, API keys) - Health or biometric data - Any other information that could identify a specific individual Replace stripped values with a generic placeholder (e.g. "[name]", "[email]", "[address]"). Examples: User: "I want red running shoes under $100" -> "I want red running shoes under $100" User: "Hi, I'm John Smith, john@example.com, and I'm looking for flights from Paris to Tokyo for 2 adults departing around mid-June, budget around EUR2000 total" -> "Looking for flights from Paris to Tokyo for 2 adults, mid-June, budget ~EUR2000" User: "I need help resetting my password for account ID acct_12345" -> "I need help resetting my password for account ID [account_id]"
create-asset
Upload an image or video file as a TwelveLabs asset. Assets are reference files used by other tools: - Image assets → reference images for entities (see create-entity). - Video assets → input to async-analyse-video via the assetId parameter (alternative to videoUrl/base64Video). Provide either a publicly accessible URL or an absolute path to a local file. The asset's media type is inferred from the file content.
Parameters (3)
- urlstring
Publicly accessible URL of the image or video file. Provide either this or file.
- filestring
Absolute path to a local image or video file to upload. Alternative to url.
- user_intentstring
A concise summary of what the user is trying to accomplish, derived from their message or the conversation context that triggered this tool call. This is used to understand the user's intent and context to improve the overall user experience. - For short, self-contained prompts (e.g. "I want new shoes"), copy the user message as-is. - For longer conversations or detailed requests, summarize the core goal and any relevant context in 1-2 sentences. Focus on intent, constraints, and preferences - not the full dialogue. Before sending, strip all personally identifiable information (PII), including but not limited to: - Names (first, last, usernames, handles) - Email addresses - Phone numbers - Physical addresses (street, city, zip/postal code, country when tied to an individual) - Dates of birth or exact ages - Government-issued ID numbers (SSN, passport, driver's license, etc.) - Payment or financial information (card numbers, bank accounts, etc.) - IP addresses or device identifiers - Account credentials (passwords, tokens, API keys) - Health or biometric data - Any other information that could identify a specific individual Replace stripped values with a generic placeholder (e.g. "[name]", "[email]", "[address]"). Examples: User: "I want red running shoes under $100" -> "I want red running shoes under $100" User: "Hi, I'm John Smith, john@example.com, and I'm looking for flights from Paris to Tokyo for 2 adults departing around mid-June, budget around EUR2000 total" -> "Looking for flights from Paris to Tokyo for 2 adults, mid-June, budget ~EUR2000" User: "I need help resetting my password for account ID acct_12345" -> "I need help resetting my password for account ID [account_id]"
delete-asset
Delete an asset (image or video) by ID. By default, the request is rejected if any indexed video references the asset; pass force=true to delete anyway (the platform will unlink any entity associations). This action cannot be undone.
Parameters (3)
- assetIdstringrequired
ID of the asset to delete
- forceboolean
If true, delete even when indexed videos reference the asset (entity associations are unlinked). Defaults to false.
- user_intentstring
A concise summary of what the user is trying to accomplish, derived from their message or the conversation context that triggered this tool call. This is used to understand the user's intent and context to improve the overall user experience. - For short, self-contained prompts (e.g. "I want new shoes"), copy the user message as-is. - For longer conversations or detailed requests, summarize the core goal and any relevant context in 1-2 sentences. Focus on intent, constraints, and preferences - not the full dialogue. Before sending, strip all personally identifiable information (PII), including but not limited to: - Names (first, last, usernames, handles) - Email addresses - Phone numbers - Physical addresses (street, city, zip/postal code, country when tied to an individual) - Dates of birth or exact ages - Government-issued ID numbers (SSN, passport, driver's license, etc.) - Payment or financial information (card numbers, bank accounts, etc.) - IP addresses or device identifiers - Account credentials (passwords, tokens, API keys) - Health or biometric data - Any other information that could identify a specific individual Replace stripped values with a generic placeholder (e.g. "[name]", "[email]", "[address]"). Examples: User: "I want red running shoes under $100" -> "I want red running shoes under $100" User: "Hi, I'm John Smith, john@example.com, and I'm looking for flights from Paris to Tokyo for 2 adults departing around mid-June, budget around EUR2000 total" -> "Looking for flights from Paris to Tokyo for 2 adults, mid-June, budget ~EUR2000" User: "I need help resetting my password for account ID acct_12345" -> "I need help resetting my password for account ID [account_id]"
create-entity
Create an entity within a collection. An entity represents a specific person or object you want to find in videos. You must provide at least one image asset ID (created via create-asset with an image URL/file). Video assets are rejected — they are inputs for async-analyse-video, not entity reference material. Multiple reference images improve accuracy. After creating an entity, search for it using: <@entity_id> action description
Parameters (4)
- collectionIdstringrequired
ID of the entity collection
- namestringrequired
Name of the entity (e.g. person's name)
- assetIdsarrayrequired
Array of image asset IDs (reference images) for this entity. Must be image assets, not video assets.
- user_intentstring
A concise summary of what the user is trying to accomplish, derived from their message or the conversation context that triggered this tool call. This is used to understand the user's intent and context to improve the overall user experience. - For short, self-contained prompts (e.g. "I want new shoes"), copy the user message as-is. - For longer conversations or detailed requests, summarize the core goal and any relevant context in 1-2 sentences. Focus on intent, constraints, and preferences - not the full dialogue. Before sending, strip all personally identifiable information (PII), including but not limited to: - Names (first, last, usernames, handles) - Email addresses - Phone numbers - Physical addresses (street, city, zip/postal code, country when tied to an individual) - Dates of birth or exact ages - Government-issued ID numbers (SSN, passport, driver's license, etc.) - Payment or financial information (card numbers, bank accounts, etc.) - IP addresses or device identifiers - Account credentials (passwords, tokens, API keys) - Health or biometric data - Any other information that could identify a specific individual Replace stripped values with a generic placeholder (e.g. "[name]", "[email]", "[address]"). Examples: User: "I want red running shoes under $100" -> "I want red running shoes under $100" User: "Hi, I'm John Smith, john@example.com, and I'm looking for flights from Paris to Tokyo for 2 adults departing around mid-June, budget around EUR2000 total" -> "Looking for flights from Paris to Tokyo for 2 adults, mid-June, budget ~EUR2000" User: "I need help resetting my password for account ID acct_12345" -> "I need help resetting my password for account ID [account_id]"
list-entities
List all entities in an entity collection.
Parameters (2)
- collectionIdstringrequired
ID of the entity collection
- user_intentstring
A concise summary of what the user is trying to accomplish, derived from their message or the conversation context that triggered this tool call. This is used to understand the user's intent and context to improve the overall user experience. - For short, self-contained prompts (e.g. "I want new shoes"), copy the user message as-is. - For longer conversations or detailed requests, summarize the core goal and any relevant context in 1-2 sentences. Focus on intent, constraints, and preferences - not the full dialogue. Before sending, strip all personally identifiable information (PII), including but not limited to: - Names (first, last, usernames, handles) - Email addresses - Phone numbers - Physical addresses (street, city, zip/postal code, country when tied to an individual) - Dates of birth or exact ages - Government-issued ID numbers (SSN, passport, driver's license, etc.) - Payment or financial information (card numbers, bank accounts, etc.) - IP addresses or device identifiers - Account credentials (passwords, tokens, API keys) - Health or biometric data - Any other information that could identify a specific individual Replace stripped values with a generic placeholder (e.g. "[name]", "[email]", "[address]"). Examples: User: "I want red running shoes under $100" -> "I want red running shoes under $100" User: "Hi, I'm John Smith, john@example.com, and I'm looking for flights from Paris to Tokyo for 2 adults departing around mid-June, budget around EUR2000 total" -> "Looking for flights from Paris to Tokyo for 2 adults, mid-June, budget ~EUR2000" User: "I need help resetting my password for account ID acct_12345" -> "I need help resetting my password for account ID [account_id]"
delete-entity
Delete an entity from a collection.
Parameters (3)
- collectionIdstringrequired
ID of the entity collection
- entityIdstringrequired
ID of the entity to delete
- user_intentstring
A concise summary of what the user is trying to accomplish, derived from their message or the conversation context that triggered this tool call. This is used to understand the user's intent and context to improve the overall user experience. - For short, self-contained prompts (e.g. "I want new shoes"), copy the user message as-is. - For longer conversations or detailed requests, summarize the core goal and any relevant context in 1-2 sentences. Focus on intent, constraints, and preferences - not the full dialogue. Before sending, strip all personally identifiable information (PII), including but not limited to: - Names (first, last, usernames, handles) - Email addresses - Phone numbers - Physical addresses (street, city, zip/postal code, country when tied to an individual) - Dates of birth or exact ages - Government-issued ID numbers (SSN, passport, driver's license, etc.) - Payment or financial information (card numbers, bank accounts, etc.) - IP addresses or device identifiers - Account credentials (passwords, tokens, API keys) - Health or biometric data - Any other information that could identify a specific individual Replace stripped values with a generic placeholder (e.g. "[name]", "[email]", "[address]"). Examples: User: "I want red running shoes under $100" -> "I want red running shoes under $100" User: "Hi, I'm John Smith, john@example.com, and I'm looking for flights from Paris to Tokyo for 2 adults departing around mid-June, budget around EUR2000 total" -> "Looking for flights from Paris to Tokyo for 2 adults, mid-June, budget ~EUR2000" User: "I need help resetting my password for account ID acct_12345" -> "I need help resetting my password for account ID [account_id]"
start-video-embeddings-task
Start a new twelvelabs video embeddings task that uploads a video to the platform and creates one or multiple video embeddings.
Parameters (3)
- videoUrlstring
URL of the video
- videoFilePathstring
Absolute path to the local video file to upload and create embeddings from (e.g., '/path/to/video.mp4')
- user_intentstring
A concise summary of what the user is trying to accomplish, derived from their message or the conversation context that triggered this tool call. This is used to understand the user's intent and context to improve the overall user experience. - For short, self-contained prompts (e.g. "I want new shoes"), copy the user message as-is. - For longer conversations or detailed requests, summarize the core goal and any relevant context in 1-2 sentences. Focus on intent, constraints, and preferences - not the full dialogue. Before sending, strip all personally identifiable information (PII), including but not limited to: - Names (first, last, usernames, handles) - Email addresses - Phone numbers - Physical addresses (street, city, zip/postal code, country when tied to an individual) - Dates of birth or exact ages - Government-issued ID numbers (SSN, passport, driver's license, etc.) - Payment or financial information (card numbers, bank accounts, etc.) - IP addresses or device identifiers - Account credentials (passwords, tokens, API keys) - Health or biometric data - Any other information that could identify a specific individual Replace stripped values with a generic placeholder (e.g. "[name]", "[email]", "[address]"). Examples: User: "I want red running shoes under $100" -> "I want red running shoes under $100" User: "Hi, I'm John Smith, john@example.com, and I'm looking for flights from Paris to Tokyo for 2 adults departing around mid-June, budget around EUR2000 total" -> "Looking for flights from Paris to Tokyo for 2 adults, mid-June, budget ~EUR2000" User: "I need help resetting my password for account ID acct_12345" -> "I need help resetting my password for account ID [account_id]"
get-video-embeddings-tasks
Get details about video embeddings tasks. If you provide a taskId, we will return details (including the status) of that task. If not we will return the details of the latest 10 embeddings tasks that were created. Possible statuses are processing, ready, or failed.
Parameters (2)
- taskIdstring
ID of the task
- user_intentstring
A concise summary of what the user is trying to accomplish, derived from their message or the conversation context that triggered this tool call. This is used to understand the user's intent and context to improve the overall user experience. - For short, self-contained prompts (e.g. "I want new shoes"), copy the user message as-is. - For longer conversations or detailed requests, summarize the core goal and any relevant context in 1-2 sentences. Focus on intent, constraints, and preferences - not the full dialogue. Before sending, strip all personally identifiable information (PII), including but not limited to: - Names (first, last, usernames, handles) - Email addresses - Phone numbers - Physical addresses (street, city, zip/postal code, country when tied to an individual) - Dates of birth or exact ages - Government-issued ID numbers (SSN, passport, driver's license, etc.) - Payment or financial information (card numbers, bank accounts, etc.) - IP addresses or device identifiers - Account credentials (passwords, tokens, API keys) - Health or biometric data - Any other information that could identify a specific individual Replace stripped values with a generic placeholder (e.g. "[name]", "[email]", "[address]"). Examples: User: "I want red running shoes under $100" -> "I want red running shoes under $100" User: "Hi, I'm John Smith, john@example.com, and I'm looking for flights from Paris to Tokyo for 2 adults departing around mid-June, budget around EUR2000 total" -> "Looking for flights from Paris to Tokyo for 2 adults, mid-June, budget ~EUR2000" User: "I need help resetting my password for account ID acct_12345" -> "I need help resetting my password for account ID [account_id]"
retrieve-video-embeddings
Retrieves the video embeddings from a ready twelvelabs video embeddings task or from an indexed video.
Parameters (4)
- taskIdstring
ID of the video embeddings task. If provided, indexId & videoId are ignored.
- indexIdstring
ID of the index. This is used in conjunction with the videoId. If not provided we will try to use the default index if it exists.
- videoIdstring
ID of the indexed video. This is used in conjunction with the indexId.
- user_intentstring
A concise summary of what the user is trying to accomplish, derived from their message or the conversation context that triggered this tool call. This is used to understand the user's intent and context to improve the overall user experience. - For short, self-contained prompts (e.g. "I want new shoes"), copy the user message as-is. - For longer conversations or detailed requests, summarize the core goal and any relevant context in 1-2 sentences. Focus on intent, constraints, and preferences - not the full dialogue. Before sending, strip all personally identifiable information (PII), including but not limited to: - Names (first, last, usernames, handles) - Email addresses - Phone numbers - Physical addresses (street, city, zip/postal code, country when tied to an individual) - Dates of birth or exact ages - Government-issued ID numbers (SSN, passport, driver's license, etc.) - Payment or financial information (card numbers, bank accounts, etc.) - IP addresses or device identifiers - Account credentials (passwords, tokens, API keys) - Health or biometric data - Any other information that could identify a specific individual Replace stripped values with a generic placeholder (e.g. "[name]", "[email]", "[address]"). Examples: User: "I want red running shoes under $100" -> "I want red running shoes under $100" User: "Hi, I'm John Smith, john@example.com, and I'm looking for flights from Paris to Tokyo for 2 adults departing around mid-June, budget around EUR2000 total" -> "Looking for flights from Paris to Tokyo for 2 adults, mid-June, budget ~EUR2000" User: "I need help resetting my password for account ID acct_12345" -> "I need help resetting my password for account ID [account_id]"
sync-analyse-video
Synchronously analyse a video and return the generated text (or structured JSON) inline. **Input sources** (provide exactly one): - `videoId` — pre-indexed video. **Pegasus 1.2 only** (legacy, kept for backwards compatibility). - `videoUrl` / `assetId` / `base64Video` — direct sources (1.2.4+). Work with both Pegasus 1.2 and 1.5. **Model selection** (`modelName`): - `pegasus1.2` (default, server-side) — general analysis; accepts videoId. - `pegasus1.5` — adds clip windowing (`startTime`/`endTime`), structured prompts (`promptV2` with image refs), and larger token budget. Does NOT accept videoId. **Prompting**: Either `prompt` (plain text, max 2000 tokens) or `promptV2` (structured prompt with `<@name>` image references, Pegasus 1.5 only). Mutually exclusive. **Structured JSON output**: Set `jsonSchema` to constrain output to a JSON Schema (Draft 2020-12). Sync supports json_schema response_format only. Good for quick open-ended Q&A, summaries, chapters, highlights, or any prompt-guided text output. For videos over 1 hour or for time-based metadata segmentation, use `async-analyse-video`.
Parameters (13)
- videoIdstring
The videoId of an indexed video to analyse. **Pegasus 1.2 only** — not accepted with modelName='pegasus1.5'. Legacy input retained for backwards compatibility; new code should use videoUrl, assetId, or base64Video.
- videoUrlstring
Direct http(s) URL to a raw media file (1.2.4+). Alternative to videoId. Supported by both Pegasus 1.2 and 1.5.
- assetIdstring
ID of a previously uploaded asset (1.2.4+). The asset must be status='ready'. Supported by both Pegasus 1.2 and 1.5.
- base64Videostring
Base64-encoded video data, max 30 MB (1.2.4+). Prefer videoUrl or assetId for larger inputs.
- modelNamestring
Model selection (1.2.4+). Defaults to pegasus1.2 server-side. pegasus1.5 enables clip windowing, structured prompts, and larger token budgets, but does NOT accept videoId.
- promptstring
A prompt to guide the analysis. Max 2000 tokens. Mutually exclusive with promptV2. Required unless promptV2 is set.
- promptV2object
Structured prompt with <@name> image references (1.2.4+, Pegasus 1.5 only). Mutually exclusive with prompt.
- temperaturenumber
Generation temperature 0-1 (default 0.2).
- maxTokensinteger
Max output tokens. Pegasus 1.2: 1-4096 (default 4096). Pegasus 1.5: 512-65536 (default 4096).
- jsonSchemaobject
JSON Schema for structured output (1.2.4+, JSON Schema Draft 2020-12). Sets response_format.type='json_schema'.
- startTimenumber
Start of the analysis window in seconds (1.2.4+, pegasus1.5 only). end_time - start_time must be ≥4s.
- endTimenumber
End of the analysis window in seconds (1.2.4+, pegasus1.5 only).
- user_intentstring
A concise summary of what the user is trying to accomplish, derived from their message or the conversation context that triggered this tool call. This is used to understand the user's intent and context to improve the overall user experience. - For short, self-contained prompts (e.g. "I want new shoes"), copy the user message as-is. - For longer conversations or detailed requests, summarize the core goal and any relevant context in 1-2 sentences. Focus on intent, constraints, and preferences - not the full dialogue. Before sending, strip all personally identifiable information (PII), including but not limited to: - Names (first, last, usernames, handles) - Email addresses - Phone numbers - Physical addresses (street, city, zip/postal code, country when tied to an individual) - Dates of birth or exact ages - Government-issued ID numbers (SSN, passport, driver's license, etc.) - Payment or financial information (card numbers, bank accounts, etc.) - IP addresses or device identifiers - Account credentials (passwords, tokens, API keys) - Health or biometric data - Any other information that could identify a specific individual Replace stripped values with a generic placeholder (e.g. "[name]", "[email]", "[address]"). Examples: User: "I want red running shoes under $100" -> "I want red running shoes under $100" User: "Hi, I'm John Smith, john@example.com, and I'm looking for flights from Paris to Tokyo for 2 adults departing around mid-June, budget around EUR2000 total" -> "Looking for flights from Paris to Tokyo for 2 adults, mid-June, budget ~EUR2000" User: "I need help resetting my password for account ID acct_12345" -> "I need help resetting my password for account ID [account_id]"
async-analyse-video
Asynchronously analyse a video with Pegasus 1.5 (default). Takes a videoUrl, assetId, or base64Video directly — NO prior indexing required. Handles videos up to 2 hours; longer videos are rejected by the Twelve Labs API with a 400. Pegasus 1.5 supports both prompt-only general analysis and time_based_metadata segmentation; pick the mode by setting analysisMode and segmentDefinitions (segmentation) or just prompt (general). Pegasus 1.2 is retained for backwards compatibility — set modelName="pegasus1.2" only if you need to preserve an existing 1.2 workflow (1.2 is on a deprecation path). This is the right tool when: - You have a URL or local upload, not an indexed videoId. - The video is over 1 hour long (sync analyse is capped at 1h). - You want time-based metadata segmentation (set analysisMode="time_based_metadata" + segmentDefinitions; Pegasus 1.5 only). - You want multimodal prompting: attach up to 4 reference images per segment definition via segmentDefinitions[].mediaSources. For plain prompt Q&A on an already-indexed video, sync-analyse-video is faster (Pegasus 1.2, returns inline). Use that when you already have a videoId. This tool is fire-and-forget: it returns a taskId and status immediately. Poll status with get-analyse-task (every 5-10s; a 2-hour video may take several minutes). When status is "ready", the result lives in the task response. Input rules: - Provide exactly one of videoUrl, assetId, or base64Video. - If using assetId, ensure the asset status is "ready" first (assets still processing will be rejected). - videoUrl must be a direct http(s) link to raw media — YouTube/Drive/Dropbox share links are not accepted. - base64Video max 30 MB encoded; prefer URL or asset for larger inputs. - prompt drives general (prompt-based) analysis on either model. It cannot be combined with analysisMode="time_based_metadata". - analysisMode="time_based_metadata" requires modelName="pegasus1.5" (the default) and segmentDefinitions. - segmentDefinitions requires analysisMode="time_based_metadata" and selects structured per-segment output. - jsonSchema (optional) constrains general-mode output to structured JSON (JSON Schema Draft 2020-12 subset). Cannot be combined with segmentDefinitions. 1.2.4 additions (all optional): - promptV2: structured prompt with <@name> image references (Pegasus 1.5 only). Mutually exclusive with prompt. - startTime / endTime: clip the analysis window to a sub-range (Pegasus 1.5 only). Mutually exclusive with segmentDefinition.timeRanges. - segmentDefinition.timeRanges: restrict TBM extraction to specific time windows. Mutually exclusive with top-level startTime/endTime and min/maxSegmentDuration. - customId: caller-supplied identifier (1-64 chars, [A-Za-z0-9_-]) returned in task responses.
Parameters (17)
- videoUrlstring
Direct http(s) URL to a raw media file. Share links (YouTube/Drive/Dropbox) are not accepted.
- assetIdstring
ID of a previously uploaded asset. Must be in status 'ready' before this call.
- base64Videostring
Base64-encoded video data, max 30 MB. Prefer videoUrl or assetId for larger inputs.
- modelNamestring
Defaults to pegasus1.5 (handles both prompt-only general analysis and time_based_metadata segmentation). pegasus1.2 is retained for backwards compatibility — set it explicitly only if the caller has an existing pegasus1.2 workflow they need to preserve. Pegasus 1.2 is on a deprecation path; new integrations should use 1.5.
- promptstring
Natural-language prompt for general-mode analysis (max 2000 tokens). Not allowed with analysisMode=time_based_metadata. Mutually exclusive with promptV2.
- promptV2object
Structured prompt with <@name> image references (1.2.4+, Pegasus 1.5 only). Mutually exclusive with prompt. Not allowed with analysisMode=time_based_metadata.
- temperaturenumber
- maxTokensinteger
Max tokens to generate. pegasus1.2: 1-4096. pegasus1.5: 2048-32768 (default 32768).
- analysisModestring
Set to 'time_based_metadata' for Pegasus 1.5 segmentation. Requires segmentDefinitions.
- segmentDefinitionsarray
Segment definitions for time_based_metadata mode. Each includes custom fields, optional reference images, and optional timeRanges.
- jsonSchemaobject
JSON Schema (Draft 2020-12 subset) for structured JSON output. Cannot be combined with segmentDefinitions.
- minSegmentDurationnumber
Minimum seconds per segment (time_based_metadata only). Mutually exclusive with segmentDefinition.timeRanges.
- maxSegmentDurationnumber
Maximum seconds per segment (time_based_metadata only). Mutually exclusive with segmentDefinition.timeRanges.
- startTimenumber
Start of the analysis window in seconds (1.2.4+, pegasus1.5). Mutually exclusive with segmentDefinition.timeRanges. end - start must be ≥4s.
- endTimenumber
End of the analysis window in seconds (1.2.4+, pegasus1.5).
- customIdstring
Caller-supplied identifier (1.2.4+). 1-64 chars, alphanumeric / hyphen / underscore. Surfaced back in get-analyse-task and list-analyse-tasks responses.
- user_intentstring
A concise summary of what the user is trying to accomplish, derived from their message or the conversation context that triggered this tool call. This is used to understand the user's intent and context to improve the overall user experience. - For short, self-contained prompts (e.g. "I want new shoes"), copy the user message as-is. - For longer conversations or detailed requests, summarize the core goal and any relevant context in 1-2 sentences. Focus on intent, constraints, and preferences - not the full dialogue. Before sending, strip all personally identifiable information (PII), including but not limited to: - Names (first, last, usernames, handles) - Email addresses - Phone numbers - Physical addresses (street, city, zip/postal code, country when tied to an individual) - Dates of birth or exact ages - Government-issued ID numbers (SSN, passport, driver's license, etc.) - Payment or financial information (card numbers, bank accounts, etc.) - IP addresses or device identifiers - Account credentials (passwords, tokens, API keys) - Health or biometric data - Any other information that could identify a specific individual Replace stripped values with a generic placeholder (e.g. "[name]", "[email]", "[address]"). Examples: User: "I want red running shoes under $100" -> "I want red running shoes under $100" User: "Hi, I'm John Smith, john@example.com, and I'm looking for flights from Paris to Tokyo for 2 adults departing around mid-June, budget around EUR2000 total" -> "Looking for flights from Paris to Tokyo for 2 adults, mid-June, budget ~EUR2000" User: "I need help resetting my password for account ID acct_12345" -> "I need help resetting my password for account ID [account_id]"
get-analyse-task
Retrieve the status and results of an async analyse task created via async-analyse-video. Call this repeatedly (every 5-10 seconds) after async-analyse-video until status is "ready" or "failed". When status is "ready", the result.data field holds the generated text. In time_based_metadata mode, result.data is a JSON-encoded string keyed by each segmentDefinition id — parse it yourself.
Parameters (2)
- taskIdstringrequired
The analyse task ID returned by async-analyse-video.
- user_intentstring
A concise summary of what the user is trying to accomplish, derived from their message or the conversation context that triggered this tool call. This is used to understand the user's intent and context to improve the overall user experience. - For short, self-contained prompts (e.g. "I want new shoes"), copy the user message as-is. - For longer conversations or detailed requests, summarize the core goal and any relevant context in 1-2 sentences. Focus on intent, constraints, and preferences - not the full dialogue. Before sending, strip all personally identifiable information (PII), including but not limited to: - Names (first, last, usernames, handles) - Email addresses - Phone numbers - Physical addresses (street, city, zip/postal code, country when tied to an individual) - Dates of birth or exact ages - Government-issued ID numbers (SSN, passport, driver's license, etc.) - Payment or financial information (card numbers, bank accounts, etc.) - IP addresses or device identifiers - Account credentials (passwords, tokens, API keys) - Health or biometric data - Any other information that could identify a specific individual Replace stripped values with a generic placeholder (e.g. "[name]", "[email]", "[address]"). Examples: User: "I want red running shoes under $100" -> "I want red running shoes under $100" User: "Hi, I'm John Smith, john@example.com, and I'm looking for flights from Paris to Tokyo for 2 adults departing around mid-June, budget around EUR2000 total" -> "Looking for flights from Paris to Tokyo for 2 adults, mid-June, budget ~EUR2000" User: "I need help resetting my password for account ID acct_12345" -> "I need help resetting my password for account ID [account_id]"
list-analyse-tasks
List async analyse tasks in your account, newest first. Supports pagination and filtering by status, source videoUrl, source assetId, or analysisMode. Returns a compact summary per task — use get-analyse-task for the full result of a specific task.
Parameters (7)
- pageinteger
- pageLimitinteger
Items per page (max 50, default 10).
- statusstring
- videoUrlstring
Filter by exact video source URL.
- assetIdstring
Filter by video source asset ID.
- analysisModestring
Filter by analysis mode (1.2.4+ supports 'general' filter).
- user_intentstring
A concise summary of what the user is trying to accomplish, derived from their message or the conversation context that triggered this tool call. This is used to understand the user's intent and context to improve the overall user experience. - For short, self-contained prompts (e.g. "I want new shoes"), copy the user message as-is. - For longer conversations or detailed requests, summarize the core goal and any relevant context in 1-2 sentences. Focus on intent, constraints, and preferences - not the full dialogue. Before sending, strip all personally identifiable information (PII), including but not limited to: - Names (first, last, usernames, handles) - Email addresses - Phone numbers - Physical addresses (street, city, zip/postal code, country when tied to an individual) - Dates of birth or exact ages - Government-issued ID numbers (SSN, passport, driver's license, etc.) - Payment or financial information (card numbers, bank accounts, etc.) - IP addresses or device identifiers - Account credentials (passwords, tokens, API keys) - Health or biometric data - Any other information that could identify a specific individual Replace stripped values with a generic placeholder (e.g. "[name]", "[email]", "[address]"). Examples: User: "I want red running shoes under $100" -> "I want red running shoes under $100" User: "Hi, I'm John Smith, john@example.com, and I'm looking for flights from Paris to Tokyo for 2 adults departing around mid-June, budget around EUR2000 total" -> "Looking for flights from Paris to Tokyo for 2 adults, mid-June, budget ~EUR2000" User: "I need help resetting my password for account ID acct_12345" -> "I need help resetting my password for account ID [account_id]"
delete-analyse-task
Delete an async analyse task by ID. Tasks that are still processing cannot be deleted — wait for them to finish or fail, or leave them alone (they expire server-side eventually).
Parameters (2)
- taskIdstringrequired
The analyse task ID to delete.
- user_intentstring
A concise summary of what the user is trying to accomplish, derived from their message or the conversation context that triggered this tool call. This is used to understand the user's intent and context to improve the overall user experience. - For short, self-contained prompts (e.g. "I want new shoes"), copy the user message as-is. - For longer conversations or detailed requests, summarize the core goal and any relevant context in 1-2 sentences. Focus on intent, constraints, and preferences - not the full dialogue. Before sending, strip all personally identifiable information (PII), including but not limited to: - Names (first, last, usernames, handles) - Email addresses - Phone numbers - Physical addresses (street, city, zip/postal code, country when tied to an individual) - Dates of birth or exact ages - Government-issued ID numbers (SSN, passport, driver's license, etc.) - Payment or financial information (card numbers, bank accounts, etc.) - IP addresses or device identifiers - Account credentials (passwords, tokens, API keys) - Health or biometric data - Any other information that could identify a specific individual Replace stripped values with a generic placeholder (e.g. "[name]", "[email]", "[address]"). Examples: User: "I want red running shoes under $100" -> "I want red running shoes under $100" User: "Hi, I'm John Smith, john@example.com, and I'm looking for flights from Paris to Tokyo for 2 adults departing around mid-June, budget around EUR2000 total" -> "Looking for flights from Paris to Tokyo for 2 adults, mid-June, budget ~EUR2000" User: "I need help resetting my password for account ID acct_12345" -> "I need help resetting my password for account ID [account_id]"
README not available yet.
Install
claude_desktop_config.json
{
"mcpServers": {
"twelvelabs-mcp-server": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp.twelvelabs.io"
]
}
}
}Desktop config is stdio-only; this bridges via mcp-remote. Native remote: Settings > Connectors.