Botverse
Botverse is a cloud-based media processing and document conversion server accessible via an MCP server (for AI agents like Claude Desktop, Cursor) or CLI (for scripting and CI/CD).
Video & Audio Transcoding
Convert from a public URL (Dropbox, Google Drive, OneDrive, etc., up to 2 GB) or uploaded file (up to 5 GB)
Output formats:
mp4(H.264),webm(VP9),mov_prores(ProRes 422),mp3(audio extraction),gifOptional controls: resolution, bitrate, framerate, H.264 profile, trimming (start time + duration)
Document Conversion
Convert inline content (string input, up to 10,000 chars), from a public URL, or from an uploaded file
Input formats:
md,html,rst,txt,docx— Output formats:docx,pdf,html,txt,md,rst,xlsx
Transcription
Speaker-labelled transcripts with diarization and AI speaker naming
Output to
txt,srt,vtt,docx, orpdf(~$5/hour)
File Handling
Get presigned PUT URLs to upload files (up to 5 GB) before processing
Get signed HTTPS download URLs (valid 24 hours) for completed output files
Job & Workflow Management
Poll job status every ~5 seconds (
queued,processing,complete,failed) with progress percentageSubmit multi-step pipelines via BWDL (Botverse Workflow Definition Language) with parallel branches
Track workflow step statuses and cancel in-progress workflows (billed only for completed steps)
Account Management
Check prepaid wallet balance, auto-refill settings, and thresholds
Allows document conversion from Box share links: pass a Box share URL to convert_from_url or transcode_from_url and the server will process the file server-side.
botverse-mcp
MCP server and command-line tool for Botverse — video transcoding and document conversion for AI agents and the humans who configure them.
What it does
Video transcoding — MP4 (H.264), WebM (VP9), ProRes 422, GIF, MP3 extraction · $0.25/job
Document conversion — Markdown ↔ DOCX ↔ PDF ↔ HTML ↔ XLSX · $0.05/file
Transcription — speaker-labelled transcripts (diarization + AI speaker naming) → txt/srt/vtt/docx/pdf · ~$3/hour
Two ways to use it: an MCP server for your AI agents, and a botverse CLI for the shell — evaluation, CI/CD, cron, scripts, and local coding agents. No AWS. No FFmpeg. No infrastructure.
Related MCP server: arcframe-mcp
Setup
Sign up at botverse.cloud — free to try: $1 credit on signup, no card required. A card + 2FA are only needed at your first top-up ($5 min). No monthly fees.
Get an API key or connector URL from your dashboard
Add to your MCP client config
Usage
Claude Desktop / Cursor / Windsurf
{
"mcpServers": {
"botverse": {
"command": "npx",
"args": ["-y", "botverse-mcp"],
"env": {
"BOTVERSE_API_KEY": "bv_live_..."
}
}
}
}Or with a connector URL (recommended for claude.ai):
{
"mcpServers": {
"botverse": {
"command": "npx",
"args": ["-y", "botverse-mcp"],
"env": {
"BOTVERSE_CONNECTOR_URL": "https://botverse.cloud/mcp?token=bv_sess_..."
}
}
}
}Command line (botverse)
The same package ships a botverse CLI for the shell — it reads files from disk and
streams them straight to the API (no content goes through an LLM), so it's the fast
path for evaluation, automation, and local coding agents.
export BOTVERSE_API_KEY=bv_live_… # or BOTVERSE_CONNECTOR_URL=…?token=bv_sess_…
npx botverse convert report.md --to pdf
npx botverse convert *.md --to docx,pdf -o ./out
npx botverse transcode clip.mov --to mp4 -o ./out
npx botverse transcribe call.mp4 --to docx --attendees "Sarah Chen,Mike Torres"
npx botverse balanceEach job uploads → polls → downloads the finished file to -o (default: current dir).
Globs and multiple --to formats run as a batch.
Sandbox note: the CLI needs outbound network to
botverse.cloudand S3, so it does not run inside sandboxed agent environments (claude.ai / Claude Desktop), whose egress is allowlisted. There, use the MCP tools (convert_content/get_output_content).
Tools (MCP)
Tool | Description |
| Transcode video from a public URL |
| Transcode an uploaded video file |
| Convert document content inline (up to 4 MB; sandbox-safe) |
| Convert a document from a public URL |
| Convert an uploaded document |
| Poll a job until complete |
| Get the signed download URL |
| Get finished output bytes inline (sandbox-safe download) |
| Check wallet balance |
Pricing
Video transcode (≤5 min): $0.25/job
Video overage: +$0.08/min
ProRes 422: $0.35/source-min ($0.50 min)
Document conversion: $0.05/file
Credits never expire. Full pricing →
Links
Available Tools
12 toolscancel_workflowAIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| workflow_id | Yes | Workflow ID to cancel. |
Output Schema
| Name | Required | Description |
|---|---|---|
| workflow_id | Yes | |
| cancelled | Yes | |
| status | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses important behaviors: queued/dispatched steps are marked CANCELLED, completed steps are not reversed, and billing only for completed steps. This adds value beyond annotations (idempotentHint true) and does not contradict them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences long, front-loaded with the primary purpose, and each sentence provides necessary detail without redundancy. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 and the tool's simplicity, the description fully covers the cancellation semantics, step handling, and billing impact. It is complete for an AI agent to understand and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers the sole parameter (workflow_id) with 100% description coverage. The description does not add additional meaning beyond the schema, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool cancels an in-progress workflow, specifies behavior for steps (queued/dispatched marked CANCELLED, completed not reversed), and mentions billing implications. This distinguishes it from sibling tools like submit_workflow or get_workflow_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly tells when to use (to cancel an in-progress workflow) but does not explicitly mention when not to use or suggest checking status first. It provides clear context without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_contentA
Offload an inline document conversion to Botverse — pass the content directly as a string. ONLY use this tool for content you generated yourself (e.g. Markdown you just wrote). HARD LIMIT: content must be under 10,000 characters. If the content is longer than 10,000 characters, or came from an uploaded or external file, DO NOT use this tool — tell the user to make the file available at a public URL (Google Drive share link, Dropbox, object storage, etc.) and use convert_from_url instead. Supported inputs: md, html, rst, txt (plain text), docx (base64). Supported outputs: docx (Word), pdf, html, txt, md, rst, xlsx. Flat fee $0.05 per file.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | The file content as a plain text string (for md, html, rst, txt) or base64-encoded bytes (for docx). | |
| input_format | Yes | Source format of the content. | |
| output_format | Yes | Target format: docx | html | txt | md | rst | pdf | xlsx | |
| encoding | No | Encoding of the content field. Defaults to "text". Use "base64" for binary inputs like .docx. |
Output Schema
| Name | Required | Description |
|---|---|---|
| job_id | Yes | Unique identifier for this job. Pass to get_job_status and get_download_url. |
| status | Yes | Initial job state — always queued or processing immediately after submission. |
| estimated_seconds | No | Rough estimated processing time in seconds. Actual time may vary. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate non-readonly, non-destructive, non-idempotent, open world. Description adds cost transparency ('Flat fee $0.05 per file') and hard limit on content length. Could mention error handling or job status.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise, well-structured with no wasted sentences. Front-loaded with purpose, then conditions, then supported formats. Uses bolded limits and alternative tool names.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 4 parameters fully covered, output schema present, and description providing cost and limits, the tool is fully documented. No missing context for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds meaning: explains content can be text or base64 depending on input format, defaults, and the 10k character limit. Only minor gap is no explicit mention of encoding default in description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('offload an inline document conversion') and resource ('Botverse'), distinguishes from sibling tool convert_from_url, and clearly states the tool's function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (self-generated content under 10,000 chars), when not to use (longer or external files), and directs to convert_from_url as alternative. Also lists supported input/output formats.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_fileA
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.
| Name | Required | Description | Default |
|---|---|---|---|
| object_key | Yes | The object_key returned by get_upload_url. | |
| output_format | Yes | Target format: docx | html | txt | md | rst | pdf | xlsx |
Output Schema
| Name | Required | Description |
|---|---|---|
| job_id | Yes | Unique identifier for this job. Pass to get_job_status and get_download_url. |
| status | Yes | Initial job state — always queued or processing immediately after submission. |
| estimated_seconds | No | Rough estimated processing time in seconds. Actual time may vary. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are minimal, but the description adds critical behavioral details: async operation (returns job_id immediately), server-side processing, and flat fee of $0.05 per file. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with numbered steps and clear sections. Slightly verbose but every sentence adds value including cost and polling instructions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Comprehensive coverage for an async conversion tool: workflow, supported formats, async pattern, cost, and integration with sibling tools. Output schema exists, so return values are documented separately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers both parameters with descriptions. The description adds value by listing supported input formats (not in schema) and explaining the workflow context, exceeding baseline for 100% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool offloads document conversion to Botverse using an already-uploaded file. It specifies the workflow and differentiates from siblings 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides a step-by-step workflow: call get_upload_url, upload file, then convert_file. It also mentions polling get_job_status and get_download_url, and contrasts with convert_from_url for URL-based conversions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_from_urlA
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 — including Dropbox, Google Drive, OneDrive, SharePoint, and Box share links (pass the share URL as-is). If you already have the content as a string, use convert_content instead — no upload step needed. 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_download_url. Flat fee $0.05 per file.
| Name | Required | Description | Default |
|---|---|---|---|
| source_url | Yes | Public HTTPS URL of the source document. | |
| output_format | Yes | Target format: docx | html | txt | md | rst | pdf | xlsx |
Output Schema
| Name | Required | Description |
|---|---|---|
| job_id | Yes | Unique identifier for this job. Pass to get_job_status and get_download_url. |
| status | Yes | Initial job state — always queued or processing immediately after submission. |
| estimated_seconds | No | Rough estimated processing time in seconds. Actual time may vary. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses server-side processing, immediate job return, polling frequency (every 5s), and pricing ($0.05 per file). Annotations (readOnlyHint=false, etc.) are not contradicted; description adds rich behavioral context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main value, then structured logically: when to use, alternatives, supported formats, workflow steps, pricing. No redundant sentences; every sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that output schema exists (context signal) and annotations are minimal, the description covers all needed context: conversion is async, returns job_id, polling procedure, pricing, supported formats, and input constraints (public URL). Complete for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. Description adds value by clarifying source_url accepts Dropbox, Google Drive, etc. share links, and reiterates output_format enum. This extra context justifies a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool converts a document from a public URL using Botverse, with specific verb 'Offload a document conversion'. It distinguishes from sibling convert_content by specifying when to use each (URL vs. string content). Supported inputs and outputs are listed, making purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'Use this when the source document is at a public URL' and provides counterexample: 'If you already have the content as a string, use convert_content instead.' Also mentions supported formats and workflow steps (polling, download). No ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_download_urlARead-onlyIdempotent
Get a presigned HTTPS URL to download the completed output file. Call after get_job_status returns 'complete'. URL expires in 24 hours.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | Job ID from transcode_video, transcode_from_url, or any convert tool. |
Output Schema
| Name | Required | Description |
|---|---|---|
| download_url | Yes | Presigned HTTPS GET URL for the output file. Valid for 24 hours. |
| filename | Yes | Suggested filename for the downloaded file including extension. |
| expires_at | Yes | ISO 8601 timestamp when the download URL expires. |
| size_bytes | No | File size of the output in bytes. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds a key behavioral detail: 'URL expires in 24 hours.' This provides useful context beyond annotations. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences that front-load the purpose and include a usage guideline and additional detail. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool (one parameter, good annotations, output schema exists), the description covers all needed aspects: what it does, when to call, and an important expiration detail. It is complete for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already has 100% coverage with a description for the only parameter ('job_id'). The tool description does not add additional meaning beyond what the 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the function: 'Get a presigned HTTPS URL to download the completed output file.' It uses a specific verb ('Get') and resource ('presigned HTTPS URL'), and distinguishes from sibling tools like get_job_status and get_upload_url.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use the tool: 'Call after get_job_status returns "complete".' This provides clear context, though it does not mention when not to use or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_job_statusARead-onlyIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | Job ID returned by transcode_video, transcode_from_url, convert_file, convert_from_url, or convert_content. |
Output Schema
| Name | Required | Description |
|---|---|---|
| job_id | Yes | The job identifier. |
| status | Yes | Current job state. |
| progress_pct | No | Encoding progress 0–100. Only present while status is 'processing'. |
| output_key | No | storage object key of the completed output. Present when status is 'complete'. Pass to get_download_url. |
| cost_usd | No | Amount debited from the wallet on completion, in USD. |
| error_message | No | Human-readable error description. Present when status is 'failed'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds essential polling specifics (5s interval, indefinite loop, expected durations), far exceeding the annotations' baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four concise sentences, all necessary, no redundancy. The most critical information (purpose and polling behavior) is front-loaded, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple polling tool with a single parameter, an existing output schema, and rich annotations, the description fully covers the how (polling mechanics), when (until terminal), and what to expect (status values and timing).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for job_id, with a clear description of its source (returned by job-creating tools). The description adds no new parameter semantics beyond reinforcing that job_id comes from those tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb 'Poll' and resource 'status of a transcode or convert job', clearly distinguishing it from sibling tools that create or manage jobs (e.g., transcode_video, cancel_workflow).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit polling instructions: interval (5 seconds), terminal states ('complete' or 'failed'), non-terminal states explanation ('queued'/'processing' normal, 5-15 minutes), and a strong directive to poll indefinitely, not stop early.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_upload_urlA
Get a presigned PUT URL to upload any file — video, audio, or document (markdown, HTML, DOCX, etc.). The URL expires in 15 minutes. PUT raw file bytes directly to the URL. After upload, pass the object_key to transcode_video (for video) or convert_file (for documents).
| Name | Required | Description | Default |
|---|---|---|---|
| filename | Yes | Original filename including extension, e.g. report.md or footage.mp4 | |
| content_type | Yes | MIME type. Video: "video/mp4". Documents: "text/markdown", "text/html", "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "text/plain". |
Output Schema
| Name | Required | Description |
|---|---|---|
| upload_url | Yes | Presigned HTTPS PUT URL. Send raw file bytes as the request body. |
| object_key | Yes | storage object key — pass this to transcode_video or convert_file. |
| expires_in | Yes | Seconds until the upload URL expires (900 = 15 minutes). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate non-read-only and non-destructive behavior. The description adds useful context: URL expires in 15 minutes, raw bytes upload, and linking to transcode/convert tools. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with core purpose. Every sentence adds value: purpose, expiry, post-upload steps. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema (not shown), the description need not explain return values. It covers input parameters, expiry, and follow-up tools. Lacks mention of authentication prerequisites, but that is generally implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description does not need to explain parameters fully. It adds example MIME types (e.g., 'video/mp4', 'text/markdown'), which is helpful but not a substantial addition beyond schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets a presigned PUT URL for uploading any file (video, audio, document). It distinguishes from siblings like get_download_url and explicitly mentions post-upload steps using transcode_video or convert_file.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly explains when to use the tool (to get an upload URL) and what to do after upload. It implicitly distinguishes from alternatives (e.g., get_download_url for download) but does not provide explicit when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_wallet_balanceARead-onlyIdempotent
Check the current prepaid wallet balance for this Botverse account. Use before large batch jobs to confirm sufficient funds.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| balance_usd | Yes | Current wallet balance in USD. |
| auto_refill_enabled | Yes | Whether automatic wallet top-up is enabled. |
| refill_threshold_usd | No | Balance threshold in USD that triggers an auto-refill, if enabled. |
| refill_amount_usd | No | Amount in USD added on each auto-refill, if enabled. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint. Description adds 'current' implying real-time, but minimal extra behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded, no unnecessary words. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless read-only tool with output schema, description fully covers purpose and usage context. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters; schema coverage is vacuously 100%. Baseline 4 applies as description need not add param info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'check' and resource 'prepaid wallet balance'. Differentiates from sibling tools by being the only balance-check tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises using before large batch jobs to confirm funds. No alternatives or exclusions given, but clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workflow_statusARead-onlyIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| workflow_id | Yes | Workflow ID returned by submit_workflow. |
Output Schema
| Name | Required | Description |
|---|---|---|
| workflow_id | Yes | |
| status | Yes | |
| total_cost_usd | No | |
| steps | No | Array of step status objects. |
| completed_at | No | ISO timestamp when workflow reached terminal state. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states that each call may advance the workflow by dispatching steps, indicating a side effect, but annotations declare readOnlyHint=true. This is a direct contradiction, making the behavioral disclosure misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at two sentences, with the purpose front-loaded and no unnecessary words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the availability of an output schema, the description provides sufficient context for a typical polling tool, including behavior and termination conditions. It lacks mention of initial statuses but is still fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one required parameter (workflow_id) with schema coverage of 100%. The description does not add additional meaning beyond the schema's description, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the current status of a workflow and all its steps, using a specific verb 'Get' and resource 'workflow status'. It is easily distinguishable from sibling tools like submit_workflow, cancel_workflow, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides polling guidance (every 5-10 seconds) and termination conditions (COMPLETED, FAILED, etc.). It explains when to use the tool but does not explicitly discuss when not to use or alternatives, though the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_workflowAIdempotent
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. Requires auto-refill to be enabled at botverse.cloud/dashboard/billing to prevent mid-workflow balance failures. Workflow definition uses BWDL (Botverse Workflow Definition Language) — schema at botverse.cloud/schemas/workflow/v1.json.
| Name | Required | Description | Default |
|---|---|---|---|
| definition | Yes | BWDL workflow definition. Must include workflow_id (string) and steps (array). Each step needs id, tool, and inputs. |
Output Schema
| Name | Required | Description |
|---|---|---|
| workflow_id | Yes | Unique workflow identifier. Pass to get_workflow_status. |
| status | Yes | Initial status: QUEUED or PROCESSING. |
| step_count | No | Number of steps in the workflow. |
| already_exists | No | True if this workflow_id was already submitted — idempotent resubmit. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations, the description discloses key behaviors: it returns immediately (non-blocking), requires polling, needs auto-refill, and explains execution semantics (dependency order, parallel branches). This adds significant value 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five sentences cover purpose, execution model, polling, billing, and schema reference. Every sentence adds unique value with no redundancy or fluff. The description is front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers essential aspects: execution order, parallelism, polling interval, billing prerequisite, and schema reference. It lacks details about error handling or failure modes, but given the idempotentHint and output schema, it is largely sufficient for a competent agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds detailed structural requirements for the 'definition' parameter beyond the schema, specifying that it must include workflow_id and steps with id, tool, and inputs. This helps the agent construct valid input despite nested objects.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool submits a multi-step workflow to the Botverse workflow engine, distinguishing it from sibling tools like cancel_workflow and get_workflow_status. The verb 'submit' and resource 'workflow' are specific and actionable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context on when to use: for multi-step workflows with dependency ordering and parallel branches. It includes practical guidance like polling frequency and billing requirement, but does not explicitly mention when not to use or compare against other workflow-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transcode_from_urlA
Offload a video or audio transcode to Botverse using a public URL — no upload step needed. Accepts Dropbox, Google Drive, OneDrive, SharePoint, and Box share links directly — pass the share URL as-is, no manual conversion needed. Also works with any direct HTTPS download URL (CDN, object storage, 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.
| Name | Required | Description | Default |
|---|---|---|---|
| source_url | Yes | Public HTTPS URL of the source video or audio file. | |
| output_format | Yes | Target output format. One of: mp4 (H.264), webm (VP9), mov_prores (ProRes 422), mp3 (audio extraction), gif. | |
| options | No | Optional encoding parameters. All are optional. |
Output Schema
| Name | Required | Description |
|---|---|---|
| job_id | Yes | Unique identifier for this job. Pass to get_job_status and get_download_url. |
| status | Yes | Initial job state — always queued or processing immediately after submission. |
| estimated_seconds | No | Rough estimated processing time in seconds. Actual time may vary. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses key behaviors: immediate job_id return, wallet debiting on completion, polling frequency (every 5 seconds), and expected durations for large files. Annotations are minimal but not contradicted; the description adds significant value beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with the core purpose, followed by supported sources, limits, and post-invocation steps. It is slightly verbose but every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (nested options, polling required), the description covers purpose, usage, parameters, limitations, and follow-up steps thoroughly. The existence of an output schema reduces the need to document return values, making this complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds practical context: how to pass share links without conversion, trimming syntax with examples, and explanations of h264_profile options. This meaningfully supplements the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to offload video/audio transcoding using a public URL, avoiding an upload step. It distinguishes from siblings like transcode_video (which likely requires upload) by specifying 'no upload step needed.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly guides when to use (public URLs from various services, direct HTTPS URLs) and provides detailed polling instructions. It does not explicitly state when not to use, but the context and limitations (2 GB, long processing times) imply appropriate scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transcode_videoA
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.
| Name | Required | Description | Default |
|---|---|---|---|
| object_key | Yes | storage object key returned by get_upload_url. | |
| output_format | Yes | Target output format. One of: mp4 (H.264), webm (VP9), mov_prores (ProRes 422), mp3 (audio extraction), gif. | |
| options | No | Optional encoding parameters. All are optional. |
Output Schema
| Name | Required | Description |
|---|---|---|
| job_id | Yes | Unique identifier for this job. Pass to get_job_status and get_download_url. |
| status | Yes | Initial job state — always queued or processing immediately after submission. |
| estimated_seconds | No | Rough estimated processing time in seconds. Actual time may vary. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses key behaviors beyond annotations: async processing, immediate job_id return, wallet debit on completion, source constraints. No contradiction with annotations (readOnlyHint=false, destructiveHint=false, idempotentHint=false).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise with 4 sentences, front-loading the main action. Slightly verbose with polling flow, but overall efficient and structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, constraints, async flow, and side effects. With an output schema (not shown), return values need not be detailed. Lacks failure/error handling info, but still fairly complete for a complex tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage for all parameters. The description adds no additional semantic detail beyond the schema, so it meets the baseline but does not elevate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: offload video transcoding to a server-side service. It identifies the verb 'transcode' and the resource 'video', and distinguishes from siblings like convert_file or transcode_from_url by emphasizing async execution and specific constraints.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear usage context: source must be ≤10 min and ≤5 GB, polling instructions, wallet debit. However, does not explicitly mention when to use alternatives like transcode_from_url for URL inputs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
12 tool updates
v1.0.4- First observed
cancel_workflow - First observed
convert_content - First observed
convert_file - First observed
convert_from_url - First observed
get_download_url - First observed
get_job_status - First observed
get_upload_url - First observed
get_wallet_balance - First observed
get_workflow_status - First observed
submit_workflow - First observed
transcode_from_url - First observed
transcode_video
TDQS
Most tools have distinct purposes, but confusion exists between transcode_video and transcode_from_url. transcode_video does not specify how to provide the source file, while transcode_from_url explicitly handles URLs. Additionally, the distinction between convert_file and transcode_video (both involve upload but different processing) could be clearer.
All tool names follow a consistent verb_noun pattern using snake_case (e.g., cancel_workflow, get_upload_url, transcode_video). Prepositions like 'from_url' are uniformly appended, creating a predictable and readable naming scheme.
With 12 tools, the surface is well-scoped for a media processing service covering upload, conversion, transcoding, workflow management, and account queries. Each tool has a clear role, and the number is neither too few nor excessive.
Core operations (upload, convert, transcode, download, workflow) are covered, but there are minor gaps: no tool to cancel a non-workflow job, and the transcode_video tool lacks documentation linking it to an upload step, potentially causing dead ends. The wallet balance tool is useful for billing awareness.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Free public MCP for AI agents — 193 tools, 44 workflows. No API key.
The OpenRouter for tools. One MCP connection gives any AI agent 254 hosted tools, pay per call.
471One MCP endpoint for Claude, GPT & Gemini: 100+ tools + no-code connectors + agent workers.
Related MCP Servers
- AlicenseBqualityDmaintenanceProduction-ready MCP server with 40+ tools — QR codes, PDFs, text processing, TTS, web scraping, image generation and more. Built for AI agents.2551MIT

arcframe-mcpofficial
AlicenseNot gradedqualityCmaintenanceGenerate videos, images, audio, and 3D models from any MCP-compatible AI agent — Claude, Cursor, ChatGPT, and more.MIT- AlicenseNot gradedqualityDmaintenanceEnables AI agents to perform deterministic video editing operations like trim, resize, add text, and more using MCP tools.85MIT
- AlicenseAqualityCmaintenanceProvides 30+ FFmpeg video and audio editing tools via MCP, enabling AI assistants to perform operations like trimming, transcoding, overlays, and composition directly.274MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/MkTurner74/botverse-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server