Loom MCP Server for Cloudflare Workers
27 tools available in the Loom MCP server. Each tool can be called by AI assistants to perform specific actions.
loom_get_current_userGet the current authenticated user's information.
Returns: User object with id, email, name, and avatar URL.
{
"type": "object",
"properties": {}
}loom_get_spaceGet details about a shared library space.
Args:
Returns: Space object with id, name, description, memberCount, videoCount.
{
"type": "object",
"required": [
"spaceId"
],
"properties": {
"spaceId": {
"type": "string",
"description": "The space ID"
}
}
}loom_list_videosList videos from the user's Loom account with pagination.
Args:
Returns: Paginated list of videos with id, title, status, duration, URLs, and metadata.
{
"type": "object",
"properties": {
"perPage": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Number of videos per page"
},
"nextCursor": {
"type": "string",
"description": "Pagination cursor from previous response"
}
}
}loom_get_videoGet detailed information about a specific video.
Args:
Returns: Complete video object with all metadata including embed URL, share URL, owner info.
{
"type": "object",
"required": [
"videoId"
],
"properties": {
"videoId": {
"type": "string",
"description": "The Loom video ID"
}
}
}loom_update_videoUpdate a video's title, description, or privacy settings.
Args:
Returns: Updated video ID.
{
"type": "object",
"required": [
"videoId"
],
"properties": {
"title": {
"type": "string",
"description": "New video title"
},
"videoId": {
"type": "string",
"description": "The Loom video ID"
},
"description": {
"type": "string",
"description": "New video description"
}
}
}loom_delete_videoDelete a video from Loom.
Args:
Returns: Confirmation of deletion.
{
"type": "object",
"required": [
"videoId"
],
"properties": {
"videoId": {
"type": "string",
"description": "The Loom video ID to delete"
}
}
}loom_search_videosSearch for videos by query string.
Args:
Returns: Paginated list of matching videos.
{
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"description": "Search query"
},
"perPage": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Results per page"
},
"nextCursor": {
"type": "string",
"description": "Pagination cursor"
}
}
}loom_move_video_to_folderMove a video to a specific folder.
Args:
Returns: Confirmation of move.
{
"type": "object",
"required": [
"videoId",
"folderId"
],
"properties": {
"videoId": {
"type": "string",
"description": "The video ID to move"
},
"folderId": {
"type": "string",
"description": "The target folder ID"
}
}
}loom_duplicate_videoCreate a duplicate copy of a video.
Args:
Returns: The new duplicated video object.
{
"type": "object",
"required": [
"videoId"
],
"properties": {
"videoId": {
"type": "string",
"description": "The video ID to duplicate"
}
}
}loom_get_transcriptGet the transcript for a video with timestamps.
Args:
Returns: Transcript with segments (startTime, endTime, text) and full text.
{
"type": "object",
"required": [
"videoId"
],
"properties": {
"videoId": {
"type": "string",
"description": "The Loom video ID"
}
}
}loom_get_video_analyticsGet analytics data for a video.
Args:
Returns: Analytics with totalViews, uniqueViewers, averagePercentWatched, totalWatchTime.
{
"type": "object",
"required": [
"videoId"
],
"properties": {
"videoId": {
"type": "string",
"description": "The Loom video ID"
}
}
}loom_list_commentsList all comments on a video.
Args:
Returns: Array of comments with id, text, timestamp, author, and createdAt.
{
"type": "object",
"required": [
"videoId"
],
"properties": {
"videoId": {
"type": "string",
"description": "The Loom video ID"
}
}
}loom_create_commentAdd a comment to a video.
Args:
Returns: The created comment object.
{
"type": "object",
"required": [
"videoId",
"text"
],
"properties": {
"text": {
"type": "string",
"description": "Comment text"
},
"videoId": {
"type": "string",
"description": "The Loom video ID"
},
"timestamp": {
"type": "number",
"description": "Timestamp in seconds"
}
}
}loom_list_foldersList folders from the user's Loom account.
Args:
Returns: Paginated list of folders with id, name, videoCount.
{
"type": "object",
"properties": {
"perPage": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Folders per page"
},
"nextCursor": {
"type": "string",
"description": "Pagination cursor"
}
}
}loom_create_folderCreate a new folder.
Args:
Returns: The created folder object.
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Folder name"
},
"parentId": {
"type": "string",
"description": "Parent folder ID"
}
}
}loom_get_folderGet details about a specific folder.
Args:
Returns: Folder object with id, name, videoCount.
{
"type": "object",
"required": [
"folderId"
],
"properties": {
"folderId": {
"type": "string",
"description": "The folder ID"
}
}
}loom_update_folderUpdate a folder's name.
Args:
Returns: Updated folder object.
{
"type": "object",
"required": [
"folderId",
"name"
],
"properties": {
"name": {
"type": "string",
"description": "New folder name"
},
"folderId": {
"type": "string",
"description": "The folder ID"
}
}
}loom_delete_folderDelete a folder.
Args:
Returns: Confirmation of deletion.
{
"type": "object",
"required": [
"folderId"
],
"properties": {
"folderId": {
"type": "string",
"description": "The folder ID to delete"
}
}
}loom_list_workspacesList all workspaces the user has access to.
Returns: Array of workspaces with id, name, memberCount.
{
"type": "object",
"properties": {}
}loom_get_workspaceGet details about a specific workspace.
Args:
Returns: Workspace object with id, name, memberCount.
{
"type": "object",
"required": [
"workspaceId"
],
"properties": {
"workspaceId": {
"type": "string",
"description": "The workspace ID"
}
}
}loom_list_spacesList shared library spaces.
Args:
Returns: Paginated list of spaces.
{
"type": "object",
"properties": {
"perPage": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Spaces per page"
},
"nextCursor": {
"type": "string",
"description": "Pagination cursor"
}
}
}loom_list_space_videosList videos in a shared library space.
Args:
Returns: Paginated list of videos in the space.
{
"type": "object",
"required": [
"spaceId"
],
"properties": {
"perPage": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Videos per page"
},
"spaceId": {
"type": "string",
"description": "The space ID"
},
"nextCursor": {
"type": "string",
"description": "Pagination cursor"
}
}
}loom_add_video_to_spaceAdd a video to a shared library space.
Args:
Returns: Confirmation of addition.
{
"type": "object",
"required": [
"spaceId",
"videoId"
],
"properties": {
"spaceId": {
"type": "string",
"description": "The space ID"
},
"videoId": {
"type": "string",
"description": "The video ID to add"
}
}
}loom_remove_video_from_spaceRemove a video from a shared library space.
Args:
Returns: Confirmation of removal.
{
"type": "object",
"required": [
"spaceId",
"videoId"
],
"properties": {
"spaceId": {
"type": "string",
"description": "The space ID"
},
"videoId": {
"type": "string",
"description": "The video ID to remove"
}
}
}loom_get_oembedGet oEmbed metadata for a Loom video URL.
Args:
Returns: oEmbed object with HTML embed code, dimensions, title, thumbnail.
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "Loom video share URL"
},
"maxWidth": {
"type": "integer",
"description": "Maximum embed width"
},
"maxHeight": {
"type": "integer",
"description": "Maximum embed height"
}
}
}loom_get_embed_htmlGenerate embed HTML code for a video.
Args:
Returns: HTML iframe embed code.
{
"type": "object",
"required": [
"videoId"
],
"properties": {
"width": {
"type": "integer",
"description": "Embed width in pixels"
},
"height": {
"type": "integer",
"description": "Embed height in pixels"
},
"videoId": {
"type": "string",
"description": "The Loom video ID"
},
"autoplay": {
"type": "boolean",
"description": "Autoplay video"
}
}
}loom_create_record_linkCreate a shareable link that allows someone to record a Loom video.
Args:
Returns: Record link object with URL and metadata.
{
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Title for recorded video"
},
"folderId": {
"type": "string",
"description": "Folder ID to save video"
},
"expiresInMinutes": {
"type": "integer",
"description": "Link expiration in minutes"
}
}
}