Account Info
account_infoFull Description
Get information about the currently connected MotionHub account and authenticated user. Use this to verify which account the AI assistant is operating on.
Manage media production projects with AI. Access tasks, scripts, calendars, boards, media files with transcripts and AI analysis, contacts, and team scheduling. Search footage using natural language to find clips by topic, speaker, or content — even when exact keywords don't match.
account_infoGet information about the currently connected MotionHub account and authenticated user. Use this to verify which account the AI assistant is operating on.
account_list_usersList all users in the account with their roles and status. Requires owner or admin permission.
board_card_attach_fileAttach an existing project file to a card
board_idstringBoard ID
card_idstringCard ID
file_idstringFile ID to attach
project_idstringProject ID
board_card_attach_taskAttach a task to a card
board_idstringBoard ID
card_idstringCard ID
project_idstringProject ID
task_idstringTask ID to attach
board_card_createCreate a new card in a board column
board_idstringBoard ID
column_idstringColumn ID to place the card in
namestringCard name
project_idstringProject ID
descriptionstringCard description
board_card_create_commentAdd a comment to a card. Set parent_id to reply to an existing comment.
board_idstringBoard ID
card_idstringCard ID
project_idstringProject ID
textstringComment text
parent_idstringParent comment ID (for threaded replies)
board_card_create_linkAdd a link to a card
board_idstringBoard ID
card_idstringCard ID
display_textstringDisplay text for the link
project_idstringProject ID
urlstringLink URL
board_card_deleteDelete a card and all its attachments
board_idstringBoard ID
card_idstringCard ID
project_idstringProject ID
board_card_delete_commentDelete a comment and all its replies
board_idstringBoard ID
comment_idstringComment ID to delete
project_idstringProject ID
board_card_delete_linkRemove a link from a card
board_idstringBoard ID
link_idstringLink ID to delete
project_idstringProject ID
board_card_detach_fileRemove a file from a card
board_idstringBoard ID
card_idstringCard ID
file_idstringFile ID to detach
project_idstringProject ID
board_card_detach_taskRemove a task from a card
board_idstringBoard ID
card_idstringCard ID
project_idstringProject ID
task_idstringTask ID to detach
board_card_getGet details of a specific card
board_idstringBoard ID
card_idstringCard ID
project_idstringProject ID
board_card_listList cards in a board, optionally filtered by column. Returns paginated results (default 100, max 500).
board_idstringBoard ID
project_idstringProject ID
column_idstringFilter by column ID
limitnumberMax results to return (default 100, max 500)
offsetnumberNumber of results to skip (for pagination)
board_card_list_commentsList comments on a card (includes threaded replies)
board_idstringBoard ID
card_idstringCard ID
project_idstringProject ID
board_card_list_filesList files attached to a card
board_idstringBoard ID
card_idstringCard ID
project_idstringProject ID
board_card_list_linksList links attached to a card
board_idstringBoard ID
card_idstringCard ID
project_idstringProject ID
board_card_list_tasksList tasks attached to a card
board_idstringBoard ID
card_idstringCard ID
project_idstringProject ID
board_card_remove_imageRemove the image from a card
board_idstringBoard ID
card_idstringCard ID
project_idstringProject ID
board_card_set_imageSet a card image from a URL. The image is downloaded, resized to 512px, and stored as base64.
board_idstringBoard ID
card_idstringCard ID
image_urlstringURL of the image to download and set
project_idstringProject ID
board_card_set_image_from_articleFetch an article URL, extract the og:image or best available thumbnail, and set it as the card image. Prefer this over board_card_set_image whenever a source article URL is available — no image URL required, the server handles all extraction automatically.
board_idstringBoard ID
card_idstringCard ID
project_idstringProject ID
source_urlstringFull URL of the article to extract an image from
board_card_updateUpdate a card. Set column_id to move the card to a different column.
board_idstringBoard ID
card_idstringCard ID
project_idstringProject ID
column_idstringMove card to this column
descriptionstringNew description
namestringNew card name
board_column_createAdd a new column to a board
board_idstringBoard ID
namestringColumn name
project_idstringProject ID
colorstringColour hex code (e.g. #3b82f6)
board_column_deleteDelete a column. Must have no cards assigned and board must have at least 2 columns.
board_idstringBoard ID
column_idstringColumn ID
project_idstringProject ID
board_column_listList columns in a board
board_idstringBoard ID
project_idstringProject ID
board_column_updateUpdate a column name or colour
board_idstringBoard ID
column_idstringColumn ID
project_idstringProject ID
colorstringNew colour hex code
namestringNew column name
board_createCreate a new kanban board in a project
namestringBoard name
project_idstringProject ID
descriptionstringBoard description
board_deleteDelete a board and all its columns, cards, and attachments
board_idstringBoard ID
project_idstringProject ID
board_getGet a specific board with its details
board_idstringBoard ID
project_idstringProject ID
board_listList all kanban boards in a project
project_idstringProject ID
board_updateUpdate a board name or description
board_idstringBoard ID
project_idstringProject ID
descriptionstringNew description
namestringNew board name
calendar_check_contact_conflictsCheck if a contact has overlapping calendar events across all projects in a date range. Use this before assigning contacts to events or when changing event dates.
contact_idstringContact ID to check
end_datestringEnd date (YYYY-MM-DD)
project_idstringProject ID
start_datestringStart date (YYYY-MM-DD)
exclude_event_idstringEvent ID to exclude
calendar_check_user_conflictsCheck if a team member has overlapping calendar events across all projects in a date range. Use this before assigning users to events or when changing event dates.
end_datestringEnd date (YYYY-MM-DD)
project_idstringProject ID
start_datestringStart date (YYYY-MM-DD)
user_idstringUser ID to check
exclude_event_idstringEvent ID to exclude (useful when updating an existing event)
calendar_event_assign_userAssign a team member to a calendar event. IMPORTANT: Always use calendar_check_user_conflicts first to check for scheduling overlaps before assigning.
event_idstringCalendar event ID
project_idstringProject ID
user_idstringUser ID to assign
calendar_event_attach_taskLink a task to a calendar event
event_idstringCalendar event ID
project_idstringProject ID
task_idstringTask ID to attach
calendar_event_createCreate a new calendar event in a project
end_datestringEnd date (YYYY-MM-DD)
namestringEvent name
project_idstringProject ID
start_datestringStart date (YYYY-MM-DD)
colorstringColour hex code
descriptionstringEvent description
group_idstringCalendar group ID
row_idstringCalendar row ID to place event in
statusstringEvent status (default: planned)
calendar_event_deleteDelete one or more calendar events
event_idsarrayEvent ID(s) to delete
project_idstringProject ID
calendar_event_detach_taskRemove a task from a calendar event
event_idstringCalendar event ID
project_idstringProject ID
task_idstringTask ID to detach
calendar_event_getGet details of a specific calendar event including assigned users, contacts, and task count
event_idstringCalendar event ID
project_idstringProject ID
calendar_event_listList all calendar events in a project. Returns paginated results (default 100, max 500).
project_idstringProject ID
limitnumberMax results to return (default 100, max 500)
offsetnumberNumber of results to skip (for pagination)
calendar_event_unassign_userRemove a team member from a calendar event
event_idstringCalendar event ID
project_idstringProject ID
user_idstringUser ID to remove
calendar_event_updateUpdate an existing calendar event. If changing dates on an event with assigned users or contacts, use calendar_check_user_conflicts and calendar_check_contact_conflicts to check for scheduling overlaps.
event_idstringCalendar event ID
project_idstringProject ID
colorstringNew colour
descriptionstringNew description
end_datestringNew end date (YYYY-MM-DD)
group_idMove event to a different group (null to unset)
namestringNew event name
row_idMove event to a different row (null to unset)
sort_ordernumberNew sort order position
start_datestringNew start date (YYYY-MM-DD)
statusstringNew status
calendar_group_createCreate a new calendar group in a project
namestringGroup name
project_idstringProject ID
colorstringColour hex code
calendar_group_deleteDelete one or more calendar groups
group_idsarrayGroup ID(s) to delete
project_idstringProject ID
calendar_group_listList calendar groups in a project (groups contain rows which contain events)
project_idstringProject ID
calendar_group_updateUpdate a calendar group
group_idstringGroup ID
project_idstringProject ID
colorstringNew colour
namestringNew group name
sort_ordernumberNew sort order position
calendar_row_createCreate a new calendar row in a project
namestringRow name
project_idstringProject ID
colorstringColour hex code
group_idstringGroup ID to place row in
calendar_row_deleteDelete one or more calendar rows
project_idstringProject ID
row_idsarrayRow ID(s) to delete
calendar_row_listList calendar rows in a project, optionally filtered by group
project_idstringProject ID
group_idstringFilter by group ID
calendar_row_updateUpdate a calendar row
project_idstringProject ID
row_idstringRow ID
colorstringNew colour (cascades to all events in row)
group_idMove row to a different group (null to unset)
namestringNew row name
company_createCreate a new company/client
namestringCompany name (3-160 chars, must be unique)
address_citystringCity
address_countrystringCountry
address_line1stringAddress line 1
address_line2stringAddress line 2
address_postalcodestringPostal code
address_stateorprovincestringState or province
telephonestringTelephone number
websiteurlstringWebsite URL
company_getGet details of a specific company
company_idstringCompany ID
company_listList all companies/clients in the account
company_updateUpdate a company. Requires account admin permission.
company_idstringCompany ID
address_citystringCity
address_countrystringCountry
address_line1stringAddress line 1
address_line2stringAddress line 2
address_postalcodestringPostal code
address_stateorprovincestringState or province
namestringNew company name
telephonestringTelephone number
websiteurlstringWebsite URL
contact_createCreate a new contact. Requires account admin permission.
firstnamestringFirst name (3-50 chars)
lastnamestringLast name (3-50 chars)
company_idstringCompany ID to associate with
emailstringEmail address (must be unique per account)
mobilephonestringMobile phone number
rolestringRole/job title
telephonestringTelephone number
contact_getGet details of a specific contact including project associations
contact_idstringContact ID
contact_listList contacts in the account, optionally filtered by company. Returns paginated results (default 100, max 500).
company_idstringFilter by company ID
limitnumberMax results to return (default 100, max 500)
offsetnumberNumber of results to skip (for pagination)
contact_updateUpdate a contact
contact_idstringContact ID
company_idstringCompany ID
emailstringEmail address
firstnamestringFirst name
lastnamestringLast name
mobilephonestringMobile phone
rolestringRole/job title
telephonestringTelephone
media_add_tagsAdd tags to a media item
media_idstringMedia ID
project_idstringProject ID
tagsarrayTags to add (max 50)
media_getGet detailed information about a specific media item including Azure AI analysis results (keywords, topics, labels, detected objects, people, locations, brands)
media_idstringMedia ID
project_idstringProject ID
media_get_transcriptGet the transcript for a video or audio media item. Only available for media processed by Azure Video Indexer (azure_status: completed).
media_idstringMedia ID
project_idstringProject ID
media_listList media items in a project with optional search and type filtering. Returns paginated results (default 100, max 500).
project_idstringProject ID
limitnumberMax results to return (default 100, max 500)
mimetypestringFilter by type: "video", "audio", or "image"
offsetnumberNumber of results to skip (for pagination)
searchstringSearch across filename, description, tags, and Azure AI keywords
media_list_commentsList timestamped comments on a media item (includes threaded replies)
media_idstringMedia ID
project_idstringProject ID
media_remove_tagsRemove tags from a media item
media_idstringMedia ID
project_idstringProject ID
tagsarrayTags to remove (max 50)
media_semantic_searchSearch media using natural language. Finds semantically similar content even when exact keywords don't match. Example: "clips of people discussing safety concerns" will match media about risk assessments, health and safety, etc.
querystringNatural language search query
limitnumberMax results (default 10, max 50)
mimetypestringFilter by type: e.g. "video/mp4", "audio/mpeg", "image/jpeg"
project_idstringLimit search to a specific project
media_update_descriptionUpdate the description of a media item
descriptionstringNew description text
media_idstringMedia ID
project_idstringProject ID
programme_createCreate a new programme. Requires account admin permission.
company_idstringCompany/client ID (use programme_list_companies to find)
namestringProgramme name (3-160 chars, must be unique)
statusstringProgramme status
descriptionstringProgramme description
programme_getGet details of a specific programme
programme_idstringProgramme ID
programme_listList all programmes in the account
programme_updateUpdate a programme. Requires account admin permission.
programme_idstringProgramme ID
company_idstringNew company/client ID
descriptionstringNew description
namestringNew programme name
statusstringNew status
project_assign_contactAssociate an existing contact with a project
contact_idstringContact ID to associate
project_idstringProject ID
project_assign_userAdd an existing account user to a project with a specific role. Requires admin permission on the project.
permissionstringProject role to assign
owneradminmanagereditorcommenterreaderproject_idstringProject ID
user_idstringUser ID to assign
project_createCreate a new project. Requires account admin permission. Auto-assigns users flagged with add_to_future_projects.
deliverydatestringDelivery date (YYYY-MM-DD)
descriptionstringProject description
namestringProject name (3-100 chars, must be unique)
programme_idstringProgramme ID the project belongs to
projectowner_idstringUser ID of the project owner
referencestringProject reference code
statusstringProject status: development, in production (default), archived
project_listList all projects the authenticated user has access to
project_list_membersList members of a project for task assignment
project_idstringThe project ID
project_remove_contactRemove a contact from a project
contact_idstringContact ID to remove
project_idstringProject ID
project_remove_userRemove a user from a project. Requires manager permission on the project.
project_idstringProject ID
user_idstringUser ID to remove
project_updateUpdate a project. Can update name, description, owner, delivery date, reference, and production contact details.
project_idstringProject ID
deliverydatestringNew delivery date (YYYY-MM-DD)
descriptionstringNew description
namestringNew project name
productioncontactemailstringProduction contact email
productioncontactnamestringProduction contact name
projectowner_idstringNew project owner user ID
referencestringNew reference code
working_titlestringNew working title
project_update_statusUpdate a project status or stage. Status values: development, in production, archived.
project_idstringProject ID
stage_idstringStage ID (overrides status if provided)
statusstringNew project status
developmentin productionarchivedproject_update_user_roleChange a user's role on a project. Requires admin permission on the project.
permissionstringNew project role
owneradminmanagereditorcommenterreaderproject_idstringProject ID
user_idstringUser ID to update
rusheslog_getGet a specific rushes log with its media entries
project_idstringProject ID
rushes_log_idstringRushes log ID
rusheslog_listList all rushes logs in a project
project_idstringProject ID
script_createCreate a new script in a project. Types: "filming" (production script) or "edit" (editing script)
namestringScript name (must be unique within project)
project_idstringProject ID
typestringScript type
filmingeditdescriptionstringScript description
script_deleteDelete one or more scripts
project_idstringProject ID
script_idsarrayScript ID(s) to delete
script_getGet a specific script with its scenes and content
project_idstringProject ID
script_idstringScript ID
script_listList all scripts in a project
project_idstringProject ID
script_scene_associate_mediaLink a media item to a script scene with optional in/out timecode points. Automatically extracts the transcript for the specified range from Azure insights.
media_idstringMedia ID to associate
project_idstringProject ID
scene_idstringScene ID
script_idstringScript ID
inIn-point timecode in seconds
outOut-point timecode in seconds
script_scene_createAdd a new empty scene to a script
project_idstringProject ID
script_idstringScript ID
script_scene_deleteRemove a scene from a script
project_idstringProject ID
scene_idstringScene ID to remove
script_idstringScript ID
script_scene_remove_mediaRemove a media association from a script scene
media_assoc_idstringMedia association ID to remove
project_idstringProject ID
scene_idstringScene ID
script_idstringScript ID
script_scene_reorderReorder scenes in a script by providing scene IDs in the desired order
project_idstringProject ID
scene_idsarrayScene IDs in desired order
script_idstringScript ID
script_scene_updateUpdate the visual or audio content of a scene. Content uses basic HTML with <p>, <strong>, <em> tags. IMPORTANT: All spoken dialogue MUST be enclosed in double quotes for accurate Running Time calculation. Example audio: <p><strong>V/O:</strong> "Welcome to the show."</p><p><strong>PRESENTER:</strong> "Today we explore the city."</p>
project_idstringProject ID
scene_idstringScene ID to update
script_idstringScript ID
audiostringAudio/dialogue content (HTML). Use <p> for paragraphs, <strong> for bold speaker labels (e.g. <strong>V/O:</strong>), <em> for italic. Enclose all spoken dialogue in double quotes for accurate Running Time calculation.
visualstringVisual description (HTML). Use <p> for paragraphs, <strong> for bold, <em> for italic.
script_scene_update_mediaUpdate the in/out timecode points for a media association in a scene. Recalculates the transcript for the new range.
innumber/nullNew in-point timecode in seconds
media_assoc_idstringMedia association ID (from the scene media array)
outnumber/nullNew out-point timecode in seconds
project_idstringProject ID
scene_idstringScene ID
script_idstringScript ID
script_updateUpdate a script name, type, or description
project_idstringProject ID
script_idstringScript ID
descriptionstringNew description
namestringNew script name
typestringNew script type
filmingedittask_createCreate a new task in a project
assignedto_idstringUser ID to assign the task to
duedatestringDue date in YYYY-MM-DD format
namestringTask name (max 1000 chars)
project_idstringProject ID
statusstringTask status
not startedactivecompleteddescriptionstringTask description
milestonebooleanWhether this is a milestone task
task_deleteDelete one or more tasks
project_idstringProject ID
task_idsarrayTask ID(s) to delete
task_getGet details of a specific task
project_idstringProject ID
task_idstringTask ID
task_listList tasks for a project or across all projects. Returns paginated results (default 100, max 500). Note: status filter only applies when project_id is provided. Cross-project queries exclude completed tasks.
assigned_to_mebooleanOnly show tasks assigned to current user
limitnumberMax results to return (default 100, max 500)
offsetnumberNumber of results to skip (for pagination)
project_idstringProject ID (omit for all projects)
statusstringFilter by status: not started, active, completed (only applies with project_id)
task_updateUpdate an existing task
project_idstringProject ID
task_idstringTask ID
assignedto_idstringNew assignee user ID
descriptionstringNew description
duedatestringNew due date (YYYY-MM-DD)
milestonebooleanMilestone flag
namestringNew task name
statusstringNew status
not startedactivecompleted