Skip to main content
Glama

Server Details

Video transcoding and document conversion for AI agents. Transcode to MP4 (H.264), WebM/VP9, ProRes 422, GIF, or MP3 audio. Convert PDFs, DOCX, PPTX, XLSX, HTML, Markdown, and images. Prepaid wallet with per-job billing — no FFmpeg, no storage, no infrastructure to manage.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.6/5 across 13 of 13 tools scored. Lowest: 3.7/5.

Server CoherenceA
Disambiguation5/5

Each tool has a clearly distinct purpose: convert tools vary by input method (inline, file upload, URL), transcode tools similarly, workflow tools cover submission, cancellation, and status, and output retrieval has both inline and URL options. No overlapping functionalities.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case, e.g., convert_content, get_job_status, submit_workflow. No mixing of conventions (camelCase, different separators) or vague verbs.

Tool Count5/5

13 tools is well-scoped for a conversion/transcoding service with workflow support. Each tool is necessary and there are no redundant or superfluous ones.

Completeness4/5

The tool surface covers the full lifecycle: submission, status polling, cancellation, output retrieval, and wallet balance. Minor gap: no tool to list all jobs/workflows, but the core operations are complete.

Available Tools

15 tools
cancel_workflowA
Idempotent
Inspect

Cancel an in-progress workflow. All queued and dispatched steps are marked CANCELLED. Completed steps are not reversed. You are only billed for steps that completed before cancellation.

ParametersJSON Schema
NameRequiredDescriptionDefault
workflow_idYesWorkflow ID to cancel.

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusNo
cancelledYes
workflow_idYes
Behavior5/5

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

Description goes beyond annotations by explaining that queued/dispatched steps are cancelled, completed steps are not reversed, and billing only applies to completed steps. This adds critical behavioral context not covered by annotations.

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?

Three concise sentences, front-loaded with the primary action. Every sentence adds specific value without redundancy or verbosity.

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

Completeness5/5

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

Given the tool's simplicity (one parameter, output schema present), the description fully covers cancellation behavior, impact on steps, and billing. No gaps for effective use.

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?

Single parameter 'workflow_id' has 100% schema coverage with a description. The tool description adds no additional meaning beyond the schema, so baseline score applies.

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

Purpose5/5

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

The description clearly states 'Cancel an in-progress workflow' with a specific verb and resource. It distinguishes from sibling tools like submit_workflow and get_workflow_status by focusing on cancellation.

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

Usage Guidelines4/5

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

The description implies use cases for cancellation and includes billing implications. While it doesn't explicitly list when not to use or alternative tools, the context is clear and sufficient for an agent.

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

convert_contentAInspect

Convert a document inline — pass the content directly as a string (or base64 for binary inputs like .docx). PREFERRED route for documents, and the one to use in sandboxed agent environments (claude.ai, Claude Desktop, Cursor): it runs entirely server-side, so it never needs the S3 upload those sandboxes block. Limit: up to 4 MB of content — already huge (a 500-page book is ~1 MB of text). For anything larger, use convert_from_url with a public URL. Supported inputs: md, html, rst, txt (plain text), docx (base64). Supported outputs: docx (Word), pdf, html, txt, md, rst, xlsx. Returns a job_id — poll get_job_status until 'complete', then get_output_content (inline bytes, sandbox-safe) or get_download_url (S3 link). Flat fee $0.05 per file. TIP: if you have shell access and are NOT sandboxed (e.g. a local coding agent), the botverse CLI (npx botverse convert <file> --to <fmt>) is faster for local files — it streams from disk instead of re-emitting the content through the model.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesThe file content as a plain text string (for md, html, rst, txt) or base64-encoded bytes (for docx).
encodingNoEncoding of the content field. Defaults to "text". Use "base64" for binary inputs like .docx.
input_formatYesSource format of the content.
output_formatYesTarget format: docx | html | txt | md | rst | pdf | xlsx

Output Schema

ParametersJSON Schema
NameRequiredDescription
job_idYesUnique identifier for this job. Pass to get_job_status and get_download_url.
statusYesInitial job state — always queued or processing immediately after submission.
estimated_secondsNoRough estimated processing time in seconds. Actual time may vary.
Behavior4/5

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

Discloses limits (4 MB), server-side execution, async flow, pricing, and polling instructions. Annotations provide little behavioral info, so description compensates well, though could note absence of destructive side effects more explicitly.

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?

Well-structured: purpose, guidelines, limits, alternatives, async flow, pricing, CLI tip. Every sentence is informative and earns its place.

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

Completeness5/5

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

Covers all necessary aspects: input/output formats, async polling, sandbox considerations, pricing, and CLI alternative. No gaps for agent decision-making.

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

