open_uploader
Get a recording upload link
Use this when the user wants to add a local audio or video recording to BitterClip. Returns a shareable, token-gated upload link (a hosted drop-zone page) the user opens in a browser to drop their file — it uploads straight to storage and starts transcribing on its own. `project` (a project name, slug, or public ID) scopes the upload to that project; without it, uploads land in the account's default uploads project. The returned `upload_url` is the page the user opens, so no public download URL is needed.
Surface: App-only
Product release eb8538f4a297f331d0399351c1e175bffcd212d2
Public contract commit 20688e11af473a363145ed880d5019c90a7ec1e2
Public contract SHA-256 87a94b85a84dc19245fc03f9b544c70d64bd9f5e08585dcccb38157cace5700d
Captured 2026-10-04T11:55:45.577Z. 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.
App descriptor
{
"name": "open_uploader",
"title": "Get a recording upload link",
"description": "Use this when the user wants to add a local audio or video recording to BitterClip. Returns a shareable, token-gated upload link (a hosted drop-zone page) the user opens in a browser to drop their file — it uploads straight to storage and starts transcribing on its own. `project` (a project name, slug, or public ID) scopes the upload to that project; without it, uploads land in the account's default uploads project. The returned `upload_url` is the page the user opens, so no public download URL is needed.",
"inputSchema": {
"type": "object",
"properties": {
"project": {
"type": "string",
"description": "Optional project to attach uploads to: a project name, slug, or public ID; absent means the default uploads project."
},
"capture_session_id": {
"type": "string",
"description": "Optional footage-session public ID. Every file uploaded through the link joins this same capture chronology."
}
},
"required": [],
"additionalProperties": false
},
"annotations": {
"title": "Get a recording upload link",
"readOnlyHint": false,
"destructiveHint": false,
"idempotentHint": false,
"openWorldHint": false
},
"securitySchemes": [
{
"type": "noauth"
}
],
"_meta": {
"securitySchemes": [
{
"type": "noauth"
}
],
"ui": {
"visibility": [
"app"
]
},
"openai/widgetAccessible": true,
"openai/visibility": "private"
},
"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": "The footage session the uploads join, when requested."
},
"expires_at": {
"type": "string",
"description": "ISO8601 link expiry (7 days out)."
},
"accepted_content_types": {
"type": "array",
"items": {
"type": "string"
}
},
"max_bytes": {
"type": "integer"
}
},
"required": [],
"additionalProperties": false
}
}Errors
[
"invalid_input"
]Examples
[]