Skip to main content
Glama

zapcap_mcp_upload_video

Upload video files to ZapCap for processing tasks using the MCP server's API integration.

Instructions

Upload video file to ZapCap

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
requestYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Implementation Reference

  • The handler function for 'zapcap_mcp_upload_video' tool. Uploads a local video file to the ZapCap API using HTTP POST with file upload, authenticated via API key.
    @mcp.tool(description="Upload video file to ZapCap")
    def zapcap_mcp_upload_video(request: UploadVideo) -> Dict[str, Any]:
        headers = {"x-api-key": get_api_key()}
        
        with open(request.file_path, 'rb') as f:
            files = {'file': f}
            with httpx.Client() as client:
                response = client.post(
                    "https://api.zapcap.ai/videos",
                    headers=headers,
                    files=files
                )
        
        response.raise_for_status()
        return response.json()
  • Pydantic input schema defining the 'file_path' parameter for the upload tool.
    class UploadVideo(BaseModel):
        file_path: str = Field(description="Path to video file")
  • Tool registration via FastMCP decorator, which registers the function as an MCP tool.
    @mcp.tool(description="Upload video file to ZapCap")
  • Helper function to retrieve the ZapCap API key from environment variable, used in the upload handler.
    def get_api_key() -> str:
        api_key = os.getenv("ZAPCAP_API_KEY")
        if not api_key:
            raise ValueError("ZAPCAP_API_KEY environment variable is required")
        return api_key
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It states 'Upload video file' which implies a write/mutation operation, but doesn't disclose behavioral traits like authentication requirements, rate limits, file size restrictions, or what happens after upload (e.g., processing, storage location). The description is minimal and lacks important operational context for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise at just 5 words. It's front-loaded with the core action and resource. There's zero wasted language or redundancy. For such a simple statement, it's maximally efficient in word count.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given this is a mutation tool with no annotations, 0% schema description coverage, but with an output schema, the description is inadequate. It doesn't explain what the upload accomplishes, what happens after upload, file requirements, or how this differs from the URL-based sibling. The output schema existence means return values are documented elsewhere, but the description should still provide more operational context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. The description doesn't mention any parameters at all. While there's only one parameter ('file_path'), the description provides no information about it - no format expectations, path requirements, or what constitutes a valid video file. The schema alone documents the parameter, but with 0% coverage, the description adds no value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the verb ('Upload') and resource ('video file to ZapCap'), which gives a basic understanding of what the tool does. However, it's vague about the specific action - it doesn't clarify if this uploads for processing, storage, or another purpose. It doesn't distinguish from its sibling 'zapcap_mcp_upload_video_by_url', which handles URL-based uploads versus this file-based approach.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives. The description doesn't mention the sibling tool 'zapcap_mcp_upload_video_by_url' for URL uploads or other tools like 'zapcap_mcp_create_task' that might be related. No context is provided about prerequisites, file format requirements, or when this upload method is preferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

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/bogdanminko/zapcap-mcp-server'

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