Skip to main content
Glama

Sats4AI - Bitcoin-Powered AI Tools

Server Details

40+ Lightning-paid AI tools for agents: calls, SMS, fax, voice, translation. No signup, no keys.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
99.8% over 43 days
Last Tested
Transport
Streamable HTTP · MCP 2024-11-05
URL
Repository
cnghockey/sats4ai-mcp-server
GitHub Stars
2
Server Listing
Sats4AI

TDQS

A3.8/5.0

Scored across 57 tools

Disambiguation4/5

Most tools target clearly distinct services (image generation vs. vision analysis vs. audio processing vs. telephony), and descriptions often explicitly state when NOT to use a tool in favor of another. However, with 57 tools there is some residual overlap: convert_file overlaps with convert_html_to_pdf and merge_pdfs, translate_text vs. translate_rare_language vs. multilingual_ask require careful reading, and ai_call vs. place_call vs. open_voice_bridge have multiple related sub-tools. Overall boundaries are well-documented but not perfectly crisp across the entire set.

Naming Consistency4/5

Tools follow a consistent snake_case convention throughout, which makes the set predictable to parse. The dominant pattern is verb_noun (generate_image, send_email, translate_text, check_job_status), but there are notable noun-phrase or irregular names (text_to_speech, epub_to_audiobook, boardingpass_wallet, ai_call, place_call). These are still readable and consistent in style, just not uniformly verb-first.

Tool Count1/5

57 tools is an extreme surface for a single MCP server, far beyond the typical 3–15 range and well into the rubric's 50+ extreme-mismatch territory. While the server is a broad pay-per-call AI marketplace, the sheer number makes tool discovery and selection cognitively heavy for an agent. The count is not proportionate to a coherent, navigable toolset.

Completeness4/5

The surface covers a remarkably wide service domain: text/image/video/audio/3D generation, vision analysis, document conversion, translation, telephony, SMS, email, fax, e-signature, payments, job polling, and refunds. The payment-to-result lifecycle is well represented, though there are minor gaps like no job cancellation, no balance/account query, and limited explicit file-deletion operations. Agents can work around these gaps, but the surface is not perfectly exhaustive.

Available Tools

57 tools
ai_callA
Destructive
Inspect

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'). Priced in sats per destination and duration — create_payment returns the exact amount before you pay. 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. The agent identifies itself as a virtual assistant calling for a client, and answers questions about the service if the recipient asks. At the end of a normal call it asks the recipient for permission to share the recording; without a clear yes, the recording is deleted and never returned. No impersonation, scams, threats, harassment, credential theft, unsolicited bulk messages, or contact after an opt-out. Answering a call does not establish consent. We screen requests after payment. Held messages and calls are not sent or placed; payment is retained during review, not refunded immediately. Confirmed violations are not refunded. Unresolved communication holds become eligible for a refund after 24 hours; refund eligibility is processed by scheduled maintenance. Human review costs 1 sat at https://sats4ai.com/appeal. Recent message text and extracts of recording transcripts support recipient-scoped abuse checks for 24 hours. These context records are deleted hourly, so storage can last up to 25 hours. Original uploaded-call transcripts and raw held-request or appeal evidence enter cleanup after 30 days. We also keep a de-identified record of screened communications to measure and improve fraud detection. Identifiers in it — contact addresses, numbers and names that follow a greeting — are replaced with one-way tokens, and it holds no destination number and no account, because the service has none. De-identification is not anonymization: text a sender wrote can still identify someone. Do not submit personal information the service does not need. Providers keep records under their own policies.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskYesInstructions for the AI agent (what to say, ask, or accomplish)
languageNoLanguage 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.
paymentIdYesValid payment ID (must be paid)
phoneNumberYesPhone number in E.164 format (e.g., +14155550100)
beginMessageNoOptional opening line for the agent
durationMinutesNoMax call duration 1-10 minutes (default: 3)

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only mark destructiveHint and openWorldHint. The description adds substantial behavior context: async execution, voicemail retries (up to 3), pending_confirm return state, recording consent and deletion if not granted, pricing model, screening, and refund/data-retention policies. There is no contradiction with 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.

Conciseness2/5

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

The description is far from concise: it includes long policy, data-retention, refund, and legal paragraphs that go well beyond what is needed to select and invoke the tool. It is front-loaded with use and usage guidance, which is good, but the bulk of the text could be trimmed or moved to external documentation.

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

Completeness5/5

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

With no output schema present, the description compensates by covering the expected return states (transcript, structured analysis, pending_confirm), async polling, language behavior, payment prerequisites, and safety constraints. An agent has enough context to decide whether and how to call the tool.

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

Parameters4/5

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

The input schema already documents all six parameters (100% coverage). The description adds meaningful workflow context beyond the schema, especially around paymentId (requires create_payment with toolName='ai_call', phoneNumber, and durationMinutes) and the pricing/return-state behavior, which helps an agent understand how to supply parameters correctly.

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

Purpose5/5

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

The description states a specific action — sending an AI voice agent to handle a phone call — and clearly distinguishes itself from siblings in the 'When NOT to use' section, naming open_voice_bridge, place_call, and send_sms. It also enumerates concrete use cases like booking, negotiating, and navigating IVR menus.

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

Usage Guidelines5/5

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

It explicitly describes when to use the tool ('when your task hits a wall that requires a human') and provides an explicit 'When NOT to use' section with alternative tools. It also explains the prerequisite flow through create_payment and async polling via check_job_status.

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

analyze_imageAInspect

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'.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesQuestion or analysis prompt for the image
modelIdNoOptional. Omit for default model.
paymentIdYesValid payment ID (must be paid)
imageBase64YesBase64 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).

TDQS

A4.2/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. Discloses model (Qwen VL), capabilities (OCR, chart reading, spatial reasoning), pricing, and a critical behavior warning about PDFs causing hallucinations. Missing info on async vs sync and error handling.

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

Conciseness4/5

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

Description is concise with only necessary sentences. Front-loads the core purpose. Minor redundancy: payment info could be separate but not detrimental.

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

Completeness3/5

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

Covers purpose, usage, behavioral traits, and payment. Missing clarity on return format (presumably text) and whether results are synchronous. With 4 params and no output schema, some gaps remain.

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

Parameters3/5

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

Schema covers all 4 parameters with detailed descriptions, so baseline is 3. Description reinforces the PDF warning for imageBase64 parameter but adds no new semantic value beyond schema.

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

Purpose5/5

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

Description clearly states the tool analyzes images, answers visual questions, and extracts information. It distinguishes from sibling extract_document by explicitly noting single images only.

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

Usage Guidelines5/5

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

Explicitly states when to use (visual analysis) and when not (PDFs/multi-page documents, recommending extract_document). Also mentions payment requirement and cost (21 sats per image).

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 MiniMax H3 — provide a first frame and a prompt to direct the motion. Native audio. Async — returns requestId, poll with check_job_status. 768p or 2K (2K is upscaled from a 768p render), duration 5-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'.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesText prompt describing the animation
modelIdNoOptional. Omit for default model.
durationYesDuration in seconds (5-15)
paymentIdYesValid payment ID (must be paid)
resolutionNoOutput resolution: 768p or 2K (2K is upscaled from a 768p render). Omitting it yields 768p — if you quoted 2K at create_payment, send it here too or you will be billed 2K and rendered 768p. Retired rungs still accepted: 480p/720p→768p, 1080p→2K.768p
imageBase64YesBase64 encoded image to animate

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations provided, the description carries the full behavioral burden and delivers: async semantics (returns requestId, poll with check_job_status), output trait (Native audio), quality behavior (2K is upscaled from 768p), cost model (priced per second by resolution), auth model (Bitcoin Lightning, no API key/signup), and a hard prerequisite (create_payment). This is unusually thorough behavioral disclosure for an unannotated tool.

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

Conciseness5/5

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

Three sentences with zero filler. The order is ideal: core purpose first, then async/audio behavior, then resolution/duration/pricing, then payment/auth and prerequisite. Every sentence earns its place and no information is repeated from the schema.

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

Completeness5/5

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

Despite having no output schema, the description explains the return contract (requestId) and how to retrieve results (check_job_status), covering the async gap. It also addresses the payment dependency, the resolution billing quirk, and constraints that an agent must know to call this tool correctly. Nothing an agent needs to execute the full create_payment → animate_image → check_job_status flow is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds genuine value beyond the schema: naming 'MiniMax H3' clarifies what modelId's 'default model' actually is, and it reinforces the resolution and duration semantics (5-15 seconds, 768p/2K with upscaling note). The schema's resolution parameter is already extremely detailed, so the marginal gain is modest but real.

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

Purpose5/5

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

The description opens with a specific verb+resource+outcome: 'Animate a still image into cinematic video with MiniMax H3.' It clearly distinguishes this image-to-video tool from siblings like generate_video (no first frame needed), check_job_status (polling), and create_payment (payment) by framing the exact input ('first frame and a prompt') and the pipeline position. Nothing is left ambiguous about what the tool does.

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

Usage Guidelines4/5

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

The description gives explicit workflow guidance: 'Requires create_payment with toolName="animate_image"' establishes the prerequisite, and 'Async — returns requestId, poll with check_job_status' tells the agent exactly how to use it after invocation. It does not explicitly state when-not-to-use or name an alternative (e.g., 'for text-only video use generate_video'), but the clear context makes the appropriate use evident.

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

await_resultA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobTypeYesMust match the async tool that returned requestId.
requestIdYesThe requestId returned by the async tool.

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the readOnly and idempotent annotations, the description adds substantial behavioral detail: streaming vs. one-shot status check, the ~4 minute wait limit, timed_out=true behavior, and the fact that it is free with no payment. No contradiction with annotations.

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

Conciseness4/5

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

The description is dense but well-structured: the core purpose is front-loaded, followed by streaming behavior, timeout behavior, and equivalence to siblings. The final 'Free; no payment' is slightly extraneous but not harmful, and each sentence contributes useful operational detail.

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

Completeness4/5

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

Given the absence of an output schema and the asynchronous nature of the tool, the description covers the key return states (COMPLETED, IN_PROGRESS with timed_out), streaming behavior, and retry semantics. It does not detail failure statuses, but the overall guidance is sufficient for correct invocation.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds value by tying requestId/jobType to specific async tool names and clarifying that jobType must match the tool that returned the requestId, which helps the agent choose the right enum value.

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

Purpose5/5

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

The description states a specific action: wait for an async job and return its result in one call, explicitly avoiding a manual polling loop. It distinguishes itself from the sibling tools by naming its relation to check_job_status and get_job_result as a combined equivalent.

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

Usage Guidelines5/5

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

It clearly states the required inputs (requestId + jobType), lists the async tools that produce them, and explains the two modes depending on the Accept header. It also gives explicit retry guidance for long jobs, so an agent knows exactly how to use it and when to call again.

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

boardingpass_walletAInspect

Turn airline boarding passes (PDF or screenshot) into Google Wallet passes with the fields a plain scan drops — boarding zone, gate, boarding time — for a whole family in one go. Returns one save link per passenger plus a single 'add all' link. The original barcode is preserved byte-for-byte so it scans at the gate. Priced 100 sats PER PASS: create_payment with toolName='boardingpass_wallet' and quantity= (if you under-count, the call returns the exact price to re-pay). Image/screenshot files that turn out to carry no extra fields are refunded. Privacy: files are processed in memory and never stored; the save link expires in 30 minutes, so nothing is retained. Pay with Bitcoin Lightning — no account, no card.

ParametersJSON Schema
NameRequiredDescriptionDefault
documentsNoBase64 boarding passes, one per file (up to 8), for a family/booking. Provide this OR documentBase64 (at least one required).
paymentIdYesValid payment ID (must be paid). Price = 100 × number of passes.
documentBase64NoBase64 boarding pass PDF or screenshot (max 8MB). Single-file convenience form. Must contain a readable BCBP barcode — a blurry photo or non-boarding-pass is refunded, not converted.

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden and does so thoroughly. It discloses barcode byte-for-byte preservation, per-pass pricing, under-count re-pay behavior, refunds for images with no extra fields, in-memory processing with no storage, 30-minute link expiry, and Bitcoin Lightning payment. This is far beyond what structured fields would show.

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

Conciseness4/5

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

The description is dense but not bloated; every sentence adds a distinct piece of information (purpose, output, payment, refund, privacy, payment method). It is effectively front-loaded with the main purpose, though the phrase 'with the fields a plain scan drops' is slightly rhetorical and could be trimmed without losing meaning.

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

Completeness5/5

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

Given no output schema, the description fully covers what the tool returns (save links, add-all link), the input formats, payment mechanics, refund policy, and privacy guarantees. It even addresses edge cases like under-count payments and non-boarding-pass refunds. This is complete for a complex tool with payment and file handling.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description repeats the payment-related parameter semantics but adds little beyond the schema's own parameter descriptions. It does clarify the output shape (one save link per passenger plus add-all), but that is return-value information, not parameter semantics.

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

Purpose5/5

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

The description opens with a specific verb+resource: 'Turn airline boarding passes (PDF or screenshot) into Google Wallet passes' and further specifies the distinguishing value ('fields a plain scan drops', 'whole family in one go'). It clearly differentiates from generic siblings like convert_file or extract_document by targeting boarding passes specifically.

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

Usage Guidelines4/5

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

The description provides explicit usage context: when to use (boarding passes), how to pay (create_payment with toolName='boardingpass_wallet' and quantity), and what happens on underpayment. It does not explicitly name alternative tools to avoid, but the specialized use case makes the appropriate scenario clear.

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

check_job_statusA
Idempotent
Inspect

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: 'IN_PROGRESS' | '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.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobTypeYesMust 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.
requestIdYesThe requestId returned by the async tool (e.g., from generate_video, animate_image, generate_3d_model, transcribe_audio, epub_to_audiobook, ai_call)

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the idempotentHint annotation, the description discloses the return JSON shape, special epub-audiobook fields, polling cadence, failure behavior, and the fact that the tool is free. This gives the agent a clear behavioral model of polling without contradicting the annotation.

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

Conciseness5/5

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

The description is dense but every sentence carries operational value: usage context, return format, polling interval, completion routing, failure handling, cost, and exclusions. The most important purposestatement is front-loaded, and the structure flows naturally from when to use to what happens next.

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

Completeness5/5

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

For an async polling tool with no output schema, the description fully compensates: it specifies statuses, response shape, special cases, polling timing, next steps, failure handling, cost, and synchronous-tool exclusions. Nothing critical for correct invocation or interpretation is missing.

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

Parameters3/5

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

Schema coverage is 100% and the schema already documents requestId and jobType in detail, including the mapping from jobType to the originating tool. The description reinforces that requestId comes from an async tool and that jobType must match, but it does not add substantial meaning beyond the schema.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Poll the status of an async job.' It also names the exact async tools that return requestId, which distinguishes it from siblings like get_job_result, check_payment_status, and await_result. The role of the tool is unambiguous.

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

Usage Guidelines5/5

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

The description gives explicit when-to-use guidance: after calling an async tool that returns a requestId. It also states when NOT to use it (synchronous tools like generate_image and generate_text), gives a recommended polling interval, and spells out next steps for COMPLETED and FAILED statuses, including routing to get_job_result and avoiding automatic retries.

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

check_payment_statusA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
paymentIdYesThe paymentId returned by create_payment

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds valuable behavioral context: the tool is free, does not require payment, explains the 'readyToUse' flag, mentions instant payment for most MCP clients, and details invoice expiration. 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.

Conciseness5/5

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

The description is concise (5 sentences) and front-loaded with the main purpose. Every sentence adds value: purpose, return fields, usage, expiry, and cost. No redundant or unnecessary information.

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

Completeness4/5

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

For a simple one-parameter tool with full schema coverage and annotations, the description is nearly complete. It explains the return JSON, usage flow, expiry, and cost. However, it lacks error case handling (e.g., invalid paymentId) and could elaborate on the exact response shape, but these are minor gaps.

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

Parameters3/5

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

Schema coverage is 100% with the parameter 'paymentId' already described as 'The paymentId returned by create_payment.' The description does not add additional parameter semantics beyond what the schema provides, so a baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Check whether a Lightning invoice has been paid.' It specifies the verb 'check' and the resource 'Lightning invoice payment status.' The return JSON fields are explicitly listed, distinguishing it from related tools like create_payment.

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

Usage Guidelines5/5

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

The description provides explicit usage guidance: 'Call after create_payment to verify the user has paid before calling the target tool.' It also notes invoice expiry (10 minutes) and that a single check is usually sufficient, offering clear context for when and how to use the tool.

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

clone_voiceAInspect

Clone a voice you own or have permission to use, from a single audio sample. Returns a reusable voice_id for text_to_speech. Requires consent=true; cloning a voice to impersonate someone is prohibited. High-fidelity reproduction capturing tone, cadence, and accent. SAMPLE REQUIREMENTS: MP3, M4A or WAV, 10 seconds to 5 minutes, 20 MB max, one speaker, no background music — a sample outside these limits is rejected upstream and the clone fails. 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'.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNoVoice model: turbo (faster) or hd (higher quality)speech-02-turbo
consentYesRequired. Set true to attest that you own this voice or have the speaker's permission to clone it. Cloning a voice to impersonate someone is prohibited (sats4ai.com/terms).
accuracyNoText validation accuracy 0-1 (default 0.7)
paymentIdYesValid payment ID (must be paid)
voiceFileUrlYesPublic URL to audio file of the voice to clone. MP3, M4A or WAV, 10 seconds to 5 minutes, 20 MB max. One speaker, no background music.

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses the paid nature (7,500 sats), the prohibition of impersonation, the sample rejection upstream, and the return of a voice_id. It lacks details about asynchronous behavior or failure modes beyond sample rejection, but the key operational traits are covered.

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

Conciseness4/5

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

The description is somewhat long but each sentence adds essential information: core function, consent, sample requirements, modes, cost, and payment flow. It front-loads the main purpose and then provides necessary conditions. No fluff; structure is logical.

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

Completeness4/5

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

Given there's no output schema, the description explains the return value (voice_id). It covers payment prerequisites, sample constraints, and consent. It doesn't mention whether the operation is synchronous or where to fetch results if asynchronous, but the overall usage context is well covered for a paid cloning tool.

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