Parameters4/5

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

Adds meaning beyond the schema by explaining content encoding, use of base64, supported formats, and return value (job_id). Schema coverage is 100%, but description provides valuable context.

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

Purpose5/5

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

The description clearly states 'Convert a document inline' and distinguishes this tool from siblings like convert_from_url and the CLI alternative. It specifies the content-passing method and sandbox suitability.

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

Usage Guidelines5/5

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

Explicitly says it's the preferred route for documents and sandboxed environments, with an alternative for larger files. Also provides a CLI tip for non-sandboxed agents.

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

convert_fileAInspect

Offload a document conversion to Botverse using an already-uploaded file. Workflow: (1) call get_upload_url to get a presigned upload URL, (2) PUT the raw file bytes to that URL, (3) call convert_file with the object_key — Botverse handles the rest server-side. Returns a job_id immediately so you can continue with other tasks while conversion runs. Supported inputs: md, html, rst, txt, docx. Supported outputs: docx, pdf, html, txt, md, rst, xlsx. Poll get_job_status until complete, then get_download_url. Flat fee $0.05 per file. If you are in a sandboxed environment where the get_upload_url PUT is blocked, do not use this tool — use convert_content (inline content under 500 KB) or convert_from_url (public URL) instead; no upload needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
object_keyYesThe object_key returned by get_upload_url.
output_formatYesTarget format: docx | html | txt | md | rst | pdf | xlsx

Output Schema

ParametersJSON Schema
NameRequiredDescription
job_idYesUnique identifier for this job. Pass to get_job_status and get_download_url.
statusYesInitial job state — always queued or processing immediately after submission.
estimated_secondsNoRough estimated processing time in seconds. Actual time may vary.
Behavior5/5

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

Beyond annotations (readOnlyHint=false, etc.), the description discloses that the tool returns a job_id immediately, conversion happens server-side, there is a $0.05 fee, and polling is required. No contradictions with annotations.

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

Conciseness4/5

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

The description is detailed but well-structured with clear workflow steps, supported formats, fee, and alternatives. It could be slightly more concise but effectively communicates all necessary information.

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

Completeness5/5

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

Given the tool's complexity (multi-step workflow, fee, polling, alternatives), the description covers all contexts: upload process, supported formats, return value (job_id), polling instructions, and alternative tools for blocked environments.

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

Parameters4/5

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

Schema coverage is 100% with descriptions for both parameters. The description adds meaning by linking object_key to the prior get_upload_url step, though it does not add syntax details beyond the schema.

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

Purpose5/5

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

The description clearly states the tool's purpose: offloading document conversion to Botverse using an already-uploaded file. It lists supported input/output formats and explicitly distinguishes from sibling tools like convert_content and convert_from_url.

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

Usage Guidelines5/5

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

The description provides explicit when-to-use guidance, including a multi-step workflow, instructions to poll get_job_status, and a flat fee. It also specifies when NOT to use (sandboxed environment blocked PUT) and names alternatives (convert_content, convert_from_url).

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

convert_from_urlAInspect

Offload a document conversion to Botverse — runs server-side in seconds, returns a download link, and frees you to continue with other tasks while it processes. Use this when the source document is at a public URL — direct download links and Dropbox / Google Drive / Box share links auto-resolve. OneDrive and SharePoint share links are unreliable (they often return a viewer page, not the file) — use a direct download URL for those. If you already have the content as a string, use convert_content instead — no upload step needed. Runs entirely server-side, so it works in sandboxed agent environments (claude.ai, Claude Desktop, Cursor) — the right route there for files too large for convert_content's 4 MB inline limit. Supported inputs: md, html, rst, txt, docx. Supported outputs: docx (Word), pdf, html, txt, md, rst, xlsx (tables extracted). Returns a job_id immediately. Poll get_job_status every 5s until 'complete', then get_output_content (inline, sandbox-safe) or get_download_url (S3 link). Flat fee $0.05 per file.

ParametersJSON Schema
NameRequiredDescriptionDefault
source_urlYesPublic HTTPS URL of the source document.
output_formatYesTarget format: docx | html | txt | md | rst | pdf | xlsx

Output Schema

ParametersJSON Schema
NameRequiredDescription
job_idYesUnique identifier for this job. Pass to get_job_status and get_download_url.
statusYesInitial job state — always queued or processing immediately after submission.
estimated_secondsNoRough estimated processing time in seconds. Actual time may vary.
Behavior5/5

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

Describes server-side execution, sandbox compatibility, 4MB inline limit for convert_content, cost of $0.05 per file, return of job_id, and polling instructions. Annotations provide safety profile, no contradiction.

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

Conciseness4/5

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

