Sats4AI - Bitcoin-Powered AI Tools
Server Details
40+ Lightning-paid AI tools for agents: calls, SMS, fax, voice, translation. No signup, no keys.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- cnghockey/sats4ai-mcp-server
- GitHub Stars
- 1
- Server Listing
- Sats4AI
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
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.
Tool Definition Quality
Average 4.4/5 across 50 of 50 tools scored. Lowest: 3.4/5.
Most tools have distinct purposes, but there is some overlap, especially among call tools (ai_call, place_call, open_voice_bridge) and image generation/editing tools (generate_image, edit_image, animate_image). Descriptions help differentiate, but an agent might still select the wrong one.
The vast majority of tools follow a verb_noun pattern (e.g., generate_image, send_sms). A few exceptions exist (await_result, check_job_status, epub_to_audiobook) but the overall pattern is strong and predictable.
With 50 tools, the server is very extensive. While each tool earns its place given the broad scope of AI services, the count feels high and could overwhelm agents, making selection less efficient.
The tool surface is remarkably comprehensive, covering generation, editing, conversion, communication, async management, payments, and error handling. There are no obvious gaps for the stated Bitcoin-powered AI toolkit purpose.
Available Tools
50 toolsai_callAInspect
When your task hits a wall that requires a human — booking, negotiating, navigating IVR menus, getting information from a business — send an AI voice agent to handle the call. The agent follows your instructions, has a real two-way conversation, auto-retries on voicemail (up to 3 attempts), and returns a full transcript with structured analysis. May return state='pending_confirm' with clarification questions if critical info is missing — call confirm_ai_call to proceed. Async — poll with check_job_status(jobType='ai-call'). ~150-250 sats for a 3-min US call. Languages: en-US, en-GB, es-ES, fr-FR, de-DE, ja-JP, zh-CN, multi. Pay with Bitcoin Lightning — no telecom account, no API key, no subscription. When NOT to use: not when you want to drive the conversation with your own LLM (use open_voice_bridge — you keep the brain, we provide PSTN/STT/TTS primitives). Not for one-shot TTS broadcasts or IVR delivery (use place_call). Not for SMS (use send_sms). Requires create_payment with toolName='ai_call', phoneNumber, and durationMinutes.
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | Instructions for the AI agent (what to say, ask, or accomplish) | |
| language | No | Language the agent should speak to the called party. Pass this when you know the destination's preferred language (e.g. calling a French pizzeria → fr-FR, a Japanese restaurant → ja-JP). If omitted, we guess from the destination country: +33 → fr-FR, +49 → de-DE, +34 → es-ES, etc. Bilingual regions (Canada, Belgium, Switzerland, Singapore) and unknown countries default to en-US — override explicitly when you need a non-English language in those regions. Voice is auto-selected per language. | |
| paymentId | Yes | Valid payment ID (must be paid) | |
| phoneNumber | Yes | Phone number in E.164 format (e.g., +14155550100) | |
| beginMessage | No | Optional opening line for the agent | |
| durationMinutes | No | Max call duration 1-10 minutes (default: 3) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses key behaviors beyond annotations: auto-retries on voicemail (up to 3 tries), returns full transcript with structured analysis, may return clarification questions, async execution model with polling. Also mentions cost range, language support, and payment method. No contradiction with openWorldHint annotation.
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 thorough but slightly long; however, every sentence adds value. Information is front-loaded with purpose and alternatives, followed by behavioral details, cost, and language support. Well-structured for agent consumption.
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 the entire tool lifecycle: payment creation, call initiation, retry behavior, possible pending_confirm state, polling mechanism, and error handling. Even without an output schema, it mentions returned transcript and structured analysis. No gaps given the tool's 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% with descriptions for all 6 parameters. Description adds significant context: explains language guessing logic, specifies payment ID must be paid, gives E.164 format for phone number, and provides duration range. Goes beyond schema to explain parameter interplay.
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 sends an AI voice agent to handle calls, with specific use cases (booking, negotiating, IVR menus). Explicitly differentiates from siblings by naming alternatives (place_call, open_voice_bridge, send_sms) and explaining when not to use each.
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 when-to-use and when-not-to-use conditions, including prerequisite steps (create_payment with specific parameters). Details the async nature, polling method, and the possibility of returning 'pending_confirm' state requiring confirm_ai_call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_imageBInspect
Analyze and describe image content, answer visual questions, extract information from screenshots or photos. Uses Qwen VL — multimodal vision-language model with strong OCR, chart reading, and spatial reasoning. 21 sats per image. Pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='analyze_image'.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Question or analysis prompt for the image | |
| modelId | No | Optional. Omit for default model. | |
| paymentId | Yes | Valid payment ID (must be paid) | |
| imageBase64 | Yes | Base64 encoded image to analyze. Single images only — for PDFs or multi-page document text use extract_document (a PDF sent here is treated as an image and may return a wrong/hallucinated result with no error). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the model used (Qwen VL), cost (21 sats), payment method (Bitcoin Lightning via create_payment), and that no API key is needed. However, it does not describe error handling, timeout behavior, or output format beyond implied text.
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 (4 sentences) and front-loaded with purpose. It efficiently covers the tool's function, model, cost, and prerequisite. No wasted words, but could include a brief note on output type without adding length.
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 tool with no output schema and 4 parameters, the description covers the core purpose, model, and payment requirement. It is missing details about the response format (e.g., JSON structure) and error scenarios. With zero annotations, more behavioral context would be beneficial.
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% (all 4 parameters documented). The description adds no extra parameter info beyond the schema, except the imageBase64 parameter's warning about PDFs. The modelId parameter description is minimal. Baseline 3 due to high 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?
The description clearly states the tool analyzes and describes image content, answers visual questions, and extracts information. It mentions the Qwen VL model's capabilities (OCR, chart reading, spatial reasoning). However, it does not explicitly differentiate from siblings like detect_objects or extract_receipt, which have similar but specific purposes.
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 a useful guideline in the imageBase64 parameter description about not using for PDFs (use extract_document instead). However, it lacks explicit when-to-use guidance compared to other image analysis tools. No mention of prerequisites like image format or size limits.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
animate_imageAInspect
Animate a still image into cinematic video with ByteDance Seedance 2.0 — provide a first frame (optionally a last frame) and a prompt to direct the motion. Native audio. Async — returns requestId, poll with check_job_status. 480p/720p/1080p, duration 4-15 seconds, priced per second by resolution. Pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='animate_image'.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Text prompt describing the animation | |
| modelId | No | Optional. Omit for default model. | |
| duration | Yes | Duration in seconds (4-15) | |
| paymentId | Yes | Valid payment ID (must be paid) | |
| imageBase64 | Yes | Base64 encoded image to animate |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses async nature (returns requestId, poll with check_job_status), resolution options, duration limits, pricing, and payment method. Missing details on rate limits or image size constraints, but still substantial.
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-loading the purpose and then providing key details. Each sentence adds value with no fluff. Slightly more verbose than necessary but still concise.
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 tool is complex (5 params, async, payment, pricing, resolution) and has no output schema. Description covers async polling and payment, but lacks details on response format, error handling, and how to retrieve audio. Some gaps remain 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?
Schema coverage is 100% (5 params documented). The description adds value by explaining payment dependency, async polling, and pricing, but introduces confusion by mentioning an optional last frame which is not in the schema. 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 tool's purpose: 'Animate a still image into cinematic video with ByteDance Seedance 2.0'. It uses a specific verb ('animate') and resource ('still image'), distinguishing it from siblings like generate_video which creates video from scratch.
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 explicit prerequisites: 'Requires create_payment with toolName="animate_image"' and explains usage: provide prompt, first frame, optionally last frame. It also notes async behavior and polling. However, it doesn't explicitly state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
await_resultARead-onlyIdempotentInspect
Wait for an async job to finish and return its result in ONE call — no manual polling loop. Pass the requestId + jobType from an async tool (generate_video, animate_image, generate_3d_model, transcribe_audio, epub_to_audiobook, ai_call). If your MCP client opened the request with 'Accept: text/event-stream', this streams live progress (notifications/progress) while it waits, then returns the final result; otherwise it does a single status check and returns immediately (call again until status='COMPLETED'). For long jobs it waits up to ~4 minutes per call, then returns status='IN_PROGRESS' with timed_out=true — call again with the same requestId to keep waiting. Equivalent to check_job_status + get_job_result combined. Free; no payment.
| Name | Required | Description | Default |
|---|---|---|---|
| jobType | Yes | Must match the async tool that returned requestId. | |
| requestId | Yes | The requestId returned by the async tool. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond the annotations (readOnlyHint, idempotentHint) to explain that the tool waits, can stream progress, and returns status with timed_out flag after 4 minutes. This adds significant context about the tool's behavior, including error/retry scenarios, without contradicting the 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 well-structured and concise, with the core purpose in the first sentence followed by essential details on parameters, streaming, and timeout. Every sentence adds value, and the structure is easy to parse.
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 has no output schema, the description adequately covers the return behavior: final result on completion, progress notifications when streaming, and IN_PROGRESS status with timed_out after 4 minutes. This is complete for an agent to understand how to use the tool and interpret responses.
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 already provides 100% coverage with descriptions for both parameters. The description adds value by explaining the origin of requestId and the requirement that jobType must match the async tool, and enumerates the valid enum values. This extra context justifies a score above the baseline of 3.
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 wait for an async job to finish and return its result in a single call, eliminating manual polling. It specifies the required inputs (requestId + jobType) and explicitly names the async tools that produce these, distinguishing it from sibling tools like check_job_status and get_job_result.
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 detailed guidance on when to use this tool, including the streaming behavior (with Accept header), the timeout behavior (up to 4 minutes), and instructions to call again with the same requestId if status is IN_PROGRESS. It also notes that this tool is equivalent to check_job_status + get_job_result combined, helping the agent choose correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_job_statusAIdempotentInspect
Poll the status of an async job. Use this after calling any async tool (generate_video, animate_image, generate_3d_model, transcribe_audio, epub_to_audiobook, ai_call) that returns a requestId. Returns JSON: { status: 'queued' | 'processing' | 'completed' | 'failed', requestId, jobType }. For epub-audiobook, also includes progress (0-100) and chapterProgress array. Poll every 5-10 seconds. When status is 'completed', call get_job_result to retrieve the output. When status is 'failed', the response includes an error message — do not retry automatically. This tool is free and does not require payment. Do NOT use for synchronous tools (generate_image, generate_text, etc.) — those return results immediately.
| Name | Required | Description | Default |
|---|---|---|---|
| jobType | Yes | Must match the async tool: video=generate_video, video-image=animate_image, image-3d=generate_3d_model, transcription=transcribe_audio, epub-audiobook=epub_to_audiobook, ai-call=ai_call. video-fal-standard/video-fal-pro = the FAL fallback jobType generate_video returns when Replicate is at capacity. | |
| requestId | Yes | The requestId returned by the async tool (e.g., from generate_video, animate_image, generate_3d_model, transcribe_audio, epub_to_audiobook, ai_call) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds significant behavioral context beyond annotations: free tool, polling behavior, retry prohibition on failure. Annotations already declare idempotentHint=true; 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every sentence adds value, from purpose to return format to usage constraints. Front-loaded with core purpose, logically ordered, and no redundancy.
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 2 required params, no output schema, and 100% schema coverage, the description fully equips an agent to use the tool correctly, including return structure, polling guidance, and error handling.
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%; description adds mapping of jobType enum values to specific async tools, which clarifies meaning beyond enum values alone. Could be improved by linking more explicitly to parameter descriptions.
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 'Poll the status of an async job' with a specific verb and resource, and explicitly lists async tools that return requestId, distinguishing from synchronous siblings.
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 when to use (after async tools), when not to use (synchronous tools), polling interval (every 5-10 seconds), and actions on completion (call get_job_result) or failure (do not retry automatically).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_payment_statusARead-onlyIdempotentInspect
Check whether a Lightning invoice has been paid. Returns JSON: { paid, serviceUsed, refundAllowed, readyToUse, next } — readyToUse=true means paid, not yet consumed, and no refund queued; next says what to do. Call after create_payment to verify the user has paid before calling the target tool. Invoices expire after 10 minutes — if expired, create a new payment. Most MCP clients with a connected wallet pay instantly, so a single check is usually sufficient. This tool is free and does not require payment.
| Name | Required | Description | Default |
|---|---|---|---|
| paymentId | Yes | The paymentId returned by create_payment |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and idempotentHint=true. Description adds crucial behavioral details: free, no cost, invoice expiration (10 min), and the meaning of readyToUse. 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?
Concise: 4 sentences total, each earning its place. Front-loaded with purpose, followed by return details, usage instruction, and additional notes. No fluff.
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?
Complete for a simple read-only tool with 1 param and no output schema. Explains return fields, lifecycle (expiry), usage flow, and cost. No gaps given the tool's simplicity.
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 100% of parameters and already describes paymentId. Description adds context by linking it to the return of create_payment, which is helpful but not essential beyond 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 checks if a Lightning invoice is paid, explains the return fields (especially readyToUse), and differentiates from create_payment. It's 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to call after create_payment and before the target tool, mentions invoice expiry and that a single check is usually sufficient due to instant wallet payments. Provides clear when-to-use and what-to-do-if-expired guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clone_voiceAInspect
Clone any voice from a single audio sample. Returns a reusable voice_id for text_to_speech — speak in the cloned voice indefinitely. High-fidelity reproduction capturing tone, cadence, and accent. Turbo (faster) or HD (higher quality) modes. 7,500 sats per clone. Pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='clone_voice'.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Voice model: turbo (faster) or hd (higher quality) | speech-02-turbo |
| accuracy | No | Text validation accuracy 0-1 (default 0.7) | |
| paymentId | Yes | Valid payment ID (must be paid) | |
| voiceFileUrl | Yes | Public URL to audio file of the voice to clone |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses high-fidelity reproduction, turbo/HD modes, cost (7500 sats), payment method (Bitcoin Lightning), and no signup required. This sets clear expectations, though it could detail constraints like audio duration limits.
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 with four sentences that are front-loaded and informative. Every sentence adds value without redundancy or filler.
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 4-parameter tool with no output schema, the description covers core functionality, payment requirement, and mentions the reusable voice_id output. It lacks details on return format but is generally 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%, so baseline is 3. The description adds context for the model parameter (turbo vs HD) but does not elaborate on accuracy or voiceFileUrl. The schema descriptions are sufficiently clear, so the description adds marginal value.
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 action 'Clone any voice from a single audio sample' and the outcome 'Returns a reusable voice_id for text_to_speech'. It defines the resource (voice) and distinguishes from sibling tools like text_to_speech and transcribe_audio.
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 mentions the prerequisite of calling create_payment and explains the pricing model, but does not explicitly state when to use this tool versus alternatives or provide when-not-to-use scenarios. The context is adequate but lacks explicit exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
colorize_imageAInspect
Colorize black-and-white or grayscale photos. DDColor (dual-decoder, ICCV 2023) — vivid, natural colorization. Impossible for text/vision LLMs. 5 sats per image, pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='colorize_image'.
| Name | Required | Description | Default |
|---|---|---|---|
| paymentId | Yes | Valid payment ID (must be paid) | |
| model_size | No | Model variant: 'large' (best quality) or 'tiny' (faster). Default: large | |
| imageBase64 | Yes | Base64-encoded grayscale or B&W image (PNG, JPEG) or data URI |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses algorithm (DDColor), cost (5 sats), payment method, model variants, and that it's impossible for LLMs. 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 sentences plus a key requirement, front-loaded with purpose, no filler 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?
Covers purpose, payment flow, algorithm, variants. Minor gap: no mention of output format (e.g., base64 of colorized image), but acceptable given no output schema.
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% and description adds meaning: explains model_size options ('tiny' faster, 'large' best quality), clarifies paymentId prerequisite, and mentions base64 format for image.
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?
Description clearly states 'Colorize black-and-white or grayscale photos' with a specific verb and resource. It mentions the DDColor algorithm and distinguishes from many image-related siblings.
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 context: payment requirement, no signup, prerequisite call to create_payment with specific toolName. Lacks explicit comparison to alternatives like edit_image, but overall helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confirm_ai_callAInspect
Confirm an AI call after reviewing push-back questions, optionally providing answers to missing info. Required when ai_call returns state='pending_confirm'. Uses the original payment — no new payment needed. Returns call_id for polling with check_job_status(jobType='ai-call').
| Name | Required | Description | Default |
|---|---|---|---|
| answers | No | Key-value answers to the push-back questions (keys are the question strings, values are your answers). Omit to confirm the task as-is. | |
| sessionId | Yes | Session ID from the ai_call response |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the openWorldHint annotation, the description adds key behavioral info: it uses the original payment (no new payment) and returns a call_id for polling. It does not cover error states or side effects, but given minimal annotations, it provides useful transparency.
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, no fluff. Core purpose, prerequisite, payment note, and return value are all front-loaded. Every sentence is essential and well-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 prerequisite, behavior, optional answers, and return value (call_id for polling). Lacks error descriptions or constraints, but given no output schema, this is reasonably complete for a confirmation 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?
Schema coverage is 100%, but the description adds meaning: explains that answers are key-value pairs answering push-back questions, and omitting confirms as-is. For sessionId, it specifies source. This adds value beyond the schema descriptions.
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: confirming an AI call after reviewing push-back questions. It specifies the prerequisite (required when ai_call returns state='pending_confirm') and distinguishes from sibling tools like ai_call (initiation) and check_job_status (polling).
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 when to use: 'Required when ai_call returns state="pending_confirm".' It also mentions that no new payment is needed, guiding usage. Does not explicitly state when not to use or list alternatives, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_fileAInspect
Convert files between 200+ formats: documents (PDF, DOCX, XLSX), images (PNG, JPG, WEBP, SVG), audio (MP3, WAV, FLAC), video (MP4, AVI, MOV). Industrial-grade conversion engine — preserves formatting and quality. Returns download URL. 100 sats. Pay per request with Bitcoin Lightning — no API key, no account, no subscription needed. Requires create_payment with toolName='convert_file'.
| Name | Required | Description | Default |
|---|---|---|---|
| fileUrl | No | Public URL to the file (provide this OR fileBase64) | |
| paymentId | Yes | Valid payment ID (must be paid) | |
| fileBase64 | No | Base64-encoded file (provide this OR fileUrl) | |
| extensionTo | Yes | Target format without dot (e.g., 'pdf', 'docx') | |
| extensionFrom | Yes | Source format without dot (e.g., 'pdf', 'docx') |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the conversion engine preserves formatting and quality and returns a download URL, giving moderate behavioral context. However, it omits details like file size limits, processing time, or error behavior that could be important for an agent.
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 five sentences, front-loaded with the core purpose, and each sentence adds distinct information: supported formats, engine quality, output type, cost, and payment requirement. No redundancy or fluff.
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 5 parameters, no output schema, and no annotations, the description provides a solid overall picture: purpose, payment flow, and output format. It lacks details on error handling and limits, but for a straightforward conversion tool with a well-known interface, it is largely 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% with all 5 parameters described. The description adds minimal parameter-level insight beyond the schema—it mentions paymentId requirement implicitly via '100 sats' but does not elaborate on fileUrl vs fileBase64 trade-offs. Baseline 3 is appropriate given high 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?
The description clearly states the tool converts files between 200+ formats, listing examples across document, image, audio, and video categories. It uses a specific verb-resource pair ('Convert files') and highlights the breadth of supported formats, but does not explicitly differentiate from sibling tools like convert_html_to_pdf.
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 explains the payment model (100 sats per request, Bitcoin Lightning, no account needed) and instructs the user to call create_payment with toolName='convert_file'. It does not provide explicit when-not-to-use guidance or contrast with alternatives, but the usage context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_html_to_pdfAInspect
Convert HTML or Markdown to a pixel-perfect PDF. Returns JSON: { url } — a temporary download URL (valid ~1 hour). Great for generating invoices, reports, receipts, or formatted documents programmatically. Supports full HTML/CSS including tables, images (base64 or URL), and inline styles. For Markdown input, set format='markdown'. 50 sats per conversion. Use convert_file instead for converting existing files between formats (e.g., DOCX→PDF). Pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='convert_html_to_pdf'.
| Name | Required | Description | Default |
|---|---|---|---|
| html | Yes | HTML or Markdown content to convert | |
| format | No | Input format (default: html) | html |
| paymentId | Yes | Valid payment ID (must be paid) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description discloses cost, temporary URL validity (~1 hour), supported formats, and payment method. Does not explicitly state non-destructive nature, but overall transparent.
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 informative but slightly verbose (5 sentences). All sentences add value; could be trimmed slightly but well front-loaded.
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 no output schema and no annotations, description covers input, output, use cases, alternatives, cost, payment flow, and supported features comprehensively.
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%. Description adds context: paymentId must come from create_payment with specific toolName, format='markdown' for Markdown, and html is HTML or Markdown content.
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 it converts HTML/Markdown to PDF, specifies output format (JSON with download URL), and distinguishes from sibling 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?
Explicitly describes when to use (invoices, reports), when not to use (existing files -> convert_file), and prerequisites (create_payment with toolName). Also mentions cost and no signup.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_paymentAInspect
Create a Lightning invoice to pay for one AI service call. Returns JSON: { paymentId, invoice (BOLT11), amount (sats), expiresAt }. Each payment covers exactly one tool call — call this once per operation. Typical flow: list_models → create_payment → check_payment_status → call tool. The invoice expires in 10 minutes. Call list_models first to discover modelId values. modelId is optional — omit it to use the default (best) model. Some tools require extra params at payment time because pricing depends on them: generate_text requires prompt (price = f(char count)); text_to_speech requires text (price = f(char count) by tier); transcribe_audio / transcribe_translate take durationMinutes (10 sats/min — declare your audio length, default 1); send_sms, place_call, ai_call require phoneNumber; generate_video requires duration, mode, generate_audio; animate_image requires duration (100 sats/sec); edit_image requires resolution (1K=200, 2K=300, 4K=450 sats). If required params are missing, the response includes an error with the missing field names.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Legacy alias for generate_video: 'standard'→720p, 'pro'→1080p. Prefer 'resolution'. | |
| text | No | Required for text_to_speech: the exact text to synthesize (price is per-character by tier, locked to payment) | |
| prompt | No | Required for generate_text: the exact prompt (price calculated from char count, locked to payment) | |
| message | No | Required for send_sms: message text (max 126 chars) | |
| modelId | No | Optional. AI model ID from list_models. Omit for default (best) model. | |
| duration | No | Required for generate_video / animate_image: duration in seconds (4-15) | |
| toolName | Yes | Tool name to pay for (e.g., 'generate_text', 'generate_image', 'generate_video', 'send_sms', 'place_call') | |
| resolution | No | For generate_video / animate_image: 480p / 720p (default) / 1080p — priced by resolution × duration, native audio free. For edit_image: 1K=200, 2K=300, 4K=450 sats. | |
| fileContext | No | For generate_text: include extracted file text if attaching a file (affects price) | |
| phoneNumber | No | Required for send_sms and place_call: phone in E.164 format (e.g., +14155550100) | |
| systemPrompt | No | For generate_text: include if using a custom system prompt (affects price) | |
| generate_audio | No | For generate_video / animate_image: include native audio (default: false). Free — no surcharge. | |
| durationMinutes | No | Minutes of audio/call. Required for place_call with audioUrl (1-30); for transcribe_audio / transcribe_translate it sets the per-minute price (10 sats/min) — declare your audio length (default 1). Audio longer than paid is rejected + refunded at execution. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so description carries full burden. Discloses invoice expiration (10 minutes), coverage (one call), return JSON format, and pricing logic per parameter. Could mention idempotency or rate limits, but overall very transparent.
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?
Front-loaded with purpose and flow, then addresses expiration, modelId, and tool-specific params. Lengthy but necessary given 13 parameters and complex dependencies. Every sentence adds value, no redundancy.
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 return format (JSON), typical flow, expiration, parameter dependencies, pricing, and error handling. With no output schema, return format is explained. For a complex 13-param tool with no annotations, description is exceptionally 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%, baseline 3. Description adds significant meaning beyond schema: explains pricing functions (e.g., text_to_speech per-character, durationMinutes at 10 sats/min), defaults, tool-specific resolution meaning, and that generate_audio is free. Goes well beyond brief schema descriptions.
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 it creates a Lightning invoice for one AI service call. Differentiates from siblings by focusing on payment creation. Verb 'create' + resource 'Lightning invoice' + purpose 'pay for one AI service call' is specific and distinct.
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 extensive guidance: typical flow (list_models → create_payment → check_payment_status → call tool), each payment covers exactly one call, explains when to omit modelId, and lists required extra params per tool with pricing dependencies. Also explains error handling for missing params.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deblur_imageAInspect
Recover detail from camera-shake and accidental motion blur. NAFNet (ECCV 2022, SOTA on GoPro/SIDD benchmarks). Best for: handheld shake, bumped camera, whole-frame uniform blur. NOT effective for: intentional panning blur, bokeh/depth-of-field, or artistic motion effects. Also supports denoising (grainy/noisy photos). 20 sats per image (~2 min processing), pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='deblur_image'.
| Name | Required | Description | Default |
|---|---|---|---|
| paymentId | Yes | Valid payment ID (must be paid) | |
| task_type | No | 'Image Debluring (GoPro)' for camera shake (default), 'Image Debluring (REDS)' for video frame blur, 'Image Denoising' for grain/noise | |
| imageBase64 | Yes | Base64-encoded blurry image (PNG, JPEG, WEBP) or data URI |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses cost (20 sats), processing time (~2 min), payment method (Bitcoin Lightning), and prerequisite (create_payment). Does not mention file size limits or invalid image handling, but overall thorough.
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 (3-4 sentences), front-loaded with the main purpose, and each sentence provides necessary context without redundancy. Highly efficient.
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 3 parameters, no output schema, and a payment workflow, the description covers the core usage, cost, timing, and dependency on create_payment. Missing output format details, but acceptable for a processing tool with no structured output.
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 is 3. The description adds value by explaining paymentId must be paid, specifying task_type defaults ('Image Debluring (GoPro)'), and clarifying the three options. This goes beyond the schema's enum descriptions.
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 recovers detail from camera-shake and accidental motion blur, names the model (NAFNet), and lists both effective and ineffective scenarios, distinguishing it from sibling tools like 'upscale_image' or 'edit_image'.
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 (handheld shake, bumped camera, whole-frame uniform blur) and when not to use (intentional panning, bokeh, artistic motion). Also mentions support for denoising and payment requirements, providing clear alternatives and prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
detect_nsfwAInspect
Classify image safety (normal / suggestive / explicit). Falcons.ai NSFW detection — 100x cheaper and faster than asking an LLM. Returns classification label and boolean is_nsfw flag. Essential for content moderation pipelines. 2 sats per image, pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='detect_nsfw'.
| Name | Required | Description | Default |
|---|---|---|---|
| paymentId | Yes | Valid payment ID (must be paid) | |
| imageBase64 | Yes | Base64-encoded image (PNG, JPEG, WEBP) or data URI |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the payment mechanism (Bitcoin Lightning, no signup), the required pre-step (create_payment), and the output format (label and boolean). However, it does not mention potential latency, timeouts, or error handling beyond payment validity. Overall, it adds substantial behavioral context.
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 a single paragraph but is well-structured: it leads with the core function, then performance claim, then output, then use case, then pricing/payment. Each sentence adds value without redundancy. Minor improvement could be using bullet points for readability, but it's concise and informative as is.
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 classification tool with two parameters and no output schema, the description fully explains the return values (label and is_nsfw boolean), the payment requirement, and the input format. It provides all necessary context for an agent to invoke the tool correctly, given the tool's simplicity.
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% with both parameters described. The description enriches the parameters by specifying that paymentId must be a paid and valid ID (via create_payment) and that imageBase64 must be a Base64 string of specific formats (PNG, JPEG, WEBP) or data URI. This adds meaningful usage guidance beyond the schema's type and required flags.
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 classifies image safety into three categories (normal/suggestive/explicit) and returns a classification label and boolean flag. It distinctly distinguishes itself as NSFW detection from Falcons.ai, with a specific verb 'detect' and resource 'NSFW', making its purpose immediately clear.
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 positions the tool as essential for content moderation and highlights it is cheaper and faster than using an LLM. While it provides context for when to use it, it lacks explicit guidance on when not to use it or alternative sibling tools like 'analyze_image' or 'detect_objects'. The mention of payment flow adds practical usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
detect_objectsAInspect
Detect and locate objects in an image by name. Grounding DINO (open-set detector, ECCV 2024) — describe what to find in natural language, get bounding box coordinates and confidence scores. Structured pixel data agents can't get from vision LLMs. 5 sats per image, pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='detect_objects'.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Comma-separated object names to detect (e.g. 'cat, dog, person') | |
| paymentId | Yes | Valid payment ID (must be paid) | |
| imageBase64 | Yes | Base64-encoded image (PNG, JPEG, WEBP) or data URI | |
| box_threshold | No | Confidence threshold for detection boxes (0-1, default 0.25) | |
| text_threshold | No | Confidence threshold for text matching (0-1, default 0.25) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the payment requirement, the underlying model (Grounding DINO), and the structured output format. It does not describe side effects or limits beyond the per-image cost.
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, front-loaded with the core purpose. It is efficient but could be slightly tighter by removing 'Structured pixel data agents can't get from vision LLMs' if redundant. Still, well-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?
Given no output schema, the description adequately explains the output (bounding boxes and scores). It covers the payment workflow and parameter roles. A bit more on image limitations or error cases would improve completeness.
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%, and the description adds context for the 'query' parameter (comma-separated object names) and explains the paymentId requirement. It also mentions default thresholds, which are already in the schema. Overall, adds meaningful value beyond 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 detects and locates objects in an image by name using Grounding DINO, and provides bounding box coordinates and confidence scores. This distinguishes it from siblings like remove_object or analyze_image.
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 mentions it requires a payment via create_payment and costs 5 sats per image, and contrasts with vision LLMs. However, it does not explicitly specify when to use this tool versus alternatives, or provide exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edit_imageAInspect
Edit an image with natural language instructions. Uses Nano Banana 2 — understands context, handles object addition/removal, style transfer, and inpainting. Returns JSON with image URL. Resolution-tiered pricing: 1K=200 sats, 2K=300 sats, 4K=450 sats. Pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='edit_image' and resolution param.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Editing instructions describing what to change | |
| paymentId | Yes | Valid payment ID (must be paid) | |
| resolution | No | Output resolution. 1K=200 sats, 2K=300 sats, 4K=450 sats | 1K |
| aspectRatio | No | Output aspect ratio (default: match_input_image) | match_input_image |
| imageBase64 | Yes | Base64 encoded image to edit | |
| outputFormat | No | Output format | jpg |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description covers return format (JSON with image URL), resolution-tiered pricing, and payment mechanism. However, it omits details on error handling, size limits, or processing time, which would be helpful.
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, each delivering distinct, essential information: purpose/capabilities, model details, and pricing/workflow. 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?
No output schema exists, so description should clarify return structure beyond 'image URL'. Also lacks details on error states or payment failure handling. Given tool complexity (6 params, payment integration), completeness is adequate but not thorough.
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 param descriptions already exist. The description adds value by noting paymentId must be paid and linking resolution to cost, but largely reiterates schema info. 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?
Description clearly states the tool edits images via natural language, lists specific capabilities (object addition/removal, style transfer, inpainting), and names the model. This distinguishes it from sibling image tools like generate_image or remove_background.
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 prerequisite (create_payment with specific parameters) and payment flow via Bitcoin Lightning. Implicitly differentiates from alternative tools by focusing on editing rather than generation or analysis, though no explicit when-not-to-use is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
end_voice_bridgeAInspect
Hang up a Voice Bridge call, finalize billing, and return a LNURL-withdraw refund link for unused deposit time. Also returns the final transcript for convenience.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | Session ID from open_voice_bridge |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It discloses key behaviors: ends call, finalizes billing, returns refund and transcript. However, it does not mention side effects like irreversibility or any auth requirements.
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 with no fluff. The first sentence captures the main action and outputs, the second adds a convenience detail.
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 no output schema, the description adequately mentions the returns (refund link and transcript). It covers the tool's purpose and key outputs, though could mention error states or default behavior.
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% with good description for sessionId. The description does not add further meaning beyond what the schema already provides.
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 action ('Hang up'), the resource ('Voice Bridge call'), and the outputs (finalize billing, refund link, transcript). It distinguishes from sibling tools like open_voice_bridge and poll_voice_bridge.
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?
Usage is implied by the context (takes sessionId from open_voice_bridge), but there is no explicit guidance on when to use versus alternatives or when not to use it (e.g., if the call already ended).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
epub_to_audiobookAInspect
Convert books (EPUB/PDF/TXT) to full audiobooks with automatic chapter detection, multi-voice narration, and optional translation to any language before narration. 3 voice tiers: OmniVoice Global (602+ langs, 100 chars/sat), Inworld Premium (#1 ranked TTS ELO 1217, 50 chars/sat), Minimax Studio (voice cloning from reference clip, 10 chars/sat). Min 500 sats. Async — returns jobId, poll until completed (5-60+ min). Single payment, full outcome — no multi-step orchestration required. Pay with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='epub_to_audiobook'.
| Name | Required | Description | Default |
|---|---|---|---|
| speed | No | Speech speed 0.5-2.0 | |
| voice | No | Voice ID (e.g., Ashley, Deep_Voice_Man, Calm_Woman) | Ashley |
| modelId | No | Optional. 3 voice tiers: OmniVoice Global (602+ langs), Inworld Premium (#1 ranked), Minimax Studio (voice clone). Omit for default. | |
| fileName | Yes | Original filename with extension (e.g., 'mybook.epub', 'document.pdf', 'story.txt'). Required to detect format. | |
| language | No | Narration language (e.g., English, Spanish, French). NOTE: on the default tier this only affects chapter titles / number expansion — the spoken language comes from the chosen voice. For non-English narration pick a voice whose language matches (or use translateToLanguage), else it narrates in the voice's own (usually English) accent with no error. | English |
| paymentId | Yes | Valid payment ID (must be paid) | |
| epubBase64 | Yes | Base64-encoded book file (EPUB, PDF, or TXT) | |
| translateToLanguage | No | Translate book to this language before narration. Accepts English names ('Spanish', 'Chinese (Simplified)') or ISO-639 codes / locale tags ('es', 'en-US', 'pt-BR'). Cost added to price. | |
| selectedChapterIndices | No | Chapter indices to include (0-based). Omit to auto-select content chapters. NOTE: auto-select drops front/back matter heuristically and can silently exclude a short (<200 char) wanted chapter near the start/end — pass explicit indices if you need a specific set. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses async behavior (returns jobId, poll 5-60+ min), three voice tiers with char/sat limits, min 500 sats, optional translation cost, and chapter selection auto-drop behavior. No annotations, so description carries full burden and does it well.
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 fairly long but well-organized, front-loading the main purpose and then details. Every sentence adds value; could be slightly more terse but no unnecessary information.
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 9 parameters, no output schema, and complex behavior (async, multiple tiers, translation, chapter selection), the description covers return format (jobId), polling instructions, payment requirements, and file format detection via fileName. Sufficient for an agent to use 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 significant context: explains voice tiers in detail (including rankings and character limits), clarifies language parameter behavior (only affects chapter titles on default tier), describes translateToLanguage accepted formats, and warns about selectedChapterIndices auto-dropping short chapters.
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 it converts EPUB/PDF/TXT to audiobooks with chapter detection, multi-voice narration, and optional translation. Distinguishes from siblings like text_to_speech and convert_file by focusing on full book conversion.
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 explains when to use: for converting books to audiobooks. Mentions it's a single payment with full outcome, async polling, and prerequisites like create_payment. Provides clear context without needing exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_documentAInspect
Extract text from PDFs and images as clean Markdown. Uses Mistral OCR — handles complex layouts, tables, handwriting, multi-column documents, and mathematical notation. Preserves document hierarchy in structured Markdown. 10 sats/page. Pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='extract_document' and quantity=pageCount for multi-page PDFs.
| Name | Required | Description | Default |
|---|---|---|---|
| modelId | No | Optional. Omit for default model. | |
| paymentId | Yes | Valid payment ID (must be paid) | |
| documentBase64 | Yes | Base64 encoded PDF or image |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses behavior: uses Mistral OCR, handles complex layouts, tables, handwriting, multi-column, math notation, preserves hierarchy, costs 10 sats/page, requires payment via create_payment. 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?
Approximately 5 sentences, front-loaded with main purpose. Each sentence adds unique information (OCR capabilities, cost, payment process). No redundancy or fluff.
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?
Complete for an extraction tool with 3 parameters, no output schema. Covers capability, cost, payment prerequisite. Addresses multi-page PDF handling via create_payment with quantity.
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% with descriptions. Description adds value by explaining that paymentId must be paid and documentBase64 is base64 encoded, and mentions optional modelId with guidance to omit for default. Slightly above baseline 3.
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 'Extract text from PDFs and images as clean Markdown.' Specifies the resource (PDFs/images) and action (extract text). Distinguishes from siblings by mentioning OCR handling of complex layouts, tables, handwriting, etc. and Markdown output.
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: pay per request with Bitcoin Lightning, no API key needed, requires create_payment with toolName='extract_document' and quantity=pageCount. Lacks explicit when-not-to-use or alternatives, but given sibling tools, the intended use case is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_receiptAInspect
Extract structured data from receipts, invoices, and financial documents. Uses a dual-model pipeline (Mistral OCR + Kimi K2.5) for high-accuracy extraction. Returns JSON with merchant, date, line items, totals, tax, currency, and expense category. Handles crumpled receipts, faded text, and multi-page invoices. 50 sats/page. Pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='extract_receipt'.
| Name | Required | Description | Default |
|---|---|---|---|
| paymentId | Yes | Valid payment ID (must be paid) | |
| documentBase64 | Yes | Base64 encoded receipt/invoice image or PDF. NOTE: any text-bearing document is accepted — a non-receipt returns best-guess (possibly fabricated) merchant/total/line-item JSON with no error. Confirm the input really is a receipt before trusting the fields. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description fully carries burden. Discloses dual-model pipeline, handles crumpled/faded/multi-page, pricing (50 sats/page), pay-per-request, no signup, and fabricated output for non-receipts.
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 plus a note in parameter description. Front-loaded with purpose, then details, no redundant information.
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 2 parameters, no output schema, no annotations, the description covers purpose, usage, behavior, parameters, and warnings. No apparent gaps for this complexity level.
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 (100%). Description adds critical warning about accepting non-receipts and potential fabricated output, enhancing understanding beyond 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?
Clearly states verb 'Extract' and resource 'receipts, invoices, and financial documents'. Distinguishes from sibling 'extract_document' by specifying focus on receipts and dual-model pipeline (Mistral OCR + Kimi K2.5).
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 payment prerequisite ('Requires create_payment with toolName...') and warns about non-receipt inputs. Lacks explicit when-not to use or alternatives, but context is clear given sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_3d_modelAInspect
Generate a textured 3D GLB model from EITHER a photo OR a text prompt (provide exactly one, not both). Uses Tencent Hunyuan3D — high-fidelity geometry and PBR materials. Async — returns requestId, poll with check_job_status. 350 sats per model. Pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='generate_3d_model'.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | No | Text description for text-to-3D (max 1024 chars). Provide EITHER this OR imageBase64, not both. | |
| modelId | No | Optional. Omit for default model. | |
| paymentId | Yes | Valid payment ID (must be paid) | |
| imageBase64 | No | Base64 encoded image (PNG, JPEG, or WEBP) for image-to-3D. Provide EITHER this OR prompt, not both. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description covers async behavior (polling), payment requirement, model used (Hunyuan3D), and no API key needed. It could mention error handling for invalid input.
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 concise sentences, front-loaded with the main action, each adding essential info without fluff.
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 tool with 4 params, no output schema, and no annotations, the description covers payment, async, input modes. It mentions polling with check_job_status but does not specify what the result of that poll contains, though that is a different 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?
Schema coverage is 100%, so baseline is 3. The description reinforces mutual exclusivity of prompt and imageBase64 but adds no new meaning beyond schema descriptions.
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 it 'Generate a textured 3D GLB model' and specifies the two input modes (photo or text prompt), distinguishing it from other generate tools listed in siblings.
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 explicit guidance on providing exactly one input (photo or prompt) and mentions async polling and payment requirements. However, it does not explicitly exclude alternative scenarios or tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_imageAInspect
Generate an image from a text prompt. Returns JSON with image URL. Models: Grok Imagine (fast creative generation, 100 sats), Seedream 4 (photorealistic detail, 150 sats), Nano Banana 2 (premium quality, 200 sats, default). Supports img2img with optional base64 input. Stable endpoints — models upgrade automatically as SOTA evolves. Pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='generate_image'.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Text prompt describing the image | |
| modelId | No | Optional. Omit for default (best) model. | |
| paymentId | Yes | Valid payment ID (must be paid) | |
| imageBase64 | No | Optional base64 image for img2img generation |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses return format (JSON with URL), model upgrade policy, payment mechanism, and img2img capability. Lacks error handling or rate limit info, but is reasonably transparent.
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 compact with four sentences, each providing essential information without redundancy. The main action is front-loaded, and model details are efficiently listed.
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 has 4 params, no output schema, and no annotations, the description covers key aspects: models, costs, payment, img2img, and automatic upgrades. It could mention expected output structure or error cases, but is largely 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%, and the description adds meaning: it explains modelId choices (Grok, Seedream, Nano Banana with costs) and clarifies that imageBase64 enables img2img. It also notes that paymentId must be paid, which is not in the schema 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 begins with 'Generate an image from a text prompt,' clearly stating the verb (generate) and resource (image). It distinguishes from sibling tools like animate_image and upscale_image by specifying the output format and model options.
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 clear context: lists models with costs, mentions img2img, and explains payment requirement with explicit reference to create_payment. However, it does not explicitly state when to prefer this tool over siblings like generate_video or text_to_speech.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_musicAInspect
Generate full songs (up to 6 min) with natural AI vocals, BPM/key control (99%+ accuracy), and 14+ section tags for precise arrangement. Uses Music-2.6 — orchestral and traditional instruments, style-aware mixing. Specify BPM, key, genre, mood in prompt. Returns MP3 URL. 300 sats per song. Pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='generate_music'.
| Name | Required | Description | Default |
|---|---|---|---|
| lyrics | No | Song lyrics with section tags (up to 3,500 chars). Tags: [Intro], [Verse], [Pre Chorus], [Chorus], [Bridge], [Outro], [Solo], [Hook], [Drop], [Build Up], [Inst], [Interlude], [Transition], [Break], [Post Chorus] | |
| prompt | Yes | Music style with BPM, key, genre, mood, instruments (up to 2,000 chars). Example: 'E minor, 90 BPM, acoustic guitar ballad, male vocal' | |
| bitrate | No | Audio bitrate. Default: 256000 | |
| modelId | No | Optional. Omit for default model. | |
| paymentId | Yes | Valid payment ID (must be paid) | |
| sample_rate | No | Audio sample rate. Default: 44100 | |
| audio_format | No | Output format. Default: mp3 | |
| is_instrumental | No | Set true for instrumental-only (no vocals). When true, prompt is required, lyrics are ignored. | |
| lyrics_optimizer | No | Set true to auto-generate lyrics from prompt when lyrics are empty. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, but the description discloses key behaviors: uses Music-2.6 model, returns MP3 URL, costs 300 sats, requires prepaid payment via Bitcoin Lightning. It does not mention error handling or rate limits, but covers essential traits.
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 sentences front-load the purpose and key features, then cover pricing and payment flow. No wasted words; 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?
The description covers purpose, model, output format, prerequisites, and cost. Missing error handling or async details, but for a direct generation tool with 9 parameters and no output schema, it is 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?
Schema coverage is 100% with good descriptions. The description paraphrases some parameters (e.g., 'Specify BPM, key, genre, mood in prompt') but adds no new meaning beyond the schema. 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 tool generates full songs with natural AI vocals, BPM/key control, and section tags. It distinguishes from sibling tools like text_to_speech by specifying song generation with vocal and arrangement capabilities.
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 tells when to use (specify BPM, key, genre, mood) and requires a payment step, but does not compare to alternatives or state when not to use the tool. Usage context is implied, not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_textAInspect
Generate text using frontier AI language models. Pure per-character pricing (no minimum): Kimi K2.5 (id=6, best, 100 chars/sat, 262K context, vision support, default), GPT-OSS-120B (id=1, better, 333 chars/sat, strong reasoning), Qwen3-32B (id=26, standard, 1000 chars/sat, 119 languages, best value). Supports document Q&A via fileContext and vision analysis via imageBase64 (best model). Stable endpoints — models upgrade automatically. Pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='generate_text' and the exact prompt.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | The text prompt or question | |
| modelId | No | Optional. Omit for default (best) model. | |
| fileName | No | Name of the attached file | |
| maxTokens | No | Max tokens in response | |
| paymentId | Yes | Valid payment ID (must be paid) | |
| fileContext | No | Extracted file text to include as context | |
| imageBase64 | No | Base64 data URI for vision analysis (best model only) | |
| systemPrompt | No | Optional system prompt |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description carries full burden. Discloses per-character pricing, model details, automatic upgrades, file/vision support, and payment requirements. Lacks failure modes or rate limits but is otherwise thorough.
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?
Front-loaded with purpose and key details; packed with info but slightly long. Could benefit from more structured formatting (e.g., bullet points) but remains clear and efficient.
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 8 parameters, no output schema, and moderate complexity, description covers core usage, model options, prerequisites (payment), and special features like vision. Lacks output format info but sufficient for agent invocation.
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 is 3. Description adds context: explains model selection (default best), fileContext/imageBase64 usage for Q&A/vision, and paymentId role. Enhances schema understanding.
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?
Specifically states 'Generate text using frontier AI language models' and lists distinct models with capabilities (document Q&A, vision), clearly differentiating from siblings like generate_image or transcribe_audio.
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 requires create_payment with toolName='generate_text' and exact prompt, and mentions no API key needed. Provides clear usage context but doesn't explicitly exclude scenarios or compare with siblings beyond listing features.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_videoAInspect
Generate cinematic video from a text prompt. Uses ByteDance Seedance 2.0 — #1 on the Artificial Analysis text-to-video leaderboard — with synchronized native audio. Async — returns requestId, poll with check_job_status. 480p/720p/1080p, 4-15 seconds, priced per second by resolution (BTC-pegged; native audio free). Pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='generate_video' and duration, resolution params.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Text prompt describing the video | |
| modelId | No | Optional. Omit for default model. | |
| duration | Yes | Duration in seconds (4-15) | |
| paymentId | Yes | Valid payment ID (must be paid) | |
| resolution | No | Output resolution (default 720p; legacy 'mode' standard/pro → 720p/1080p) | 720p |
| generate_audio | No | Include synchronized native audio (free) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description covers key behaviors: async polling, pricing (BTC-pegged, per second by resolution), and the no-signup requirement. It details the model and resolution options. It does not mention rate limits or error behavior, but the main behavioral traits are transparent.
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 remarkably concise—only four sentences—yet covers purpose, model, workflow, pricing, and prerequisites. It is front-loaded with the core action and efficiently structured without redundancy.
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 tool with no output schema, the description adequately explains the return (requestId) and the polling mechanism via check_job_status. It also covers pricing and payment flow. Missing details like error handling or result format are partially offset by the sibling tool check_job_status, but a bit more could be added.
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 100% of parameters, so baseline is 3. The description adds value by explaining the payment relationship, noting that modelId is optional, clarifying resolution defaults and legacy mapping, and stating that native audio is free. 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 'Generate cinematic video from a text prompt', which is a specific verb-resource pair. It distinguishes from sibling tools like generate_image and generate_text by specifying video generation and naming the ByteDance Seedance 2.0 model.
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 explains the async workflow ('returns requestId, poll with check_job_status') and the prerequisite payment step ('Requires create_payment...'). While it does not explicitly list when not to use this tool, the workflow guidance is clear and sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cost_estimateARead-onlyIdempotentInspect
Get an exact sat cost quote for a service BEFORE creating a payment. Useful for budget-aware agents to price-check before committing. No payment required, no side effects. Pass service=text-to-speech&chars=1500, service=translate&chars=800, service=transcribe-audio&minutes=5, etc. Returns { amount_sats, breakdown, currency }. Omit params to see the full catalog of supported services.
| Name | Required | Description | Default |
|---|---|---|---|
| chars | No | Character count — required for TTS and translate | |
| model | No | Optional model id for services with multiple tiers | |
| pages | No | Page count — for OCR (default 1) | |
| minutes | No | Audio length — required for transcribe-audio | |
| seconds | No | Video duration — required for video / video-from-image | |
| service | No | Service id (e.g. 'text-to-speech', 'translate', 'image', 'video', 'transcribe-audio', 'ocr'). Omit to list all services. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true. Description adds 'No payment required, no side effects' and specifies return format { amount_sats, breakdown, currency }, reinforcing safe behavior 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?
Three sentences, front-loaded with core purpose, then usage context, then examples and return format. Every sentence adds value with no redundancy.
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 6 optional parameters and no output schema, the description covers purpose, usage guidance, example invocations, return format, and special behavior (listing all services). Sufficient for correct invocation.
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% with individual parameter descriptions. The description adds practical examples (e.g., service=text-to-speech&chars=1500) and explains that omitting service lists all services, providing usage patterns beyond 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 'Get an exact sat cost quote for a service BEFORE creating a payment', specifying the verb 'get' and resource 'cost quote'. It distinguishes itself from sibling tools like create_payment and get_model_pricing by emphasizing pre-payment price-checking.
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 says 'Useful for budget-aware agents to price-check before committing', provides example parameter combinations, and notes that omitting params lists all services. This gives clear when-to-use context and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_error_codesARead-onlyIdempotentInspect
Get the machine-readable catalog of all error codes this API can return (e.g. TIMEOUT, CONTENT_FILTERED, RATE_LIMITED, L402_REFUND_ISSUED, L402_AUTO_ROUTED). Agents should branch on error_code rather than parsing free-text messages. No payment required.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint and idempotentHint. The description adds value by specifying the returned data is a 'machine-readable catalog' with examples, and clarifies no payment is needed. This enhances transparency 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?
Two sentences, no wasted words. The first sentence front-loads the purpose with examples, the second gives usage advice and a behavioral note. Highly concise and well-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?
Despite no output schema, the description provides enough context: purpose, usage guidance, behavioral note (no payment). The tool is simple with no parameters, so completeness is high given the 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?
With zero parameters, the schema description coverage is trivially 100%. The description does not add parameter-specific info, but none is needed. Baseline 4 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 'Get the machine-readable catalog of all error codes this API can return', specifying the verb and resource. It distinguishes itself from sibling tools by providing a unique function not covered by any other sibling.
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 explicit guidance: 'Agents should branch on error_code rather than parsing free-text messages.' It also notes 'No payment required,' clarifying when to use the tool. While no alternatives are mentioned, none exist among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_job_resultARead-onlyIdempotentInspect
Retrieve the final output of a completed async job. Call ONLY after check_job_status returns status='completed' — calling on a non-completed job returns an error. Returns JSON whose shape depends on jobType: video/video-image → { videoUrl, duration }; image-3d → { modelUrl } (GLB format); transcription → { text, language, segments }; epub-audiobook → { audioUrl, chapters }; ai-call → { transcript, duration, summary }. All URLs are temporary (valid ~1 hour) — download immediately. This tool is free and does not require payment. Do NOT use for synchronous tools — those return results directly.
| Name | Required | Description | Default |
|---|---|---|---|
| jobType | Yes | Must match the async tool: video=generate_video, video-image=animate_image, image-3d=generate_3d_model, transcription=transcribe_audio, epub-audiobook=epub_to_audiobook, ai-call=ai_call. video-fal-standard/video-fal-pro = the FAL fallback jobType generate_video returns when Replicate is at capacity. | |
| requestId | Yes | The requestId returned by the original async tool — same ID used with check_job_status |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint, idempotentHint), the description details temporary URLs (~1 hour, download immediately), free usage, and return shape per jobType, providing full behavioral context.
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?
Every sentence earns its place. Front-loaded with main purpose, followed by usage condition, return shapes, URL expiry, free note, and do-not-use note. Compact yet comprehensive.
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?
Without output schema, the description compensates by detailing return shapes for each jobType and covering error conditions. Sibling tools list is large, but the description contextualizes usage via jobType mapping.
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% already, and the description adds significant meaning: jobType mapping to async tools, requestId provenance, and jobType enum values explained. Adds value beyond 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 'Retrieve the final output of a completed async job', providing a specific verb and resource. It distinguishes from sibling tools like check_job_status and synchronous tools.
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 instructs to call only after check_job_status returns 'completed', warns that calling on non-completed jobs returns an error, and advises against using for synchronous tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_model_pricingARead-onlyIdempotentInspect
Get pricing for a specific model by ID. No payment required.
| Name | Required | Description | Default |
|---|---|---|---|
| modelId | Yes | The AI model database ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the description does not need to restate those. The description adds the behavioral note 'No payment required,' which is helpful. However, it lacks details on error handling or return format, so it adds moderate value 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?
Two short sentences, no wasted words. The first sentence immediately states the purpose, and the second adds a key behavioral note. Ideal conciseness.
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 simplicity (single parameter, no output schema), the description covers the essential purpose and a key behavioral trait (no payment). It does not explain the return format or error conditions, but the context is largely complete for a straightforward lookup 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?
The input schema has 100% coverage, with 'modelId' described as 'The AI model database ID'. The description repeats that the ID is for specifying a model, but adds no new meaning. Baseline 3 is appropriate since schema coverage is high and description does not enrich parameter semantics.
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 action ('Get pricing') and the resource ('a specific model by ID'), with a specific verb and resource. It distinguishes itself from siblings like 'list_models' (which lists models) and 'get_cost_estimate' (which estimates cost for a call) by focusing on pricing for a single model by ID.
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 no guidance on when to use this tool versus alternatives such as 'get_cost_estimate' or 'list_models'. It does not mention any preconditions, exclusions, or hints that could help an agent decide between tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_modelsARead-onlyIdempotentInspect
Discover available AI models with numeric IDs, tier labels, capabilities, and per-call pricing in sats. Call this before create_payment to find the right modelId for your task. Returns JSON array: [{ id, name, tier, description, price, isDefault, category }]. Models marked isDefault=true are used when you omit modelId from create_payment. Filter by category to narrow results to a specific tool. This tool is free, requires no payment, and is idempotent — safe to call repeatedly.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter by service category (matches tool names) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint and idempotentHint. The description adds the return format (JSON array with fields), confirms idempotence and free cost, and elaborates on default model behavior, going 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?
Every sentence adds value. The description is front-loaded with purpose, then provides usage, return format, and safety info. No waste, highly efficient.
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?
Despite lacking an output schema, the description fully defines the return structure and explains key behaviors (free, idempotent, default model usage). It covers all necessary context for an AI 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the description adds only minor context about filtering (category matches tool names). The schema already describes the parameter adequately, 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 it discovers AI models with details like numeric IDs, tier labels, capabilities, and pricing. It specifies the use case before create_payment, distinguishing it from other tools.
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 says to call before create_payment, explains filtering by category, and notes it's free and idempotent. Provides clear context for when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_planned_servicesARead-onlyIdempotentInspect
List all planned services with current vote counts. Returns JSON array: [{ slug, name, description, votes }], sorted by votes descending. No payment required — this is a free discovery tool. Use the slug values with vote_on_service to cast votes. This tool is idempotent and safe to call repeatedly.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already note readOnlyHint and idempotentHint. The description adds the exact return format (JSON array sorted by votes) and confirms free usage, providing additional 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?
Every sentence earns its place: states purpose, gives output format, provides usage context, and confirms safety. No redundant information.
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?
Despite no output schema, the description fully specifies the return fields, sort order, and usage suggestions. It is complete for a simple list tool with no parameters.
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 exist, so schema coverage is 100%. The description adds meaning about what the tool returns, meeting the baseline for zero parameters.
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 lists planned services with vote counts, specifies the output format, and distinguishes from the sibling tool vote_on_service by referencing slug usage.
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 says when to use (discovery), notes no payment required, and instructs to use slugs with vote_on_service for voting. Also states it is safe to call repeatedly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
merge_pdfsAInspect
Merge multiple PDF files into a single document. Preserves bookmarks, links, and formatting. Returns JSON: { url } — a temporary download URL (valid ~1 hour). Minimum 2 files, no maximum. Files are concatenated in array order. 100 sats per merge regardless of file count. Use convert_file instead if you need format conversion (e.g., DOCX→PDF). Pay per request with Bitcoin Lightning — no API key, no account needed. Requires create_payment with toolName='merge_pdfs'.
| Name | Required | Description | Default |
|---|---|---|---|
| files | Yes | Array of base64-encoded PDF files (minimum 2) | |
| paymentId | Yes | Valid payment ID (must be paid) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes most behavioral aspects: preserves elements, returns temporary URL, cost, no account needed. However, does not mention error handling or invalid input scenarios. With no annotations, this is a minor gap.
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?
While the description is fairly long, each sentence adds distinct value. It is well-structured, starting with the core action and followed by details. Could be slightly more terse.
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, requirements, alternatives, cost, and output format. No output schema exists, so the description explains the return value. Adequate given the tool's simplicity.
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 100% of parameters. Description adds context: files are base64-encoded, paymentId requires a paid payment, and references create_payment. Enhances understanding beyond 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 explicitly states 'Merge multiple PDF files into a single document' and highlights key features like preserving bookmarks, links, and formatting. It also distinguishes from sibling tool convert_file, making the purpose clear.
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 when-to-use guidance: 'Use convert_file instead if you need format conversion'. Also details requirements (minimum 2 files, payment via create_payment) and constraints (concatenation order, time-limited URL).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_voice_bridgeAInspect
Open a Voice Bridge session: a live phone call where YOUR LLM is the brain. Sats4AI provides PSTN + streaming STT + TTS as composable primitives. You decide when to speak (call voice_bridge_say), you read transcripts as they arrive (call poll_voice_bridge), you close the call when done (call end_voice_bridge). Unused deposit time is refunded via LNURL-withdraw. Use this when you want to keep your conversation context private and drive each turn yourself. When NOT to use: not for fully-managed agent-style calls where we handle the brain (use ai_call). Not for one-shot TTS broadcasts or IVR playback (use place_call). Not when live transcript polling adds no value — the per-turn overhead isn't worth it. Privacy: transcripts held in memory only, garbage-collected 30 minutes after the call ends; call audio is never persisted. Pay with Bitcoin Lightning — no telecom account, no signup. Requires create_payment with toolName='voice_bridge_open', phoneNumber, durationMinutes. Deposit: ~10 sats/min US, ~30 intl, ~80 rare.
| Name | Required | Description | Default |
|---|---|---|---|
| codec | No | PCMU 8kHz (default, universal) or L16_16000 for HD voice when both endpoints support it | |
| language | No | BCP-47 language tag (default en-US). See /api/l402/voice-bridge/coverage for the matrix. | |
| paymentId | Yes | Valid payment ID from create_payment (toolName=voice_bridge_open) | |
| sttEnabled | No | Default true. Set false for TTS-only broadcast calls. | |
| ttsEnabled | No | Default true. Set false to bring-your-own-audio via voice_bridge_say. | |
| phoneNumber | Yes | Destination phone number in E.164 format (e.g., +14155550100) | |
| refundAddress | No | Lightning address for automatic refund of unused time | |
| durationMinutes | No | Deposit for N minutes, 2-30 (default 3). Unused time refunded. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite only openWorldHint annotation, description discloses extensive behavioral details: lifecycle (speak, poll, end), privacy (in-memory, 30min GC, no persistence), payment via Lightning, refund via LNURL-withdraw, and session ownership. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is long but well-structured: front-loaded with purpose, then use cases, alternatives, privacy, payment. Each sentence adds unique value, though some redundancy with schema exists.
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 lifecycle, payment, privacy, and sibling differentiation comprehensively. Lacks explicit mention of return value (e.g., session ID), but implied by subsequent tool references. Overall very complete for a complex tool with no output schema.
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% with good parameter descriptions. Description adds value by explaining deposit rates (10 sats/min US, etc.) and refund flow, plus context on codec and language defaults, which are not in 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?
Description clearly states 'Open a Voice Bridge session: a live phone call where YOUR LLM is the brain.' It uses a specific verb and resource, and distinguishes from siblings like ai_call, place_call, and companion tools.
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 'Use this when...' and 'When NOT to use:' sections with specific alternatives (ai_call, place_call), covering privacy and payment context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
place_callAInspect
Bridge the digital-physical gap — place an automated phone call to deliver a spoken message or play audio to any number. Useful when your task requires notifying a human, delivering alerts, or reaching someone who isn't online. Pay with Bitcoin Lightning — no telecom account, no KYC, no subscription. Requires create_payment with toolName='place_call' and phoneNumber.
| Name | Required | Description | Default |
|---|---|---|---|
| message | No | Text to speak via TTS (max 500 chars). Provide this OR audioUrl. | |
| audioUrl | No | Public URL to audio file. Provide this OR message. | |
| paymentId | Yes | Valid payment ID (must be paid) | |
| phoneNumber | Yes | Phone number in E.164 format (e.g., +14155550100) | |
| durationMinutes | No | Duration in minutes (1-30). Required for audioUrl. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With only openWorldHint as annotation, the description adds significant behavioral context: it explains the payment method (Bitcoin Lightning, no KYC), the dependency on create_payment, and the OR requirement between message and audioUrl. This goes well beyond the minimal annotation.
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 reasonably concise, front-loading the main action and use cases, then adding payment details. It could be slightly more compact, but no sentences are wasted.
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 tool with 5 parameters and no output schema, the description covers core functionality and prerequisites but lacks details on call outcomes, cost, or limitations (e.g., call duration, geographic restrictions). It provides adequate but not comprehensive context.
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% with descriptions for all 5 parameters. The description does not add significant new parameter-level information beyond what the schema already provides. It restates the OR relationship and mentions the phone number format, but this is already in 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 it places an automated phone call to deliver a spoken message or play audio. It specifies the resource (phone call) and verb (place), and distinguishes from sibling tools by emphasizing physical phone calls, but does not explicitly contrast with tools like 'ai_call' or 'voice_bridge'.
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 usage context (notifying humans, alerts, offline reach) and mentions the payment prerequisite, but lacks explicit guidance on when to use this tool over alternatives. No sibling comparisons are made.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poll_voice_bridgeAInspect
Fetch new transcript events from an open Voice Bridge call since the last cursor. Returns partial + final transcripts + system events. Agent should poll in a loop (~500ms-1s). No additional payment.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | Last seq number seen (default 0 = start from beginning) | |
| sessionId | Yes | Session ID from open_voice_bridge |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, description discloses return types (partial + final transcripts + system events), polling behavior, and cost implication. Does not mention error scenarios for closed calls, but overall informative.
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, each essential: describing function, return content, and usage advice. No fluff, front-loaded with core action.
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, return type, polling loop, and cost. No output schema, but return description is adequate. Missing explicit format details, but sufficient for a low-complexity 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?
Schema coverage is 100% with good descriptions. Description adds minimal nuance ('since the last cursor', 'from open_voice_bridge'), not significantly beyond 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 fetches new transcript events from an open Voice Bridge call, using a cursor. It specifies the resource (transcript events) and action (fetch/poll), distinguishing it from siblings like open_voice_bridge, voice_bridge_say, and end_voice_bridge.
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 guidance ('~500ms-1s') and notes 'No additional payment'. Lacks explicit when-not-to-use or alternatives, but the context is clear enough for correct selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
receive_faxAInspect
When you're expecting a fax back — bank confirmation, court filing, signed document — open a 24h receive window at our shared number +1 320 299 1523. Matched by caller ID (last 10 digits of the sender), delivered to your email as soon as it arrives. Optional OCR add-on (+200 sats) returns a searchable text file alongside the PDF — useful for feeding the content to an agent or archiving. Optional callback_url POSTs an HMAC-signed webhook on delivery so your agent doesn't have to poll. No refund if no fax arrives within the window (prevents subscription squatting). If OCR fails, an LNURL-withdraw for 200 sats is included in the delivery email for partial refund. Pay with Bitcoin Lightning — no dedicated fax number rental, no monthly subscription, no account.
| Name | Required | Description | Default |
|---|---|---|---|
| ocr | No | Add OCR text extraction (+200 sats). Default: false. | |
| Yes | Email address to deliver the fax PDF to | ||
| paymentId | Yes | Valid payment ID (must be paid) | |
| fromNumber | Yes | Expected sender fax number in E.164 format (matched by last 10 digits of caller ID) | |
| callback_id | No | Optional opaque correlation string (max 128 chars). Echoed in the webhook body. | |
| callback_url | No | Optional HTTPS webhook URL. POSTed (HMAC-signed) when fax is delivered. Public HTTPS only — no loopback/RFC1918. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses no-refund policy, optional OCR with partial refund on failure, and webhook behavior. Does not explicitly address openWorldHint annotation, but overall transparent.
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?
Front-loaded with purpose; every sentence adds value, though slightly long. Could be more structured with bullet points.
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 delivery mechanism, optional features, refund policy, and payment. Lacks webhook payload details but adequate given no output schema.
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?
Adds meaning beyond schema: explains last-10-digit matching for fromNumber, callback webhook HMAC signing, OCR cost and refund, and payment method.
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 verb 'open a 24h receive window' and the resource 'our shared number', making it distinct from sibling send_fax and other communication tools.
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?
Explicit scenarios are given ('bank confirmation, court filing, signed document'), but no explicit exclusions or alternatives among siblings are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_backgroundAInspect
Remove background from any image, returning transparent PNG. Uses BiRefNet (state-of-the-art, Papers with Code — Sm 0.901 on DIS5K). Handles hair, fur, glass, transparency, and complex edges. Stable endpoint — model upgrades automatically as SOTA evolves. 5 sats per image, pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='remove_background'.
| Name | Required | Description | Default |
|---|---|---|---|
| paymentId | Yes | Valid payment ID (must be paid) | |
| imageBase64 | Yes | Base64-encoded image (PNG, JPEG, WEBP) or data URI |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses model (BiRefNet), capabilities (hair, fur, glass, complex edges), stability, automatic upgrades, cost, and payment method. No annotations provided, so description fully covers behavioral traits.
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 fairly concise with 6 sentences, each adding value (purpose, model, handling, stability, cost, prerequisite). Slightly verbose but no fluff.
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 tool with 2 parameters and no output schema, the description covers input constraints, model details, output format (transparent PNG), cost, and prerequisite. Fully adequate for agent understanding.
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% and both parameters are described adequately in the schema. The description adds no additional meaning to the parameters, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'remove' and resource 'background from any image' with a specific outcome 'returning transparent PNG'. Distinct from siblings like 'remove_object' and 'edit_image'.
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 details the prerequisite payment process: 'Requires create_payment with toolName='remove_background''. Provides context like pay-per-request and no signup, but no 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.
remove_objectAInspect
Remove unwanted objects from images by describing what to remove — no mask needed. Combines Grounding DINO detection (ECCV 2024) with Bria Eraser inpainting. Just say 'person', 'car', or 'watermark' and the object is erased and filled convincingly. 15 sats per image, pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='remove_object'.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | What to remove (e.g. 'person', 'car', 'watermark', 'text') | |
| paymentId | Yes | Valid payment ID (must be paid) | |
| imageBase64 | Yes | Base64-encoded image (PNG, JPEG, WEBP) or data URI | |
| box_threshold | No | Detection confidence threshold (0-1, default 0.25) | |
| text_threshold | No | Text matching threshold (0-1, default 0.25) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses use of Grounding DINO and Bria Eraser, cost of 15 sats, pay-per-request with Bitcoin Lightning, no API key/signup needed, and requirement for create_payment. However, it doesn't mention image limitations or response format.
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 plus a payment instruction. It is concise but packs necessary details. Could be slightly tighter, but overall well-structured and front-loaded.
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?
Tool has 5 parameters but no output schema. The description does not mention what the tool returns (likely base64 image) or if there is a job ID. Error handling and rate limits are absent. Given the complexity, more detail on return value and potential errors would be beneficial.
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%. Description adds value by giving examples for 'query', stating default thresholds of 0.25, and explaining that paymentId must be paid. This supplements the schema descriptions.
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 'Remove unwanted objects from images' with specific verb and resource. Examples like 'person', 'car', 'watermark' illustrate usage. It distinguishes from sibling tools like 'remove_background' by specifying text-based removal without masks.
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 when to use: 'just describe what to remove', and mentions no mask needed. It also explains pricing and payment flow. However, it does not explicitly state when not to use it (e.g., for complex edits) or compare with alternatives like 'edit_image'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
request_refundAInspect
Open a MANUAL 48-hour refund review ticket for a service that FAILED (error, timeout, wrong output). Sends an email to the operator. DO NOT call this for unused-minute refunds on metered services (ai_call, voice_bridge) — those are returned automatically as an LNURL-withdraw link in the service's own response under refund.lnurl_withdraw, no manual ticket needed. If you call this on a metered payment that already has a pending LNURL refund, this tool will detect it and return the existing LNURL instead of creating a duplicate ticket.
| Name | Required | Description | Default |
|---|---|---|---|
| No | Optional email address for follow-up | ||
| invoice | Yes | Lightning address (e.g., user@wallet.com) or bolt11 invoice for the refund | |
| feedback | No | Optional description of what went wrong (max 2000 chars) | |
| paymentId | Yes | The payment ID from a failed service call |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool sends an email to the operator, has a 48-hour review period, and detects pending LNURL refunds to avoid duplicates, offering thorough behavioral context.
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 and front-loaded with the main purpose in the first sentence. The remaining sentences add crucial usage guidelines and behavioral quirks without redundancy, but could be slightly more 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?
Given no output schema and no annotations, the description provides comprehensive context: purpose, usage boundaries, alternative options, and unexpected behavior (duplicate detection). It fully equips the 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters fully. The description does not add new parameter-level meaning beyond what the schema provides, thus 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 opens a manual 48-hour refund review ticket for failed services, specifying the action and resource. It distinguishes from metered service refunds, providing clarity on scope.
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 (for failed services with error/timeout/wrong output) and when not to use (unused-minute refunds on metered services). Provides clear alternative: the LNURL withdraw link from the service's response, and explains duplicate detection behavior.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restore_faceAInspect
Restore blurry, damaged, or AI-generated faces to sharp, natural quality. Uses CodeFormer (NeurIPS 2022, state-of-the-art FID 32.65 on CelebA-Test). Adjustable fidelity — balance between quality enhancement and identity preservation. Also enhances background and upsamples. Stable endpoint — model upgrades automatically as SOTA evolves. 5 sats per image, pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='restore_face'.
| Name | Required | Description | Default |
|---|---|---|---|
| upscale | No | Output upscale factor 1-4 (default 2) | |
| fidelity | No | Fidelity to input: 0.0 = max quality enhancement, 1.0 = max identity preservation (default 0.5) | |
| paymentId | Yes | Valid payment ID (must be paid) | |
| imageBase64 | Yes | Base64-encoded image containing faces (PNG, JPEG, WEBP) or data URI | |
| face_upsample | No | Upsample restored faces (default true) | |
| background_enhance | No | Also enhance the background (default true) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden. It discloses the underlying model (CodeFormer), adjustable fidelity, background enhancement, upsampling, stability, automatic upgrades, pricing, and payment process. This is comprehensive.
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 eight sentences, all adding value. It front-loads the main purpose and efficiently covers multiple aspects without redundancy.
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 no output schema and no annotations, the description covers purpose, usage, pricing, and payment. It lacks details on return format or limitations (e.g., max image size) but is sufficient for a paid 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?
Schema coverage is 100%, so baseline is 3. The description mentions fidelity and enhancements but does not add new parameter meaning beyond 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 specifies 'restore blurry, damaged, or AI-generated faces to sharp, natural quality,' using a clear verb and resource. It distinguishes from siblings like deblur_image and upscale_image by focusing on faces.
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 explains the payment requirement and fidelity adjustment. It implies use for face restoration but does not explicitly state when to avoid it or compare with alternatives. Sibling context is provided but not leveraged.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_emailAInspect
Reach anyone with an email address — useful when your task requires formal communication, sending reports, or contacting someone outside chat. No SMTP server, no domain verification needed. Plain text, max 10,000 chars body, 200 chars subject. 200 sats. Pay with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='send_email'.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Recipient email address | |
| body | Yes | Email body text (plain text, max 10,000 characters) | |
| replyTo | No | Optional reply-to email address | |
| subject | Yes | Email subject (max 200 characters) | |
| paymentId | Yes | Valid payment ID (must be paid) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Explicitly discloses limitations (plain text only, 10k chars body, 200 chars subject), cost (200 sats), payment method (Bitcoin Lightning), and prerequisite (create_payment). Also states no API key/signup needed. This exceeds annotation minimality.
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 a single paragraph with efficient sentences. It could be better structured with bullet points, but it is not verbose and information is relevant.
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 tool with 5 parameters, no output schema, and prerequisite payment, the description covers input constraints, cost, and usage context. Missing return value information but acceptable given no output schema.
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 already covers all parameters (100%). Description adds value by summarizing max lengths for subject and body, and clarifying paymentId must be paid. However, it doesn't detail each param beyond 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?
Clearly states the tool sends emails to any address, with specific use cases like formal communication and contacting people outside chat, distinguishing it from siblings like sms.
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?
Describes when to use (formal communication, reports, external contacts), notes no SMTP/domain setup needed, and mentions payment requirement. Lacks explicit when-not-to-use, but the constraints (plain text, limits) imply alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_faxAInspect
When your task requires a paper-trail on the other end — loan paperwork to a bank, signed contract to a notary, booking confirmation to a hotel in Japan — send a fax to any number worldwide. Two modes: 'pdf' (fetch from public URL) or 'text' (we format typed text into a PDF locally). Optional cover page. Pricing: 500 sats for up to 10 pages, +50 sats per additional page. Max 350 pages / 50 MB. Pass 'pages' to create_payment as 'quantity' to get the right invoice. Pay with Bitcoin Lightning — no fax machine, no phone line, no telecom account.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | 'pdf' = send PDF from pdfUrl. 'text' = generate PDF from typed text. | |
| text | No | Required for mode=text: message text to format as PDF | |
| pages | No | Expected page count (1-350). Used for pricing. Pass same value to create_payment as 'quantity'. | |
| pdfUrl | No | Required for mode=pdf: public HTTPS URL returning application/pdf | |
| coverText | No | Optional cover page text (mode=pdf only, adds 1 page) | |
| paymentId | Yes | Valid payment ID (must be paid) | |
| phoneNumber | Yes | Destination fax number in E.164 format (e.g. +14155550100) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses critical behavioral traits beyond the sparse annotations: pricing (500 sats for up to 10 pages, +50 per additional page), limits (max 350 pages/50 MB), modes (pdf/text), cover page behavior, and payment dependency (Bitcoin Lightning). No contradictions with the openWorldHint annotation.
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 a single, well-structured paragraph that front-loads the purpose and examples. Every sentence adds value—pricing, limits, mode details, payment linkage—with no redundancy or unnecessary text.
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 (7 parameters, no output schema), the description fully covers the end-to-end workflow: create payment, choose mode, provide details, and send. It addresses pricing, constraints, and mode switching, leaving no obvious 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?
Schema coverage is 100%, but the description adds significant meaning: it explains how 'pages' relates to payment ('Pass 'pages' to create_payment as 'quantity''), clarifies mode options (pdf vs text with details), and introduces the cover page concept. This goes beyond what the schema provides.
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 clear purpose statement: 'send a fax to any number worldwide' with concrete examples (loan paperwork, signed contract, booking confirmation). It distinguishes the tool from siblings by focusing on fax, which is unique among sibling tools like send_email or send_sms.
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 for when to use the tool ('when your task requires a paper-trail') and explains the two modes. However, it does not explicitly state when not to use it or mention alternatives, leaving some room for ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_smsAInspect
Reach a human via SMS when your task requires real-world coordination. Send to any phone number worldwide — messages delivered in seconds. No phone plan, no SIM card, no telecom account needed. Pay with Bitcoin Lightning — no API key, no KYC, no subscription. Requires create_payment with toolName='send_sms' and phoneNumber+message at payment time. The phoneNumber and message must match those used in create_payment.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | Message text (max 126 chars — short disclaimer auto-appended) | |
| paymentId | Yes | Valid payment ID (must be paid) | |
| phoneNumber | Yes | Phone number in E.164 format (e.g., +14155550100). NOTE: non-+1 (international) numbers are delivered from an alphanumeric sender ID, so the recipient CANNOT reply — one-way only; for some countries (e.g. FR/CZ/CN) it is the only delivery path. No error is returned. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses key behaviors: fast delivery, no phone plan needed, Bitcoin Lightning payment, and importantly, the one-way nature for international numbers with no error returned. This goes beyond the openWorldHint annotation. However, it omits potential limits or fees.
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 and front-loaded with the primary action. Every sentence adds value without redundancy, making it efficient for an AI agent to parse.
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 no output schema, the description covers prerequisites, usage, and behavioral nuances. However, it does not clarify what the agent can expect after sending (e.g., success indication, receipt). Slightly incomplete for a complete picture.
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?
With 100% schema coverage, the description adds meaningful context: message max 126 chars with disclaimer auto-appended, phone number must be E.164 format, and international delivery behavior. This exceeds what the schema provides.
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 it sends SMS messages for real-world coordination to any phone number worldwide. It does not explicitly contrast with sibling tools like send_email or place_call, but the purpose 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the tool ('when your task requires real-world coordination') and details prerequisites (create_payment with matching parameters). It does not provide explicit when-not-to-use or alternatives, but 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.
text_to_speechAInspect
Text-to-speech with 3 tiers: OmniVoice Global (602+ languages including Yoruba, Bengali, Cebuano, Twi, zero-shot voice cloning, 100 chars/sat — use 'language' parameter with ISO code), Inworld Premium (#1 ranked TTS ELO 1217, emotion control, 40+ languages, 50 chars/sat), Minimax Studio (voice cloning from reference clip, 40+ languages, 10 chars/sat). Adjustable speed (0.5-2.0x). Returns audio URL. Pay with Bitcoin Lightning — no API key or signup needed. When NOT to use: not for phone calls (use place_call for one-shot broadcasts, ai_call for AI voice agents, or open_voice_bridge to drive the call with your own LLM). For rare/underserved languages (Yoruba, Twi, Marathi, Cebuano, etc.), pick OmniVoice Global via language= — Inworld/Minimax don't cover these. Requires create_payment with toolName='text_to_speech'.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to convert to speech | |
| speed | No | Speech speed multiplier (0.5-2.0) | |
| voice | No | Voice ID. 467 total voices. Use list_models to see available TTS models. Or paste a custom cloned voice ID. ## Minimax Studio — voice cloning from reference clip, 10 chars/sat (332 voices) ### Arabic (2) Arabic_CalmWoman (Female, Middle Aged, Serene, calm female); Arabic_FriendlyGuy (Male, Middle Aged, Warm, friendly male) ### Cantonese (6) Cantonese_ProfessionalHost (F) (Female, Middle Aged, Polished, professional female host); Cantonese_GentleLady (Female, Middle Aged, Gentle, refined female); Cantonese_ProfessionalHost (M) (Male, Middle Aged, Polished, professional male host); Cantonese_PlayfulMan (Male, Middle Aged, Fun, playful male); Cantonese_CuteGirl (Female, Young, Cute, endearing young female); Cantonese_KindWoman (Female, Middle Aged, Kind, warm female) ### Chinese (34) Chinese (Mandarin)_Reliable_Executive (Male, Middle Aged, Professional, dependable male); Chinese (Mandarin)_News_Anchor (Male, Middle Aged, Clear, authoritative news voice); Chinese (Mandarin)_Unrestrained_Young_Man (Male, Young, Free-spirited young male); Chinese (Mandarin)_Mature_Woman (Female, Middle Aged, Poised, mature female); Arrogant_Miss (Female, Young, Haughty, proud young female); Robot_Armor (Male, Middle Aged, Robotic, mechanical voice); Chinese (Mandarin)_Kind-hearted_Antie (Female, Old, Warm, caring older female); Chinese (Mandarin)_HK_Flight_Attendant (Female, Young, Professional, polished female); Chinese (Mandarin)_Humorous_Elder (Male, Old, Witty, humorous older male); Chinese (Mandarin)_Gentleman (Male, Middle Aged, Refined, courteous male); Chinese (Mandarin)_Warm_Bestie (Female, Young, Friendly, warm young female); Chinese (Mandarin)_Stubborn_Friend (Male, Young, Persistent, headstrong male); Chinese (Mandarin)_Sweet_Lady (Female, Middle Aged, Gentle, sweet female); Chinese (Mandarin)_Southern_Young_Man (Male, Young, Southern-accented young male); Chinese (Mandarin)_Wise_Women (Female, Middle Aged, Thoughtful, wise female); Chinese (Mandarin)_Gentle_Youth (Male, Young, Soft, gentle young male); Chinese (Mandarin)_Warm_Girl (Female, Young, Warm, inviting young female); Chinese (Mandarin)_Male_Announcer (Male, Middle Aged, Clear, authoritative announcer); Chinese (Mandarin)_Kind-hearted_Elder (Male, Old, Gentle, wise older male); Chinese (Mandarin)_Cute_Spirit (Female, Young, Cute, spirited young female); Chinese (Mandarin)_Radio_Host (Male, Middle Aged, Smooth, professional radio voice); Chinese (Mandarin)_Lyrical_Voice (Female, Middle Aged, Melodic, lyrical female); Chinese (Mandarin)_Straightforward_Boy (Male, Young, Direct, honest young male); Chinese (Mandarin)_Sincere_Adult (Male, Middle Aged, Genuine, sincere male); Chinese (Mandarin)_Gentle_Senior (Male, Old, Gentle, patient older male); Chinese (Mandarin)_Crisp_Girl (Female, Young, Clear, crisp young female); Chinese (Mandarin)_Pure-hearted_Boy (Male, Young, Innocent, pure-hearted young male); Chinese (Mandarin)_Soft_Girl (Female, Young, Soft, delicate young female); Chinese (Mandarin)_IntellectualGirl (Female, Young, Smart, intellectual young female); Chinese (Mandarin)_Warm_HeartedGirl (Female, Young, Warm, caring young female); Chinese (Mandarin)_Laid_BackGirl (Female, Young, Relaxed, laid-back young female); Chinese (Mandarin)_ExplorativeGirl (Female, Young, Curious, adventurous young female); Chinese (Mandarin)_Warm-HeartedAunt (Female, Middle Aged, Caring, nurturing aunt figure); Chinese (Mandarin)_BashfulGirl (Female, Young, Shy, bashful young female) ### Czech (3) czech_male_1_v1 (Male, Middle Aged, Confident, assured presenter); czech_female_5_v7 (Female, Middle Aged, Steady, reliable narrator); czech_female_2_v2 (Female, Middle Aged, Refined, elegant female) ### Dutch (2) Dutch_kindhearted_girl (Female, Young, Compassionate, kind young female); Dutch_bossy_leader (Male, Middle Aged, Commanding, bossy male) ### English (45) English_expressive_narrator (Male, Middle Aged, Expressive, dynamic narrator); English_radiant_girl (Female, Young, Bright, cheerful young female); English_magnetic_voiced_man (Male, Middle Aged, Rich, magnetic male voice); English_compelling_lady1 (Female, Middle Aged, Persuasive, engaging female); English_Aussie_Bloke (Male, Middle Aged, Casual Australian male); English_captivating_female1 (Female, Middle Aged, Alluring, captivating female); English_Upbeat_Woman (Female, Middle Aged, Upbeat, energetic female); English_Trustworth_Man (Male, Middle Aged, Reliable, trustworthy male); English_CalmWoman (Female, Middle Aged, Serene, relaxing female); English_UpsetGirl (Female, Young, Emotional, distressed young female); English_Gentle-voiced_man (Male, Middle Aged, Soft, gentle male voice); English_Whispering_girl (Female, Young, Soft, whispery young female); English_Diligent_Man (Male, Middle Aged, Focused, hardworking male); English_Graceful_Lady (Female, Middle Aged, Elegant, poised female); English_ReservedYoungMan (Male, Young, Quiet, reserved young male); English_PlayfulGirl (Female, Young, Fun, playful young female); English_ManWithDeepVoice (Male, Middle Aged, Deep, resonant male bass); English_MaturePartner (Male, Middle Aged, Mature, dependable male); English_FriendlyPerson (Male, Middle Aged, Warm, approachable male); English_MatureBoss (Female, Middle Aged, Commanding, authoritative female); English_Debator (Male, Middle Aged, Articulate, persuasive male); English_LovelyGirl (Female, Young, Sweet, charming young female); English_Steadymentor (Male, Middle Aged, Steady, mentoring male); English_Deep-VoicedGentleman (Male, Middle Aged, Distinguished, deep-voiced male); English_Wiselady (Female, Middle Aged, Thoughtful, wise female); English_CaptivatingStoryteller (Male, Middle Aged, Engaging, narrative male voice); English_DecentYoungMan (Male, Young, Polite, well-spoken young male); English_SentimentalLady (Female, Middle Aged, Emotional, heartfelt female); English_ImposingManner (Female, Middle Aged, Commanding, regal female); English_SadTeen (Male, Young, Youthful, melancholic teen male); English_PassionateWarrior (Male, Middle Aged, Fierce, passionate male); English_WiseScholar (Male, Old, Learned, scholarly male); English_Soft-spokenGirl (Female, Young, Quiet, gentle young female); English_SereneWoman (Female, Middle Aged, Peaceful, calm female); English_ConfidentWoman (Female, Middle Aged, Self-assured, bold female); English_PatientMan (Male, Middle Aged, Steady, reassuring male); English_Comedian (Male, Middle Aged, Humorous, comedic male); English_BossyLeader (Male, Middle Aged, Commanding, bossy male); English_Strong-WilledBoy (Male, Young, Determined, strong-willed young male); English_StressedLady (Female, Middle Aged, Tense, stressed female); English_AssertiveQueen (Female, Middle Aged, Bold, assertive female); English_AnimeCharacter (Female, Young, Animated, expressive narrator); English_Jovialman (Male, Middle Aged, Cheerful, jolly male); English_WhimsicalGirl (Female, Young, Dreamy, whimsical young female); English_Kind-heartedGirl (Female, Young, Compassionate, kind young female) ### Finnish (3) finnish_male_3_v1 (Male, Middle Aged, Cheerful, upbeat male); finnish_male_1_v2 (Male, Young, Friendly, approachable young male); finnish_female_4_v1 (Female, Middle Aged, Bold, assertive female) ### French (6) French_Male_Speech_New (Male, Middle Aged, Composed, level-headed male); French_Female_News Anchor (Female, Middle Aged, Patient, professional presenter); French_CasualMan (Male, Middle Aged, Laid-back, casual male); French_MovieLeadFemale (Female, Middle Aged, Dramatic, cinematic female); French_FemaleAnchor (Female, Middle Aged, Professional, clear anchor); French_MaleNarrator (Male, Middle Aged, Clear, engaging narrator) ### German (3) German_FriendlyMan (Male, Middle Aged, Warm, friendly male); German_SweetLady (Female, Middle Aged, Sweet, gentle female); German_PlayfulMan (Male, Middle Aged, Fun, playful male) ### Greek (3) greek_male_1a_v1 (Male, Middle Aged, Reflective, mentoring male); Greek_female_1_sample1 (Female, Middle Aged, Soft, gentle female); Greek_female_2_sample3 (Female, Young, Friendly, relatable female) ### Hindi (3) hindi_male_1_v2 (Male, Middle Aged, Reliable, trustworthy male); hindi_female_2_v1 (Female, Middle Aged, Peaceful, tranquil female); hindi_female_1_v2 (Female, Middle Aged, Clear, authoritative anchor) ### Indonesian (9) Indonesian_SweetGirl (Female, Young, Sweet, gentle young female); Indonesian_ReservedYoungMan (Male, Young, Quiet, reserved young male); Indonesian_CharmingGirl (Female, Young, Charming, attractive female); Indonesian_CalmWoman (Female, Middle Aged, Serene, calm female); Indonesian_ConfidentWoman (Female, Middle Aged, Self-assured female); Indonesian_CaringMan (Male, Middle Aged, Nurturing, caring male); Indonesian_BossyLeader (Male, Middle Aged, Commanding, bossy male); Indonesian_DeterminedBoy (Male, Young, Focused, determined young male); Indonesian_GentleGirl (Female, Young, Soft, gentle young female) ### Italian (4) Italian_BraveHeroine (Female, Middle Aged, Courageous, brave female); Italian_Narrator (Male, Middle Aged, Clear, professional narrator); Italian_WanderingSorcerer (Male, Old, Mystical, wandering character); Italian_DiligentLeader (Male, Middle Aged, Focused, diligent male) ### Japanese (15) Japanese_IntellectualSenior (Male, Old, Learned, intellectual senior); Japanese_DecisivePrincess (Female, Young, Bold, decisive young female); Japanese_LoyalKnight (Male, Middle Aged, Loyal, noble male); Japanese_DominantMan (Male, Middle Aged, Strong, commanding male); Japanese_SeriousCommander (Male, Middle Aged, Stern, authoritative commander); Japanese_ColdQueen (Female, Middle Aged, Icy, regal female); Japanese_DependableWoman (Female, Middle Aged, Reliable, steady female); Japanese_GentleButler (Male, Middle Aged, Polite, refined butler voice); Japanese_KindLady (Female, Middle Aged, Kind, warm female); Japanese_CalmLady (Female, Middle Aged, Serene, calm female); Japanese_OptimisticYouth (Male, Young, Cheerful, optimistic young male); Japanese_GenerousIzakayaOwner (Male, Middle Aged, Warm, generous male); Japanese_SportyStudent (Male, Young, Energetic, athletic young male); Japanese_InnocentBoy (Male, Young, Innocent, naive young male); Japanese_GracefulMaiden (Female, Young, Elegant, graceful young female) ### Korean (49) Korean_AirheadedGirl (Female, Young, Carefree, bubbly young female); Korean_AthleticGirl (Female, Young, Energetic, sporty young female); Korean_AthleticStudent (Male, Young, Active, sporty young male); Korean_BraveAdventurer (Male, Middle Aged, Bold, adventurous male); Korean_BraveFemaleWarrior (Female, Middle Aged, Fierce, brave female); Korean_BraveYouth (Male, Young, Courageous young male); Korean_CalmGentleman (Male, Middle Aged, Composed, calm male); Korean_CalmLady (Female, Middle Aged, Serene, calm female); Korean_CaringWoman (Female, Middle Aged, Nurturing, caring female); Korean_CharmingElderSister (Female, Middle Aged, Charming, elegant sister); Korean_CharmingSister (Female, Young, Attractive, charming female); Korean_CheerfulBoyfriend (Male, Young, Upbeat, cheerful young male); Korean_CheerfulCoolJunior (Male, Young, Cool, laid-back junior); Korean_CheerfulLittleSister (Female, Young, Happy, energetic young female); Korean_ChildhoodFriendGirl (Female, Young, Familiar, friendly female); Korean_CockyGuy (Male, Young, Confident, cocky young male); Korean_ColdGirl (Female, Young, Aloof, cool young female); Korean_ColdYoungMan (Male, Young, Reserved, cold young male); Korean_ConfidentBoss (Male, Middle Aged, Self-assured, commanding boss); Korean_ConsiderateSenior (Male, Middle Aged, Thoughtful, considerate male); Korean_DecisiveQueen (Female, Middle Aged, Bold, decisive female); Korean_DominantMan (Male, Middle Aged, Powerful, dominant male); Korean_ElegantPrincess (Female, Young, Refined, elegant young female); Korean_EnchantingSister (Female, Young, Enchanting, captivating female); Korean_EnthusiasticTeen (Male, Young, Eager, enthusiastic teen); Korean_FriendlyBigSister (Female, Middle Aged, Friendly, supportive sister); Korean_GentleBoss (Male, Middle Aged, Gentle, kind boss); Korean_GentleWoman (Female, Middle Aged, Soft, gentle female); Korean_HaughtyLady (Female, Middle Aged, Proud, haughty female); Korean_InnocentBoy (Male, Young, Innocent, naive young male); Korean_IntellectualMan (Male, Middle Aged, Smart, intellectual male); Korean_IntellectualSenior (Male, Old, Wise, intellectual senior); Korean_LonelyWarrior (Male, Middle Aged, Solitary, stoic male); Korean_MatureLady (Female, Middle Aged, Poised, mature female); Korean_MysteriousGirl (Female, Young, Enigmatic, mysterious young female); Korean_OptimisticYouth (Male, Young, Cheerful, optimistic young male); Korean_PlayboyCharmer (Male, Young, Suave, charming young male); Korean_PossessiveMan (Male, Middle Aged, Intense, possessive male); Korean_QuirkyGirl (Female, Young, Quirky, unique young female); Korean_ReliableSister (Female, Middle Aged, Dependable, reliable female); Korean_ReliableYouth (Male, Young, Dependable young male); Korean_SassyGirl (Female, Young, Bold, sassy young female); Korean_ShyGirl (Female, Young, Shy, reserved young female); Korean_SoothingLady (Female, Middle Aged, Calming, soothing female); Korean_StrictBoss (Male, Middle Aged, Stern, strict male boss); Korean_SweetGirl (Female, Young, Sweet, gentle young female); Korean_ThoughtfulWoman (Female, Middle Aged, Thoughtful, reflective female); Korean_WiseElf (Female, Young, Whimsical, wise character); Korean_WiseTeacher (Male, Old, Patient, wise teacher) ### Polish (4) Polish_male_1_sample4 (Male, Middle Aged, Clear, professional narrator); Polish_male_2_sample3 (Male, Middle Aged, Authoritative news anchor); Polish_female_1_sample1 (Female, Middle Aged, Serene, calm female); Polish_female_2_sample3 (Female, Middle Aged, Relaxed, casual female) ### Portuguese (73) Portuguese_SentimentalLady (Female, Middle Aged, Emotional, sentimental female); Portuguese_BossyLeader (Male, Middle Aged, Commanding, bossy male); Portuguese_Wiselady (Female, Middle Aged, Wise, thoughtful female); Portuguese_Strong-WilledBoy (Male, Young, Determined young male); Portuguese_Deep-VoicedGentleman (Male, Middle Aged, Distinguished, deep male); Portuguese_UpsetGirl (Female, Young, Emotional, distressed female); Portuguese_PassionateWarrior (Male, Middle Aged, Fierce, passionate male); Portuguese_AnimeCharacter (Female, Young, Animated, expressive character); Portuguese_ConfidentWoman (Female, Middle Aged, Self-assured female); Portuguese_AngryMan (Male, Middle Aged, Intense, angry male); Portuguese_CaptivatingStoryteller (Male, Middle Aged, Engaging narrator); Portuguese_Godfather (Male, Old, Gravelly, authoritative male); Portuguese_ReservedYoungMan (Male, Young, Quiet, reserved young male); Portuguese_SmartYoungGirl (Female, Young, Intelligent, bright young female); Portuguese_Kind-heartedGirl (Female, Young, Compassionate young female); Portuguese_Pompouslady (Female, Middle Aged, Grand, pompous female); Portuguese_Grinch (Male, Middle Aged, Grumpy, grouchy character); Portuguese_Debator (Male, Middle Aged, Articulate, persuasive male); Portuguese_SweetGirl (Female, Young, Sweet, gentle young female); Portuguese_AttractiveGirl (Female, Young, Attractive, alluring female); Portuguese_ThoughtfulMan (Male, Middle Aged, Reflective, thoughtful male); Portuguese_PlayfulGirl (Female, Young, Fun, playful young female); Portuguese_GorgeousLady (Female, Middle Aged, Beautiful, elegant female); Portuguese_LovelyLady (Female, Middle Aged, Lovely, charming female); Portuguese_SereneWoman (Female, Middle Aged, Peaceful, calm female); Portuguese_SadTeen (Male, Young, Melancholic, sad teen); Portuguese_MaturePartner (Male, Middle Aged, Mature, dependable male); Portuguese_Comedian (Male, Middle Aged, Humorous, comedic male); Portuguese_NaughtySchoolgirl (Female, Young, Mischievous young female); Portuguese_Narrator (Male, Middle Aged, Clear, professional narrator); Portuguese_ToughBoss (Male, Middle Aged, Hard-nosed, tough male); Portuguese_Fussyhostess (Female, Middle Aged, Particular, meticulous female); Portuguese_Dramatist (Male, Middle Aged, Dramatic, theatrical male); Portuguese_Steadymentor (Male, Middle Aged, Reliable, mentoring male); Portuguese_Jovialman (Male, Middle Aged, Cheerful, jovial male); Portuguese_CharmingQueen (Female, Middle Aged, Charming, regal female); Portuguese_SantaClaus (Male, Old, Jolly, festive character); Portuguese_Rudolph (Male, Young, Playful, festive character); Portuguese_Arnold (Male, Middle Aged, Strong, tough male character); Portuguese_CharmingSanta (Male, Old, Charming, festive character); Portuguese_CharmingLady (Female, Middle Aged, Charming, elegant female); Portuguese_Ghost (Male, Middle Aged, Eerie, spectral character); Portuguese_HumorousElder (Male, Old, Witty, humorous older male); Portuguese_CalmLeader (Male, Middle Aged, Composed, calm leader); Portuguese_GentleTeacher (Female, Middle Aged, Patient, gentle teacher); Portuguese_EnergeticBoy (Male, Young, Lively, energetic young male); Portuguese_ReliableMan (Male, Middle Aged, Dependable, reliable male); Portuguese_SereneElder (Male, Old, Peaceful, wise elder); Portuguese_GrimReaper (Male, Middle Aged, Dark, ominous character); Portuguese_AssertiveQueen (Female, Middle Aged, Bold, assertive female); Portuguese_WhimsicalGirl (Female, Young, Dreamy, whimsical female); Portuguese_StressedLady (Female, Middle Aged, Tense, stressed female); Portuguese_FriendlyNeighbor (Male, Middle Aged, Friendly, neighborly male); Portuguese_CaringGirlfriend (Female, Young, Loving, caring young female); Portuguese_PowerfulSoldier (Male, Middle Aged, Strong, powerful male); Portuguese_FascinatingBoy (Male, Young, Charming, fascinating young male); Portuguese_RomanticHusband (Male, Middle Aged, Romantic, loving male); Portuguese_StrictBoss (Male, Middle Aged, Stern, strict boss); Portuguese_InspiringLady (Female, Middle Aged, Motivating, inspiring female); Portuguese_PlayfulSpirit (Female, Young, Fun, playful young female); Portuguese_ElegantGirl (Female, Young, Refined, elegant young female); Portuguese_CompellingGirl (Female, Young, Engaging, compelling female); Portuguese_PowerfulVeteran (Male, Old, Experienced, powerful veteran); Portuguese_SensibleManager (Male, Middle Aged, Practical, sensible male); Portuguese_ThoughtfulLady (Female, Middle Aged, Reflective, thoughtful female); Portuguese_TheatricalActor (Male, Middle Aged, Dramatic, theatrical male); Portuguese_FragileBoy (Male, Young, Delicate, fragile young male); Portuguese_ChattyGirl (Female, Young, Talkative, bubbly female); Portuguese_Conscientiousinstructor (Male, Middle Aged, Careful, thorough instructor); Portuguese_RationalMan (Male, Middle Aged, Logical, rational male); Portuguese_WiseScholar (Male, Old, Learned, scholarly male); Portuguese_FrankLady (Female, Middle Aged, Direct, frank female); Portuguese_DeterminedManager (Male, Middle Aged, Focused, decisive manager) ### Romanian (4) Romanian_male_1_sample2 (Male, Middle Aged, Dependable, reliable male); Romanian_male_2_sample1 (Male, Young, Lively, energetic young male); Romanian_female_1_sample4 (Female, Young, Cheerful, optimistic female); Romanian_female_2_sample1 (Female, Middle Aged, Soft, gentle female) ### Russian (8) Russian_HandsomeChildhoodFriend (Male, Young, Charming, familiar young male); Russian_BrightHeroine (Female, Middle Aged, Bright, regal female); Russian_AmbitiousWoman (Female, Middle Aged, Driven, ambitious female); Russian_ReliableMan (Male, Middle Aged, Dependable, reliable male); Russian_CrazyQueen (Female, Young, Wild, unpredictable female); Russian_PessimisticGirl (Female, Young, Gloomy, pessimistic female); Russian_AttractiveGuy (Male, Young, Charming, attractive young male); Russian_Bad-temperedBoy (Male, Young, Irritable, short-tempered male) ### Spanish (47) Spanish_SereneWoman (Female, Middle Aged, Peaceful, calm female); Spanish_MaturePartner (Male, Middle Aged, Mature, dependable male); Spanish_CaptivatingStoryteller (Male, Middle Aged, Engaging narrator); Spanish_Narrator (Male, Middle Aged, Clear, professional narrator); Spanish_WiseScholar (Male, Old, Learned, scholarly male); Spanish_Kind-heartedGirl (Female, Young, Compassionate young female); Spanish_DeterminedManager (Male, Middle Aged, Focused, decisive manager); Spanish_BossyLeader (Male, Middle Aged, Commanding, bossy male); Spanish_ReservedYoungMan (Male, Young, Quiet, reserved young male); Spanish_ConfidentWoman (Female, Middle Aged, Self-assured female); Spanish_ThoughtfulMan (Male, Middle Aged, Reflective, thoughtful male); Spanish_Strong-WilledBoy (Male, Young, Determined young male); Spanish_SophisticatedLady (Female, Middle Aged, Elegant, sophisticated female); Spanish_RationalMan (Male, Middle Aged, Logical, rational male); Spanish_AnimeCharacter (Female, Young, Animated, expressive character); Spanish_Deep-tonedMan (Male, Middle Aged, Deep, resonant male); Spanish_Fussyhostess (Female, Middle Aged, Particular, meticulous female); Spanish_SincereTeen (Male, Young, Honest, sincere teen); Spanish_FrankLady (Female, Middle Aged, Direct, frank female); Spanish_Comedian (Male, Middle Aged, Humorous, comedic male); Spanish_Debator (Male, Middle Aged, Articulate, persuasive male); Spanish_ToughBoss (Male, Middle Aged, Hard-nosed, tough male); Spanish_Wiselady (Female, Middle Aged, Wise, thoughtful female); Spanish_Steadymentor (Male, Middle Aged, Reliable, mentoring male); Spanish_Jovialman (Male, Middle Aged, Cheerful, jovial male); Spanish_SantaClaus (Male, Old, Jolly, festive character); Spanish_Rudolph (Male, Young, Playful, festive character); Spanish_Intonategirl (Female, Young, Expressive, melodic young female); Spanish_Arnold (Male, Middle Aged, Strong, tough male character); Spanish_Ghost (Male, Middle Aged, Eerie, spectral character); Spanish_HumorousElder (Male, Old, Witty, humorous older male); Spanish_EnergeticBoy (Male, Young, Lively, energetic young male); Spanish_WhimsicalGirl (Female, Young, Dreamy, whimsical female); Spanish_StrictBoss (Male, Middle Aged, Stern, strict boss); Spanish_ReliableMan (Male, Middle Aged, Dependable, reliable male); Spanish_SereneElder (Male, Old, Peaceful, wise elder); Spanish_AngryMan (Male, Middle Aged, Intense, angry male); Spanish_AssertiveQueen (Female, Middle Aged, Bold, assertive female); Spanish_CaringGirlfriend (Female, Young, Loving, caring young female); Spanish_PowerfulSoldier (Male, Middle Aged, Strong, powerful male); Spanish_PassionateWarrior (Male, Middle Aged, Fierce, passionate male); Spanish_ChattyGirl (Female, Young, Talkative, bubbly young female); Spanish_RomanticHusband (Male, Middle Aged, Romantic, loving male); Spanish_CompellingGirl (Female, Young, Engaging, compelling female); Spanish_PowerfulVeteran (Male, Old, Experienced, powerful veteran); Spanish_SensibleManager (Male, Middle Aged, Practical, sensible male); Spanish_ThoughtfulLady (Female, Middle Aged, Reflective, thoughtful female) ### Thai (4) Thai_male_1_sample8 (Male, Middle Aged, Peaceful, calm male); Thai_male_2_sample2 (Male, Middle Aged, Warm, friendly male); Thai_female_1_sample1 (Female, Middle Aged, Self-assured female); Thai_female_2_sample2 (Female, Young, Lively, energetic female) ### Turkish (2) Turkish_CalmWoman (Female, Middle Aged, Serene, calm female); Turkish_Trustworthyman (Male, Middle Aged, Reliable, trustworthy male) ### Ukrainian (2) Ukrainian_CalmWoman (Female, Middle Aged, Serene, calm female); Ukrainian_WiseScholar (Male, Old, Learned, scholarly male) ### Vietnamese (1) Vietnamese_kindhearted_girl (Female, Young, Compassionate, kind young female) ## Inworld Max Premium — #1 ranked TTS, 50 chars/sat (135 voices) ### Arabic (2) Nour (Female, Middle Aged, Polished female Arabic voice with a friendly tone, great for voiceover or support); Omar (Male, Middle Aged, Bright, confident Arabic male voice, great for announcements and broadcasts) ### Chinese (4) Jing (Female, Young, An energetic, fast-paced young Chinese female); Xiaoyin (Female, Young, A youthful Chinese female voice with a gentle, sweet quality); Xinyi (Female, Young, A Chinese woman with a neutral tone, perfect for narrations); Yichen (Male, Middle Aged, A calm, flat young adult male Chinese voice) ### Dutch (4) Erik (Male, Middle Aged, Older Dutch male voice with a weathered edge); Katrien (Female, Middle Aged, Dutch woman with an expressive voice); Lennart (Male, Middle Aged, A confident Dutch male voice. Calm and relaxed); Lore (Female, Middle Aged, Clear, calm Dutch female voice, great for narrations and professional use) ### English (95) Abby (Female, Young, Bright, eager American female child voice, ideal for animated characters and educational content); Alex (Male, Middle Aged, Energetic and expressive mid-range male voice, with a mildly nasal quality); Amina (Female, Middle Aged, Warm, inviting West African female voice, ideal for community outreach and storytelling); Anjali (Female, Middle Aged, Confident, articulate Indian female voice, ideal for professional training materials); Arjun (Male, Middle Aged, Clear, composed Indian male voice, well-suited for instructional webinars); Ashley (Female, Middle Aged, A warm, natural female voice); Avery (Male, Young, Youthful, performative male voice, suited for gameshow-style hosting); Bianca (Female, Middle Aged, Deep, controlled female voice, ideal for serious corporate reads); Blake (Male, Middle Aged, Rich, intimate male voice, perfect for audiobooks and romantic content); Brandon (Male, Middle Aged, Bold, strident male voice, ideal for structured announcements and news-style reads); Brian (Male, Middle Aged, Friendly, encouraging American male voice, ideal for educational tutorials); Callum (Male, Middle Aged, Casual and friendly Australian male voice, ideal for informal instructional content); Carter (Male, Middle Aged, Energetic, mature radio announcer-style male voice, great for storytelling); Cedric (Male, Middle Aged, Crisp, measured male voice, ideal for formal announcements and premium narration); Celeste (Female, Middle Aged, Soft, whispery female voice, ideal for ASMR and gentle mindfulness sessions); Chloe (Female, Young, Thoughtful, introspective youthful female voice, perfect for coming-of-age narratives); Claire (Female, Middle Aged, Warm, gentle Eastern European female voice, ideal for bedtime stories); Clive (Male, Middle Aged, British-accented English male with a calm, cordial quality); Conrad (Male, Middle Aged, Gruff, weathered male voice, perfect for detective archetypes and audiobook roles); Craig (Male, Old, Older British male with a refined and articulate voice); Damon (Male, Middle Aged, Calm, raspy male voice, suited for moody narration and atmospheric roleplay); Darlene (Female, Middle Aged, Soothing, comforting Southern female voice, ideal for bedtime stories); Deborah (Female, Young, Warm, peaceful female voice with a calm tone); Dennis (Male, Middle Aged, Middle-aged man with a smooth, calm and friendly voice); Derek (Male, Middle Aged, Steady, professional, composed American male voice, ideal for banking support); Dominus (Male, Middle Aged, Robotic, deep male voice with a menacing quality. Perfect for villains); Duncan (Male, Middle Aged, Warm, articulate British male voice for customer support and education); Edward (Male, Middle Aged, American male with an emphatic, confident and streetwise tone); Eleanor (Female, Middle Aged, Polished, approachable British female voice for support and learning); Elizabeth (Female, Middle Aged, Professional middle-aged woman, perfect for narrations and voiceovers); Elliot (Male, Middle Aged, Calm, steady male voice, suitable for nature documentaries and informational content); Ethan (Male, Young, Assured, precise male voice, perfect for tech tutorials and gadget overviews); Evan (Male, Middle Aged, Friendly, approachable, easygoing male voice, ideal for onboarding and retail assistance); Evelyn (Female, Middle Aged, Gentle, intimate female voice, ideal for ASMR and calming conversations); Felix (Male, Middle Aged, Calm, friendly British male voice, ideal for help and tutorials); Gareth (Male, Middle Aged, Soothing, gentle male voice, ideal for guided meditations and relaxation); Graham (Male, Middle Aged, Profound, authoritative British male voice, perfect for historical documentaries); Grant (Male, Middle Aged, Calm, attentive, helpful male voice, ideal for troubleshooting and support); Hades (Male, Middle Aged, Commanding and gruff male voice, think an omniscient narrator or castle guard); Hamish (Male, Middle Aged, Friendly and casual Australian male voice, ideal for character-driven roles); Hana (Female, Young, Bright, expressive young female voice, perfect for storytelling and gaming); Hank (Male, Middle Aged, Warm, laid-back Southern male voice, ideal for travel documentaries); Jake (Male, Young, Amiable, introspective male voice, ideal for motivational talks); James (Male, Middle Aged, Vibrant, expressive male voice, perfect for animated video content and event hosting); Jason (Male, Middle Aged, Lucid, engrossing male voice, ideal for tech tips and creative content); Jessica (Female, Middle Aged, Encouraging, articulate American female voice, perfect for self-help audiobooks); Jonah (Male, Middle Aged, Soothing, calm male voice, great for tutorial guidance and gentle instructions); Julia (Female, Middle Aged, Quirky, high-pitched female voice that delivers lines with playful energy); Kayla (Female, Young, Enthusiastic, youthful female voice, ideal for reaction videos and product reviews); Kelsey (Female, Middle Aged, Warm, empathetic, reassuring female voice, ideal for phone support); Lauren (Female, Middle Aged, Confident, friendly American female voice, ideal for corporate presentations); Levi (Male, Middle Aged, Measured, ominous male voice, ideal for suspense narration and dark fantasy); Liam (Male, Middle Aged, Upbeat, motivating Australian male voice, perfect for energizing workout sessions); Loretta (Female, Middle Aged, Inviting, folksy Southern female voice, perfect for cooking shows and family tales); Lucian (Male, Middle Aged, Brooding, foreboding male voice, suited for villainous character arcs); Luna (Female, Middle Aged, Calm, relaxing female voice, perfect for meditations, sleep stories, and mindfulness); Malcolm (Male, Middle Aged, Authoritative, manipulative male voice, perfect for cunning leaders); Marcus (Male, Middle Aged, Authoritative, empathetic male voice, great for civic campaigns and outreach); Mark (Male, Middle Aged, Energetic, expressive man with a rapid-fire delivery); Marlene (Female, Middle Aged, Friendly, relaxed Southern female voice, ideal for cooking tutorials); Mia (Female, Young, Youthful, expressive female voice, ideal for adolescent characters); Miranda (Female, Middle Aged, Menacing, cold-hearted female voice, perfect for strategic villains); Mortimer (Male, Middle Aged, Gravelly, aggressive male character voice, ideal for fantasy villains); Nadia (Female, Middle Aged, Personable, lively female voice, perfect for tutorial walkthroughs); Naomi (Female, Middle Aged, Warm, grounded female voice, perfect for narrative podcasting); Nate (Male, Young, Conversational, sociable male voice, great for customer support); Oliver (Male, Middle Aged, Neutral and clear male voice, ideal for public announcements and education); Olivia (Female, Middle Aged, Young, British female with a friendly and helpful tone); Pippa (Female, Middle Aged, Friendly and casual Australian female voice, ideal for relaxed instructional content); Pixie (Female, Middle Aged, High-pitched, childlike female voice with a squeaky quality — great for cartoons); Priya (Female, Young, Even-toned female voice with an Indian accent); Reed (Male, Middle Aged, Clear, professional American male voice, well-suited for support and training); Riley (Female, Young, Playful, youthful female voice, perfect for animated storytelling); Ronald (Male, Old, Confident, British man with a deep, gravelly voice); Rupert (Male, Middle Aged, Resonant, commanding British male voice, ideal for motivational speeches); Saanvi (Female, Middle Aged, Crisp, articulate Indian female voice, ideal for e-learning modules); Sarah (Female, Middle Aged, Fast-talking young adult woman, with a questioning and curious tone); Sebastian (Male, Middle Aged, Intimidating, steely male voice, perfect for ruthless antagonists); Selene (Female, Young, Soft, flirtatious female voice, ideal for companion-style interactions); Serena (Female, Middle Aged, Soft, nurturing female voice, perfect for mindfulness sessions); Shaun (Male, Middle Aged, Friendly, dynamic male voice great for conversations); Simon (Male, Middle Aged, Articulate, insightful male voice, perfect for corporate presentations); Snik (Male, Middle Aged, Hoarse, cunning male voice, perfect for devious goblin roles and tricksters); Sophie (Female, Middle Aged, Friendly British female voice, great for assistance and knowledge sharing); Tessa (Female, Middle Aged, Upbeat, conversational Australian female voice, perfect for lifestyle vlogs); Theodore (Male, Old, Gravelly male voice, with a time-worn quality); Timothy (Male, Young, Lively, upbeat American male voice); Trevor (Male, Middle Aged, Punchy, expressive male voice, perfect for energetic promos); Tristan (Male, Middle Aged, Deliberate, controlled male voice, ideal for documentary narration); Tyler (Male, Middle Aged, Authoritative, insightful male voice, ideal for tech explainer videos); Veronica (Female, Middle Aged, Intimidating, commanding female voice, perfect for ruthless antagonists); Victor (Male, Middle Aged, Ominous, sinister male voice, ideal for dark conspiracies and suspense); Victoria (Female, Middle Aged, Silky, cunning British female voice, ideal for narrating intricate plots); Vinny (Male, Middle Aged, Gritty, assertive New York male voice, perfect for crime dramas); Wendy (Female, Old, Posh, middle-aged British female voice) ### French (4) Alain (Male, Middle Aged, Deep, smooth middle-aged male French voice. Composed and calm); Étienne (Male, Middle Aged, Calm young adult French male); Hélène (Female, Middle Aged, Middle-aged French woman, with a smooth, musical, and graceful voice); Mathieu (Male, Middle Aged, A French male voice carrying a nasal quality) ### German (2) Johanna (Female, Middle Aged, A calm older German female with a low, smoky voice); Josef (Male, Middle Aged, An articulate German male voice with an announcer-like quality) ### Hebrew (2) Oren (Male, Middle Aged, Steady male Hebrew voice, great for podcasts and voiceovers); Yael (Female, Middle Aged, Mid-range female Hebrew voice, suitable for narrations and storytelling) ### Hindi (2) Manoj (Male, Middle Aged, Clear, professional Hindi male voice. Great for narrations and customer service); Riya (Female, Middle Aged, Professional, clear female voice with an articulate and polished delivery) ### Italian (2) Gianni (Male, Middle Aged, Deep, smooth Italian male voice that speaks rapidly); Orietta (Female, Middle Aged, Calm adult female Italian voice, with a soothing cadence) ### Japanese (2) Asuka (Female, Middle Aged, Friendly, young adult Japanese female voice); Satoshi (Male, Middle Aged, Dramatic, expressive male Japanese voice filled with energy) ### Korean (4) Hyunwoo (Male, Middle Aged, Young adult Korean male voice); Minji (Male, Young, Energetic, friendly young Korean female voice); Seojun (Male, Young, Clear, deep mature Korean male voice); Yoona (Female, Middle Aged, Korean woman with a gentle, soothing voice) ### Polish (2) Szymon (Male, Middle Aged, Polish adult male voice with a warm, friendly quality); Wojciech (Male, Middle Aged, A middle-aged Polish male voice) ### Portuguese (2) Heitor (Male, Middle Aged, Composed Portuguese-speaking male voice with a neutral tone); Maitê (Female, Middle Aged, Middle-aged Portuguese-speaking female voice) ### Russian (4) Dmitry (Male, Middle Aged, Deep, gravelly male voice with a commanding and narrative tone); Elena (Female, Middle Aged, Clear, mid-range female voice with a smooth texture and neutral tone); Nikolai (Male, Middle Aged, Deep, resonant male voice with a clear, theatrical, and narrative quality); Svetlana (Female, Middle Aged, Soft, high-pitched female voice with a moderate pace and breathy quality) ### Spanish (4) Diego (Male, Young, Spanish-speaking male voice with a soothing, gentle quality); Lupita (Female, Young, Vibrant, energetic young Spanish-speaking female voice); Miguel (Male, Middle Aged, A calm adult Spanish-speaking male voice, perfect for storytelling); Rafael (Male, Middle Aged, Middle-aged Spanish-speaking male with a deep, composed voice. Great for narrations) | |
| modelId | No | Optional. 3 tiers: OmniVoice Global (602+ langs, 100 chars/sat), Inworld Premium (#1 ranked, 50 chars/sat), Minimax Studio (voice cloning, 10 chars/sat). Omit for default. | |
| language | No | OmniVoice tier ONLY: ISO 639 language code. 646 languages. Default: 'en'. NOTE: on the Inworld/Minimax tiers this field is silently ignored — you get the chosen voice's own language (usually English) with no error. For a non-English language, either select the OmniVoice tier (modelId) or pick a voice whose language matches. Full catalog: kbt=Abadi, ab=Abkhazian, abr=Abron, abn=Abua, fub=Adamawa Fulfulde, ady=Adyghe, aal=Afade, af=Afrikaans, yay=Agwagwune, ajg=Aja (Benin), keu=Akebu, ala=Alago, sq=Albanian, arq=Algerian Arabic, aao=Algerian Saharan Arabic, qva=Ambo-Pasco Quechua, abs=Ambonese Malay, adx=Amdo Tibetan, am=Amharic, anw=Anaang, anp=Angika, xmv=Antankarana Malagasy, an=Aragonese, aae=Arbëreshë Albanian, qxu=Arequipa-La Unión Quechua, hy=Armenian, ahs=Ashe, prq=Ashéninka Perené, eiv=Askopan, as=Assamese, ast=Asturian, tay=Atayal, awo=Awak, quy=Ayacucho Quechua, az=Azerbaijani, bba=Baatonum, bcy=Bacama, bde=Bade, ksf=Bafia, bfd=Bafut, fui=Bagirmi Fulfulde, bqg=Bago-Kusuntu, abv=Baharna Arabic, bkh=Bakoko, bjt=Balanta-Ganja, bft=Balti, bce=Bamenyam, bax=Bamun, bsj=Bangwinji, bjn=Banjar, abb=Bankon, bci=Baoulé, bhr=Bara Malagasy, bjk=Barok, bas=Basa (Cameroon), bzw=Basa (Nigeria), ba=Bashkir, eu=Basque, btm=Batak Mandailing, bnm=Batanga, btv=Bateri, bbl=Bats, bda=Bayot, beb=Bebele, be=Belarusian, bn=Bengali, bew=Betawi, bhb=Bhili, bho=Bhojpuri, bxf=Bilur, bhp=Bima, brx=Bodo, bux=Boghom, bky=Bokyi, bmq=Bomu, bou=Bondei, fue=Borgu Fulfulde, bs=Bosnian, brh=Brahui, bra=Braj, br=Breton, bdm=Buduma, bug=Buginese, bhh=Bukharic, bg=Bulgarian, bum=Bulu (Cameroon), bns=Bundeli, bnn=Bunun, bwr=Bura-Pabir, bys=Burak, my=Burmese, bsk=Burushaski, miu=Cacaloxtepec Mixtec, qvl=Cajatambo North Lima Quechua, cky=Cakfem-Mushere, wes=Cameroon Pidgin, sro=Campidanese Sardinian, yue=Cantonese, ca=Catalan, ceb=Cebuano, cen=Cen, ckb=Central Kurdish, nhn=Central Nahuatl, pbs=Central Pame, pst=Central Pashto, ncx=Central Puebla Nahuatl, tar=Central Tarahumara, esu=Central Yupik, fuq=Central-Eastern Niger Fulfulde, shu=Chadian Arabic, ny=Chichewa, zpv=Chichicapan Zapotec, cgg=Chiga, zoh=Chimalapa Zoque, qug=Chimborazo Highland Quichua, zh=Chinese, qxa=Chiquián Ancash Quechua, the=Chitwania Tharu, cjk=Chokwe, cv=Chuvash, ckl=Cibak, kjc=Coastal Konjo, zoc=Copainalá Zoque, kw=Cornish, qwa=Corongo Ancash Quechua, hr=Croatian, mfn=Cross River Mbembe, xtu=Cuyamecalco Mixtec, cs=Czech, dbd=Dadiya, dag=Dagbani, dml=Dameli, da=Danish, dar=Dargwa, dzg=Dazaga, dcc=Deccan, deg=Degema, kna=Dera (Nigeria), dgh=Dghwede, mki=Dhatki, dv=Dhivehi, adf=Dhofari Arabic, cfa=Dijim-Bwilim, dgo=Dogri, dmk=Domaaki, dty=Dotyali, dua=Duala, nl=Dutch, ldb=Dũya, dyu=Dyula, bgp=Eastern Balochi, gui=Eastern Bolivian Guaraní, avl=Eastern Egyptian Bedawi Arabic, kqo=Eastern Krahn, mhr=Eastern Mari, ydd=Eastern Yiddish, ebr=Ebrié, ego=Eggon, arz=Egyptian Arabic, etu=Ejagham, elm=Eleme, afo=Eloyi, ebu=Embu, en=English, myv=Erzya, ish=Esan, eo=Esperanto, et=Estonian, eto=Eton (Cameroon), ewo=Ewondo, ext=Extremaduran, fan=Fang (Equatorial Guinea), fat=Fanti, gur=Farefare, fmp=Fe'fe', fil=Filipino, tlp=Filomena Mata-Coahuitlán Totonac, fi=Finnish, fip=Fipa, fr=French, ff=Fulah, gl=Galician, wof=Gambian Wolof, lg=Ganda, gbm=Garhwali, gwt=Gawar-Bati, gwc=Gawri, gbr=Gbagyi, gby=Gbari, gyz=Geji, gej=Gen, ka=Georgian, de=German, ges=Geser-Gorom, aln=Gheg Albanian, bbj=Ghomálá', gid=Gidar, glw=Glavda, gom=Goan Konkani, gig=Goaria, ank=Goemai, gol=Gola, el=Greek, gn=Guarani, gdf=Guduf-Gava, amu=Guerrero Amuzgo, gu=Gujarati, gju=Gujari, afb=Gulf Arabic, ggg=Gurgula, guz=Gusii, gsl=Gusilay, gwe=Gweno, ztu=Güilá Zapotec, hoj=Hadothi, hah=Hahon, ht=Haitian, cnh=Hakha Chin, hao=Hakö, hla=Halia, ha=Hausa, haw=Hawaiian, haz=Hazaragi, he=Hebrew, hem=Hemba, hz=Herero, kjk=Highland Konjo, acw=Hijazi Arabic, hi=Hindi, var=Huarijio, mau=Huautla Mazatec, nhq=Huaxcaleca Nahuatl, hbb=Huba, mxs=Huitepec Mixtec, hul=Hula, hu=Hungarian, hkk=Hunjara-Kaina Ke, hwo=Hwana, ibb=Ibibio, is=Icelandic, ida=Idakho-Isukha-Tiriki, idu=Idoma, ig=Igbo, ahl=Igo, kpo=Ikposo, ikw=Ikwere, qvi=Imbabura Highland Quichua, id=Indonesian, mvy=Indus Kohistani, ia=Interlingua, ik=Inupiaq, ga=Irish, os=Iron Ossetic, its=Isekiri, iso=Isoko, it=Italian, itw=Ito, itz=Itzá, vmj=Ixtayutla Mixtec, ijc=Izon, jax=Jambi Malay, ja=Japanese, jqr=Jaqaru, qxw=Jauja Wanca Quechua, jns=Jaunsari, jv=Javanese, juo=Jiba, kaj=Jju, aju=Judeo-Moroccan Arabic, vmc=Juxtlahuaca Mixtec, kbd=Kabardian, lkb=Kabras, kea=Kabuverdianu, kab=Kabyle, gjk=Kachi Koli, ckr=Kairak, ijn=Kalabari, kls=Kalasha, kln=Kalenjin, xka=Kalkoti, kam=Kamba, kcq=Kamo, bjj=Kanauji, kbl=Kanembu, kn=Kannada, kai=Karekare, ks=Kashmiri, tkt=Kathoriya Tharu, bsh=Kati, kk=Kazakh, eyo=Keiyo, khg=Khams Tibetan, ogo=Khana, xhe=Khetrani, km=Khmer, khw=Khowar, zga=Kinga, kfk=Kinnauri, rw=Kinyarwanda, ky=Kirghiz, fkk=Kirya-Konzəl, thq=Kochila Tharu, plk=Kohistani Shina, bcs=Kohumono, trp=Kok Borok, kol=Kol (Papua New Guinea), bkm=Kom (Cameroon), kmy=Koma, knn=Konkani, koo=Konzo, ko=Korean, kfp=Korwa, kfe=Kota (India), eko=Koti, ksd=Kuanua, kj=Kuanyama, uki=Kui (India), bbu=Kulung (Nigeria), kto=Kuot, kuh=Kushi, kwm=Kwambi, nmg=Kwasio, lla=Lala-Roba, hia=Lamang, lo=Lao, alo=Larike-Wakasihu, lss=Lasi, ltg=Latgalian, lv=Latvian, apc=Levantine Arabic, ste=Liana-Seti, xpe=Liberia Kpelle, lir=Liberian English, ayl=Libyan Arabic, lij=Ligurian, mgi=Lijili, ln=Lingala, lt=Lithuanian, lrk=Loarki, rag=Logooli, src=Logudorese Sardinian, qvj=Loja Highland Quichua, loa=Loloda, lnu=Longuda, ztp=Loxicha Zapotec, lua=Luba-Lulua, luo=Luo, lus=Lushai, lb=Luxembourgish, ffm=Maasina Fulfulde, mde=Maba (Chad), rup=Macedo-Romanian, mk=Macedonian, mxu=Mada (Cameroon), maf=Mafa, mai=Maithili, ms=Malay, ml=Malayalam, gcc=Mali, tcf=Malinaltepec Me'phaa, mt=Maltese, tbf=Mandara, mfv=Mandjak, mqy=Manggarai, mni=Manipuri, msw=Mansoanka, gv=Manx, mi=Maori, mr=Marathi, mrt=Marghi Central, mfm=Marghi South, mrr=Maria (India), mve=Marwari (Pakistan), mcn=Masana, msh=Masikoro Malagasy, mcf=Matsés, zpy=Mazaltepec Zapotec, vmz=Mazatlán Mazatec, mzl=Mazatlán Mixe, mfo=Mbe, mbo=Mbo (Cameroon), mdd=Mbum, byv=Medumba, mek=Mekeo, mer=Meru, acm=Mesopotamian Arabic, mtr=Mewari, nan=Min Nan Chinese, xmf=Mingrelian, vmm=Mitlatongo Mixtec, mkf=Miya, bri=Mokpwe, mdf=Moksha, ver=Mom Jango, mn=Mongolian, ary=Moroccan Arabic, meu=Motu, mcx=Mpiemo, mgg=Mpumpong, mua=Mundang, mhk=Mungaka, mse=Musey, mug=Musgu, mui=Musi, mne=Naba, ars=Najdi Arabic, nal=Nalik, nmz=Nawdm, ng=Ndonga, nap=Neapolitan, npi=Nepali, nbh=Ngamo, anc=Ngas, nnh=Ngiemboon, ngi=Ngizim, jgo=Ngomba, nla=Ngombale, fuv=Nigerian Fulfulde, pcm=Nigerian Pidgin, noe=Nimadi, fia=Nobiin, ayp=North Mesopotamian Arabic, max=North Moluccan Malay, bmm=Northern Betsimisaraka Malagasy, hno=Northern Hindko, kmr=Northern Kurdish, pmq=Northern Pame, pbu=Northern Pashto, uzn=Northern Uzbek, gya=Northwest Gbaya, no=Norwegian, nb=Norwegian Bokmål, nn=Norwegian Nynorsk, ncf=Notsi, yes=Nyankpa, nyu=Nyungwe, nja=Nzanyi, hux=Nüpode Huitoto, oc=Occitan, odk=Od, ory=Odia, odu=Odual, acx=Omani Arabic, nlv=Orizaba Nahuatl, orc=Orma, oru=Ormuri, orm=Oromo, aom=Ömie, phr=Pahari-Potwari, pwn=Paiwan, pa=Panjabi, pmy=Papuan Malay, kvx=Parkari Koli, nso=Pedi, pip=Pero, fa=Persian, pex=Petats, phl=Phalura, pms=Piemontese, piy=Piya-Kwonci, plt=Plateau Malagasy, pl=Polish, poc=Poqomam, pt=Portuguese, fuc=Pulaar, fuf=Pular, qxp=Puno Quechua, ps=Pushto, pko=Pökoot, byx=Qaqet, chq=Quiotepec Chinantec, thr=Rana Tharu, lag=Rangi, kyx=Rapoisi, rth=Ratahan, zor=Rayón Zoque, ro=Romanian, rm=Romansh, rof=Rombo, roo=Rotokas, dru=Rukai, ru=Russian, quv=Sacapulteco, aec=Saidi Arabic, skg=Sakalava Malagasy, szy=Sakizaya, sau=Saleman, ccg=Samba Daka, ndi=Samba Leko, pow=San Felipe Otlaltepec Popoloca, hue=San Francisco Del Mar Huave, poe=San Juan Atzingo Popoloca, trq=San Martín Itunyoso Triqui, mig=San Miguel El Grande Mixtec, ssi=Sansi, sa=Sanskrit, qxt=Santa Ana de Tusi Pasco Quechua, ztn=Santa Catarina Albarradas Zapotec, sat=Santali, qus=Santiago del Estero Quichua, sps=Saposa, skr=Saraiki, sc=Sardinian, say=Saya, trv=Sediq, sr=Serbian, sei=Seri, scl=Shina, sn=Shona, sjr=Siar-Lak, nco=Sibe, scn=Sicilian, qws=Sihuas Ancash Quechua, sip=Sikkimese, snc=Sinaugoro, sd=Sindhi, sbn=Sindhi Bhil, si=Sinhala, xti=Sinicahua Mixtec, qum=Sipacapense, siw=Siwai, sk=Slovak, sl=Slovenian, sol=Solos, so=Somali, snk=Soninke, giz=South Giziga, cpy=South Ucayali Ashéninka, mxy=Southeastern Nochixtlán Mixtec, bzc=Southern Betsimisaraka Malagasy, pbt=Southern Pashto, qup=Southern Pastaza Quechua, vmp=Soyaltepec Mazatec, es=Spanish, arb=Standard Arabic, zgh=Standard Moroccan Tamazight, apd=Sudanese Arabic, sua=Sulka, sva=Svan, sw=Swahili, sv=Swedish, rob=Tae', thv=Tahaggart Tamahaq, dav=Taita, tg=Tajik, ta=Tamil, tdx=Tandroy-Mahafaly Malagasy, tan=Tangale, txy=Tanosy Malagasy, yer=Tarok, tt=Tatar, tuq=Tedaga, te=Telugu, kdh=Tem, tio=Teop, cux=Tepeuxila Cuicatec, cte=Tepinapa Chinantec, ttr=Tera, buo=Terei, twu=Termanu, tkg=Tesaka Malagasy, nhg=Tetelcingo Nahuatl, cut=Teutila Cuicatec, th=Thai, bo=Tibetan, mtx=Tidaá Mixtec, tvo=Tidore, tgc=Tigak, tig=Tigre, ti=Tigrinya, zts=Tilquiapan Zapotec, tpz=Tinputz, tpl=Tlacoapa Me'phaa, ctl=Tlacoatzintepec Chinantec, tli=Tlingit, tok=Toki Pona, tqp=Tomoip, tdn=Tondano, txs=Tonsea, ttj=Tooro, ttu=Torau, trw=Torwali, xmw=Tsimihety Malagasy, lto=Tsotso, tn=Tswana, tuy=Tugen, bag=Tuki, tul=Tula, tcy=Tulu, tvu=Tunen, lcm=Tungag, aeb=Tunisian Arabic, tui=Tupuri, tuv=Turkana, tr=Turkish, tk=Turkmen, mtu=Tututepec Mixtec, tw=Twi, byc=Ubaghara, ug=Uighur, uk=Ukrainian, umb=Umbundu, hsb=Upper Sorbian, ur=Urdu, ush=Ushojo, uz=Uzbek, vai=Vai, vi=Vietnamese, vot=Votic, vro=Võro, wci=Waci Gbe, kxp=Wadiyara Koli, wja=Waja, wbl=Wakhi, lwg=Wanga, juk=Wapan, wji=Warji, cy=Welsh, weo=Wemale, fy=Western Frisian, pua=Western Highland Purepecha, jmx=Western Juxtlahuaca Mixtec, mlq=Western Maninkakan, mrj=Western Mari, fuh=Western Niger Fulfulde, pnb=Western Panjabi, wo=Wolof, udl=Wuzlam, ztg=Xanaguía Zapotec, xh=Xhosa, ekr=Yace, sah=Yakut, jal=Yalahatan, qur=Yanahuanca Pasco Quechua, yav=Yangben, yaq=Yaqui, qux=Yauyos Quechua, ets=Yekhee, yi=Yiddish, ydg=Yidgha, yo=Yoruba, mab=Yutanduchi Mixtec, nhi=Zacatlán-Ahuacatlán-Tepetzintla Nahuatl, dje=Zarma, zza=Zaza, zu=Zulu | |
| paymentId | Yes | Valid payment ID (must be paid) | |
| voice_description | No | OmniVoice only: describe desired voice (e.g., 'female, young adult, high pitch') |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully covers behavioral traits: rate limits (100/50/10 chars/sat), voice cloning capability, adjustable speed (0.5-2.0x), return type (audio URL), payment method (Bitcoin Lightning, no API key), and that language parameter is silently ignored on non-OmniVoice tiers. No contradictions with annotations since none exist.
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 key information (tiers, rates, when not to use) but includes an extensive voice catalog that significantly lengthens it. While necessary for voice selection, it could potentially link to a separate resource. The structure uses clear headings and is well-organized, so it earns a high score despite length.
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?
Despite lacking an output schema, the description covers all essential aspects: input parameters, tiers, language support, voice options, speed control, payment, and usage boundaries. It is complete enough for an agent to select and invoke the tool correctly without needing additional context.
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 critical context: explains that 'language' only works on OmniVoice tier, provides a massive voice catalog inline with gender/age/style descriptions, clarifies modelId tiers and their features, and notes that paymentId must be paid. This goes far beyond the schema's basic type/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 clearly states this is a text-to-speech tool with three distinct tiers (OmniVoice Global, Inworld Premium, Minimax Studio), each with specific capabilities like voice cloning and language support. It explicitly distinguishes from sibling tools (place_call, ai_call, open_voice_bridge) by stating when not to use this tool, making the purpose unmistakable.
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 explicit guidance on when to use each tier, including character limits and language coverage. It includes a clear 'When NOT to use' section directing to phone call tools for broadcast and AI voice agents. It also gives specific recommendations for rare/underserved languages (Yoruba, Twi, etc.) and which tier to select via the language parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transcribe_audioAInspect
Transcribe audio to text with timestamps. Uses Mistral Transcription — high-accuracy speech recognition that handles accents, background noise, and overlapping speakers. 13 languages: en, zh, hi, es, ar, fr, pt, ru, de, ja, ko, it, nl. Up to 500 MB / 60 minutes per file. Async — returns requestId, poll with check_job_status(jobType='transcription'), then get_job_result. 10 sats/min. Privacy: audio and transcripts are ephemeral — processed, returned, and discarded. Never persisted. Pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='transcribe_audio'.
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | Language code (e.g., 'en', 'es') | |
| paymentId | Yes | Valid payment ID (must be paid) | |
| audioBase64 | Yes | Base64 encoded audio file |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description fully discloses async behavior, ephemeral privacy, cost (10 sats/min), file limit (500MB/60min), language support, and payment flow. No ambiguity or contradiction.
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?
Packed with information in a structured, front-loaded manner. Some redundancy (e.g., repeating 'no API key needed') but overall efficient.
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?
Completely covers the tool's complexity: async flow, limits, languages, cost, privacy, and payment integration. No output schema, but return value (requestId) and polling are clearly explained.
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 has 100% coverage and description adds context (e.g., paymentId must be paid, language list), but does not fundamentally expand on schema definitions. Adequate but not exceptional.
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 'Transcribe audio to text with timestamps', specifying the core function. Differentiates from sibling tools like transcribe_translate and text_to_speech by focusing on pure transcription.
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?
Describes async workflow with polling via check_job_status and get_job_result, and payment requirement via create_payment. Does not explicitly state when not to use, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transcribe_translateAInspect
Compound endpoint — one payment turns audio in any of 13 source languages into both a transcript AND a translation in any of 119 target languages. Perfect for WhatsApp voice messages in a language you don't speak (Yoruba → English), or recording a meeting in another language and reading it in yours. Auto-detects source if omitted. Async — returns requestId, poll with check_job_status(jobType='transcribe-translate'). Flat price covers STT + translation. Cheaper than calling transcribe_audio + translate_text separately for typical voice messages. Pay with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='transcribe_translate'.
| Name | Required | Description | Default |
|---|---|---|---|
| paymentId | Yes | Valid payment ID (must be paid) | |
| audioBase64 | Yes | Base64-encoded audio file | |
| sourceLanguage | No | Optional — auto-detected if omitted. Accepts ISO-639 codes for the 13 STT languages: en, zh, hi, es, ar, fr, pt, ru, de, ja, ko, it, nl. NOTE: only these 13 are transcribable — a wrong hint (or audio in another language) yields a garbled transcript that is still billed as success. Omit to auto-detect and verify the transcript before trusting the translation. | |
| targetLanguage | Yes | Target language — English name (e.g. 'Spanish') or ISO-639 code (e.g. 'es', 'en-US'). 119 languages supported. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses async behavior, flat pricing model, Bitcoin Lightning payment, no API key needed, source language auto-detection with a warning about garbled transcripts, and the need for create_payment. No annotations provided, so description fully covers behavioral traits.
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 reasonably concise with 6 sentences, front-loads core purpose, and each sentence adds essential information. Slightly long but well-structured with no redundant content.
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 all relevant contextual details: purpose, parameters payment integration, async polling, cost comparison, language support, and warnings. No output schema, but return value (requestId) is mentioned. Completely adequate for an agent to use 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?
All 4 parameters are described in schema (100% coverage), and the description adds critical context: for sourceLanguage it lists the 13 languages and warns about wrong hints; for targetLanguage it gives examples; for paymentId it states it must be paid. Schema coverage is high, but description still adds value.
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 it is a compound endpoint that transcribes and translates audio, listing the supported languages and explicitly distinguishing itself from sibling tools transcribe_audio and translate_text as cheaper.
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 specific use cases (WhatsApp voice messages, meeting recordings), compares cost with alternatives, explains async polling with check_job_status, and mentions prerequisites like create_payment and required parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
translate_textAInspect
Translate text across 119 languages with high accuracy. Uses Qwen3-32B — multilingual transformer with strong low-resource language support. Auto-detects source language. Privacy-preserving: no data stored. Pricing: 1 sat per 1,000 characters, minimum 1 sat per request. Language parameters accept English names ('Spanish', 'Chinese (Simplified)') or ISO-639 codes / locale tags ('es', 'en-US', 'pt-BR', 'zh-Hans'). Supported languages: Afrikaans, Albanian, Amharic, Arabic, Armenian, Assamese, Azerbaijani, Basque, Belarusian, Bengali, Bosnian, Bulgarian, Burmese, Catalan, Cebuano, Chichewa, Chinese (Simplified), Chinese (Traditional), Corsican, Croatian, Czech, Danish, Dari, Dutch, English, Esperanto, Estonian, Farsi, Fijian, Filipino, Finnish, French, Frisian, Galician, Georgian, German, Greek, Guarani, Gujarati, Haitian Creole, Hausa, Hawaiian, Hebrew, Hindi, Hmong, Hungarian, Icelandic, Igbo, Indonesian, Irish, Italian, Japanese, Javanese, Kannada, Kazakh, Khmer, Kinyarwanda, Korean, Kurdish, Kyrgyz, Lao, Latvian, Lingala, Lithuanian, Luganda, Luxembourgish, Macedonian, Malagasy, Malay, Malayalam, Maltese, Maori, Marathi, Mongolian, Nepali, Norwegian, Occitan, Odia, Pashto, Polish, Portuguese, Punjabi, Romanian, Romansh, Russian, Samoan, Scots Gaelic, Serbian, Sesotho, Setswana, Shona, Sindhi, Sinhala, Slovak, Slovenian, Somali, Spanish, Sundanese, Swahili, Swedish, Tajik, Tamil, Tatar, Telugu, Thai, Tigrinya, Tongan, Turkish, Turkmen, Ukrainian, Urdu, Uzbek, Vietnamese, Welsh, Wolof, Xhosa, Yiddish, Yoruba, Zulu. Pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='translate_text' and prompt (the text to translate).
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to translate | |
| modelId | No | Optional. Translation model is selected automatically. | |
| paymentId | Yes | Valid payment ID (must be paid) | |
| sourceLanguage | No | Source language (auto-detected if omitted). NOTE: only checked for being a known language, not against your text — a wrong but valid value (e.g. 'German' for Spanish text) is accepted and silently mistranslates with no error. Omit it to let auto-detect work. | |
| targetLanguage | Yes | Target language (e.g., 'Spanish', 'French', 'Japanese') |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully carries the burden. It discloses the model (Qwen3-32B), auto-detection behavior, privacy (no data stored), pricing structure, payment flow, and a critical note about sourceLanguage validation (accepts any valid language, not checking actual content). This is highly transparent.
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 verbose, repeating the full list of 119 languages which is already present in the schema enums. While front-loaded with core purpose, it could be more concise. The structure is logical but not optimally efficient for an agent.
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 tool with 5 parameters, no output schema, and payment integration, the description covers most needs: payment flow, language format, auto-detection, and critical caveat. However, it omits the return format (translated text) and whether the operation is synchronous or asynchronous, leaving minor 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?
Schema coverage is 100%, but the description adds significant value: it explains that language parameters accept both English names and ISO codes (schema only shows enums), details the payment dependency on create_payment, and elaborates on the sourceLanguage auto-detection and pitfall. This goes well beyond 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 'Translate text across 119 languages with high accuracy.' The verb-resource pairing is specific, and the tool is distinguished from siblings like 'transcribe_translate' (audio) by the focus on text. The mention of auto-detection and payment flow further clarifies its purpose.
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 implies usage for text translation and provides context about auto-detection, language format, and payment prerequisites. However, it does not explicitly state when to use this tool versus alternatives (e.g., not for audio translation), but the singleton nature of text translation among siblings makes this clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upscale_imageAInspect
Upscale images 2x or 4x with neural super-resolution. Uses Real-ESRGAN (ICCV 2021, PSNR 32.73dB on Set5 4x, 100M+ production runs). Recovers real detail from low-resolution images — not interpolation. Optional face enhancement. Stable endpoint — model upgrades automatically as SOTA evolves. 5 sats per image, pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='upscale_image'.
| Name | Required | Description | Default |
|---|---|---|---|
| scale | No | Upscale factor: 2x or 4x (default 4x) | |
| paymentId | Yes | Valid payment ID (must be paid) | |
| imageBase64 | Yes | Base64-encoded image (PNG, JPEG, WEBP) or data URI | |
| face_enhance | No | Apply face enhancement during upscaling (default false) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the model (Real-ESRGAN), automatic model upgrades, payment requirement (5 sats, Bitcoin Lightning, no signup), and the need for a prior create_payment call. However, error handling, rate limits, and output format are not covered.
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 plus a payment note, front-loading the main purpose. However, it includes technical details (ICCV 2021, PSNR, production runs) that add noise but not essential for tool selection.
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 does not specify the output format (e.g., base64 string, URL) or constraints (max image size). Given no output schema, this omission leaves agents uncertain about the return value, making it incomplete.
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%, so description adds value beyond schema. It clarifies the scale enum meaning, mentions face_enhance as optional, and explains the payment dependency. 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 'Upscale images 2x or 4x with neural super-resolution', specifying a concrete verb, resource, and scale options. It distinguishes this from interpolation and mentions optional face enhancement, differentiating it from sibling tools like analyze_image or edit_image.
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 implies usage context (recovering real detail from low-res images, not interpolation) but does not explicitly state when to use this tool vs alternatives or when not to use it. No sibling tool comparisons are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
voice_bridge_sayAInspect
Inject audio into an open Voice Bridge call. Two modes: (1) text — we synthesize via OmniVoice TTS in any of 602 languages; (2) audio_base64 + encoding — bring your own audio (mulaw_8000 or pcm_l16_16000 for MVP). STT is automatically muted while we inject, so the agent doesn't hear itself. No additional payment — covered by the session deposit.
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | Text to speak (mode 1). Uses OmniVoice TTS. | |
| encoding | No | Encoding of audioBase64. mp3/opus require ffmpeg (not yet wired in MVP). | |
| language | No | Language override for this utterance (default: session language) | |
| sessionId | Yes | Session ID from open_voice_bridge | |
| audioBase64 | No | Pre-rendered audio bytes, base64 (mode 2). Use with 'encoding'. | |
| voiceDescription | No | Free-form voice description for TTS (e.g., 'calm female voice') |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the basic 'openWorldHint' annotation, the description discloses crucial behavioral traits: STT is automatically muted during injection to prevent echo, and no additional payment is needed. It also notes that mp3/opus encoding requires ffmpeg (not yet available in MVP), which is important operational context.
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 clear sentences, front-loading the main action. Every sentence adds distinct value: mode details, STT muting, and payment note. 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 tool has 6 parameters and no output schema, the description covers the main behavioral aspects well but omits return values (e.g., success/failure indication). The context signals indicate moderate complexity, and the description handles most needs except what the agent should expect back.
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 is 3. The description adds meaning by explaining the two modes (text vs. audio_base64 + encoding), clarifying that 'language' is an override, and that 'voiceDescription' is a free-form TTS parameter. This exceeds the schema descriptions.
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 injects audio into an open Voice Bridge call, with two explicit modes (text-to-speech and custom audio). It uses specific verbs ('inject', 'synthesize', 'bring your own audio') and distinguishes itself from sibling tools like 'open_voice_bridge' and 'end_voice_bridge'.
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 indirectly implies usage after opening a session (requires sessionId) and mentions STT muting behavior. However, it does not explicitly state when not to use this tool or contrast with alternatives like 'text_to_speech'. The exclusion of mp3/opus is noted but as a limitation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vote_on_serviceAInspect
Vote for a planned service to be built next. Returns JSON: { success, slug, newVoteCount }. 1 sat per vote — multiple votes allowed. Call list_planned_services first to discover valid slugs and current vote counts. Highest-voted services get prioritized. Requires create_payment with toolName='vote_on_service'.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Service slug to vote for (from list_planned_services) | |
| paymentId | Yes | Valid payment ID (1 sat, must be paid) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes return format ({success, slug, newVoteCount}), cost (1 sat per vote), and that multiple votes are allowed. No annotations provided, so description carries full burden. Missing potential rate limits or idempotency, but sufficient for this simple mutation.
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 sentences covering purpose, return format, cost/multiplicity, and prerequisite. No unnecessary words, all information front-loaded.
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?
No output schema, but description includes return format. Prerequisites and cost are clear. Only two params with full schema descriptions. Adequate for an AI agent to correctly invoke the 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?
Schema coverage is 100% (both params have descriptions). Description reinforces that 'slug' comes from list_planned_services and 'paymentId' must be a valid paid 1-sat payment. Adds moderate value beyond 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?
Specifically states 'Vote for a planned service to be built next' with clear verb and resource. Distinguishes from siblings like list_planned_services (which discovers slugs) and create_payment (which handles payment).
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 prerequisite: 'Call list_planned_services first' and 'Requires create_payment with toolName="vote_on_service"'. Also explains cost per vote and prioritization logic, giving clear context for when to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Your Connectors
Sign in to create a connector for this server.