Parameters4/5

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

The schema already provides descriptions for all parameters (100% coverage), so a baseline of 3 applies. The description adds value by clarifying the payment flow (create_payment prerequisite) and the meaning of consent (ownership/permission attestation), which are not fully captured in the schema. It also reinforces sample requirements.

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

Purpose5/5

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

The description states a specific verb ('Clone') and resource ('a voice you own'), and clearly distinguishes from siblings like text_to_speech by noting it returns a reusable voice_id for TTS. It also differentiates from transcribe_audio and other voice tools by focusing on voice cloning.

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

Usage Guidelines4/5

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

It provides explicit conditions: requires consent=true, sample requirements (format, duration, size, one speaker, no music), and payment via create_payment with toolName='clone_voice'. It implies when to use (when you need a reusable voice_id) but doesn't explicitly contrast with alternatives like text_to_speech or existing voice IDs. The preconditions are still clear enough.

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'.

ParametersJSON Schema
NameRequiredDescriptionDefault
paymentIdYesValid payment ID (must be paid)
model_sizeNoModel variant: 'large' (best quality) or 'tiny' (faster). Default: large
imageBase64YesBase64-encoded grayscale or B&W image (PNG, JPEG) or data URI

TDQS

A4.7/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It discloses cost (5 sats), payment method (Bitcoin Lightning, no API key), and prerequisite step. Does not mention rate limits or time estimates, but otherwise transparent.

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

Conciseness5/5

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

Four concise sentences with front-loaded purpose. No unnecessary words; every sentence adds value.

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

Completeness5/5

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

Given no annotations and no output schema, the description covers purpose, usage instructions, prerequisites, cost, and parameter details completely enough to use the tool.

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

Parameters4/5

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

Schema coverage is 100%, but description adds context: specifies that paymentId must be valid/paid, imageBase64 should be Base64-encoded grayscale/B&W image, and explains model_size enum and default.

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

Purpose5/5

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

The description explicitly states it colorizes black-and-white or grayscale photos, names the algorithm (DDColor), and highlights that it's impossible for text/vision LLMs, distinguishing it from siblings.

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

Usage Guidelines5/5

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

Provides clear when-to-use guidance (colorizing B&W photos), mentions that it requires create_payment with toolName='colorize_image', and explains the pay-per-request model with Bitcoin Lightning.

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').

ParametersJSON Schema
NameRequiredDescriptionDefault
answersNoKey-value answers to the push-back questions (keys are the question strings, values are your answers). Omit to confirm the task as-is.
sessionIdYesSession ID from the ai_call response

TDQS

A4.7/5.0
Behavior4/5

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

Discloses that no new payment is needed and that it returns a call_id for polling. Annotations only provide openWorldHint, so description adds behavioral context. Could be improved by mentioning that answers are optional and the tool will proceed as-is if omitted.

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

Conciseness5/5

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

Three well-structured sentences, each conveying essential information: action and context, prerequisite, financial implication, and return value. No wasted words.

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

Completeness5/5

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

Despite no output schema, description specifies the return value (call_id for polling). It covers prerequisite, usage, financial impact, and next steps. Additional context like error handling would elevate but is not necessary for typical usage.

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

Parameters4/5

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

Schema descriptions cover both parameters. Description adds value by explaining that 'answers' keys are question strings and values are answers, and that omitting them confirms as-is. This clarifies usage beyond schema.

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

Purpose5/5

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

Clearly states the action ('Confirm an AI call') and the context ('after reviewing push-back questions, optionally providing answers to missing info'). Distinguishes from sibling tool ai_call by specifying the prerequisite state 'pending_confirm'.

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

Usage Guidelines5/5

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

Explicitly says when to use: 'Required when ai_call returns state="pending_confirm"'. Also notes financial aspect ('Uses the original payment — no new payment needed') and subsequent polling step ('Returns call_id for polling with check_job_status(jobType="ai-call")').

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, HTML→PDF), images (PNG, JPG, WEBP, SVG), PDF first page to image (PDF→JPG, PDF→PNG), 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'.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileUrlNoPublic URL to the file (provide this OR fileBase64)
paymentIdYesValid payment ID (must be paid)
fileBase64NoBase64-encoded file (provide this OR fileUrl)
extensionToYesTarget format without dot (e.g., 'pdf', 'docx')
extensionFromYesSource format without dot (e.g., 'pdf', 'docx')

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral disclosure burden. It does well by disclosing the payment prerequisite, exact cost, output form (download URL), and quality preservation. Missing details like synchronous vs asynchronous execution and any file size limits slightly lower the score.

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

Conciseness4/5

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

The description is front-loaded with the core capability and format examples, then efficiently covers payment, authentication, and output. The phrase 'Industrial-grade conversion engine' is slightly promotional but still conveys quality, and the rest of the sentences carry needed operational information.

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

Completeness3/5

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

The description covers the main workflow preequisites and output but leaves gaps: it never states that a file input is mandatory through one of fileUrl/fileBase64, doesn't mention potential async behavior/job status, and gives no size or compatibility limitations. Since there is no output schema or annotations, these omissions leave an agent with only partial guidance for a complex paid conversion operation.

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

Parameters4/5

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

Schema coverage is 100%, so 3 is the baseline. The description adds meaning beyond the schema by explaining that paymentId comes from create_payment with toolName='convert_file' and that conversion covers 200+ formats, giving context to extensionFrom/extensionTo. It could be more explicit that either fileUrl or fileBase64 must be supplied, but the schema already conveys that alternative.

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

Purpose5/5

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

The description states a specific verb and resource: 'Convert files between 200+ formats' and enumerates document, image, audio, and video categories. This clearly distinguishes it from more specialized siblings like merge_pdfs and epub_to_audiobook by scope and format coverage.

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

Usage Guidelines4/5

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

It provides clear usage context: conversion costs 100 sats, requires a prior create_payment with toolName='convert_file', and requires no API key or account. However, it does not explicitly mention when to prefer specialized siblings such as convert_html_to_pdf over this generic converter, so it falls short of full routing guidance.

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'.

ParametersJSON Schema
NameRequiredDescriptionDefault
htmlYesHTML or Markdown content to convert
formatNoInput format (default: html)html
paymentIdYesValid payment ID (must be paid)

TDQS

A4.9/5.0
Behavior5/5

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

No annotations present, but description fully discloses return format (JSON with temporary URL, 1-hour validity), cost (50 sats), payment requirement (create_payment), and input support (HTML/CSS, base64 images). Transparent about all behavioral aspects.

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

Conciseness4/5

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

Description is informative but slightly verbose; could be tightened. However, it is well-structured and front-loaded with the core purpose.

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

Completeness5/5

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

Given no output schema, description fully explains return format. Covers all essential aspects: input, format, output, cost, prerequisites, and alternatives. Complete for a tool with simple parameters.

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

Parameters5/5

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

Although schema covers parameters 100%, description adds context: explains paymentId's origin, format options, and the purpose of html content. Also implies output structure beyond schema.

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

Purpose5/5

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

The description clearly states the tool converts HTML or Markdown to PDF, with specific use cases (invoices, reports) and distinguishes from sibling tool convert_file for existing file conversions.

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

Usage Guidelines5/5

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

Provides explicit when-to-use: generating documents, setting format='markdown' for Markdown. Also gives alternative: 'Use convert_file instead for converting existing files.'

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 and animate_image require duration, and take an optional resolution (250-400 sats/sec by resolution — quote with the SAME duration and resolution you will execute with); edit_image is a flat 200 sats per edit (resolution is optional and does not change the price); epub_to_audiobook requires characterCount (total text characters in the book — price is per-character by voice tier, minimum 500 sats). If required params are missing, the response includes an error with the missing field names.

ParametersJSON Schema
NameRequiredDescriptionDefault
ocrNoFor receive_fax: include the OCR text-extraction add-on (+200 sats). Must be set HERE at payment time — receive_fax refuses ocr=true at execution unless the charge covered it.
modeNoLegacy alias for generate_video: 'standard'→768p, 'pro'→2K. Prefer 'resolution'.
textNoRequired for text_to_speech: the exact text to synthesize (price is per-character by tier, locked to payment)
promptNoRequired for generate_text: the exact prompt (price calculated from char count, locked to payment)
messageNoRequired for send_sms: message text (max 1544 chars; billed per SMS segment, so longer or accented messages cost more)
modelIdNoOptional. AI model ID from list_models. Omit for default (best) model.
durationNoRequired for generate_video / animate_image: duration in seconds (5-15)
quantityNoUnits to pay for when the price scales: passes for boardingpass_wallet, pages for extract_document / extract_receipt / send_fax. Default 1 — under-counting is rejected at execution with the exact price to re-pay.
toolNameYesTool name to pay for (e.g., 'generate_text', 'generate_image', 'generate_video', 'send_sms', 'place_call')
resolutionNo768p (default) or 2K for generate_video / animate_image — priced by resolution × duration, native audio free; 2K is upscaled from a 768p render. 480p/720p/1080p are retired Seedance rungs, still accepted (480p/720p→768p, 1080p→2K). For edit_image: a flat 200 sats per edit, so resolution does not change the price.
fileContextNoFor generate_text: include extracted file text if attaching a file (affects price)
phoneNumberNoRequired for send_sms and place_call: phone in E.164 format (e.g., +14155550100)
systemPromptNoFor generate_text: include if using a custom system prompt (affects price)
characterCountNoRequired for epub_to_audiobook: total text characters in the book (price is per-character by voice tier, minimum 500 sats). Send the count, not the book — the file goes to epub_to_audiobook itself. Execution re-derives the price from the real file and rejects a short-pay with the exact amount to re-pay.
generate_audioNoAccepted and IGNORED — H3 audio is native and always on, at no extra cost. There is no way to request a silent render.
durationMinutesNoMinutes 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.

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations, the description carries the full behavioral burden and does so: 10-minute invoice expiry, one-payment-per-call semantics, price locking at payment time, and the enforcement rule that under-payment is rejected at execution (sometimes with refund). These are exactly the traits an agent cannot infer from the schema alone.

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

Conciseness4/5

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

Front-loaded with purpose, return shape, and flow before descending into the per-tool pricing table. It is long, and the pricing details partially duplicate the 100%-covered schema descriptions, but nearly every sentence conveys a constraint the agent must respect.

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

Completeness5/5

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

For a 16-parameter payment tool with no output schema, the description supplies the return shape ({ paymentId, invoice, amount, expiresAt }), the lifecycle sequencing, and the pricing/enforcement model. An agent has enough to call it correctly without further exploration.

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

Parameters4/5

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

Schema coverage is already 100%, so the baseline is 3, but the description adds genuine semantic value: modelId is optional with a default, quantity defaults to 1 and under-counting is rejected, and per-tool required params (prompt, text, phoneNumber, characterCount, durationMinutes) are tied to pricing formulas. It stops short of explaining every one of the 16 params (e.g. fileContext, generate_audio behavior is left to the schema).

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

Purpose5/5

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

The first sentence names a specific verb and resource ('Create a Lightning invoice') and states its exact scope: paying for one AI service call. That scope cleanly separates it from sibling cost/estimate tools (get_cost_estimate, get_model_pricing) and from the actual work tools it fronts.

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

Usage Guidelines5/5

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

Gives an explicit ordering ('list_models → create_payment → check_payment_status → call tool'), the cardinality rule ('call this once per operation'), and a per-tool map of which extra params must be supplied at payment time. It also names the failure mode when required params are missing.

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). 110 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'.

ParametersJSON Schema
NameRequiredDescriptionDefault
paymentIdYesValid payment ID (must be paid)
task_typeNo'Image Debluring (GoPro)' for camera shake (default), 'Image Debluring (REDS)' for video frame blur, 'Image Denoising' for grain/noise
imageBase64YesBase64-encoded blurry image (PNG, JPEG, WEBP) or data URI

TDQS

A4.3/5.0
Behavior4/5

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

Even without annotations, the description discloses several behavioral traits: the underlying model (NAFNet), processing time (~2 min), payment model (110 sats, Bitcoin Lightning), and the need to call create_payment first. It doesn't explicitly mention async result retrieval, but it provides meaningful context beyond basic functionality.

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

Conciseness4/5

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

The description is concise but information-dense. It flows logically from purpose to model to usage guidance to pricing and prerequisites. Every sentence contributes value, though the density of the last two sentences about payment could be slightly restructured without losing meaning.

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

Completeness4/5

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

The description covers the tool's purpose, limitations, pricing, and required prerequisite (create_payment). It doesn't mention the return format or potential error cases, but given the lack of output schema, these omissions are minor. Overall, it provides sufficient context for an agent to decide whether to use the tool and how to invoke it.

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

Parameters3/5

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

Schema coverage is 100%, with all parameters already well-described (including enum meanings and defaults). The tool description adds no new parameter-level information but confirms the task_type options and data URI support, which is already 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.

Purpose5/5

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

The description uses a specific verb ('recover detail') and names the resource ('camera-shake and accidental motion blur'), and it distinguishes the tool from siblings by clarifying what it does and does not handle (e.g., not artistic motion blur). It also mentions a secondary use (denoising), which adds clarity.

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

Usage Guidelines5/5

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

Explicitly states when to use ('handheld shake, bumped camera, whole-frame uniform blur') and when not ('intentional panning blur, bokeh/depth-of-field, artistic motion effects'). Also includes cost and payment requirements, giving clear context for practical use.

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'.

ParametersJSON Schema
NameRequiredDescriptionDefault
paymentIdYesValid payment ID (must be paid)
imageBase64YesBase64-encoded image (PNG, JPEG, WEBP) or data URI

TDQS

A4.5/5.0
Behavior4/5

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

No annotations, so description must cover behavior. It discloses cost (2 sats), payment flow, faster/cheaper than LLM, and returns label and boolean. Does not mention rate limits or destructive effects, but nothing contradictory.

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

Conciseness5/5

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

Concise paragraph front-loads core function, then adds pricing and payment details. No redundant sentences; every sentence adds value.

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

Completeness5/5

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

With no output schema, description explains return values. Covers use case, pricing, payment flow, and image format. Complete for a simple two-param tool.

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

Parameters4/5

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

Schema coverage is 100% with descriptions for both params. Description adds context: paymentId must be valid/paid, imageBase64 can be data URI or formats. Reinforces workflow requirement, adding marginal value beyond schema.

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

Purpose5/5

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

Description clearly states the tool classifies image safety into normal/suggestive/explicit, returns a label and boolean flag. It distinguishes itself from siblings like detect_objects by specifying NSFW detection and unique pricing.

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

Usage Guidelines4/5

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

Explicitly states use for content moderation pipelines and is cheaper/faster than LLM. Mentions payment requirement via create_payment. Lacks explicit when-not-to-use or alternative tools, but context is provided.

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'.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesComma-separated object names to detect (e.g. 'cat, dog, person')
paymentIdYesValid payment ID (must be paid)
imageBase64YesBase64-encoded image (PNG, JPEG, WEBP) or data URI
box_thresholdNoConfidence threshold for detection boxes (0-1, default 0.25)
text_thresholdNoConfidence threshold for text matching (0-1, default 0.25)

TDQS

A4.1/5.0
Behavior4/5

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

No annotations provided, so the description carries full burden. It discloses the model (Grounding DINO), the payment mechanism, and the type of output (bounding boxes, scores). However, it lacks detail on error handling, image size limits, or format restrictions beyond the schema.

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

Conciseness4/5

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

The description is concise and front-loaded with the core purpose. Each sentence adds value, though the payment instruction could be slightly more integrated. No wasted words.

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

Completeness4/5

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

The description covers the tool's purpose, output type, payment model, and prerequisites. It lacks explicit error scenarios but is fairly complete given good schema coverage and no output schema. Minor gaps in behavioral details.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for all parameters. The description adds natural language context for the query parameter but does not elaborate on box_threshold or text_threshold 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.

Purpose5/5

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 by name, using Grounding DINO, and provides structured output (bounding boxes, confidence scores). This distinguishes it from sibling tools like 'analyze_image' or 'generate_image'.

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

Usage Guidelines4/5

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