Front-loaded with main purpose, but slightly long. Every sentence adds value; could be trimmed slightly for conciseness.

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

Completeness5/5

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

Covers all aspects: asynchronous nature, polling, output retrieval methods, supported formats, cost, and limitations. Output schema exists, so return values are documented.

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

Parameters5/5

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

Adds significant context beyond schema: source_url value context (public HTTPS, provider-specific behavior), output_format enum list matches schema, and additional guidance on file types.

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

Purpose5/5

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

Clearly states the tool offloads a document conversion to Botverse, runs server-side, and returns a download link. Distinguishes from sibling convert_content (for strings) and transcode_from_url (for video).

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

Usage Guidelines5/5

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

Explicitly says when to use (public URL, direct download links, Dropbox/Google Drive/Box auto-resolve), when not to use (OneDrive/SharePoint unreliable), and provides alternative (convert_content for strings).

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

get_download_urlA
Read-onlyIdempotent
Inspect

Get a presigned HTTPS URL to download the completed output file. Call after get_job_status returns 'complete'. URL expires in 24 hours. NOTE: fetching this URL is a direct S3 download, which is BLOCKED in sandboxed agent environments (claude.ai, Claude Desktop, Cursor). If you are in a sandbox, use get_output_content instead to receive the bytes inline over the tool channel.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesJob ID from transcode_video, transcode_from_url, or any convert tool.

Output Schema

ParametersJSON Schema
NameRequiredDescription
filenameYesSuggested filename for the downloaded file including extension.
expires_atYesISO 8601 timestamp when the download URL expires.
size_bytesNoFile size of the output in bytes.
download_urlYesPresigned HTTPS GET URL for the output file. Valid for 24 hours.
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. Description adds value by disclosing the URL is presigned, expires in 24 hours, and that direct S3 download is blocked in sandboxes—environment-specific behavior beyond annotations.

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?

Concise, front-loaded with main action. All sentences add value: prerequisites, expiration, sandbox warning, alternative. No filler or redundancy.

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

Completeness5/5

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

Given tool simplicity (1 param, output schema exists), description covers purpose, usage conditions, environment constraints, and alternative. No gaps.

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

Parameters4/5

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

Single parameter job_id has 100% schema coverage. Description adds context that job_id comes from transcode_video, transcode_from_url, or any convert tool, aiding understanding beyond schema.

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

Purpose5/5

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

Clearly states it gets a presigned HTTPS URL for downloading the completed output file. Mentions prerequisite (after get_job_status returns 'complete') and expiration (24 hours). Distinguishes from sibling tool get_output_content by noting environment restrictions.

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

Usage Guidelines5/5

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

Explicitly specifies when to call (after get_job_status returns 'complete') and when not to (sandboxed environments), providing an alternative (get_output_content). No ambiguity.

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

get_job_statusA
Read-onlyIdempotent
Inspect

Poll the status of a transcode or convert job. Call every 5 seconds until status is 'complete' or 'failed'. Status 'queued' or 'processing' is normal — large files take 5–15 minutes. Keep polling indefinitely until a terminal status is reached. Do not stop polling after a fixed number of attempts.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesJob ID returned by transcode_video, transcode_from_url, convert_file, convert_from_url, or convert_content.

Output Schema

ParametersJSON Schema
NameRequiredDescription
job_idYesThe job identifier.
statusYesCurrent job state.
cost_usdNoAmount debited from the wallet on completion, in USD.
output_keyNoS3 object key of the completed output. Present when status is 'complete'. Pass to get_download_url.
progress_pctNoEncoding progress 0–100. Only present while status is 'processing'.
error_messageNoHuman-readable error description. Present when status is 'failed'.
Behavior5/5

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

Annotations already declare safe, idempotent behavior. The description adds critical behavioral context: polling strategy, expected statuses, time estimates, and indefinite retry logic. This goes well beyond annotations.

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 concise (3 sentences), front-loads the purpose, and every sentence provides essential guidance without redundancy.

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

Completeness5/5

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

Given the presence of an output schema (return values documented), the description covers all necessary aspects: polling behavior, terminal conditions, timing, and error handling instructions. It is complete for a polling tool.

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 coverage for job_id is 100% and includes a description listing source tools. The tool description does not add further parameter meaning, so baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's purpose: polling the status of transcode or convert jobs. It uses specific verbs and resources, and the context distinguishes it from sibling tools like get_workflow_status by specifying the job type.

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

Usage Guidelines4/5

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

The description provides explicit usage guidance: polling every 5 seconds until terminal status, handling normal statuses, and warning against fixed attempt limits. It does not explicitly mention alternatives or when not to use, but the guidance is clear and actionable.

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

get_output_contentA
Read-onlyIdempotent
Inspect

