Default model tools

upload_link_create

Create an upload link

Creates a hosted BitterClip upload link for local audio or video files. Use this when the user wants a link or another camera operator will contribute later. capture_session_id adds multiple files or a whole device folder to one footage-session chronology. A link cannot add files directly to an existing episode; files reach one through a footage session for that episode and its capture_session_id.

Surface: Default model and app

Product release 185ad8f4adfa21ae055b5bd6f97968d9044480d1
Public contract commit d2ab41fab4088c07c0f6b924fa4f3c63481b936a
Public contract SHA-256 2365c73c2aef7b9f85e8434d8e29ea29f40824bc3a46a72a356155ea328757fc
Captured 2026-10-29T03:35:56.855Z. Review or improve this contract on GitHub.

These blocks show the complete MCP descriptors captured from serving Rails. Security schemes and resource URIs can differ by connected host.

Default model descriptor

{
  "name": "upload_link_create",
  "title": "Create an upload link",
  "description": "Creates a hosted BitterClip upload link for local audio or video files. Use this when the user wants a link or another camera operator will contribute later. capture_session_id adds multiple files or a whole device folder to one footage-session chronology. A link cannot add files directly to an existing episode; files reach one through a footage session for that episode and its capture_session_id.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "project_id": {
        "type": "string",
        "description": "Optional project public ID, slug, or name to attach uploads to; absent means the default uploads project."
      },
      "project": {
        "type": "string",
        "description": "Backward-compatible project name/slug/public ID alias."
      },
      "capture_session_id": {
        "type": "string",
        "description": "Optional footage-session public ID. Every uploaded file joins that session and triggers incremental chronology analysis."
      }
    },
    "required": [],
    "additionalProperties": false
  },
  "annotations": {
    "title": "Create an upload link",
    "readOnlyHint": false,
    "destructiveHint": false,
    "idempotentHint": false,
    "openWorldHint": false
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "_meta": {
    "securitySchemes": [
      {
        "type": "noauth"
      }
    ]
  }
}

App descriptor

{
  "name": "upload_link_create",
  "title": "Create an upload link",
  "description": "Creates a hosted BitterClip upload link for local audio or video files. Use this when the user wants a link or another camera operator will contribute later. capture_session_id adds multiple files or a whole device folder to one footage-session chronology. A link cannot add files directly to an existing episode; files reach one through a footage session for that episode and its capture_session_id.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "project_id": {
        "type": "string",
        "description": "Optional project public ID, slug, or name to attach uploads to; absent means the default uploads project."
      },
      "project": {
        "type": "string",
        "description": "Backward-compatible project name/slug/public ID alias."
      },
      "capture_session_id": {
        "type": "string",
        "description": "Optional footage-session public ID. Every uploaded file joins that session and triggers incremental chronology analysis."
      }
    },
    "required": [],
    "additionalProperties": false
  },
  "annotations": {
    "title": "Create an upload link",
    "readOnlyHint": false,
    "destructiveHint": false,
    "idempotentHint": false,
    "openWorldHint": false
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "_meta": {
    "securitySchemes": [
      {
        "type": "noauth"
      }
    ]
  },
  "outputSchema": {
    "type": "object",
    "properties": {
      "mode": {
        "type": "string",
        "description": "\"upload_link\" when a shareable upload link is returned."
      },
      "upload_url": {
        "type": "string",
        "description": "The token-gated drop-zone page URL for the user."
      },
      "project": {
        "type": "object",
        "description": "The resolved project the uploads land in, or null for the default project."
      },
      "capture_session": {
        "type": "object",
        "description": "Present for footage-session links: {id, title}."
      },
      "expires_at": {
        "type": "string",
        "description": "ISO8601 link expiry."
      },
      "accepted_content_types": {
        "type": "array",
        "items": {
          "type": "string"
        }
      },
      "max_bytes": {
        "type": "integer"
      },
      "blockers": {
        "type": "array",
        "items": {
          "type": "object"
        }
      }
    },
    "required": [],
    "additionalProperties": false
  }
}

Live Workspace descriptor

{
  "name": "upload_link_create",
  "title": "Create an upload link",
  "description": "Creates a hosted BitterClip upload link for local audio or video files. Use this when the user wants a link or another camera operator will contribute later. capture_session_id adds multiple files or a whole device folder to one footage-session chronology. A link cannot add files directly to an existing episode; files reach one through a footage session for that episode and its capture_session_id.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "project_id": {
        "type": "string",
        "description": "Optional project public ID, slug, or name to attach uploads to; absent means the default uploads project."
      },
      "project": {
        "type": "string",
        "description": "Backward-compatible project name/slug/public ID alias."
      },
      "capture_session_id": {
        "type": "string",
        "description": "Optional footage-session public ID. Every uploaded file joins that session and triggers incremental chronology analysis."
      }
    },
    "required": [],
    "additionalProperties": false
  },
  "annotations": {
    "title": "Create an upload link",
    "readOnlyHint": false,
    "destructiveHint": false,
    "idempotentHint": false,
    "openWorldHint": false
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "_meta": {
    "securitySchemes": [
      {
        "type": "noauth"
      }
    ]
  },
  "outputSchema": {
    "type": "object",
    "properties": {
      "mode": {
        "type": "string",
        "description": "\"upload_link\" when a shareable upload link is returned."
      },
      "upload_url": {
        "type": "string",
        "description": "The token-gated drop-zone page URL for the user."
      },
      "project": {
        "type": "object",
        "description": "The resolved project the uploads land in, or null for the default project."
      },
      "capture_session": {
        "type": "object",
        "description": "Present for footage-session links: {id, title}."
      },
      "expires_at": {
        "type": "string",
        "description": "ISO8601 link expiry."
      },
      "accepted_content_types": {
        "type": "array",
        "items": {
          "type": "string"
        }
      },
      "max_bytes": {
        "type": "integer"
      },
      "blockers": {
        "type": "array",
        "items": {
          "type": "object"
        }
      }
    },
    "required": [],
    "additionalProperties": false
  }
}

Errors

[
  "invalid_input"
]

Examples

[]