send_video
Share a post with video content on Bluesky Social MCP. Include text, video data, and optional details like alt text, language codes, and reply information.
Instructions
Send a post with a video.
Args:
ctx: MCP context
text: Text content of the post
video_data: Base64-encoded video data
video_alt: Optional alternative text description for the video
profile_identify: Optional handle or DID for the post author
reply_to: Optional reply information dict with keys uri and cid
langs: Optional list of language codes
facets: Optional list of facets (mentions, links, etc.)
Returns:
Status of the post creation
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| facets | No | ||
| langs | No | ||
| profile_identify | No | ||
| reply_to | No | ||
| text | Yes | ||
| video_alt | No | ||
| video_data | Yes |
Implementation Reference
- server.py:942-999 (handler)The MCP tool handler for 'send_video', including its schema via type hints and docstring, registration via @mcp.tool(), and full implementation logic: decodes base64 video, authenticates client, sends via bluesky_client.send_video, returns post details or error.@mcp.tool() def send_video( ctx: Context, text: str, video_data: str, video_alt: Optional[str] = None, profile_identify: Optional[str] = None, reply_to: Optional[Dict[str, Any]] = None, langs: Optional[List[str]] = None, facets: Optional[List[Dict[str, Any]]] = None, ) -> Dict: """Send a post with a video. Args: ctx: MCP context text: Text content of the post video_data: Base64-encoded video data video_alt: Optional alternative text description for the video profile_identify: Optional handle or DID for the post author reply_to: Optional reply information dict with keys uri and cid langs: Optional list of language codes facets: Optional list of facets (mentions, links, etc.) Returns: Status of the post creation """ try: bluesky_client = get_authenticated_client(ctx) # Decode base64 video try: video_bytes = base64.b64decode(video_data) except Exception as e: return { "status": "error", "message": f"Failed to decode video data: {str(e)}", } # Send the post with video post_response = bluesky_client.send_video( text=text, video=video_bytes, video_alt=video_alt, profile_identify=profile_identify, reply_to=reply_to, langs=langs, facets=facets, ) return { "status": "success", "message": "Post with video created successfully", "post_uri": post_response.uri, "post_cid": post_response.cid, } except Exception as e: error_msg = f"Failed to create post with video: {str(e)}" return {"status": "error", "message": error_msg}