Return the finished output of a completed job INLINE as base64 — no S3 download. Use this in sandboxed agent environments (claude.ai, Claude Desktop, Cursor) where fetching a get_download_url link is blocked; it delivers the bytes over the same tool channel that always works. Call after get_job_status returns 'complete'. Limited to 4 MB outputs — for larger files use get_download_url (and a non-sandboxed environment, or add the S3 host to your egress allowlist).

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesJob ID from any convert or transcode job.

Output Schema

ParametersJSON Schema
NameRequiredDescription
mimeYesMIME type of the output, e.g. application/pdf.
formatYesOutput file extension, e.g. pdf or docx.
encodingNoAlways "base64".
size_bytesYesDecoded file size in bytes.
content_base64YesThe output file bytes, base64-encoded. Decode and write to disk.
Behavior5/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds that it delivers base64 inline, is limited to 4 MB, and explains the sandboxed environment context. No contradictions.

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

Conciseness4/5

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

The description is a single paragraph with multiple sentences. It is clear and informative, but slightly longer than necessary. Could be broken into bullet points for better structure, but still concise enough.

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

Completeness5/5

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

Given one parameter, output schema exists, and good annotations, the description covers what, when, limitations, and alternatives comprehensively. No gaps.

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 coverage is 100% for the single parameter job_id. The description says 'Job ID from any convert or transcode job' which aligns with the schema. No additional meaning beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states 'Return the finished output of a completed job INLINE as base64 — no S3 download.' It specifies the verb (return), resource (output), and scope (inline, base64). It also distinguishes from get_download_url by mentioning the alternative.

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

Usage Guidelines5/5

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

Explicitly says to use this in sandboxed environments where get_download_url is blocked, and for larger outputs use get_download_url. Also states to call after get_job_status returns 'complete'. Provides clear when-to-use and when-not-to-use.

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

get_upload_urlAInspect

Get a presigned upload form for any file — video, audio, or document (markdown, HTML, DOCX, etc.). It expires in 15 minutes. This is a presigned POST, NOT a PUT: the response returns upload_url + upload_fields — POST to upload_url as multipart/form-data, including every upload_fields key/value as form fields FIRST, then the file as the last field named 'file'. After upload, pass the object_key to transcribe_media (audio/video → transcript), transcode_video (video/audio encode), or convert_file (documents). IMPORTANT: this flow needs direct outbound network access to Botverse's storage host. In sandboxed agent environments (claude.ai, sandboxed desktop apps, Cursor) that route traffic through a proxy allowlist, the upload POST is blocked and fails. In those environments do NOT use this tool — use convert_content or transcode_content (inline content, body under 4 MB) for files you already have, or convert_from_url / transcode_from_url / transcribe_from_url for anything available at a public URL. Neither needs an upload step.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYesOriginal filename including extension, e.g. report.md or footage.mp4
content_typeYesMIME type. Video: "video/mp4". Documents: "text/markdown", "text/html", "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "text/plain".

Output Schema

ParametersJSON Schema
NameRequiredDescription
expires_inYesSeconds until the upload URL expires (900 = 15 minutes).
object_keyYesObject key — pass to transcribe_media, transcode_video, or convert_file.
upload_urlYesPresigned HTTPS POST URL — POST as multipart/form-data (all upload_fields, then the file), NOT a PUT.
upload_fieldsNoForm fields that must be included (before the file) in the multipart POST.
Behavior5/5

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

Beyond annotations (readOnlyHint: false, openWorldHint: true), the description discloses expiration (15 min), that it's a presigned POST not PUT, the required upload flow (multipart/form-data with fields then file), and a critical network access restriction for sandboxed agents. This adds significant context beyond the structured annotations.

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 long but every sentence is informative. It is well-structured: starts with basic purpose, then technical details (expiration, HTTP method), then critical constraints and alternatives. No fluff or redundancy.

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

Completeness5/5

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

Given the tool's complexity (upload flow, subsequent operations, network restrictions), the description covers all necessary aspects. It tells the agent how to use the response, what to do after upload, and provides fallback paths for restricted environments. An output schema exists for return values, so not mentioning them is acceptable.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds value by providing examples of filename (e.g., report.md) and listing common MIME types for content_type (video/mp4, text/markdown, etc.). This helps an agent select appropriate values, though it does not deeply explain each parameter's semantics beyond what the schema offers.

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

Purpose5/5

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

The description clearly states that the tool gets a presigned upload form for any file type (video, audio, document). It specifies the verb 'Get', resource 'presigned upload form', and distinguishes from siblings by mentioning subsequent tools (transcribe_media, transcode_video, convert_file) and alternatives for sandboxed environments.

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