The description explains the payment flow (5 sats per image, Bitcoin Lightning, no signup) and the prerequisite 'create_payment'. It contrasts with vision LLMs but does not explicitly mention sibling tools like 'analyze_image' as alternatives or specify when not to use this tool.

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 MAI-Image-2.6, ranked #3 on the Artificial Analysis image-editing leaderboard as of September 2026 — understands context, handles object addition/removal, style transfer, and inpainting. Returns JSON with image URL. 200 sats per edit, one flat price. Pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='edit_image'.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesEditing instructions describing what to change
paymentIdYesValid payment ID (must be paid)
resolutionNoIgnored: MAI-Image-2.6 has no resolution setting. Accepted for compatibility; every edit is 200 sats.1K
aspectRatioNoOutput aspect ratio (default: match_input_image, which keeps the input's shape)match_input_image
imageBase64YesBase64 encoded image to edit
outputFormatNoOutput formatjpg
returnBase64NoAlso return the edited image as a base64 data URL (base64Image). Default false: imageUrl is the deliverable and the base64 copy is megabytes of context.

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations provided, the description carries the full behavioral burden and does a solid job: it discloses the flat 200 sats price, that payment is per-request via Lightning with no API key/signup, the required payment precondition, and the return shape ('JSON with image URL'). It stops short of latency, failure/refund behavior, or input size limits.

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

Conciseness4/5

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

Front-loaded with the action, then capabilities, return, price, and payment flow in a logical order. The leaderboard-ranking clause is marketing filler that consumes a sentence without helping invocation, keeping it out of 5 territory.

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

Completeness4/5

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

For a 7-param, no-output-schema, no-annotation tool, the description supplies the essentials an agent needs: what it returns, how to pay, and the required prerequisite call. It is not fully complete — no error/refund or input-size guidance — but nothing critical is missing for a correct invocation.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter including the unusual 'resolution is ignored' note is already documented in the schema. The description adds no parameter-level detail beyond the schema (returnBase64/base64Image tradeoff is explained in the schema, not here), so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb+resource ('Edit an image with natural language instructions') and immediately scopes the capability set (object addition/removal, style transfer, inpainting). This clearly separates it from siblings like generate_image, remove_object, upscale_image, and colorize_image.

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

Usage Guidelines4/5

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

Gives a hard prerequisite ('Requires create_payment with toolName="edit_image"') and the pricing model, which tells the agent when the tool is callable. It does not, however, say when to prefer this over generate_image or remove_object for overlapping edits, so sibling routing is left to inference.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdYesSession ID from open_voice_bridge

TDQS

A4.1/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It discloses side effects: finalizes billing, returns refund link for unused deposit, and returns final transcript. Good disclosure beyond basic action.

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

Conciseness5/5

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

Two sentences, front-loaded with the main action, no unnecessary words. All information is essential.

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

Completeness5/5

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

With one parameter and no output schema, the description adequately covers all needed information: what the tool does and what it returns.

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

Parameters3/5

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

Schema coverage is 100% with a clear description for sessionId. Tool description adds no further detail beyond what the schema already provides.

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

Purpose5/5

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

The description clearly states the verb 'Hang up', the resource 'Voice Bridge call', and additional actions like finalizing billing and returning refund link and transcript. It effectively distinguishes from siblings like 'open_voice_bridge'.

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

Usage Guidelines3/5

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

Implied usage after starting a voice bridge call, but no explicit guidance on when not to use or alternatives. Could mention that polling might be needed before ending.

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, ~106 chars/sat), Inworld Premium (#1 ranked TTS ELO 1217, ~16 chars/sat), Minimax Studio (voice cloning from reference clip, ~5 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'.

ParametersJSON Schema
NameRequiredDescriptionDefault
speedNoSpeech speed 0.5-2.0
voiceNoVoice ID. Must belong to the resolved tier's own voice set — Minimax: English_expressive_narrator, Wise_Woman, Deep_Voice_Man; Inworld: Ashley, Abby. OMIT to get a valid default for whichever tier is used. Ashley is Inworld-ONLY and is rejected on the Minimax tier. On the OmniVoice tier, voice is a voice design instead: words, one per group, separated by commas: male|female; child|teenager|young adult|middle-aged|elderly; very low|low|moderate|high|very high pitch; whisper; american|british|australian|canadian|indian|chinese|korean|japanese|portuguese|russian accent. Omit it for OmniVoice's default voice. Any other word is refused, and the payment stays unused.
modelIdNoOptional. 3 voice tiers: OmniVoice Global (602+ langs), Inworld Premium (#1 ranked), Minimax Studio (voice clone). Omit for default.
fileNameYesOriginal filename with extension (e.g., 'mybook.epub', 'document.pdf', 'story.txt'). Required to detect format.
languageNoNarration 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 else it narrates in the voice's own (usually English) accent with no error. translateToLanguage is different: it is checked against the voice tier BEFORE payment, and a tier that cannot speak the target is refused with the tier that can.English
paymentIdYesValid payment ID (must be paid)
epubBase64YesBase64-encoded book file (EPUB, PDF, or TXT)
translateToLanguageNoTranslate 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.
selectedChapterIndicesNoChapter 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.

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden and does so richly: async behavior with jobId polling, expected 5-60+ min duration, minimum 500 sats cost, per-tier throughput (chars/sat), single-payment full-outcome model, and the requirement that payment must be completed first. This is exactly the operational context an agent needs before invoking.

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

Conciseness4/5

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

The first sentence front-loads the purpose and capabilities, followed by tier, pricing, async, and payment details in a logical order. It is dense and somewhat repetitive with the schema's own voice/tier text, but nearly every sentence carries operational value.

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

Completeness5/5

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

For a complex 9-parameter, no-annotation, no-output-schema tool, the description covers the full lifecycle an agent must understand: prerequisite payment, async polling, timing bounds, cost floor, and voice-tier/translation constraints. Nothing essential for correct invocation is missing.

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

Parameters3/5

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

Schema description coverage is 100% and the schema itself is extremely detailed about voice IDs, tier constraints, language vs translateToLanguage, and chapter indices. The description largely restates tier and payment facts rather than adding new parameter-level meaning, so it sits at the baseline for a fully documented schema.

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

Purpose5/5

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

States a specific verb and resource — converting EPUB/PDF/TXT books into full audiobooks — plus the differentiators (chapter detection, multi-voice narration, optional translation). It is clearly distinguishable from siblings like translate_epub and text_to_speech without opening any schema.

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

Usage Guidelines4/5

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

Explains the invocation context well: payment is required first via create_payment with toolName='epub_to_audiobook', the call is async and must be polled, and no API key/signup is needed. It does not explicitly name alternative sibling tools or state when-not-to-use this one, so it falls short of a 5.

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

e_signatureAInspect

Send a document out for legally binding e-signature and have the signed copy emailed back. Upload the PDF, name up to 3 signers, and give the email where the signed copy should land. Flat 1000 sats per document. The request is fulfilled through an established e-sign provider. The signed copy arrives once every signer has signed, so expect their turnaround — hours to days — not seconds. The API reply acknowledges the request; there is nothing to poll. Privacy: the PDF is processed in memory and never stored. Pay with Bitcoin Lightning — no account, no card. Requires create_payment with toolName='e_signature'.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNoOptional note shown to the signers.
signersYes1-3 signers, each with a name and email.
paymentIdYesValid payment ID (must be paid). Price = 1000 sats flat.
customerEmailYesYour email — the signed copy is sent here once everyone has signed.
documentBase64YesBase64-encoded PDF to be signed (a data: URI is accepted). Max 8MB. Must be a PDF.

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations provided, the description carries the full behavioral burden and does so excellently. It discloses the async turnaround time, that the API reply is only an acknowledgment, that polling is not needed, that the PDF is processed in memory and never stored, and that payment is via Bitcoin Lightning with no account or card.

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

Conciseness5/5

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

The description is compact and front-loaded with the primary purpose, then covers pricing, async behavior, privacy, and payment prerequisites in a logical order. Every sentence adds meaningful operational detail; there is no fluff or repetition.

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

Completeness5/5

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

For a paid, async, privacy-sensitive tool with no output schema, the description is remarkably complete. It covers what the tool does, the prerequisite payment step, expected delay, the acknowledgment-only reply, privacy handling, cost, and payment method. Nothing critical is missing for an agent to invoke it correctly.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds value beyond the schema by explaining the flat 1000 sats pricing, the requirement to first create a payment with toolName='e_signature', and the expectation that the signed copy is emailed to the customer. It doesn't deeply elaborate every parameter, but the schema already does that.

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

Purpose5/5

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

The description states a specific verb and resource: send a document out for legally binding e-signature, with the signed copy emailed back. It clearly differentiates from siblings like send_email or send_fax by focusing on the signature workflow and provider-based fulfillment.

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

Usage Guidelines4/5

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

The description gives clear context on when to use the tool: for legally binding e-signatures with multiple signers and async delivery. It also names the necessary prerequisite create_payment with toolName='e_signature' and explicitly says there is nothing to poll. It does not name alternatives or when-not-to-use cases, but the use case is sufficiently distinct.

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

estimate_depthAInspect

Estimate per-pixel depth from a single photo. Depth Anything V2 (NeurIPS 2024, 3.8M+ runs) returns BOTH the raw greyscale depth map — what a ControlNet, AR or 3D reconstruction pipeline consumes — and a colour visualization for humans. Structured geometry a vision LLM cannot produce. 5 sats per image, pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='estimate_depth'.

ParametersJSON Schema
NameRequiredDescriptionDefault
paymentIdYesValid payment ID (must be paid)
model_sizeNoModel size — larger is more accurate, price is the same (default Large)
imageBase64YesBase64-encoded image (PNG, JPEG, WEBP) or data URI

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses cost (5 sats), payment method (Bitcoin Lightning), prerequisite (create_payment with toolName='estimate_depth'), and output formats. It does not mention error handling or side effects, but for a non-destructive compute API, this is adequate.

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

Conciseness4/5

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

The description is front-loaded with purpose, then output details, then cost/payment. It is concise but includes a bit of marketing (NeurIPS 2024, 3.8M+ runs) that is not strictly necessary, making it slightly verbose. Still well-organized.

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

Completeness4/5

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

Given no output schema, the description explains the return (both raw and colour maps) and the primary use cases. It also covers payment prerequisites. It lacks details on error codes or image format limits, but those are often documented elsewhere, and the description is sufficient for a typical use.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all parameters. The description adds no additional meaning about the parameters—paymentId, model_size, or imageBase64—beyond what the schema provides. Baseline 3 is appropriate.

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

Purpose5/5

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

Description states a clear verb+resource: 'Estimate per-pixel depth from a single photo.' It specifies the output (raw greyscale depth map and colour visualization) and distinguishes from siblings like analyze_image or detect_objects, which serve different analytical functions.

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

Usage Guidelines4/5

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

Provides context on when to use: for ControlNet, AR, or 3D reconstruction pipelines needing structured geometry that vision LLMs cannot produce. However, it does not explicitly exclude cases or name alternative tools, so it falls short of explicit when/when-not guidance.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelIdNoOptional. Omit for default model.
paymentIdYesValid payment ID (must be paid)
documentBase64YesBase64 encoded PDF or image

TDQS

A4.2/5.0
Behavior3/5

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

No annotations provided. Description discloses cost (10 sats/page) and payment flow, but lacks details on size limits, supported languages, error handling, or whether operation is destructive. Adequate but not exhaustive.

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

Conciseness5/5

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

Four sentences, front-loaded with purpose, then capabilities, cost, and prerequisite. No redundant information.

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

Completeness4/5

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

Covers key aspects: purpose, capabilities, cost, payment prerequisite. Lacks output format detail (though Markdown is mentioned) and error handling. No output schema to compensate, but overall sufficient for typical use.

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

Parameters4/5

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

Schema covers 100% of parameters with descriptions. Description adds value by explaining the paymentId must be obtained via create_payment and that documentBase64 is base64 encoded, beyond schema details.

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

Purpose5/5

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

The description clearly states it extracts text from PDFs and images as clean Markdown, specifying handling of complex layouts, tables, handwriting, etc. This distinguishes it from siblings like analyze_image or convert_file.

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

Usage Guidelines4/5

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

Explicitly mentions prerequisite payment via create_payment with toolName and quantity, and that no API key is needed. Does not compare to alternatives like convert_file for document extraction, 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.

extract_receiptAInspect

Extract structured data from receipts, invoices, and financial documents. Uses a dual-model pipeline (Mistral OCR + Kimi K3) 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. 25 sats/page. Pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='extract_receipt'.

ParametersJSON Schema
NameRequiredDescriptionDefault
paymentIdYesValid payment ID (must be paid)
documentBase64YesBase64 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.

TDQS

A4.4/5.0
Behavior4/5

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

No annotations exist, so the description carries the burden. It discloses the payment flow, pricing (25 sats/page), dual-model pipeline, and robustness claims. The caveat about hallucinated JSON for non-receipts is present in the schema but not in the description, so the description alone understates that risk.

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

Conciseness5/5

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

Five sentences, each information-dense: purpose, method, output, robustness, and pricing/payment. No filler or redundant phrases; front-loaded with the core action.

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

Completeness4/5

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

Covers purpose, return JSON fields, payment prerequisite, and edge-case handling. Since there is no output schema, listing the fields compensates. The hallucination warning is in the schema, so overall the description is complete for a paid extraction tool, though it could have briefly noted non-receipt handling.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds context for paymentId by referencing create_payment and hints at documentBase64 format via 'multi-page invoices' and 'crumpled receipts' — slightly beyond the schema's basic parameter description.

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

Purpose5/5

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

The description clearly states 'Extract structured data from receipts, invoices, and financial documents' — a specific verb plus resource scope. It distinguishes itself from sibling tools like extract_document by narrowing to financial paperwork, and adds detail about the dual-model pipeline and output fields.

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

Usage Guidelines4/5

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

Provides clear usage context: requires create_payment, pay-per-request with Lightning, and no API key needed. It does not explicitly name a sibling alternative or state when not to use this tool, but the purpose and prerequisite are well explained.

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. 1600 sats per model. Pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='generate_3d_model'.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptNoText description for text-to-3D (max 1024 chars). Provide EITHER this OR imageBase64, not both.
modelIdNoOptional. Omit for default model.
paymentIdYesValid payment ID (must be paid)
imageBase64NoBase64 encoded image (PNG, JPEG, or WEBP) for image-to-3D. Provide EITHER this OR prompt, not both.

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description fully carries the burden. It transparently discloses async behavior ('Async — returns requestId, poll with check_job_status'), cost ('1600 sats per model'), and the authentication model ('no API key or signup needed'). It also names the underlying model (Tencent Hunyuan3D), adding significant behavioral context beyond the schema.

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

Conciseness5/5

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

The description is composed of six short, information-dense sentences: purpose, model/provider, async behavior, cost, payment method, and prerequisite. No fluff or repetition; every sentence earns its place.

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

Completeness5/5

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

Given the tool's complexity (async, paid, multi-input) and lack of output schema, the description covers all essential aspects: input formats, output type, provider, cost, payment flow, and follow-up polling. It is sufficiently complete for an AI agent to invoke the tool correctly.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds payment context ('Requires create_payment with toolName='generate_3d_model'') relevant to the paymentId parameter, and reinforces the exclusive-or relationship between prompt and imageBase64, though this is already in the schema. This modest addition justifies a 4.

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

Purpose5/5

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

The description opens with 'Generate a textured 3D GLB model from EITHER a photo OR a text prompt,' clearly stating the tool's function and output format. This distinguishes it from sibling 2D generation tools like generate_image and generate_video.

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

Usage Guidelines4/5

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

The description provides explicit usage constraints ('provide exactly one, not both') and outlines the async workflow ('poll with check_job_status') and payment prerequisite ('Requires create_payment with toolName='generate_3d_model''). While it doesn't explicitly compare to alternative 3D tools, no other 3D generation tool exists in the sibling list, so the guidance is clear and actionable.

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

generate_imageAInspect

Generate an image from a text prompt. Returns JSON with image URL. Models: Grok Imagine 2 (fast creative generation, 100 sats), Seedream 5 Pro (most permissive content policy, 150 sats at 1K / 300 at 2K), GPT Image 2.5 (ranked #1 on the Artificial Analysis text-to-image leaderboard as of September 2026, 1200 sats, default). Supports img2img with optional base64 input. Optional aspectRatio (default 1:1) works on every model tier and does not change the price. 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'.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesText prompt describing the image
modelIdNoOptional. Omit for default (best) model.
paymentIdYesValid payment ID (must be paid)
aspectRatioNoOptional output shape, default 1:1. Same price for every shape.
imageBase64NoOptional base64 image for img2img generation

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations, the description carries the behavioral transparency burden and does so thoroughly. It discloses the JSON return format, model-specific costs, default model behavior, img2img support, stable endpoints with automatic model upgrades, Bitcoin Lightning payment, and no API key/signup requirement.

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

Conciseness5/5

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

Although longer than many descriptions, every sentence earns its place: purpose and return type are front-loaded, then models/pricing, parameter nuances, pricing stability, and the payment prerequisite. The structure is dense without irrelevant filler.

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

Completeness4/5

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

For a paid, 5-parameter tool with no output schema and no annotations, the description is largely complete: it covers return shape, model selection, costs, defaults, img2img, aspect ratio effects, auth/payment, and stability guarantees. It only omits potential async/retrieval or error-handling behavior, which would make it fully complete.

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

Parameters4/5

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

The input schema already describes every parameter with high coverage, so the baseline is 3. The description adds meaningful extra context beyond the schema by providing model names, pricing, the default model default, aspect-ratio price neutrality, and the payment prerequisite, which helps an agent choose and invoke parameters correctly.

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

Purpose4/5

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

The description opens with a specific verb and resource: "Generate an image from a text prompt," and states the return value as JSON with an image URL. It is clear about text-to-image and img2img support, though it does not explicitly differentiate itself from sibling tools like edit_image or generate_text.

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

Usage Guidelines4/5

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

It provides strong usage context: when to use the tool, model selection guidance, default model behavior, pricing tiers, and the prerequisite that create_payment must be called first. It does not give explicit exclusions or say when to choose an alternative sibling instead.

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

generate_musicAInspect

Generate a full song with AI vocals from a style prompt plus lyrics — or an INSTRUMENTAL bed / underscore (background music under video narration, intros, outros) by sending ONLY structure tags and no words. You choose the length: 15-300 seconds at 5 sats/second (75-1500 sats). Specify BPM, key, genre, mood in prompt. Returns a 44.1 kHz 16-bit stereo WAV URL. Structure tags must each be on their OWN line — words on a tag line are DROPPED by the model, which silently shortens the song. Don't want to write lyrics? Set lyricsAddon:true (+25 sats) and optionally lyricsAbout to say what they should be about. Pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='generate_music' AND the same duration (the price is bound to it).

ParametersJSON Schema
NameRequiredDescriptionDefault
lyricsNoSong lyrics with section tags (up to 3,500 chars). Each tag on its OWN line, words on the lines after it — words sharing a line with a tag are dropped. Tags: [intro], [verse], [pre-chorus], [chorus], [post-chorus], [bridge], [instrumental], [solo], [outro]. Send only tags and no words for an instrumental.
promptYesMusic style with BPM, key, genre, mood, instruments (up to 2,000 chars). Example: 'E minor, 90 BPM, acoustic guitar ballad, male vocal'
modelIdNoOptional. Omit for default model.
durationNoSong length in seconds, 15-300. THE PRICE (5 sats/second) — must match the duration sent to create_payment. Default: 15
paymentIdYesValid payment ID (must be paid)
lyricsAboutNoOptional, with lyricsAddon: what the lyrics should be about. Omit and the subject is inferred from your music prompt.
lyricsAddonNoSet true to have the lyrics written for you (+25 sats, billed on the song's own invoice). Must also be sent to create_payment.

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations, the description carries full behavioral disclosure: it reveals pricing (5 sats/second), output format (44.1 kHz 16-bit stereo WAV URL), the silent lyric-dropping behavior on tag lines, and the payment binding requirement. No contradictions with annotations (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.

Conciseness4/5

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

The description is long but every sentence adds value: it covers purpose, modes, pricing, constraints, payment flow, and return format. It is front-loaded with the core action and then provides necessary details. Slightly dense but not bloated.

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

Completeness5/5

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

Given 7 parameters, a payment dependency, and no output schema, the description is remarkably complete: it explains the return format, the tag syntax pitfall, pricing, duration limits, and the create_payment correlation. Nothing an agent needs to call it correctly is missing.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3, but the description adds meaningful cross-parameter context such as the price binding to duration and the requirement that lyricsAddon also be sent to create_payment. This goes beyond the individual parameter descriptions in the schema.

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

Purpose5/5

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

The description clearly states a specific action ('Generate a full song') with distinct modes (vocals vs instrumental), and it differentiates itself from sibling generate_* tools by specifying music-specific outputs and the payment model. The verb and resource are unambiguous.

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

Usage Guidelines5/5

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

Provides explicit instructions on when to use lyrics vs instrumental tags, when to enable lyricsAddon, and the required create_payment prerequisite with matching duration. It also covers the optional lyricsAbout flow, leaving no ambiguity about invocation.

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 K3 (best, ~10 chars/sat, 1M context, default), GPT-OSS-120B (standard, ~1000 chars/sat, 119 languages, best value). Rates are BTC-pegged and re-quoted hourly, so treat them as approximate — the 402 challenge is the authoritative price. Supports document Q&A via fileContext. For images, use the analyze_image tool. 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesThe text prompt or question
modelIdNoOptional. Omit for default (best) model.
fileNameNoName of the attached file
maxTokensNoMax tokens in response
paymentIdYesValid payment ID (must be paid)
fileContextNoExtracted file text to include as context
imageBase64NoBase64 data URI for vision analysis (best model only)
systemPromptNoOptional system prompt

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does substantial work: it discloses per-character pricing, BTC-pegged rates re-quoted hourly, the 402 challenge as authoritative price, auto-upgrading models, and a no-API-key Lightning payment flow. It omits return-shape, latency, and failure behavior, so it is rich but not complete.

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

Conciseness4/5

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

Front-loads the core action and keeps the dense pricing/model/payment detail in a single tight paragraph. Given the tool's complexity the length is justified, though the parenthetical pricing and rate caveats add some density an agent could skim past.

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

Completeness4/5

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

For an 8-parameter, no-annotation, no-output-schema tool, the description covers purpose, payment gating, model selection, and file context well. The notable gap is that with no output schema present, nothing describes what a successful response actually returns.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning to modelId by naming the models, their tradeoffs (context length, languages, best vs best value), and defaulting behavior, and it links fileContext to document Q&A. Other params are left entirely to the schema.

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

Purpose5/5

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

States a specific verb+resource ('Generate text') and immediately narrows scope with model choices and capabilities (Q&A via fileContext). It explicitly separates itself from the image path by pointing at analyze_image, letting an agent distinguish it from siblings without opening the schema.

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

Usage Guidelines4/5

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

Gives clear context (text completion, document Q&A), an explicit exclusion ('For images, use the analyze_image tool'), and a prerequisite workflow ('Requires create_payment with toolName="generate_text"'). It does not, however, distinguish this from other text-oriented siblings such as ai_call or multilingual_ask, which an agent must resolve on its own.

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 MiniMax H3 — top 2 on the Artificial Analysis text-to-video leaderboard — with native audio. Async — returns requestId, poll with check_job_status. 768p or 2K (2K is upscaled from a 768p render), 5-15 seconds, priced per second by resolution (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.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesText prompt describing the video
modelIdNoOptional. Omit for default model.
durationYesDuration in seconds (5-15)
paymentIdYesValid payment ID (must be paid)
resolutionNoOutput resolution: 768p or 2K (2K is upscaled from a 768p render). Omitting it yields 768p — ask for 2K explicitly, and quote it at create_payment too. Retired rungs still accepted: 480p/720p→768p, 1080p→2K.768p
generate_audioNoAccepted and IGNORED — H3 audio is native and always on, at no extra cost. There is no way to request a silent render.
reference_audioNoOptional https URL(s) of reference audio CLIPS, 2-15 seconds each (max 3, combined <=15s). Cite them in your prompt as "Audio 1", "Audio 2" or the model has no instruction to use them. ⚠ Audio cannot be sent alone — at least one reference_image must accompany it. For a music video, slice your track and pass one slice per shot. Free: does not change the price.
reference_imageNoOptional https URL of a reference still for character/style consistency across shots (accepts an array, max 3). Pass the URL from generate_image. Free: does not change the price.

TDQS

A5/5.0
Behavior5/5

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

Discloses async behavior (returns requestId for polling), payment requirement, and that audio is always on (no silent render). Explains retired resolution rungs and the constraint on reference_audio. This goes beyond the schema, which has no annotations, so the description fully carries behavioral transparency.

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

Conciseness5/5

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

While detailed, every sentence serves a purpose—pricing, async flow, parameter constraints, and behavioral notes. Structured logically from core purpose to specifics, with clear separate sentences per aspect. No fluff.

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

Completeness5/5

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

Covers all necessary operational details: payment prerequisite, async polling, parameter constraints (audio requires image), resolution behavior, and retrieval flow. Given the complexity and absence of an output schema, the description is complete for an agent to invoke correctly.

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

Parameters5/5

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

Adds crucial semantics for each parameter: resolution explains retired rungs and default, generate_audio is ignored, reference_audio requires a reference_image, and reference_image is for character consistency. The schema only lists definitions, so the description enriches meaning significantly.

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

Purpose5/5

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

States a specific verb and resource: 'Generate cinematic video from a text prompt.' Clearly distinguishes from siblings like generate_image and generate_music, and names the model (MiniMax H3) and key capabilities (native audio).

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

Usage Guidelines5/5

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

Provides explicit usage instructions: async operation requiring create_payment, the need to pass reference_audio with at least one reference_image, and how resolution and audio options behave. Also notes that generate_audio is ignored and that 2K is upscaled from 768p, giving practical when-to-use guidance.

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

get_cost_estimateA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
charsNoCharacter count — required for TTS and translate
modelNoOptional model id for services with multiple tiers
pagesNoPage count — for OCR (default 1)
minutesNoAudio length — required for transcribe-audio
secondsNoVideo duration — required for video / video-from-image
serviceNoService id (e.g. 'text-to-speech', 'translate', 'image', 'video', 'transcribe-audio', 'ocr'). Omit to list all services.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already set readOnlyHint=true and idempotentHint=true. Description adds 'No payment required, no side effects' which reinforces safety. Also describes return values (amount_sats, breakdown, currency). 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.

Conciseness5/5

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

Four sentences, no filler. Front-loaded with purpose. Every sentence adds value: purpose, usage context, examples, return format, alternative behavior.

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

Completeness4/5

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

Covers purpose, usage, examples, return fields, and behavior with/without params. No output schema but description mentions return structure. Could clarify that service must be a valid identifier from catalog, but that's minor.

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

Parameters5/5

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

Schema coverage is 100% with descriptions for each param. Description adds real usage examples (service=text-to-speech&chars=1500) and explains that omitting params lists all services. This goes beyond schema details.

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

Purpose5/5

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

Description clearly states it provides an exact sat cost quote for a service before payment. Verb 'Get' and resource 'cost estimate' are specific. Distinguishes from sibling tools like create_payment, check_payment_status by focusing on 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.

Usage Guidelines4/5

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' which sets context. Provides example usage patterns (service=...). Does not explicitly state when not to use or alternatives, but context from sibling tools implies this is the estimation step.

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

get_error_codesA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly and idempotent hints; the description adds 'No payment required' as extra behavioral insight, without contradicting annotations.

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

Conciseness5/5

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

Two sentences: the first states the purpose with concrete examples, the second gives actionable usage guidance. No wasted words, front-loaded with key info.

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

Completeness4/5

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

The description provides purpose and usage guidance for a simple no-parameter tool; while it could detail the output format, the examples suffice for an agent to understand the expected result.

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

Parameters4/5

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

No parameters exist, so schema coverage is complete; the description naturally has no need to explain parameters, meeting the baseline for 0-param tools.

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

Purpose5/5

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

The description explicitly states the tool retrieves a machine-readable catalog of error codes, with specific examples, clearly distinguishing it from sibling tools by focusing on error code retrieval.

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

Usage Guidelines4/5

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

It advises branching on error_code over parsing text and notes no payment required, providing clear context for when to use this tool, though it does not explicitly exclude alternatives.

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

get_job_resultA
Read-onlyIdempotent
Inspect

Retrieve the final output of a completed async job. Call ONLY after check_job_status returns status='COMPLETED' — calling on a job that has not completed 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 → { url, annexeUrl, totalChapters, completedChapters } (annexeUrl is a companion PDF of equations, tables, addresses, keys and hashes the narration replaces with a spoken marker; null when the book had none); 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobTypeYesMust 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.
paymentIdNoThe paymentId that bought this job. On a failed job the refund is opened either way; the claim link (lnurl_withdraw / refund_secret) is returned only when this matches — or call check_payment_status(paymentId).
requestIdYesThe requestId returned by the original async tool — same ID used with check_job_status

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare readOnlyHint and idempotentHint; the description adds significant behavior beyond them: premature calls error, temporary URLs expiring after about an hour, and that the tool is free. There is no contradiction with annotations.

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

Conciseness5/5

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

The description is front-loaded with purpose and usage guidance, and every remaining sentence earns its place: output shapes, URL expiry, free status, and sync-tool exclusion. The length is justified because no output schema exists.

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

Completeness3/5

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

This is rich but incomplete: the jobType enum includes 10 values, yet the return-shape mapping covers only 5 buckets and omits video-fal-standard/video-fal-pro, transcribe-translate, and translate-epub. Since there is no output schema, those shape gaps are meaningful for an agent invoking those variants.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description does not add parameter-level semantics beyond mapping jobType to return shape, while the schema already explains requestId, jobType, and paymentId. Thus the description neither needs to compensate heavily here.

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

Purpose5/5

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

Starts with a specific verb and resource: 'Retrieve the final output of a completed async job,' which clearly separates it from status-checking and synchronous tools. It clearly identifies the tool as the result-fetch step in the async workflow.

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

Usage Guidelines5/5

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

Explicitly states the precondition: 'Call ONLY after check_job_status returns status="COMPLETED"' and warns that early calls return an error. It also says not to use it for synchronous tools, directly naming the alternative behavior.

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

get_model_pricingA
Read-onlyIdempotent
Inspect

Get pricing for a specific model by ID. No payment required.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelIdYesThe AI model database ID from list_models. A numeric string ("16") is accepted and coerced.

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, and the description adds a valuable behavioral note: 'No payment required.' This goes beyond the safety profile, clarifying the endpoint will not incur a charge. It does not contradict annotations.

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

Conciseness5/5

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

Two short sentences, both purposeful: the first states the core operation, the second provides a useful billing caveat. No filler words or redundancy. Front-loaded with the verb and object.

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

Completeness4/5

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

For a simple read-only, idempotent lookup with one fully documented parameter, the description notably covers the operation and an important behavioral caveat. The lack of return-format information is acceptable given the tool's simple nature and absence of an output schema.

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

Parameters3/5

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

Schema description coverage is 100%, and the description does not add material meaning beyond 'by ID.' The schema already explains the modelId comes from list_models and that numeric strings are accepted. The description adds no new semantic detail.

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

Purpose4/5

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

The description states a clear action ('Get pricing') and resource ('for a specific model by ID'). It is distinct from sibling tools like get_cost_estimate, though it does not explicitly name alternatives to aid disambiguation.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as list_models or get_cost_estimate. It implies usage through 'by ID' but provides no prerequisites, exclusions, or alternative routing. 'No payment required' does not explain when to choose this.

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

list_modelsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoFilter by service category (matches tool names)

TDQS

A4.4/5.0
Behavior5/5

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

Even with readOnlyHint and idempotentHint annotations already present, the description adds meaningful behavioral facts: it is free and requires no payment, it returns a JSON array with a specific shape, and models with isDefault=true affect create_payment when modelId is omitted. It also reassures that repeated calls are safe, extending the idempotent hint with practical guidance. No annotation is contradicted.

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

Conciseness4/5

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

The description is densely informative with a clear front-loaded purpose and a logical flow: what it returns, when to call it, how the default flag behaves, how to filter, and cost/safety notes. Each sentence contributes value, though 'free' and 'requires no payment' are mildly redundant and the default-model detail could be considered extra context for create_payment rather than list_models itself.

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

Completeness5/5

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

For a simple read-only tool with one optional parameter and no output schema, the description covers everything an agent needs: return format, exact fields, meaning of isDefault, category filtering, and cost/ree behavior. It fully prepares the agent to call correctly and interpret results, making further documentation unnecessary.

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

Parameters3/5

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

Schema coverage is 100% and the single optional category parameter is already described as a filter matching tool names. The description adds only a slight clarification that filtering narrows results to a specific tool, which is a near paraphrase rather than substantive new semantics. The schema carries the parameter heavy lifting, so a baseline of 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb ('Discover') with a clear resource ('available AI models') and enumerates the exact attributes returned: numeric IDs, tier labels, capabilities, and per-call pricing. It distinguishes itself from siblings like get_model_pricing by framing the tool as the discovery/preparation step for create_payment. An agent can confidently understand what this tool does without ambiguity.

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

Usage Guidelines4/5

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

The description explicitly says to call this before create_payment to find the right modelId, and explains filtering by category to narrow results to a specific tool. It provides clear usage context but does not explicitly contrast with overlapping siblings such as get_model_pricing, so it stops short of a full when/when-not alternatives statement.

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

list_planned_servicesA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.8/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint and idempotentHint. Description adds that it returns a sorted JSON array with specific fields, and that it's safe to call repeatedly, providing useful behavioral context beyond annotations.

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

Conciseness5/5

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

Extremely concise: three sentences that front-load the purpose, then detail output and usage guidance. Every sentence earns its place.

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

Completeness5/5

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

Given no parameters and no output schema, the description fully specifies the return format and behavior. No gaps remain for an agent to select and invoke this tool correctly.

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

Parameters5/5

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

No parameters exist, so baseline is 4. Description adds value by explaining the output format and sorting, which helps an agent understand what the tool returns without needing parameter details.

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

Purpose5/5

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

Description uses specific verb 'List' and resource 'planned services' with current vote counts. It distinguishes from sibling tools like vote_on_service by clarifying this is for viewing, not voting.

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

Usage Guidelines5/5

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

Explicitly states no payment required, it's a free discovery tool, and directs to use the slug values with vote_on_service for casting votes. This clearly explains when to use this tool versus alternatives.

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'.

ParametersJSON Schema
NameRequiredDescriptionDefault
filesYesArray of base64-encoded PDF files (minimum 2)
paymentIdYesValid payment ID (must be paid)

TDQS

A4.7/5.0
Behavior4/5

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

No annotations provided, so description fully carries the burden. It discloses bookmark preservation, temporary URL, cost, concatenation order, and payment requirement. Minor omission: no error handling details.

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

Conciseness5/5

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

Concise and well-structured: first sentence states purpose, each subsequent sentence adds critical details without redundancy. No fluff.

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

Completeness5/5

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

Given no output schema and no annotations, the description fully explains return format, temporary URL, pricing, and alternative tool, making it sufficient for correct invocation.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. Description adds value by specifying base64 encoding, minimum files, and concatenation order, slightly improving clarity.

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

Purpose5/5

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

The description clearly states 'Merge multiple PDF files into a single document' with specific verb and resource. It distinguishes from the sibling 'convert_file' by mentioning format conversion as an alternative.

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

Usage Guidelines5/5

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

Explicit when-to-use: 'Use convert_file instead if you need format conversion'. Also provides constraints like 'Minimum 2 files, no maximum' and payment details.

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

multilingual_askAInspect

Ask a frontier AI a question in your OWN language and get the answer back in that same language, in ONE payment. We translate the question to English, answer it with a frontier model, then translate the answer back. Two engines behind one endpoint: 119 mainstream languages use the LLM translate tier; anything those models do not serve falls through to MADLAD-400 on our own GPU (452 languages, 251 of which ChatGPT, Claude and Gemini do not support at all). So a Wolaytta, Tiv or Q'eqchi' speaker gets frontier reasoning in their own language, which no other API offers. Rare-language quality is uneven and published per language - GET https://sats4ai.com/api/languages. Priced from question length plus a fixed 2000-character answer allowance at the chosen tier's rate; the rare-language path costs more (GPU both ways). Requires create_payment with toolName='multilingual_ask' AND the language you intend to use - the quote depends on it.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNoStandard | Better | Best. Best is Kimi K3 and costs materially more. Must match the create_payment quote.
languageYesLanguage to answer in. English name ('Igbo'), ISO-639 code ('ig'), or a rare-language code ('wal'). Rejected before payment if unsupported.
questionYesYour question, in your own language. Max 4000 characters.
paymentIdYesValid payment ID (must be paid), quoted for THIS language and tier.

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden, and it delivers: payment requirement, one-payment model, translation pipeline, LLM vs MADLAD-400 fallback tiers, uneven rare-language quality, published per-language quality, and pricing structure. It does not specify whether the answer returns synchronously or via a job/result mechanism, which 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.

Conciseness4/5

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

The description is long but information-dense and front-loaded with the core action, followed by important operational and pricing details. Every sentence contributes substantive context, though the structure is a bit sprawling with several clauses in quick succession.

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

Completeness4/5

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

For a paid endpoint with no output schema and meaningful dependencies, the description is quite complete: it covers the payment prerequisite, language coverage, fallback behavior, quality variability, and cost model. It could additionally explain the answer return format or whether the call is asynchronous, but the core information needed to invoke it correctly is present.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds meaningful cross-parameter semantics: the create_payment quote must match the chosen language and tier, the model choice must match that quote, and the rare-language path costs more. It also highlights that unsupported languages are rejected before payment, reinforcing the language parameter's validation behavior.

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

Purpose5/5

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

States a specific verb ('ask'), a specific resource (frontier AI), and the distinctive same-language behavior in the first sentence. It clearly differentiates itself from translation-only siblings like translate_text and translate_rare_language by framing the tool as question-answering, not translation.

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

Usage Guidelines4/5

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

Clearly establishes when to use the tool (ask a question in your own language and get a frontier-model answer back in that language) and gives a strong prerequisite: create_payment must be called with toolName='multilingual_ask' and the intended language. It does not explicitly name sibling alternatives to exclude, so it stops short of a 5.

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 phone call you drive one turn at a time: we dial, transcribe what the other side says, and speak whatever text you send. You call voice_bridge_say to talk, poll_voice_bridge to read transcripts, end_voice_bridge to hang up. ⚠ NOT real-time conversation. Each turn costs an HTTP round trip plus your own model's thinking plus speech synthesis — measured at 2.5-4 seconds before audio starts, against the ~0.8s a natural back-and-forth needs, and nothing signals you when the other side stops talking, so you are polling and guessing. Good for: leaving a spoken message, navigating an IVR, reading something out, a slow exchange where a pause is fine. For a real conversation with a human, use ai_call — we run the agent at conversational speed and return the transcript. Unused deposit time is refunded automatically when the call ends — including when the callee hangs up. Pass refundAddress (a Lightning address) and the remainder is SENT there with no further action; without it the refund is held as a claimable LNURL-withdraw link returned by end_voice_bridge. Use this when the content of the call must never leave your side, and the pace can tolerate a pause between turns. 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 is priced per destination off the carrier rate sheet and is BTC-pegged, so call create_payment for the exact figure; premium-rate and satellite ranges are refused.

ParametersJSON Schema
NameRequiredDescriptionDefault
codecNoPCMU 8kHz (default, universal) or L16_16000 for HD voice when both endpoints support it
greetingNoSpoken the instant the callee answers (max 500 chars). Synthesized while the phone rings, so there is no pause before the first word — without it the callee hears silence until your first voice_bridge_say lands. Strongly recommended for any call a human answers.
languageNoBCP-47 language tag (default en-US). See /api/l402/voice-bridge/coverage for the matrix.
paymentIdYesValid payment ID from create_payment (toolName=voice_bridge_open)
sttEnabledNoDefault true. Set false for TTS-only broadcast calls.
ttsEnabledNoDefault true. Set false to bring-your-own-audio via voice_bridge_say.
phoneNumberYesDestination phone number in E.164 format (e.g., +14155550100)
refundAddressNoLightning address (e.g. you@wallet.com). Strongly recommended: the unused deposit is sent here automatically when the call ends, so nobody has to claim anything. Without it the refund waits as an LNURL-withdraw link.
durationMinutesNoDeposit for N minutes, 2-30 (default 3). Unused time refunded.

TDQS

A4.9/5.0
Behavior5/5

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

Discloses major behavioral traits: not real-time, per-turn latency (2.5-4s), no completion signal, refund mechanics (with/without refundAddress), privacy (in-memory, 30-min GC, no audio persistence), deposit pricing, refuses premium/satellite ranges. Annotations only say openWorldHint, so the description carries full burden and excels.

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

Conciseness5/5

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

Dense but every sentence earns its place. Front-loads core workflow (how turns work), then warnings, use cases, exceptions, privacy, payment. Though long, it is structured logically and avoids fluff.

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

Completeness5/5

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

For a complex, high-stakes tool (payment, privacy, multiple modes), the description covers workflow, prerequisites (create_payment), refund, privacy, and constraints. No critical gaps found; output schema absent but return format is described via emitted signals.

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

Parameters4/5

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

Schema covers 100% of params, so baseline is 3. Description adds meaning for key params (greeting recommendation, refundAddress benefits, duration deposit, codec default). Does not explicitly map all params but schema is complete.

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

Purpose5/5

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

States specific purpose (open a call you drive turn-by-turn) and contrasts with ai_call (real-time agent) and place_call (one-shot). Distinguishes clearly from siblings.

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

Usage Guidelines5/5

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

Explicit when-to-use (turn-paced, privacy-critical, refund, etc.) and when-not-to-use (real-time, one-shot, polling overhead). Names alternatives (ai_call, place_call) directly.

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

place_callB
Destructive
Inspect

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. Calls start with an unverified-sender notice; the opening and closing safety notices fit the prepaid minutes. No impersonation, scams, threats, harassment, credential theft, unsolicited bulk messages, or contact after an opt-out. Answering a call does not establish consent. We screen requests after payment. Held messages and calls are not sent or placed; payment is retained during review, not refunded immediately. Confirmed violations are not refunded. Unresolved communication holds become eligible for a refund after 24 hours; refund eligibility is processed by scheduled maintenance. Human review costs 1 sat at https://sats4ai.com/appeal. Recent message text and extracts of recording transcripts support recipient-scoped abuse checks for 24 hours. These context records are deleted hourly, so storage can last up to 25 hours. Original uploaded-call transcripts and raw held-request or appeal evidence enter cleanup after 30 days. We also keep a de-identified record of screened communications to measure and improve fraud detection. Identifiers in it — contact addresses, numbers and names that follow a greeting — are replaced with one-way tokens, and it holds no destination number and no account, because the service has none. De-identification is not anonymization: text a sender wrote can still identify someone. Do not submit personal information the service does not need. Providers keep records under their own policies.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageNoText to speak via TTS; must fit prepaid minutes including safety notices. Provide this OR audioUrl.
audioUrlNoPublic URL to audio file. Provide this OR message.
paymentIdYesValid payment ID (must be paid)
phoneNumberYesPhone number in E.164 format (e.g., +14155550100)
durationMinutesNoDuration in minutes (1-30). Required for audioUrl.

TDQS

B3.4/5.0
Behavior4/5

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

The description discloses many behavioral traits: requires payment via create_payment, includes unverified-sender notice, consent is not established by answering, requests are screened, refund policies, data retention. It complements the destructiveHint annotation by explaining the process. 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.

Conciseness2/5

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

The description is a long block of text with extensive policy and legal details, making it not concise. It could be structured with headings and trimmed to the essential operational details.

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

Completeness3/5

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

Given the complexity and lack of output schema, the description covers many aspects like payment and consent, but it does not explain what the tool returns (e.g., call ID, status) or how to obtain the paymentId beyond mentioning create_payment. This is a gap for an agent to call it correctly.

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

Parameters3/5

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

Schema descriptions cover all parameters at 100%. The description does not add significant meaning beyond the schema, only reiterates that message or audioUrl must be provided and durationMinutes required for audioUrl.

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

Purpose4/5

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

The description clearly states the tool places an automated phone call to deliver a spoken message or play audio. It specifies the resource (phone call) and action (place). However, it does not differentiate from sibling tools like ai_call or confirm_ai_call, so it's not fully distinguished.

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

Usage Guidelines3/5

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

It provides some usage context (notifying a human, delivering alerts) but does not explicitly state when to prefer this over alternatives. There is no mention of exclusions or alternatives.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
cursorNoLast seq number seen (default 0 = start from beginning)
sessionIdYesSession ID from open_voice_bridge

TDQS

A4.3/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It mentions returns types (partial + final transcripts, system events) and payment, but lacks disclosure on side effects, idempotency, or safety (e.g., read-only nature). Adequate but not comprehensive.

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

Conciseness5/5

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

Three sentences: core function, return types, usage advice. No fluff, front-loaded with essential info.

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

Completeness4/5

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

Given no output schema, description explains return types but not structure details or error handling. Parameter count low, usage guidance provided. Lacks depth on potential empty returns or system events composition.

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

Parameters5/5

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

Schema coverage 100% with descriptions. Description adds default for cursor (0) and origin of sessionId. Text clarifies polling behavior and cursor usage, exceeding schema info.

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

Purpose5/5

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

Description specifies the verb 'Fetch', resource 'transcript events from an open Voice Bridge call', and scope 'since the last cursor'. It clearly distinguishes from sibling tools like 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.

Usage Guidelines4/5

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

Explicitly says to poll in a loop at ~500ms-1s interval and notes no additional payment. Provides clear usage context but does not mention when not to use or contrast with alternatives.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
ocrNoAdd OCR text extraction (+200 sats). Default: false.
emailYesEmail address to deliver the fax PDF to
paymentIdYesValid payment ID (must be paid)
fromNumberYesExpected sender fax number in E.164 format (matched by last 10 digits of caller ID)
callback_idNoOptional opaque correlation string (max 128 chars). Echoed in the webhook body.
callback_urlNoOptional HTTPS webhook URL. POSTed (HMAC-signed) when fax is delivered. Public HTTPS only — no loopback/RFC1918.

TDQS

A4.5/5.0
Behavior5/5

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

Despite only the 'openWorldHint' annotation indicating external interaction, the description richly discloses behavioral traits: 24-hour receive window, caller ID matching (last 10 digits), email delivery, optional OCR (+200 sats) with partial refund on failure, optional HMAC-signed webhook callback, and the no-refund policy to prevent squatting. Payment via Lightning is also noted. These details go well beyond the annotation's minimal information.

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

Conciseness4/5

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

The description is a single paragraph of ~120 words, efficiently covering the main purpose, constraints, optional features, and policies. It is front-loaded with the primary use case. While dense, every sentence adds necessary information, making it concise for the tool's complexity. Minor improvement could be bullet-style structure, but current form is clear.

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

Completeness4/5

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

Given no output schema, the description effectively explains the delivery process (email, OCR, webhook) and constraints. It covers the immediate action (opening a window) and post-delivery behavior. However, it does not describe the immediate tool response (e.g., a confirmation or window ID), which may be needed for subsequent steps. Still, the description is fairly complete for a tool with offline delivery.

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

Parameters4/5

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

Schema coverage is 100% with each parameter having a description. The description adds value by explaining the OCR add-on cost, the HMAC-signed webhook behavior, and the caller ID matching for fromNumber. It contextualizes the parameters within the use case. However, it does not add significant detail beyond the schema for email, paymentId, and callback_id, keeping the score just above baseline.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'receive a fax' at a shared number, with delivery to email. It specifies the use case ('when expecting a fax back') and distinguishes from sending (sibling 'send_fax' exists). The verb 'receive' and resource 'fax' are specific, and the description contrasts with dedicated number rental, making purpose unambiguous.

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

Usage Guidelines4/5

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

The description provides explicit context for when to use the tool ('When you're expecting a fax back') and mentions the 24-hour window and no-refund policy. It does not directly state when not to use it, but the context is clear. Alternative tools (like send_fax) exist among siblings, but no explicit exclusion is given. The guidance is helpful but lacks explicit alternatives.

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. 44 sats per image, pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='remove_background'.

ParametersJSON Schema
NameRequiredDescriptionDefault
paymentIdYesValid payment ID (must be paid)
imageBase64YesBase64-encoded image (PNG, JPEG, WEBP) or data URI

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description fully carries the burden of behavioral disclosure. It covers cost (44 sats per image), payment method (Bitcoin Lightning, no API key), model stability (upgrades automatically), and output format (transparent PNG). It also notes the required payment flow. This is substantial transparency for a simple image operation.

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

Conciseness4/5

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

The description is concise and front-loaded with the core purpose. It includes additional context on model quality, pricing, and payment prerequisites, all relevant to an agent's decision-making. Each sentence adds value, though the model benchmark could be considered non-essential; it is not verbose.

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

Completeness3/5

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

The tool is simple, but with no output schema, the description should clarify how the transparent PNG is returned (e.g., base64 string, URL). It only says 'returning transparent PNG' without specifying the structure. The payment prerequisite is well-covered, but the lack of return-value encoding details leaves a moderate gap.

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

Parameters3/5

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

The input schema already provides full descriptions for both parameters: paymentId and imageBase64, achieving 100% coverage. The description adds no additional parameter-level details beyond restating the payment requirement and image flexibility. With full schema coverage, the baseline of 3 is appropriate.

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

Purpose5/5

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

The description starts with a clear and specific statement: 'Remove background from any image, returning transparent PNG.' This verb-resource pair is unambiguous and differentiates it from sibling tools like remove_object or edit_image. The additional detail about handling complex edges further solidifies its purpose.

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

Usage Guidelines4/5

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

The description provides clear context for when to use the tool: any time you need background removal, especially for complex subjects like hair or glass. It also states the prerequisite of calling create_payment with toolName='remove_background'. However, it does not explicitly mention alternatives or when not to use it, only giving implied 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. 130 sats per image, pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='remove_object'.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesWhat to remove (e.g. 'person', 'car', 'watermark', 'text')
paymentIdYesValid payment ID (must be paid)
imageBase64YesBase64-encoded image (PNG, JPEG, WEBP) or data URI
box_thresholdNoDetection confidence threshold (0-1, default 0.25)
text_thresholdNoText matching threshold (0-1, default 0.25)

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly mentions the underlying models (Grounding DINO and Bria Eraser), the cost (130 sats per image), the payment flow (Bitcoin Lightning, create_payment prerequisite), and the expected behavior (object erased and filled convincingly). This is substantial, though it does omit potential failure modes or output format.

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

Conciseness4/5

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

The description is front-loaded with the core purpose and remains reasonably concise. It includes some technical details (e.g., 'Grounding DINO detection (ECCV 2024)') that are informative but not strictly necessary for an AI agent to select or invoke the tool. Overall, every sentence serves a function: purpose, model context, examples, pricing/auth, and prerequisite.

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

Completeness3/5

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

Given the tool's complexity (5 params, no output schema, no annotations), the description covers payment, usage, and cost well, but it does not explain what the tool returns or whether the operation is asynchronous (e.g., whether the agent must poll with await_result or get_job_result). This is a significant gap for an agent that needs to handle the result correctly.

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

Parameters4/5

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

The input schema already covers all 5 parameters with descriptions (100% coverage), so baseline is 3. The description adds value by giving concrete examples for the 'query' parameter ('person', 'car', 'watermark') and explicitly linking 'paymentId' to the create_payment tool. It does not address box_threshold or text_threshold, but these are already well-defined in the schema.

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

Purpose5/5

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

The description clearly states the tool's function: removing unwanted objects from images using natural language descriptions, with no mask needed. It specifies the action ('remove'), the resource ('objects from images'), and the input method ('describing what to remove'). This distinguishes it from sibling tools like remove_background, which targets the background rather than arbitrary objects.

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

Usage Guidelines4/5

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

The description provides clear usage context: describe the object to remove (with examples 'person', 'car', 'watermark'), pay via create_payment with toolName='remove_object', and no API key or signup needed. However, it does not explicitly contrast with alternative image-editing tools in the sibling set, such as edit_image or deblur_image, so the agent must infer when this tool is specifically appropriate.

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

render_cardAInspect

Render a typographic card — headline, versus (two columns), list, stat (one big number) or quote — as a PNG or JPEG at 1920x1080 or 2560x1440. Deterministic layout, no AI model: the text you send is exactly what appears, which no image generator can promise. Built for video title cards and slides, thumbnails, quote cards and social posts. Lists and comparisons REVEAL one beat at a time (revealed:N / show_right:false) — render N states and cut between them, and the text never shifts. Optional theme (hex colours). Text coverage: Latin, Greek and Cyrillic (DejaVu Sans) with Noto Sans fallback for Arabic, Indic, Thai, Chinese, Japanese and Korean; emoji render as single-colour silhouettes in the text colour, not in full colour. Returns { url, width, height, format, mime, expires_in_seconds } — the url is a signed download valid 2 h; fetch it, the image is not inlined. Hard caps: 3 lines x 40 chars, 6 items x 40 chars — a spec over a cap is refused BEFORE payment. 5 sats per card. Pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='render_card'.

ParametersJSON Schema
NameRequiredDescriptionDefault
subNostat: small line above the number, e.g. a year
leftNoversus: left value (up to 22 chars)
sizeNoOutput size (default 1920x1080)1920x1080
textNoquote: the quoted words (up to 30 chars)
itemsNolist: 1-6 items, each up to 40 chars; the last revealed item is drawn in the accent colour
labelNostat: caption under the number (up to 60 chars)
linesNoheadline: 1-3 lines, each up to 40 characters
rightNoversus: right value, drawn in the accent colour
themeNoOptional hex colours: background, foreground, accent, muted (default: near-black ground, Bitcoin-orange accent)
titleNolist: small caps title (up to 40 chars)
valueNostat: the big number (up to 12 chars), e.g. '34 Md $'
formatNoOutput format (default png)png
sourceNoquote: attribution line (up to 60 chars)
variantYesCard layout
revealedNolist: how many items are shown (default all) — render 1..N for a beat-by-beat reveal
paymentIdYesValid payment ID (must be paid)
left_labelNoversus: small label over the left value (up to 28 chars)
show_rightNoversus: false renders the left column only (first beat of a two-state reveal)
accent_lineNoheadline: index of the line drawn in the accent colour
right_labelNoversus: small label over the right value

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and delivers an exceptionally detailed disclosure: deterministic layout with exact text fidelity, beat-by-beat reveal semantics ('text never shifts'), script/emoji rendering limits, signed-URL expiry (2 h, 'image is not inlined'), cap enforcement 'refused BEFORE payment', and Lightning pricing. This is a model disclosure profile for a paid render tool; there is no contradiction with any structured data.

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

Conciseness5/5

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

Every clause earns its place: core capability first, then determinism, use cases, reveal behavior, font coverage, return shape, caps, and pricing — in that order. For a tool with 20 parameters, five variants, no annotations, and no output schema, the length is warranted density, not bloat. There is no filler or boilerplate.

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

Completeness5/5

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

Despite having no output schema and no annotations, the description covers the return shape ({ url, width, height, format, mime, expires_in_seconds }), the fetch-the-URL behavior, the payment prerequisite and price, validation caps, and font limits. An agent could invoke this tool correctly with only the description plus the already-descriptive schema; the only minor ellision is error-handling for invalid/expired payments.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, and the description genuinely adds beyond the schema by composing parameters into patterns ('Lists and comparisons REVEAL one beat at a time (revealed:N / show_right:false)') and by tying paymentId to the create_payment prerequisite. The count/length caps are already encoded in the schema (1-6 items, 1-3 lines), making the description's cap mention partly redundant, so it stops short of a 5.

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

Purpose5/5

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

States a specific verb ('Render'), a specific resource (a typographic card with five named variants: headline, versus, list, stat, quote), and concrete output constraints (PNG/JPEG at 1920x1080 or 2560x1440). The 'no AI model... which no image generator can promise' line explicitly distinguishes it from sibling image-generation tools, so an agent can select it correctly without inspecting schemas.

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

Usage Guidelines4/5

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

Names concrete use cases ('video title cards and slides, thumbnails, quote cards and social posts') and the required companion flow ('Requires create_payment with toolName='render_card''). The determinism contrast with image generators gives implicit when-to-use guidance, though no sibling tool is explicitly named as the alternative and there is no explicit when-not-to-use statement.

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. CLAIM WINDOW: refunds must be claimed within 30 days — after that the LNURL link stops working and the refund expires, so do not bank a link for later.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoOptional email address for follow-up
invoiceYesLightning address (e.g., user@wallet.com) or bolt11 invoice for the refund
feedbackNoOptional description of what went wrong (max 2000 chars)
paymentIdYesThe payment ID from a failed service call

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and succeeds. It discloses a side effect (sends email to operator), duplicate-detection behavior (returns existing LNURL instead of creating a duplicate), and the 30-day expiration of refund links. This goes well beyond basic expectations.

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

Conciseness5/5

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

The description is dense but every sentence adds value. It front-loads the core purpose, then provides critical exceptions and warnings without redundancy. The structure is logical and scannable.

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

Completeness4/5

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

For a tool with 4 parameters, no output schema, and no annotations, the description covers the use case, exclusions, side effects, and expiry thoroughly. However, it doesn't specify what the agent should expect in the successful response for the normal manual ticket creation (e.g., a ticket ID), which is a minor gap given the absence of an output schema.

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

Parameters3/5

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

Schema description coverage is 100%, so parameters are already fully documented. The description does not add additional parameter-specific meaning; it focuses on behavioral context. Baseline of 3 applies.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Open a MANUAL 48-hour refund review ticket for a service that FAILED (error, timeout, wrong output).' It also distinguishes itself from automatic refunds by explicitly naming the sibling services (ai_call, voice_bridge) and instructing not to use this tool for those cases.

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

Usage Guidelines5/5

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

Provides explicit when-to-use ('for a service that FAILED') and when-not-to-use guidance ('DO NOT call this for unused-minute refunds on metered services'). It also explains the fallback behavior for metered payments with pending LNURL refunds and includes the 30-day claim window, which is critical for agent decision-making.

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. 25 sats per image, pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='restore_face'.

ParametersJSON Schema
NameRequiredDescriptionDefault
upscaleNoOutput upscale factor 1-4 (default 2)
fidelityNoFidelity to input: 0.0 = max quality enhancement, 1.0 = max identity preservation (default 0.5)
paymentIdYesValid payment ID (must be paid)
imageBase64YesBase64-encoded image containing faces (PNG, JPEG, WEBP) or data URI
face_upsampleNoUpsample restored faces (default true)
background_enhanceNoAlso enhance the background (default true)

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses several behavioral traits: adjustable fidelity, background enhancement, upsampling, stable endpoint with automatic model upgrades, and pricing. However, it does not mention the output format (e.g., base64 image, URL) or potential failure modes, which is a notable gap.

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

Conciseness4/5

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

The description is a compact paragraph that front-loads purpose and then provides model info, adjustment options, and payment details. It is efficient, though the technical FID score and model citation add slightly more detail than strictly needed for agent selection.

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

Completeness3/5

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

The description covers purpose, key parameters, payment requirement, and model stability, which is good. However, with no output schema, it omits return value details (e.g., output image format or how to retrieve the result), which is essential for a tool that returns data.

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

Parameters3/5

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

The schema already covers all 6 parameters with clear descriptions (100% coverage). The description adds some high-level context for fidelity ('balance between quality enhancement and identity preservation') and mentions background/upscaling, but the schema already explains each parameter in detail, so the added value is marginal.

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

Purpose5/5

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

The description opens with a specific verb+resource: 'Restore blurry, damaged, or AI-generated faces to sharp, natural quality.' This clearly distinguishes it from sibling tools like deblur_image (general deblurring) and upscale_image (general upscaling) by emphasizing face-specific restoration.

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

Usage Guidelines4/5

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

It provides clear context for when to use the tool (face restoration, background enhancement, upscaling) and the required payment flow via create_payment. However, it does not explicitly mention when not to use it or name alternatives, so it lacks exclusions.

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

send_emailA
Destructive
Inspect

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'.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesRecipient email address
bodyYesEmail body text (plain text, max 10,000 characters)
replyToNoOptional reply-to email address
subjectYesEmail subject (max 200 characters)
paymentIdYesValid payment ID (must be paid) No impersonation, scams, threats, harassment, credential theft, unsolicited bulk messages, or contact after an opt-out. Answering a call does not establish consent. We screen requests after payment. Held messages and calls are not sent or placed; payment is retained during review, not refunded immediately. Confirmed violations are not refunded. Unresolved communication holds become eligible for a refund after 24 hours; refund eligibility is processed by scheduled maintenance. Human review costs 1 sat at https://sats4ai.com/appeal. Recent message text and extracts of recording transcripts support recipient-scoped abuse checks for 24 hours. These context records are deleted hourly, so storage can last up to 25 hours. Original uploaded-call transcripts and raw held-request or appeal evidence enter cleanup after 30 days. We also keep a de-identified record of screened communications to measure and improve fraud detection. Identifiers in it — contact addresses, numbers and names that follow a greeting — are replaced with one-way tokens, and it holds no destination number and no account, because the service has none. De-identification is not anonymization: text a sender wrote can still identify someone. Do not submit personal information the service does not need. Providers keep records under their own policies.

TDQS

A4.2/5.0
Behavior4/5

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

The description adds meaningful operational behavior beyond annotations: no SMTP server, no domain verification, no API key/signup, plain-text-only content, character limits, 200 sats cost, and Lightning payment. Annotations already signal destructive/open-world behavior, and the description enriches that context without contradicting it.

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

Conciseness5/5

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

Every sentence carries operational or usage information: use case, setup requirements, content constraints, cost, payment method, and prerequisite call. The description is dense but not bloated, with no filler or redundant restatement of the tool name.

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

Completeness5/5

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

For a paid external-communication tool, the definition covers recipient, subject, body, payment flow, cost, and setup requirements. The lengthy paymentId schema description supplies the review/hold/refund behavior, so together the tool definition gives an agent everything needed to invoke it correctly.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds value beyond the schema by stating the cost (200 sats) and the required create_payment workflow with the exact toolName parameter. It also reinforces subject/body limits, though those are already in the schema.

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

Purpose4/5

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

The description clearly identifies the resource as email ('Reach anyone with an email address') and gives concrete use cases: formal communication, reports, and contacting people outside chat. It doesn't explicitly distinguish from send_sms/send_fax siblings, but the email focus is unmistakable.

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

Usage Guidelines4/5

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

It provides clear context for when to use the tool: formal communication, reports, or external contact. It also explains the prerequisite payment flow via create_payment with toolName='send_email'. It doesn't state exclusions or compare directly with SMS/fax alternatives, so it stops short of a 5.

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

send_faxA
Destructive
Inspect

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). Text/cover support Latin (incl. Central European, Vietnamese), Greek, Cyrillic, Japanese, Korean, Chinese (Simplified + Traditional), Thai, Hindi, Georgian, Armenian, Amharic; RTL scripts (Arabic/Hebrew) and emoji are rejected BEFORE your payment is consumed. 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes'pdf' = send PDF from pdfUrl. 'text' = generate PDF from typed text.
textNoRequired for mode=text: message text to format as PDF
pagesNoExpected page count (1-350). Used for pricing. Pass same value to create_payment as 'quantity'.
pdfUrlNoRequired for mode=pdf: public HTTPS URL returning application/pdf
coverTextNoOptional cover page text (mode=pdf only, adds 1 page)
paymentIdYesValid payment ID (must be paid)
phoneNumberYesDestination fax number in E.164 format (e.g. +14155550100)

TDQS

A4.6/5.0
Behavior4/5

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

Discloses modes, language support, rejection behavior, pricing, max pages/size, and payment necessity. Annotations already indicate destructiveHint=true (consumes credit), and description adds context about what gets rejected pre-payment. Could mention retry or status behavior 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.

Conciseness4/5

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

Description is substantial but front-loaded with use cases. Every sentence adds value (pricing, limitations, mode details). Could be slightly more structured (e.g., bullet points) but is not verbose.

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

Completeness5/5

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

Given 7 parameters, complex dual-mode behavior, language support, and pricing details, the description covers all necessary aspects. No output schema exists, but behavior and constraints are fully explained, enabling correct invocation.

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

Parameters4/5

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

Schema covers all parameters with descriptions. Description adds value by specifying phone number format (E.164), explaining pages as quantity for create_payment, and clarifying mode differences (pdfUrl vs text). Provides more context than schema alone.

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

Purpose5/5

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

Description uses specific verb 'send' and resource 'fax', lists use cases (loan paperwork, signed contract, booking confirmation), and distinguishes two modes (pdf/text). Clearly differentiates from sibling receive_fax.

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

Usage Guidelines5/5

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

Explicitly states when to use (need paper trail, worldwide), provides mode selection criteria, lists rejected content (RTL, emoji) before payment, details pricing and prerequisite paymentId, and directs to create_payment for proper invoicing.

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

send_smsA
Destructive
Inspect

Reach a human via SMS when your task requires real-world coordination. Send to any phone number worldwide — delivery timing varies by destination. 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. Each SMS ends with a short signature line naming the service and a safety/stop link, within the paid segment count. No impersonation, scams, threats, harassment, credential theft, unsolicited bulk messages, or contact after an opt-out. Answering a call does not establish consent. We screen requests after payment. Held messages and calls are not sent or placed; payment is retained during review, not refunded immediately. Confirmed violations are not refunded. Unresolved communication holds become eligible for a refund after 24 hours; refund eligibility is processed by scheduled maintenance. Human review costs 1 sat at https://sats4ai.com/appeal. Recent message text and extracts of recording transcripts support recipient-scoped abuse checks for 24 hours. These context records are deleted hourly, so storage can last up to 25 hours. Original uploaded-call transcripts and raw held-request or appeal evidence enter cleanup after 30 days. We also keep a de-identified record of screened communications to measure and improve fraud detection. Identifiers in it — contact addresses, numbers and names that follow a greeting — are replaced with one-way tokens, and it holds no destination number and no account, because the service has none. De-identification is not anonymization: text a sender wrote can still identify someone. Do not submit personal information the service does not need. Providers keep records under their own policies.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYesMessage text (max 1544 chars — a short signature line is appended; billed per SMS segment)
paymentIdYesValid payment ID (must be paid)
phoneNumberYesPhone 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.

TDQS

A4.4/5.0
Behavior5/5

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

Going well beyond the openWorldHint/destructiveHint annotations, the description discloses irreversible and conditional behaviors: international numbers are delivered one-way via an alphanumeric sender ID with 'no error returned,' messages are screened after payment, 'held messages and calls are not sent,' refunds are not immediate, and answering a call does not establish consent. It also surfaces data-retention windows and de-identification caveats. Nothing contradicts 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.

Conciseness3/5

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

The core purpose, payment requirement, and matching constraint are efficiently front-loaded in the first few sentences. However, the back half becomes a near-privacy-policy (appeal costs, 24-hour context records, 30-day cleanup, de-identification limits) that is far more verbose than needed for an agent to select and invoke the tool correctly; it could be condensed significantly without losing invocation-relevant guidance.

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

Completeness4/5

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

For a destructive, world-facing tool with no output schema, the description covers the payment prerequisite, delivery caveats, screening/hold behavior, refund rules, consent constraints, and data handling. The main gap is the lack of any description of the return value or how to confirm the send outcome (e.g., via check_payment_status), though no output schema exists to fill that void.

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

Parameters4/5

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

Schema coverage is 100%, so parameter basics are already documented, giving a baseline of 3. The description adds critical cross-tool semantics not in the schema: phoneNumber and message 'must match those used in create_payment,' and the billed segment count includes an appended signature line plus safety/stop link. This is meaningful value beyond the structured fields.

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

Purpose5/5

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

The opening sentence, 'Reach a human via SMS when your task requires real-world coordination,' names a specific verb, channel, and purpose, and the claim of sending to 'any phone number worldwide' differentiates it from siblings like send_email, send_fax, and place_call. The tool's resource (SMS to a phone) is unambiguous, with no confusion about what it is for.

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

Usage Guidelines4/5

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

'When your task requires real-world coordination' supplies a clear trigger condition, and the explicit prerequisite — 'Requires create_payment with toolName='send_sms' and phoneNumber+message at payment time' — gives a concrete preconditions. However, no sibling tool is named and there is no explicit 'use send_email instead when...' exclusion, so alternative routing is left to inference.

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, voice design, ~106 chars/sat — use 'language' parameter with ISO code), Inworld Premium (#1 ranked TTS ELO 1217, emotion control, 40+ languages, ~16 chars/sat), Minimax Studio (voice cloning from reference clip, 40+ languages, ~5 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'.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText to convert to speech
speedNoSpeech speed multiplier (0.5-2.0)
voiceNoVoice 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, ~5 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, ~16 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)
modelIdNoOptional. 3 tiers: OmniVoice Global (602+ langs, ~106 chars/sat), Inworld Premium (#1 ranked, ~16 chars/sat), Minimax Studio (voice cloning, ~5 chars/sat). Omit for default.
languageNoOmniVoice tier ONLY: ISO 639 language code (646 supported). 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 language list at the GET /api/l402/text-to-speech endpoint.
paymentIdYesValid payment ID (must be paid)
voice_descriptionNoOmniVoice only: voice-design words, one per group, separated by commas: male|female; child|teenager|young adult|middle-aged|elderly; very low|low|moderate|high|very high pitch; whisper; american|british|australian|canadian|indian|chinese|korean|japanese|portuguese|russian accent. Example: 'female, young adult, high pitch'. Any other word is refused before payment.

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden and does well: it discloses the return value (audio URL), the payment model (Bitcoin Lightning, no API key/signup), the prerequisite (create_payment with toolName='text_to_speech'), and per-tier throughput limits. It omits any mention of rate limits, failure modes, or async/latency behavior for long text, which keeps it short of a 5.

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

Conciseness4/5

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

Front-loads the three-tier model, then payment, then exclusions, then language routing — a sensible order. The tier character-limit figures are repeated from the schema descriptions, adding mild redundancy, and the tier list is dense, but no sentence is genuinely wasted.

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

Completeness4/5

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

There is no output schema, so the description must state the result, and it does ('Returns audio URL'). The payment prerequisite and toolName value are given, and tier/language tradeoffs are covered. What is missing for a 7-parameter, 467-voice tool is guidance on voice vs. voice_description precedence and expected latency, but the core is complete.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds genuine cross-parameter meaning: it ties tier selection to modelId, explains that language= is silently ignored on non-OmniVoice tiers, and states that rare-language coverage is achieved via the language= parameter rather than by picking a voice. That is more than the schema alone conveys.

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

Purpose5/5

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

States a specific verb+resource (text-to-speech) and immediately differentiates the three internal tiers (OmniVoice Global, Inworld Premium, Minimax Studio) with languages, quality, and per-tier character economics. It also names the sibling tools it is not (place_call, ai_call, open_voice_bridge), so the agent can route without opening any schema.

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

Usage Guidelines5/5

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

Explicit when-NOT-to-use section routes phone-call scenarios to place_call/ai_call/open_voice_bridge, and it gives a positive selection rule for rare/underserved languages (pick OmniVoice via language= because Inworld/Minimax do not cover them). Both conditions and alternatives are spelled out.

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 WORD-LEVEL timestamps (timestamps:'word' returns per-word start/end times — subtitle alignment, karaoke captions, cutting video to speech) or segment 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'.

ParametersJSON Schema
NameRequiredDescriptionDefault
diarizeNoIdentify different speakers (default false). Forces segment granularity upstream. If the speaker-label request fails, you still get the text, and result.degraded includes 'diarization'.
languageNoLanguage code (e.g., 'en', 'es')
paymentIdYesValid payment ID (must be paid)
timestampsNoTimestamp granularity in result.segments. 'word' returns per-word start/end times (subtitle alignment, karaoke captions, cutting video to speech). Default 'segment'. If the timestamp request fails, you still get the text, and result.degraded includes 'timestamps' (no segments, srt or vtt).
audioBase64YesBase64 encoded audio file
callback_idNoOptional correlation string echoed back in the webhook body. Max 128 chars.
callback_urlNoOptional HTTPS webhook we POST when the job finishes (HMAC-signed). Polling still works.

TDQS

A4.1/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so well: it discloses async behavior returning a requestId, the polling lifecycle, the exact pricing (10 sats/min), the ephemerality/privacy guarantee ('never persisted'), the payment precondition, and the degraded-result behavior on partial failure. Nearly everything an agent needs to run this safely is spelled out.

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

Conciseness4/5

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

Dense but tightly packed with a clear front-loaded purpose statement followed by timestamps, engine, languages, limits, workflow, cost, and privacy. A few clauses (word-timestamp use cases, language enumeration) repeat the schema, but there is little true filler.

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

Completeness5/5

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

No output schema exists, and the description compensates by explaining the return shape (requestId) and that the agent must poll and fetch results. For a paid, asynchronous, mutation-style operation with 7 parameters, the coverage of cost, prerequisites, and lifecycle is complete.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description restates the timestamps:'word' use cases and the 13-language list, but this largely duplicates the enum and per-parameter descriptions already in the schema rather than adding new syntax or format guidance.

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

Purpose4/5

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

States a specific verb and resource with scope: transcribe audio to text with word- or segment-level timestamps, plus the underlying engine, language support, and file limits. It distinguishes the tool by what it produces (timestamps, not translation), though it never names transcribe_translate as the sibling an agent should choose instead when translation is needed.

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

Usage Guidelines4/5

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

Gives a concrete operational workflow: create_payment with toolName='transcribe_audio' first, then poll via check_job_status(jobType='transcription'), then get_job_result. This is clear context for invoking it. What's missing is an explicit exclusion rule versus transcribe_translate or other audio siblings.

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'.

ParametersJSON Schema
NameRequiredDescriptionDefault
paymentIdYesValid payment ID (must be paid)
audioBase64YesBase64-encoded audio file
sourceLanguageNoOptional — 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.
targetLanguageYesTarget language — English name (e.g. 'Spanish') or ISO-639 code (e.g. 'es', 'en-US'). 119 languages supported.

TDQS

A4.4/5.0
Behavior4/5

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

Despite no annotations, description discloses async polling, payment requirement, auto-detection, and a warning about language inaccuracies. Covers key behaviors well.

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

Conciseness4/5

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

Front-loaded with main purpose, each sentence adds value, though slightly verbose. No redundancy.

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

Completeness5/5

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

Covers prerequisites, async result handling, pricing comparison, and language limitations. Complete for a complex tool without output schema.

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

Parameters4/5

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

Schema coverage is 100%, but description adds context: explains paymentId origin, lists allowed source language codes with warning, and clarifies target language formats.

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

Purpose5/5

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

Description clearly states it transcribes and translates audio from 13 source languages to 119 target languages, distinguishes from sibling tools transcribe_audio and translate_text by being a compound endpoint and cheaper.

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

Usage Guidelines4/5

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

Provides clear use cases (WhatsApp voice messages, meeting recordings) and contrasts with separate calls, but lacks explicit when-not-to-use instructions.

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

translate_epubAInspect

Translate a whole EPUB into another language and get an EPUB back. Every chapter is translated with its markup intact — headings, emphasis, footnote links, images and code stay where they were — the package language is retargeted and the table of contents is translated. 119 target languages; the target language picks the engine and the engine's row carries the price (same per-character rate as translate_text for that language, min 50 sats). Async — returns requestId, poll with check_job_status(jobType='translate-epub'), then get_job_result for the download url (temporary, 6h). Pay with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='translate_epub', characterCount (visible characters of the book) and targetLanguage; the real file is re-priced at execution and a short-pay is refunded with the exact amount to re-pay.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNameNoOptional original filename, used to name the download.
paymentIdYesValid payment ID (must be paid)
epubBase64YesBase64-encoded EPUB (max 50 MB)
sourceLanguageNoOptional source-language hint. Omit to let the model read it from the text.
targetLanguageYesTarget language — English name (e.g. 'Spanish') or ISO-639 code (e.g. 'es'). Must equal the targetLanguage the payment was quoted with.

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations provided, the description carries the full behavioral burden and does so thoroughly. It discloses the async requestId flow, polling via check_job_status with jobType='translate-epub', temporary 6-hour download URLs, engine selection by language, per-character pricing, the create_payment prerequisite, re-pricing at execution, and short-pay refunds. This goes well beyond a basic summary.

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

Conciseness5/5

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

The description is dense but every sentence earns its place: purpose, fidelity guarantees, language/price model, async flow, payment requirements, and edge-case refunds are all covered. The main action is front-loaded, and the rest follows a logical order from call to polling to payment details.

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

Completeness5/5

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

Given no output schema and no annotations, the description covers everything an agent needs to invoke the tool correctly: required inputs, async behavior, how to poll, where to fetch the result, how to pay, and what to do about re-pricing. The only minor omission is guidance on error handling, but the description is unusually complete for a complex paid async tool.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds meaningful semantics beyond the schema by stating that paymentId must be a valid paid payment ID and that targetLanguage must equal the language used when creating the payment. It also ties the characterCount used in create_payment to the tool's pricing model, which helps the agent plan the payment step.

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

Purpose5/5

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

The opening sentence, 'Translate a whole EPUB into another language and get an EPUB back,' states a specific verb, resource, and output, clearly distinguishing this tool from siblings like translate_text and epub_to_audiobook. The added detail about preserving markup, translating the TOC, and retargeting package language further pins down the exact scope.

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

Usage Guidelines4/5

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

The description makes the usage context clear: whole-book EPUB translation with markup preservation, async polling, and Lightning payment. It references translate_text only for rate comparison rather than explicitly saying 'use this instead of translate_text for EPUBs,' so it stops short of explicit when-not guidance, but the context is strong enough for an agent to select it correctly.

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

translate_rare_languageAInspect

Translate into 452 languages, 251 of them NOT supported by ChatGPT, Claude or Gemini (29 of those 251 measured at fair quality or better against human references) — including Bhojpuri (~50M speakers), Maithili (~34M), Egyptian Arabic (~100M), Moroccan Arabic (~30M), Chhattisgarhi, Magahi, Manipuri, Kashmiri, Shan, Kachin, Awadhi, Tamazight, Crimean Tatar, Quechua, Nuer, Sango, plus indigenous and minority languages with no callable API anywhere. Runs MADLAD-400 (Apache-2.0). QUALITY VARIES AND IS PUBLISHED PER LANGUAGE: every language carries a measured tier — good (chrF++ >= 45 vs human reference translations), fair (32-45), unverified (no benchmark exists, untested, may be poor), experimental (known weak). The response repeats the tier so you can judge how much to trust it. GET https://sats4ai.com/api/l402/translate-rare-language for the full language list with tiers, or GET /api/languages. Unsupported languages are rejected BEFORE payment. For mainstream languages use translate_text instead — it is cheaper and more fluent. Priced 50 sats base + 0.002 sats/char (GPU). Pay with Bitcoin Lightning — no API key or signup. Requires create_payment with toolName='translate_rare_language'.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText to translate. Max 6000 characters.
paymentIdYesValid payment ID (must be paid). Price = 50 sats + 0.002/char.
targetLanguageYesMADLAD language code ('mag', 'arz', 'bho', 'hne') or English name ('Magahi', 'Egyptian Arabic'). Rejected before payment if unsupported.

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations, the description fully discloses quality tiers (good/fair/unverified/experimental), model used (MADLAD-400), and that response includes the tier. No hidden behaviors.

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

Conciseness4/5

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

The description is thorough and well-organized, with key information front-loaded. A few minor redundancies (e.g., listing many languages) but generally every sentence adds value.

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

Completeness5/5

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

Given 3 required parameters and no output schema, the description covers all essential aspects: quality, payment, prerequisites, and fallback tool. No gaps identified.

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

Parameters4/5

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

All three parameters have descriptions in the schema (100% coverage). The description adds value by clarifying text length limit, pricing formula per character, and acceptable language identifiers (codes or English names).

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

Purpose5/5

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

The description clearly states it translates into rare languages, specifying 452 languages, many not supported by other chatbots. It explicitly distinguishes from mainstream translation tools and provides concrete language examples.

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

Usage Guidelines5/5

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

Explicitly recommends using 'translate_text' for mainstream languages (cheaper, more fluent). Describes payment flow via Bitcoin Lightning. States unsupported languages are rejected before payment.

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. The target language picks the engine: GPT-OSS 120B by default, or a higher-scoring model (Gemini) where one measurably beats it. Auto-detects source language. Privacy-preserving: no data stored. Pricing: 1 sat per 1,000 characters on the standard engine, minimum 1 sat per request; a routed language costs more. GET /api/languages returns the exact price, engine and measured chrF for every language, and the 402 always quotes the real amount before you pay. 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).

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText to translate
modelIdNoOptional. Translation model is selected automatically.
paymentIdYesValid payment ID (must be paid)
sourceLanguageNoSource 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.
targetLanguageYesTarget language — English name ('Spanish', 'Chinese (Simplified)') or ISO-639 code / locale tag ('es', 'pt-BR'). 119 supported; full list at the GET /api/l402/translate-text endpoint.

TDQS

A3.6/5.0
Behavior4/5

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

With no annotations provided, the description carries the full behavioral burden and performs well: it discloses engine selection (GPT-OSS default, Gemini when better), privacy/no data storage, exact pricing per character, minimum payment, and the requirement to call create_payment. It is missing some edge-case behavior like rate limits or explicit error handling, but it reveals substantially more than the schema alone.

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

Conciseness3/5

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

The description is front-loaded with the central purpose and key behaviors like auto-detection and privacy. However, it is not concise: the 119-language list is a large block of tokens that largely duplicates the endpoint reference and schema note, and the pricing details are more verbose than necessary for calling the tool.

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

Completeness3/5

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

The description covers a great deal: language coverage, engine selection, language formats, payment requirements, privacy, and pricing. But without an output schema, it never explicitly states the return value or how the translated text is delivered, and it omits guidance on choosing this tool over sibling tools. These gaps prevent it from being fully complete for a complex payment-gated tool.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3, but the description adds meaningful context: it maps targetLanguage to engine selection, explains that text drives the per-character price, and details the create_payment workflow. It also reinforces the auto-detection behavior for omitted sourceLanguage, going beyond the schema's basic parameter descriptions.

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

Purpose4/5

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 a specific verb and resource, so the tool's core function is unmistakable. It also mentions source auto-detection, which further clarifies the behavior. However, it does not explicitly distinguish itself from sibling translation tools like translate_rare_language, so it misses the differentiation needed for a 5.

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

Usage Guidelines3/5

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

The description provides clear usage context: it translates text, auto-detects the source language, and requires a payment created via create_payment. It also gives helpful instruction about omitting sourceLanguage and using language names or ISO codes. Yet it gives no explicit guidance on when not to use it versus sibling alternatives such as translate_rare_language or multilingual_ask.

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'.

ParametersJSON Schema
NameRequiredDescriptionDefault
scaleNoUpscale factor: 2x or 4x (default 4x)
paymentIdYesValid payment ID (must be paid)
imageBase64YesBase64-encoded image (PNG, JPEG, WEBP) or data URI
face_enhanceNoApply face enhancement during upscaling (default false)

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations provided, the description fully discloses behavioral traits: it names the model (Real-ESRGAN), states it recovers real detail (not interpolation), mentions optional face enhancement, describes stable endpoint with automatic upgrades, and lists pricing (5 sats per image, pay-per-request with Lightning, no API key). 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.

Conciseness5/5

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

The description is concise (~70 words) and front-loaded with the primary action. Every sentence adds value: purpose, technical details, payment requirement, and behavioral notes. No redundancy.

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

Completeness4/5

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

For a tool with 4 parameters and no output schema, the description covers behavior, prerequisites, pricing, and model information. It does not describe the return format (e.g., base64 image), but given the context, it is reasonably complete.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all parameters. The description adds marginal value by noting the default scale (4x) and that imageBase64 can be a data URI. For a high-coverage schema, baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool upscales images 2x or 4x using neural super-resolution. It distinguishes itself from sibling tools like 'edit_image', 'generate_image', and 'restore_face' by focusing on resolution enhancement via machine learning.

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

Usage Guidelines4/5

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

The description explicitly requires a prior payment via 'create_payment' with toolName='upscale_image', which is a clear usage prerequisite. However, it does not specify when to use this tool over alternatives like 'edit_image' or 'restore_face', leaving some ambiguity.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
textNoText to speak (mode 1). Uses OmniVoice TTS.
encodingNoEncoding of audioBase64. mp3/opus require ffmpeg (not yet wired in MVP).
languageNoLanguage override for this utterance (default: session language)
sessionIdYesSession ID from open_voice_bridge
audioBase64NoPre-rendered audio bytes, base64 (mode 2). Use with 'encoding'.
voiceDescriptionNoOmniVoice voice-design words, one per group, separated by commas: male|female; child|teenager|young adult|middle-aged|elderly; very low|low|moderate|high|very high pitch; whisper; american|british|australian|canadian|indian|chinese|korean|japanese|portuguese|russian accent. When OmniVoice speaks the line, any other word is dropped: it speaks in its default voice and the reply carries a warning. When OmniVoice was not ready at open_voice_bridge, a fallback voice speaks and ignores this field.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations only declare openWorldHint, so the description carries the load and does well: it discloses a real side effect (STT is auto-muted during injection so the agent doesn't hear itself), the billing behavior (covered by session deposit, no extra payment), and TTS fallback behavior with a warning on the reply. Missing only error/latency behavior to reach a 5.

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

Conciseness4/5

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

Front-loads the core action, then the two modes, then the side effect and cost note; every sentence contributes. It is somewhat dense (long clauses and parentheticals) but no sentence is filler.

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

Completeness4/5

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

For a 6-parameter mutation-style tool with no output schema and minimal annotations, the description supplies the essential operational context: prerequisite session, mode selection, side effects, billing, and fallback voice behavior. Only return-value/error detail is thin, which is acceptable given no output schema.

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

Parameters3/5

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

Schema description coverage is 100% and the schema already labels text as '(mode 1)' and audioBase64/encoding as '(mode 2)', including enum values and the voiceDescription fallback caveat. The description's mode framing adds little beyond that, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb and target ('Inject audio into an open Voice Bridge call') and then enumerates two distinct modes, so an agent knows immediately this is a live-call audio injection tool. It only implicitly distinguishes itself from siblings like text_to_speech or open_voice_bridge via the sessionId prerequisite, so differentiation is present but not spelled out.

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

Usage Guidelines4/5

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

Clearly frames usage: it operates on an already-open call (via sessionId from open_voice_bridge) and routes the caller into mode 1 (text/TTS) or mode 2 (bring-your-own audio). It does not explicitly say when to prefer a sibling such as text_to_speech instead, so guidance is strong but not exhaustive.

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'.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesService slug to vote for (from list_planned_services)
paymentIdYesValid payment ID (1 sat, must be paid)

TDQS

A4.7/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It discloses cost ('1 sat per vote'), behavior ('multiple votes allowed'), return format ('Returns JSON: { success, slug, newVoteCount }'), and prioritization logic ('Highest-voted services get prioritized'). Could add error handling details, but overall strong.

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

Conciseness5/5

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

Three succinct sentences. First sentence states action and return, second covers cost and allowance, third covers prerequisite and outcome. No fluff, every sentence adds value.

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

Completeness5/5

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

Given two required params, no enums, no output schema, the description covers all necessary context: payment flow, slug discovery, return structure, and voting rules. It is fully 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.

Parameters4/5

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

Schema coverage is 100% but description adds context beyond schema: for slug it adds 'from list_planned_services', for paymentId it adds '1 sat, must be paid'. This aids correct usage beyond the schema's basic descriptions.

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

Purpose5/5

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

Description clearly states 'Vote for a planned service to be built next' with a specific verb (vote) and resource (planned service). It distinguishes from sibling 'list_planned_services' by mentioning it as a prerequisite, and no other sibling tool duplicates this purpose.

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

Usage Guidelines5/5

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

Explicitly says to 'Call list_planned_services first' for valid slugs and vote counts, and 'Requires create_payment with toolName='vote_on_service''. Provides clear when-to-use and prerequisites.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • Changedcreate_payment1 field changed
      • changedInput schema / properties / resolution / description
        Previous value: -"768p (default) or 2K for generate_video / animate_image — priced by resolution × duration, native audio free; 2K is upscaled from a 768p render. 480p/720p/1080p are retired Seedance rungs, still accepted (480p/720p→768p, 1080p→2K). For edit_image: flat 200 sats at any size, so resolution does not change the price."New value: +"768p (default) or 2K for generate_video / animate_image — priced by resolution × duration, native audio free; 2K is upscaled from a 768p render. 480p/720p/1080p are retired Seedance rungs, still accepted (480p/720p→768p, 1080p→2K). For edit_image: a flat 200 sats per edit, so resolution does not change the price."
    • Changededit_image3 fields changed
      • changedInput schema / properties / aspectRatio / description
        Previous value: -"Output aspect ratio (default: match_input_image)"New value: +"Output aspect ratio (default: match_input_image, which keeps the input's shape)"
      • addedInput schema / properties / aspectRatio / enum
        Added value: +[
        +  "match_input_image",
        +  "auto",
        +  "1:1",
        +  "4:3",
        +  "3:4",
        +  "16:9",
        +  "9:16",
        +  "3:2",
        +  "2:3"
        +]
      • changedInput schema / properties / resolution / description
        Previous value: -"Output resolution. Accepted for compatibility and does not change the price: every edit is 200 sats."New value: +"Ignored: MAI-Image-2.6 has no resolution setting. Accepted for compatibility; every edit is 200 sats."
  2. 4 tool updates
    • Changedepub_to_audiobook1 field changed
      • changedInput schema / properties / voice / description
        Previous value: -"Voice ID. Must belong to the resolved tier's own voice set — Minimax: English_expressive_narrator, Wise_Woman, Deep_Voice_Man; Inworld: Ashley, Abby. OMIT to get a valid default for whichever tier is used. Ashley is Inworld-ONLY and is rejected on the Minimax tier."New value: +"Voice ID. Must belong to the resolved tier's own voice set — Minimax: English_expressive_narrator, Wise_Woman, Deep_Voice_Man; Inworld: Ashley, Abby. OMIT to get a valid default for whichever tier is used. Ashley is Inworld-ONLY and is rejected on the Minimax tier. On the OmniVoice tier, voice is a voice design instead: words, one per group, separated by commas: male|female; child|teenager|young adult|middle-aged|elderly; very low|low|moderate|high|very high pitch; whisper; american|british|australian|canadian|indian|chinese|korean|japanese|portuguese|russian accent. Omit it for OmniVoice's default voice. Any other word is refused, and the payment stays unused."
    • Changedtext_to_speech1 field changed
      • changedInput schema / properties / voice_description / description
        Previous value: -"OmniVoice only: describe desired voice (e.g., 'female, young adult, high pitch')"New value: +"OmniVoice only: voice-design words, one per group, separated by commas: male|female; child|teenager|young adult|middle-aged|elderly; very low|low|moderate|high|very high pitch; whisper; american|british|australian|canadian|indian|chinese|korean|japanese|portuguese|russian accent. Example: 'female, young adult, high pitch'. Any other word is refused before payment."
    • Changedtranscribe_audio2 fields changed
      • changedInput schema / properties / diarize / description
        Previous value: -"Identify different speakers (default false). Forces segment granularity upstream."New value: +"Identify different speakers (default false). Forces segment granularity upstream. If the speaker-label request fails, you still get the text, and result.degraded includes 'diarization'."
      • changedInput schema / properties / timestamps / description
        Previous value: -"Timestamp granularity in result.segments. 'word' returns per-word start/end times (subtitle alignment, karaoke captions, cutting video to speech). Default 'segment'."New value: +"Timestamp granularity in result.segments. 'word' returns per-word start/end times (subtitle alignment, karaoke captions, cutting video to speech). Default 'segment'. If the timestamp request fails, you still get the text, and result.degraded includes 'timestamps' (no segments, srt or vtt)."
    • Changedvoice_bridge_say1 field changed
      • changedInput schema / properties / voiceDescription / description
        Previous value: -"Free-form voice description for TTS (e.g., 'calm female voice')"New value: +"OmniVoice voice-design words, one per group, separated by commas: male|female; child|teenager|young adult|middle-aged|elderly; very low|low|moderate|high|very high pitch; whisper; american|british|australian|canadian|indian|chinese|korean|japanese|portuguese|russian accent. When OmniVoice speaks the line, any other word is dropped: it speaks in its default voice and the reply carries a warning. When OmniVoice was not ready at open_voice_bridge, a fallback voice speaks and ignores this field."
  3. 2 tool updates
    • Changedcreate_payment1 field changed
      • changedInput schema / properties / resolution / description
        Previous value: -"768p (default) or 2K for generate_video / animate_image — priced by resolution × duration, native audio free; 2K is upscaled from a 768p render. 480p/720p/1080p are retired Seedance rungs, still accepted (480p/720p→768p, 1080p→2K). For edit_image: 1K=200, 2K=300, 4K=450 sats."New value: +"768p (default) or 2K for generate_video / animate_image — priced by resolution × duration, native audio free; 2K is upscaled from a 768p render. 480p/720p/1080p are retired Seedance rungs, still accepted (480p/720p→768p, 1080p→2K). For edit_image: flat 200 sats at any size, so resolution does not change the price."
    • Changededit_image1 field changed
      • changedInput schema / properties / resolution / description
        Previous value: -"Output resolution. 1K=200 sats, 2K=300 sats, 4K=450 sats"New value: +"Output resolution. Accepted for compatibility and does not change the price: every edit is 200 sats."
  4. 1 tool update
    • Changedopen_voice_bridge1 field changed
      • addedInput schema / properties / greeting
        Added value: +{
        +  "description": "Spoken the instant the callee answers (max 500 chars). Synthesized while the phone rings, so there is no pause before the first word — without it the callee hears silence until your first voice_bridge_say lands. Strongly recommended for any call a human answers.",
        +  "type": "string"
        +}
  5. 1 tool update
    • Changedopen_voice_bridge1 field changed
      • changedInput schema / properties / refundAddress / description
        Previous value: -"Lightning address for automatic refund of unused time"New value: +"Lightning address (e.g. you@wallet.com). Strongly recommended: the unused deposit is sent here automatically when the call ends, so nobody has to claim anything. Without it the refund waits as an LNURL-withdraw link."
  6. 1 tool update
    • Changedsend_sms1 field changed
      • changedInput schema / properties / message / description
        Previous value: -"Message text (max 1544 chars — unverified-sender notice prepended; billed per SMS segment)"New value: +"Message text (max 1544 chars — a short signature line is appended; billed per SMS segment)"
  7. 2 tool updates
    • Changededit_image1 field changed
      • addedInput schema / properties / returnBase64
        Added value: +{
        +  "default": false,
        +  "description": "Also return the edited image as a base64 data URL (base64Image). Default false: imageUrl is the deliverable and the base64 copy is megabytes of context.",
        +  "type": "boolean"
        +}
    • Changedget_job_result1 field changed
      • addedInput schema / properties / paymentId
        Added value: +{
        +  "description": "The paymentId that bought this job. On a failed job the refund is opened either way; the claim link (lnurl_withdraw / refund_secret) is returned only when this matches — or call check_payment_status(paymentId).",
        +  "type": "string"
        +}
  8. 1 tool update
    • Changedsend_email1 field changed
      • changedInput schema / properties / paymentId / description
        Previous value: -"Valid payment ID (must be paid) No impersonation, scams, threats, harassment, credential theft, unsolicited bulk messages, or contact after an opt-out. Answering a call does not establish consent. We screen requests after payment. Held messages and calls are not sent or placed; payment is retained during review, not refunded immediately. Confirmed violations are not refunded. Unresolved communication holds become eligible for a refund after 24 hours; refund eligibility is processed by scheduled maintenance. Human review costs 1 sat at https://sats4ai.com/appeal. Recent message text and extracts of recording transcripts support recipient-scoped abuse checks for 24 hours. These context records are deleted hourly, so storage can last up to 25 hours. Original uploaded-call transcripts and raw held-request or appeal evidence enter cleanup after 30 days. Providers keep records under their own policies."New value: +"Valid payment ID (must be paid) No impersonation, scams, threats, harassment, credential theft, unsolicited bulk messages, or contact after an opt-out. Answering a call does not establish consent. We screen requests after payment. Held messages and calls are not sent or placed; payment is retained during review, not refunded immediately. Confirmed violations are not refunded. Unresolved communication holds become eligible for a refund after 24 hours; refund eligibility is processed by scheduled maintenance. Human review costs 1 sat at https://sats4ai.com/appeal. Recent message text and extracts of recording transcripts support recipient-scoped abuse checks for 24 hours. These context records are deleted hourly, so storage can last up to 25 hours. Original uploaded-call transcripts and raw held-request or appeal evidence enter cleanup after 30 days. We also keep a de-identified record of screened communications to measure and improve fraud detection. Identifiers in it — contact addresses, numbers and names that follow a greeting — are replaced with one-way tokens, and it holds no destination number and no account, because the service has none. De-identification is not anonymization: text a sender wrote can still identify someone. Do not submit personal information the service does not need. Providers keep records under their own policies."
  9. 1 tool update
    • Changedclone_voice2 fields changed
      • addedInput schema / properties / consent
        Added value: +{
        +  "description": "Required. Set true to attest that you own this voice or have the speaker's permission to clone it. Cloning a voice to impersonate someone is prohibited (sats4ai.com/terms).",
        +  "type": "boolean"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "paymentId",
        -  "voiceFileUrl"
        -]New value: +[
        +  "paymentId",
        +  "voiceFileUrl",
        +  "consent"
        +]
  10. 1 tool update
    • Changedget_model_pricing2 fields changed
      • changedInput schema / properties / modelId / description
        Previous value: -"The AI model database ID"New value: +"The AI model database ID from list_models. A numeric string (\"16\") is accepted and coerced."
      • changedInput schema / properties / modelId / type
        Previous value: -"number"New value: +[
        +  "number",
        +  "string"
        +]
  11. 1 tool update
    • Changedclone_voice1 field changed
      • changedInput schema / properties / voiceFileUrl / description
        Previous value: -"Public URL to audio file of the voice to clone"New value: +"Public URL to audio file of the voice to clone. MP3, M4A or WAV, 10 seconds to 5 minutes, 20 MB max. One speaker, no background music."
  12. 1 tool update
    • Changedtext_to_speech1 field changed
      • changedInput schema / properties / modelId / description
        Previous value: -"Optional. 3 tiers: OmniVoice Global (602+ langs, ~108 chars/sat), Inworld Premium (#1 ranked, ~16 chars/sat), Minimax Studio (voice cloning, ~5 chars/sat). Omit for default."New value: +"Optional. 3 tiers: OmniVoice Global (602+ langs, ~106 chars/sat), Inworld Premium (#1 ranked, ~16 chars/sat), Minimax Studio (voice cloning, ~5 chars/sat). Omit for default."
  13. 2 tool updates
    • Changedgenerate_music9 fields changed
      • removedInput schema / properties / audio_format
        Removed value: -{
        -  "description": "Output format. Default: mp3",
        -  "enum": [
        -    "mp3",
        -    "wav",
        -    "pcm"
        -  ],
        -  "type": "string"
        -}
      • removedInput schema / properties / bitrate
        Removed value: -{
        -  "description": "Audio bitrate. Default: 256000",
        -  "enum": [
        -    32000,
        -    64000,
        -    128000,
        -    256000
        -  ],
        -  "type": "integer"
        -}
      • addedInput schema / properties / duration
        Added value: +{
        +  "description": "Song length in seconds, 15-300. THE PRICE (5 sats/second) — must match the duration sent to create_payment. Default: 15",
        +  "type": "integer"
        +}
      • removedInput schema / properties / is_instrumental
        Removed value: -{
        -  "description": "Set true for instrumental-only (no vocals). When true, prompt is required, lyrics are ignored.",
        -  "type": "boolean"
        -}
      • changedInput schema / properties / lyrics / description
        Previous value: -"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]"New value: +"Song lyrics with section tags (up to 3,500 chars). Each tag on its OWN line, words on the lines after it — words sharing a line with a tag are dropped. Tags: [intro], [verse], [pre-chorus], [chorus], [post-chorus], [bridge], [instrumental], [solo], [outro]. Send only tags and no words for an instrumental."
      • addedInput schema / properties / lyricsAbout
        Added value: +{
        +  "description": "Optional, with lyricsAddon: what the lyrics should be about. Omit and the subject is inferred from your music prompt.",
        +  "type": "string"
        +}
      • addedInput schema / properties / lyricsAddon
        Added value: +{
        +  "description": "Set true to have the lyrics written for you (+25 sats, billed on the song's own invoice). Must also be sent to create_payment.",
        +  "type": "boolean"
        +}
      • removedInput schema / properties / lyrics_optimizer
        Removed value: -{
        -  "description": "Set true to auto-generate lyrics from prompt when lyrics are empty.",
        -  "type": "boolean"
        -}
      • removedInput schema / properties / sample_rate
        Removed value: -{
        -  "description": "Audio sample rate. Default: 44100",
        -  "enum": [
        -    16000,
        -    24000,
        -    32000,
        -    44100
        -  ],
        -  "type": "integer"
        -}
    • Changedtext_to_speech2 fields changed
      • changedInput schema / properties / modelId / description
        Previous value: -"Optional. 3 tiers: OmniVoice Global (602+ langs, ~111 chars/sat), Inworld Premium (#1 ranked, ~17 chars/sat), Minimax Studio (voice cloning, ~6 chars/sat). Omit for default."New value: +"Optional. 3 tiers: OmniVoice Global (602+ langs, ~108 chars/sat), Inworld Premium (#1 ranked, ~16 chars/sat), Minimax Studio (voice cloning, ~5 chars/sat). Omit for default."
      • changedInput schema / properties / voice / description
        Previous value: -"Voice ID. 467 total voices. Use list_models to see available TTS models. Or paste a custom cloned voice ID.\n\n## Minimax Studio — voice cloning from reference clip, ~6 chars/sat (332 voices)\n### Arabic (2)\nArabic_CalmWoman (Female, Middle Aged, Serene, calm female); Arabic_FriendlyGuy (Male, Middle Aged, Warm, friendly male)\n### Cantonese (6)\nCantonese_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)\n### Chinese (34)\nChinese (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)\n### Czech (3)\nczech_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)\n### Dutch (2)\nDutch_kindhearted_girl (Female, Young, Compassionate, kind young female); Dutch_bossy_leader (Male, Middle Aged, Commanding, bossy male)\n### English (45)\nEnglish_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)\n### Finnish (3)\nfinnish_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)\n### French (6)\nFrench_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)\n### German (3)\nGerman_FriendlyMan (Male, Middle Aged, Warm, friendly male); German_SweetLady (Female, Middle Aged, Sweet, gentle female); German_PlayfulMan (Male, Middle Aged, Fun, playful male)\n### Greek (3)\ngreek_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)\n### Hindi (3)\nhindi_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)\n### Indonesian (9)\nIndonesian_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)\n### Italian (4)\nItalian_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)\n### Japanese (15)\nJapanese_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)\n### Korean (49)\nKorean_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)\n### Polish (4)\nPolish_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)\n### Portuguese (73)\nPortuguese_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)\n### Romanian (4)\nRomanian_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)\n### Russian (8)\nRussian_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)\n### Spanish (47)\nSpanish_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)\n### Thai (4)\nThai_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)\n### Turkish (2)\nTurkish_CalmWoman (Female, Middle Aged, Serene, calm female); Turkish_Trustworthyman (Male, Middle Aged, Reliable, trustworthy male)\n### Ukrainian (2)\nUkrainian_CalmWoman (Female, Middle Aged, Serene, calm female); Ukrainian_WiseScholar (Male, Old, Learned, scholarly male)\n### Vietnamese (1)\nVietnamese_kindhearted_girl (Female, Young, Compassionate, kind young female)\n\n## Inworld Max Premium — #1 ranked TTS, ~17 chars/sat (135 voices)\n### Arabic (2)\nNour (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)\n### Chinese (4)\nJing (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)\n### Dutch (4)\nErik (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)\n### English (95)\nAbby (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)\n### French (4)\nAlain (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)\n### German (2)\nJohanna (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)\n### Hebrew (2)\nOren (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)\n### Hindi (2)\nManoj (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)\n### Italian (2)\nGianni (Male, Middle Aged, Deep, smooth Italian male voice that speaks rapidly); Orietta (Female, Middle Aged, Calm adult female Italian voice, with a soothing cadence)\n### Japanese (2)\nAsuka (Female, Middle Aged, Friendly, young adult Japanese female voice); Satoshi (Male, Middle Aged, Dramatic, expressive male Japanese voice filled with energy)\n### Korean (4)\nHyunwoo (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)\n### Polish (2)\nSzymon (Male, Middle Aged, Polish adult male voice with a warm, friendly quality); Wojciech (Male, Middle Aged, A middle-aged Polish male voice)\n### Portuguese (2)\nHeitor (Male, Middle Aged, Composed Portuguese-speaking male voice with a neutral tone); Maitê (Female, Middle Aged, Middle-aged Portuguese-speaking female voice)\n### Russian (4)\nDmitry (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)\n### Spanish (4)\nDiego (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)"New value: +"Voice ID. 467 total voices. Use list_models to see available TTS models. Or paste a custom cloned voice ID.\n\n## Minimax Studio — voice cloning from reference clip, ~5 chars/sat (332 voices)\n### Arabic (2)\nArabic_CalmWoman (Female, Middle Aged, Serene, calm female); Arabic_FriendlyGuy (Male, Middle Aged, Warm, friendly male)\n### Cantonese (6)\nCantonese_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)\n### Chinese (34)\nChinese (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)\n### Czech (3)\nczech_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)\n### Dutch (2)\nDutch_kindhearted_girl (Female, Young, Compassionate, kind young female); Dutch_bossy_leader (Male, Middle Aged, Commanding, bossy male)\n### English (45)\nEnglish_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)\n### Finnish (3)\nfinnish_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)\n### French (6)\nFrench_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)\n### German (3)\nGerman_FriendlyMan (Male, Middle Aged, Warm, friendly male); German_SweetLady (Female, Middle Aged, Sweet, gentle female); German_PlayfulMan (Male, Middle Aged, Fun, playful male)\n### Greek (3)\ngreek_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)\n### Hindi (3)\nhindi_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)\n### Indonesian (9)\nIndonesian_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)\n### Italian (4)\nItalian_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)\n### Japanese (15)\nJapanese_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)\n### Korean (49)\nKorean_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)\n### Polish (4)\nPolish_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)\n### Portuguese (73)\nPortuguese_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)\n### Romanian (4)\nRomanian_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)\n### Russian (8)\nRussian_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)\n### Spanish (47)\nSpanish_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)\n### Thai (4)\nThai_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)\n### Turkish (2)\nTurkish_CalmWoman (Female, Middle Aged, Serene, calm female); Turkish_Trustworthyman (Male, Middle Aged, Reliable, trustworthy male)\n### Ukrainian (2)\nUkrainian_CalmWoman (Female, Middle Aged, Serene, calm female); Ukrainian_WiseScholar (Male, Old, Learned, scholarly male)\n### Vietnamese (1)\nVietnamese_kindhearted_girl (Female, Young, Compassionate, kind young female)\n\n## Inworld Max Premium — #1 ranked TTS, ~16 chars/sat (135 voices)\n### Arabic (2)\nNour (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)\n### Chinese (4)\nJing (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)\n### Dutch (4)\nErik (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)\n### English (95)\nAbby (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)\n### French (4)\nAlain (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)\n### German (2)\nJohanna (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)\n### Hebrew (2)\nOren (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)\n### Hindi (2)\nManoj (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)\n### Italian (2)\nGianni (Male, Middle Aged, Deep, smooth Italian male voice that speaks rapidly); Orietta (Female, Middle Aged, Calm adult female Italian voice, with a soothing cadence)\n### Japanese (2)\nAsuka (Female, Middle Aged, Friendly, young adult Japanese female voice); Satoshi (Male, Middle Aged, Dramatic, expressive male Japanese voice filled with energy)\n### Korean (4)\nHyunwoo (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)\n### Polish (2)\nSzymon (Male, Middle Aged, Polish adult male voice with a warm, friendly quality); Wojciech (Male, Middle Aged, A middle-aged Polish male voice)\n### Portuguese (2)\nHeitor (Male, Middle Aged, Composed Portuguese-speaking male voice with a neutral tone); Maitê (Female, Middle Aged, Middle-aged Portuguese-speaking female voice)\n### Russian (4)\nDmitry (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)\n### Spanish (4)\nDiego (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)"
  14. 3 tool updates
    • Changedplace_call1 field changed
      • changedInput schema / properties / message / description
        Previous value: -"Text to speak via TTS (max 500 chars). Provide this OR audioUrl."New value: +"Text to speak via TTS; must fit prepaid minutes including safety notices. Provide this OR audioUrl."
    • Changedsend_email1 field changed
      • changedInput schema / properties / paymentId / description
        Previous value: -"Valid payment ID (must be paid)"New value: +"Valid payment ID (must be paid) No impersonation, scams, threats, harassment, credential theft, unsolicited bulk messages, or contact after an opt-out. Answering a call does not establish consent. We screen requests after payment. Held messages and calls are not sent or placed; payment is retained during review, not refunded immediately. Confirmed violations are not refunded. Unresolved communication holds become eligible for a refund after 24 hours; refund eligibility is processed by scheduled maintenance. Human review costs 1 sat at https://sats4ai.com/appeal. Recent message text and extracts of recording transcripts support recipient-scoped abuse checks for 24 hours. These context records are deleted hourly, so storage can last up to 25 hours. Original uploaded-call transcripts and raw held-request or appeal evidence enter cleanup after 30 days. Providers keep records under their own policies."
    • Changedsend_sms1 field changed
      • changedInput schema / properties / message / description
        Previous value: -"Message text (max 1544 chars — short disclaimer auto-appended; billed per SMS segment)"New value: +"Message text (max 1544 chars — unverified-sender notice prepended; billed per SMS segment)"

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.