Skip to main content
Glama

add_video_filter

Apply visual filters to video segments in JianYing (CapCut) projects. Add filter effects with adjustable intensity to enhance video appearance and style.

Instructions

为视频片段添加滤镜效果

Args: video_segment_id: 视频片段ID,通过add_video_segment获得 filter_type: 滤镜类型名称,可以使用find_effects_by_type工具,资源类型选择filter_type,从而获取滤镜类型有哪些 intensity: 滤镜强度,范围0-100,默认100.0

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
video_segment_idYes
filter_typeYes
intensityNo

Implementation Reference

  • MCP tool handler 'add_video_filter': validates input, checks filter availability via resource manager, resolves draft/track IDs, delegates to service function.
    @mcp.tool() def add_video_filter( video_segment_id: str, filter_type: str, intensity: float = 100.0 ) -> ToolResponse: """ 为视频片段添加滤镜效果 Args: video_segment_id: 视频片段ID,通过add_video_segment获得 filter_type: 滤镜类型名称,可以使用find_effects_by_type工具,资源类型选择filter_type,从而获取滤镜类型有哪些 intensity: 滤镜强度,范围0-100,默认100.0 """ # 参数验证 if not (0.0 <= intensity <= 100.0): return ToolResponse( success=False, message=f"滤镜强度必须在0-100范围内,当前值: {intensity}" ) # 滤镜存在性验证 effects = manager.find_by_type( effect_type="filter_type", keyword=filter_type, limit=1 ) # 检查是否找到完全匹配的滤镜 exact_match = False if effects: for effect in effects: if effect.get('name') == filter_type: exact_match = True break if not effects or not exact_match: # 获取建议滤镜 filter_suggestions = manager.find_by_type("filter_type", keyword=filter_type) all_suggestions = [] for effect in filter_suggestions: if effect.get('name'): all_suggestions.append(effect.get('name')) return ToolResponse( success=False, message=f"未找到滤镜 '{filter_type}',请确认滤镜名称是否正确,或使用建议的滤镜名称。", data={ "error_type": "filter_not_found", "filter_name": filter_type, "suggestions": all_suggestions } ) # 通过video_segment_id获取相关信息 draft_id = index_manager.get_draft_id_by_video_segment_id(video_segment_id) track_info = index_manager.get_track_info_by_video_segment_id(video_segment_id) if not draft_id: return ToolResponse( success=False, message=f"未找到视频片段ID对应的草稿: {video_segment_id}" ) if not track_info: return ToolResponse( success=False, message=f"未找到视频片段ID对应的轨道信息: {video_segment_id}" ) track_name = track_info.get("track_name") # 调用服务层处理业务逻辑 result = add_video_filter_service( draft_id=draft_id, video_segment_id=video_segment_id, filter_type=filter_type, intensity=intensity, track_name=track_name ) return result
  • Helper service 'add_video_filter_service': instantiates VideoSegment and invokes its add_filter method to apply the video filter effect.
    def add_video_filter_service( draft_id: str, video_segment_id: str, filter_type: str, intensity: float = 100.0, track_name: Optional[str] = None ) -> ToolResponse: """ 视频滤镜添加服务 - 为视频片段添加滤镜效果 Args: draft_id: 草稿ID video_segment_id: 视频片段ID filter_type: 滤镜类型名称,如 "亮肤", "复古", "冰雪世界" 等 intensity: 滤镜强度 (0-100),默认100.0 track_name: 轨道名称(可选) Returns: ToolResponse: 包含操作结果的响应对象 """ try: # 创建VideoSegment实例,传入video_segment_id video_segment = VideoSegment(draft_id, video_segment_id=video_segment_id, track_name=track_name) # 调用视频滤镜添加方法 result_data = video_segment.add_filter( filter_type=filter_type, intensity=intensity ) # 构建返回数据 response_data = { "video_segment_id": video_segment_id, "draft_id": draft_id, "filter_type": filter_type, "intensity": intensity, "add_filter": result_data } # 如果有轨道名称,添加到返回数据中 if track_name: response_data["track_name"] = track_name return ToolResponse( success=True, message=f"视频滤镜添加成功: {filter_type} (强度: {intensity})", data=response_data ) except ValueError as e: # 处理参数错误 return ToolResponse( success=False, message=f"参数错误: {str(e)}" ) except NameError as e: # 处理轨道不存在错误 return ToolResponse( success=False, message=f"轨道错误: {str(e)}" ) except Exception as e: # 处理其他未预期的错误 return ToolResponse( success=False, message=f"视频滤镜添加失败: {str(e)}" )
  • Tool registration in main server: imports and calls video_tools(mcp) to register all video tools including 'add_video_filter'.
    from jianyingdraft.tool.draft_tool import draft_tools from jianyingdraft.tool.track_tool import track_tools from jianyingdraft.tool.video_tool import video_tools from jianyingdraft.tool.text_tool import text_tools from jianyingdraft.tool.audio_tool import audio_tools from jianyingdraft.tool.utility_tool import utility_tools def main(): # 注册所有工具 draft_tools(mcp) track_tools(mcp) video_tools(mcp) text_tools(mcp) audio_tools(mcp) utility_tools(mcp)

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/hey-jian-wei/jianying-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server