Usage Guidelines5/5

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

The description explicitly says when to use this tool (for files needing upload to Botverse storage) and when NOT to use it (in sandboxed environments without direct network access). It lists specific alternatives: convert_content, transcode_content, convert_from_url, transcode_from_url, transcribe_from_url. This provides excellent guidance.

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

get_wallet_balanceA
Read-onlyIdempotent
Inspect

Check the current prepaid wallet balance for this Botverse account. Use before large batch jobs to confirm sufficient funds.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
balance_usdYesCurrent wallet balance in USD.
refill_amount_usdNoAmount in USD added on each auto-refill, if enabled.
auto_refill_enabledYesWhether automatic wallet top-up is enabled.
refill_threshold_usdNoBalance threshold in USD that triggers an auto-refill, if enabled.
Behavior3/5

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

The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description adds limited behavioral context. It mentions the check operation and prepaid nature, which is consistent but not adding critical new info.

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?

Two concise sentences, the first stating purpose and the second providing usage guidance. No wasted words.

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

Completeness5/5

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

Given the tool's simplicity (no parameters, no required inputs, and an output schema exists), the description is complete and provides sufficient context for an agent.

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

Parameters4/5

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

The input schema has zero parameters and schema description coverage is 100%. With no parameters, the baseline is 4; the description adds no parameter details, but none are needed.

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

Purpose5/5

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

The description uses a specific verb 'Check' and identifies the resource 'prepaid wallet balance for this Botverse account.' It clearly distinguishes from sibling tools which deal with conversions, uploads, and transcoding.

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

Usage Guidelines4/5

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

The description explicitly states when to use this tool: 'Use before large batch jobs to confirm sufficient funds.' It provides clear context but does not mention alternatives or when not to use.

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

get_workflow_statusA
Read-onlyIdempotent
Inspect

Get the current status of a workflow and all its steps. Each call may advance the workflow by dispatching steps whose dependencies have completed. Poll every 5–10 seconds until status is COMPLETED, FAILED, PARTIALLY_FAILED, or CANCELLED.

ParametersJSON Schema
NameRequiredDescriptionDefault
workflow_idYesWorkflow ID returned by submit_workflow.

Output Schema

ParametersJSON Schema
NameRequiredDescription
stepsNoArray of step status objects.
statusYes
workflow_idYes
completed_atNoISO timestamp when workflow reached terminal state.
total_cost_usdNo
Behavior1/5

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

The description states 'Each call may advance the workflow,' implying side effects, but annotations set readOnlyHint=true. This is a direct contradiction per instructions, warranting a score of 1.

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?

Three sentences that get straight to the point: purpose, behavior, then polling advice. No extraneous words, well-structured.

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

Completeness5/5

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

Given the output schema exists and annotations provide safety info, the description fully covers purpose, behavioral nuance (state advancement), and usage pattern. Nothing missing for a status-checking tool.

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 covers the single parameter with a clear description. The tool description adds no additional parameter info beyond what schema provides, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool gets workflow status and all steps, with specific verbs and resource. It distinguishes from sibling tools like submit_workflow and cancel_workflow by noting the polling behavior and state advancement.

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

Usage Guidelines4/5

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

The description provides explicit usage instructions: poll every 5-10 seconds until terminal status. However, it does not mention when to avoid using this tool or contrast with alternatives like get_job_status.

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

submit_workflowA
Idempotent
Inspect

Submit a multi-step workflow to the Botverse workflow engine. Steps execute in dependency order; parallel branches (multiple steps with the same depends_on) run simultaneously. Returns a workflow_id immediately — poll get_workflow_status every 5–10 seconds until terminal. INTER-STEP REFERENCES: pass a prior step's output into a later step with the string "$.steps..output_key" (e.g. a docx→pdf chain: step to_pdf has depends_on: ["to_docx"] and inputs {"source_url": "$.steps.to_docx.output_key", "input_format": "docx", "output_format": "pdf"} using tool convert_from_url). Workflow params are referenced as "$.params.". No other template syntax (${...} etc.) is supported. BILLING: convert-only workflows run on wallet balance ($0.05/step). Workflows containing transcode or transcribe steps require auto-refill to be enabled at botverse.cloud/dashboard/billing (their cost scales with source duration). Workflow definition uses BWDL (Botverse Workflow Definition Language) — schema at botverse.cloud/schemas/workflow/v1.json.

ParametersJSON Schema
NameRequiredDescriptionDefault
definitionYesBWDL workflow definition. Must include workflow_id (string) and steps (array). Each step needs id, tool, and inputs.

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYesInitial status: QUEUED or PROCESSING.
step_countNoNumber of steps in the workflow.
workflow_idYesUnique workflow identifier. Pass to get_workflow_status.
already_existsNoTrue if this workflow_id was already submitted — idempotent resubmit.
Behavior5/5

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

