Spaces:
Running
Running
| from __future__ import annotations | |
| from typing import Any | |
| from mcp.server.fastmcp import FastMCP | |
| from app.mcp.registry import MCPRegistry, MediaInput | |
| def register_probe_tools(server: FastMCP[Any], registry: MCPRegistry) -> None: | |
| """Register FFprobe metadata views through MediaProcessor.probe.""" | |
| async def probe_media(input: MediaInput) -> dict[str, Any]: | |
| """Probe all media streams and container metadata.""" | |
| return await registry.run_probe("probe_media", input, "all") | |
| async def ffprobe_video_metadata(input: MediaInput) -> dict[str, Any]: | |
| """Return the video-specific FFprobe metadata view.""" | |
| return await registry.run_probe("probe_video_metadata", input, "video") | |
| async def audio_metadata(input: MediaInput) -> dict[str, Any]: | |
| """Return audio streams, duration, and bitrate.""" | |
| return await registry.run_probe("audio_metadata", input, "audio") | |
| async def stream_info(input: MediaInput) -> dict[str, Any]: | |
| """Return normalized stream information.""" | |
| return await registry.run_probe("stream_info", input, "streams") | |
| async def container_info(input: MediaInput) -> dict[str, Any]: | |
| """Return normalized container information.""" | |
| return await registry.run_probe("container_info", input, "container") | |