Discloses asynchronous behavior (returns workflow_id immediately, poll for status), idempotency (implied by unique workflow_id), and billing conditions. Mentions that no other template syntax is supported. Goes well beyond annotations which only show idempotentHint true.

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

Conciseness4/5

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

Somewhat lengthy but every sentence adds value. Front-loaded with core purpose then details. Could be slightly more concise, but the structure is logical and easy to follow.

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

Completeness5/5

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

Comprehensive coverage of submission semantics, step dependency ordering, parallel execution, inter-step references, billing rules, and schema availability. With an output schema present, the description fully prepares an agent to use the tool correctly.

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

Parameters5/5

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

Adds rich meaning to the sole 'definition' parameter: explains it must be BWDL, includes required fields (workflow_id, steps), and provides detailed inter-step reference syntax with examples. Schema coverage is 100% but description significantly enhances understanding.

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

Purpose5/5

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

Clearly states it submits a multi-step workflow to the Botverse workflow engine, distinguishing it from simpler conversion tools and sibling tools like cancel_workflow and get_workflow_status. The verb 'submit' plus 'multi-step workflow' is specific and unambiguous.

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

Usage Guidelines5/5

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

Explicitly describes when to use (for multi-step workflows) and indirectly when not (use convert tools for single conversions). Provides billing guidance, polling recommendations, and a schema reference. Alternative tools are implied by sibling list and context.

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

transcode_from_urlAInspect

Offload a video or audio transcode to Botverse using a public URL — no upload step needed. Accepts a direct HTTPS download URL, or a Dropbox / Google Drive / Box share link (auto-resolved). NOTE: OneDrive and SharePoint share links are unreliable — they often return a viewer page, not the file; for those pass a direct download URL or upload the file via get_upload_url. Also works with any direct HTTPS download URL (CDN, S3, etc.). Limited to 2 GB. Returns a job_id immediately. IMPORTANT: tell the user the job_id right away so they can track it. Then poll get_job_status every 5 seconds. Large video files (>100 MB) can take 5–15 minutes — keep polling until status is 'complete' or 'failed', no matter how many polls it takes. Never give up early. Wallet debited on completion. Use options.start_time and options.duration to trim — e.g. start_time='00:01:00', duration=120 for a 2-minute clip. RELIABILITY & FALLBACK: Botverse returns structured errors with a message. A bare 'HTTP 500' or 'tool call failed' with no message body is the MCP connector / sandbox layer between your client and Botverse — NOT a Botverse outage (the service is up if get_wallet_balance succeeds). If MCP calls keep failing, do NOT write your own ffmpeg / transcription / document-conversion code as a workaround — that wastes tokens and reinvents what Botverse does. Instead, tell the user to run the equivalent Botverse CLI from their own (non-sandboxed) machine, e.g. npx botverse transcribe <file> --to docx (also transcode and convert), then retry the MCP call.

ParametersJSON Schema
NameRequiredDescriptionDefault
optionsNoOptional encoding parameters. All are optional.
source_urlYesPublic HTTPS URL of the source video or audio file.
output_formatYesTarget output format. One of: mp4 (H.264), webm (VP9), mov_prores (ProRes 422), mp3 (audio extraction), gif.

Output Schema

ParametersJSON Schema
NameRequiredDescription
job_idYesUnique identifier for this job. Pass to get_job_status and get_download_url.
statusYesInitial job state — always queued or processing immediately after submission.
estimated_secondsNoRough estimated processing time in seconds. Actual time may vary.
Behavior5/5

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

Annotations are limited (readOnlyHint=false, etc.). Description adds significant context: returns job_id immediately, wallet debited on completion, 2 GB limit, reliability/fallback handling, polling instructions, and explanations of Botverse vs MCP errors. No contradictions.

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

Conciseness4/5

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

Description is long but front-loaded with purpose. Every sentence adds value, but could be slightly trimmed without losing information. Still very good for a complex tool.

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

Completeness5/5

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

Given output schema exists (return values not needed), description covers input, behavior, limitations, error handling, polling, fallback. Very complete for a complex tool with multiple use cases.

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

Parameters5/5

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

Schema coverage is 100%, but description adds meaning: explains start_time/duration with examples, details source_url types, clarifies output_format options, and provides usage tips. Adds value beyond schema.

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

Purpose5/5

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

Clearly states 'Offload a video or audio transcode to Botverse using a public URL — no upload step needed.' Specific verb and resource, distinguishes from siblings like transcode_video and transcribe_from_url.

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

Usage Guidelines5/5

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

Explicitly says when to use (public URLs, Dropbox/Google Drive/Box, not OneDrive/SharePoint), provides alternatives (upload via get_upload_url), and fallback guidance (use CLI if MCP fails). Also advises against writing own code.

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

transcode_videoAInspect

Offload a video transcode to Botverse — encoding runs server-side so you can continue with other tasks. Returns a job_id immediately. Source must be ≤ 10 minutes and ≤ 5 GB. Poll get_job_status every 5 seconds until 'complete', then get_download_url. Wallet debited on completion. Requires get_upload_url first — if you are in a sandboxed environment where that upload POST is blocked, use transcode_from_url (public URL) or transcode_content (inline) instead; no upload needed. RELIABILITY & FALLBACK: Botverse returns structured errors with a message. A bare 'HTTP 500' or 'tool call failed' with no message body is the MCP connector / sandbox layer between your client and Botverse — NOT a Botverse outage (the service is up if get_wallet_balance succeeds). If MCP calls keep failing, do NOT write your own ffmpeg / transcription / document-conversion code as a workaround — that wastes tokens and reinvents what Botverse does. Instead, tell the user to run the equivalent Botverse CLI from their own (non-sandboxed) machine, e.g. npx botverse transcribe <file> --to docx (also transcode and convert), then retry the MCP call.

ParametersJSON Schema
NameRequiredDescriptionDefault
optionsNoOptional encoding parameters. All are optional.
object_keyYesS3 object key returned by get_upload_url.
output_formatYesTarget output format. One of: mp4 (H.264), webm (VP9), mov_prores (ProRes 422), mp3 (audio extraction), gif.

Output Schema

ParametersJSON Schema
NameRequiredDescription
job_idYesUnique identifier for this job. Pass to get_job_status and get_download_url.
statusYesInitial job state — always queued or processing immediately after submission.
estimated_secondsNoRough estimated processing time in seconds. Actual time may vary.
Behavior5/5

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

Discloses key behaviors: returns job_id immediately, constraints (≤10 min, ≤5 GB), polling instructions, wallet debit on completion, and error handling (structured errors vs. bare HTTP 500). No annotations contradict these details.

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

Conciseness4/5

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

Well-structured with clear sections, front-loaded with purpose. However, the reliability section is somewhat verbose and includes CLI instructions that could be trimmed. Still, every sentence serves a purpose.

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

Completeness5/5

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

Comprehensive coverage: workflow steps, constraints, error handling, fallback alternatives, and output schema existence. No gaps given the complexity and rich annotations/schema.

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

Parameters4/5

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

Schema coverage is 100%, with descriptions for all parameters. The description adds context for object_key (requires get_upload_url) and elaborates on output_format options, providing integration guidance beyond the schema.

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

Purpose5/5

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

The description clearly states the tool offloads video transcoding to Botverse, with specific verb 'Offload a video transcode' and resource 'video'. It distinguishes from siblings like transcode_from_url and transcode_content by noting the upload requirement and alternatives.

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

Usage Guidelines5/5

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

Explicitly states when to use this tool (requires get_upload_url first) and when not to (use transcode_from_url or transcode_content in sandboxed environments). Also provides fallback guidance and warns against writing own code, making it highly actionable.

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

transcribe_from_urlAInspect

Transcribe a video or audio file from a public HTTPS URL into a speaker-labelled transcript — ONE call does everything. Source can be a direct HTTPS URL or a Dropbox / Google Drive / Box share link (auto-resolved); OneDrive and SharePoint share links are unreliable (often a viewer page, not the file) — use a direct download URL for those, or upload via get_upload_url + transcribe_media. Internally: converts to audio, runs speech-to-text with speaker diarization, uses AI to name the speakers from your attendee list, and renders the document. Pass options.attendees (names, optional gender/role) and it tags who said what. Output formats: txt, json, srt, vtt, docx, pdf. CONSENT: you must have all parties' consent to record/transcribe — Botverse accepts no liability otherwise. Returns a job_id immediately — report it to the user, then poll get_job_status (it reports a live stage: converting audio → transcribing → AI augmenting → rendering) until 'complete', then get_download_url (or get_output_content for inline bytes in a sandbox). ~$5 per hour of audio. RELIABILITY & FALLBACK: Botverse returns structured errors with a message. A bare 'HTTP 500' or 'tool call failed' with no message body is the MCP connector / sandbox layer between your client and Botverse — NOT a Botverse outage (the service is up if get_wallet_balance succeeds). If MCP calls keep failing, do NOT write your own ffmpeg / transcription / document-conversion code as a workaround — that wastes tokens and reinvents what Botverse does. Instead, tell the user to run the equivalent Botverse CLI from their own (non-sandboxed) machine, e.g. npx botverse transcribe <file> --to docx (also transcode and convert), then retry the MCP call.

ParametersJSON Schema
NameRequiredDescriptionDefault
optionsNoOptional. attendees: [{name, gender?, role?}] to name speakers; language (BCP-47 or 'auto'); diarize (default true); max_speakers; title; include_timestamps; also_deliver: extra formats in the same job.
source_urlYesPublic HTTPS URL of the source video or audio file.
output_formatYesPrimary deliverable: txt | json | srt | vtt | docx | pdf

Output Schema

ParametersJSON Schema
NameRequiredDescription
job_idYesUnique identifier for this job. Pass to get_job_status and get_download_url.
statusYesInitial job state — always queued or processing immediately after submission.
estimated_secondsNoRough estimated processing time in seconds. Actual time may vary.
Behavior5/5

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

Discloses internal steps (conversion, diarization, AI naming), cost, job_id return, consent requirement, and error handling beyond annotations.

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

Conciseness3/5

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

Long but well-structured; front-loaded with main purpose, but could be more concise by trimming redundant fallback details.

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

Completeness5/5

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

Covers all essential aspects: source types, process, options, consent, output, polling, cost, and fallback, making it complete for agent use.

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

Parameters4/5

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

Schema coverage is 100%; description adds context for options (e.g., attendees for speaker naming) and output formats, enhancing understanding.

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

Purpose5/5

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

The description clearly states the tool transcribes video/audio from a public URL into a speaker-labelled transcript, distinguishing it from siblings like transcribe_media and transcode_from_url.

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

Usage Guidelines5/5

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

Provides explicit when-to-use (direct URLs, Dropbox/Google Drive/Box) and when-not-to-use (OneDrive/SharePoint) with alternatives, plus polling process and fallback instructions.

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

transcribe_mediaAInspect

Transcribe an already-uploaded video/audio file (from get_upload_url) into a speaker-labelled transcript. Same one-call pipeline and options as transcribe_from_url (attendee naming, srt/vtt, formatted docx/pdf). Use for local files or files larger than a URL fetch allows (up to 2 GB). CONSENT: you must have all parties' consent. Poll get_job_status (live stage) until complete, then get_download_url / get_output_content. ~$5 per hour of audio. RELIABILITY & FALLBACK: Botverse returns structured errors with a message. A bare 'HTTP 500' or 'tool call failed' with no message body is the MCP connector / sandbox layer between your client and Botverse — NOT a Botverse outage (the service is up if get_wallet_balance succeeds). If MCP calls keep failing, do NOT write your own ffmpeg / transcription / document-conversion code as a workaround — that wastes tokens and reinvents what Botverse does. Instead, tell the user to run the equivalent Botverse CLI from their own (non-sandboxed) machine, e.g. npx botverse transcribe <file> --to docx (also transcode and convert), then retry the MCP call.

ParametersJSON Schema
NameRequiredDescriptionDefault
optionsNoSame options object as transcribe_from_url (attendees, language, diarize, max_speakers, title, include_timestamps, also_deliver).
object_keyYesThe object_key returned by get_upload_url.
output_formatYesPrimary deliverable: txt | json | srt | vtt | docx | pdf

Output Schema

ParametersJSON Schema
NameRequiredDescription
job_idYesUnique identifier for this job. Pass to get_job_status and get_download_url.
statusYesInitial job state — always queued or processing immediately after submission.
estimated_secondsNoRough estimated processing time in seconds. Actual time may vary.
Behavior5/5

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

Discloses behavioral traits: one-call pipeline, consent required, cost per hour, error handling (structured errors vs HTTP 500), and warns against writing own code as workaround. No contradiction with annotations.

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

Conciseness4/5

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

The description is relatively long but each sentence serves a purpose: purpose, use case, consent, polling, cost, fallback. Could be slightly more concise, but well-structured and front-loaded.

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

Completeness5/5

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

Given 3 params, nested object, and output schema exists, the description covers usage, fallback, cost, consent, and next steps comprehensively. No need to explain return values as output schema is present.

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

Parameters4/5

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

Schema coverage is 100%, baseline is 3. Description adds value by explaining object_key source (get_upload_url), listing output_format options, and cross-referencing options from transcribe_from_url, providing context beyond schema.

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

Purpose5/5

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

The description clearly states it transcribes already-uploaded media files into speaker-labelled transcripts, distinguishes from transcribe_from_url, and specifies it handles local/large files (up to 2 GB).

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

Usage Guidelines5/5

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

Explicitly says when to use this tool vs transcribe_from_url ('Use for local files or files larger than a URL fetch allows'), provides consent requirement, polling instructions, cost, and fallback behaviors.

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

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources