FalaAI API (MCP)
Server Details
FalaAI API MCP server: transcribe audio, diagnose conversations, audit compliance (ISO 18295-1).
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 5 tools
Most tools are clearly distinct: health checks connectivity, transcribe_audio converts audio to text, extract_whatsapp parses WhatsApp exports, and risk_audit focuses on compliance auditing. The only real overlap is between diagnostic and risk_audit, since both take diarized transcripts with similar schemas, but the descriptions explicitly steer generic summarization to diagnostic and compliance violations to risk_audit, mitigating the confusion.
Naming mixes plain nouns (diagnostic, health, risk_audit) with verb_noun patterns (extract_whatsapp, transcribe_audio). All are snake_case and readable, but there is no single predictable convention across the set.
Five tools is well-scoped for the domain: one health check plus four focused capabilities (transcribe, generic diagnose, compliance audit, WhatsApp extraction). Each tool earns its place without redundancy.
The surface covers the core lifecycle for a stateless analysis API: check health, transcribe audio, run generic diagnosis, run risk audit, and extract WhatsApp conversations. Because the service is intentionally stateless, no retrieval/list tools are needed, though the absence of a batch or job-status operation is a minor gap.
Available Tools
5 toolsdiagnosticAInspect
Analyzes a call transcript and returns six structured blocks: dialogue summary, contact reason, identified action, theme label, predominant sentiment and identified participants with roles, names, confidence and evidence; use it for a fast, generic diagnosis of what happened in a call, and use /v1/analyze/riskAudit instead when the goal is compliance violation auditing. Provide at least one of dialog (primary source: diarized transcript in the format 'Speaker 1: [00:00:00.540 - 00:00:01.139] text', speaker labels accepted in any case as Speaker, Interlocutor, Hablante, Locutor or Orador plus number) or text (plain transcript fallback), each up to 300,000 characters; when dialog is used duration_seconds is required by the schema and, when provided, must be >= the last turn end time. Required: language; optional: model (always 'falaai-diagnostic-1'), audio_events, response_language (language of the results, defaulting to language), participants (up to 10 with interlocutor and optional name and role agent/client/bot, ground truth when the role is informed and otherwise inferred), call_direction (inferred when omitted), client_reference_id (echoed verbatim, charset [A-Za-z0-9 _/:.-], max 60). Returns id, object 'analysis', response_language, analysis with the six blocks, usage (characters, credits_consumed, processing_ms) and html_report (base64 gzip) only when dialog is provided; with text-only input the participant roles are forced to confidence 'low'. This call consumes credits and the amount actually charged is returned in usage.credits_consumed. Stateless: neither the transcript nor the analysis is persisted (only billing and usage metadata is logged), protecting personal data under LGPD. IMPORTANT: this call charges credits and the result is NOT stored — you MUST read the FULL response and relay ALL of its information to the user (all six blocks, usage and html_report; no omissions, no shortening), and persist it if the user may need it later; calling again charges again.
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | ||
| dialog | No | ||
| language | Yes | ||
| audio_events | No | ||
| participants | No | ||
| call_direction | No | ||
| duration_seconds | No | ||
| response_language | No | ||
| client_reference_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full burden and does so thoroughly: it discloses credit charging, the stateless nature (nothing persisted, LGPD protection), the text-only confidence downgrade, and the conditional html_report. It also warns the agent to relay the full response because the result is not stored and re-calling re-charges.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and outputs, then inputs, then billing caveats, which is a sensible order. However it is a single dense block and the closing IMPORTANT paragraph largely restates the earlier credit-charging and non-persistence points, adding length beyond what the ideas require.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter tool with no output schema and no annotations, the description supplies the missing return format, conditional outputs, billing behavior and data-handling posture. An agent has everything needed to invoke it correctly and relay results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage and 9 parameters, the description compensates fully: it specifies the dialog turn format, the text fallback, the 300k character cap, the duration_seconds >= last turn end rule, the language requirement, the fixed model value, response_language defaulting, participants (up to 10, roles, ground-truth vs inferred) and the client_reference_id charset/length.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (analyzes) and resource (call transcript) and enumerates the six return blocks, so an agent knows exactly what it produces. It also explicitly differentiates itself from the sibling risk_audit by scoping this tool to generic diagnosis versus compliance auditing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use ('fast, generic diagnosis of what happened in a call') and a named alternative with its selecting condition ('use /v1/analyze/riskAudit instead when the goal is compliance violation auditing'). It also distinguishes dialog vs text input paths, leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_whatsappAInspect
Extracts and segments the conversations of a WhatsApp export (.zip or .txt containing chat.txt in UTF-8 with at least one turn) and, unless it is a preview, resolves each selected conversation with AI by transcribing voice/audio/video notes and describing visual expressions, returning the segmented conversations with speakers, dialogs, counts and usage. Provide the export as file_base64 (base64 of the .zip/.txt bytes) plus optional filename. Use dry_run=true for a PREVIEW: it validates the file, segments the conversations, counts media and ESTIMATES the credits WITHOUT calling the AI and WITHOUT charging (credits_charged=0), returning object whatsapp_preview with credits_total, the params actually used, the windows, per-conversation items and warnings. The window is given either as a single start/end pair or as windows, a JSON string holding a non-empty list of sub-objects each with start and end; windows must not be combined with start/end, and a windows selection is the deduplicated chronological union of the overlaps, which bypasses the noise filter and keeps conversations that are monologues or below min_messages, while for a single window sending only one of start/end is rejected and empty/all-zeros values select the real period of the export, both being allowed to be omitted in dry_run while outside dry_run both absent is rejected. timezone and date_format are required, where date_format must be day_first, month_first or year_first. gap_minutes is optional (default 720) and splits conversations on idle gaps, min_messages is optional (default 2) and is the minimum messages kept per conversation outside the explicit windows selection, voice_note is optional (default true) and turns voice/audio/video media into text, expression is optional (default true) and describes visual expressions (figurinha, GIF, emoji), and client_reference_id is optional, echoed verbatim, charset A-Za-z0-9 space _/:.- up to 60 chars. Outside the preview, this call consumes credits and the amount actually charged is returned in usage.credits_consumed; the preview credits_total is an estimate and the preview charges nothing; files are limited to 1GB and the endpoint is stateless (export and media processed in memory, temporary files removed, nothing persisted), returning object conversations with id (wc-), usage and the conversations (conversation_id, first_at, last_at, duration_seconds, speakers, dialog, message_count, characters) plus meta. IMPORTANT: this call charges credits and the result is NOT stored — you MUST read the FULL response and relay ALL of its information to the user (the complete list of conversations with their dialogs and counts, usage and meta; no omissions, no shortening), and persist it if the user may need it later; calling again charges again.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | ||
| start | No | ||
| dry_run | No | ||
| windows | No | ||
| filename | No | export.zip | |
| timezone | Yes | ||
| expression | No | ||
| voice_note | No | ||
| date_format | Yes | ||
| file_base64 | Yes | ||
| gap_minutes | No | ||
| min_messages | No | ||
| client_reference_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full burden and does so thoroughly: it discloses credit consumption, that dry_run charges nothing, the 1GB file limit, the stateless in-memory processing with temporary files removed, and the imperative to relay the full chargeable result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and key constraints are front-loaded, and nearly every sentence carries load-bearing detail, so the length is justified by the tool's complexity. However, it is delivered as one very dense run-on block that is hard to parse, which costs it a point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description fully covers the return shape: the preview object (credits_total, params, windows, items, warnings) and the paid result (conversations with conversation_id, timestamps, speakers, dialog, counts) plus usage and meta. Nothing an agent needs is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, yet the description documents essentially all 13 parameters: file_base64, filename, dry_run, start/end vs windows semantics, timezone, date_format enum values, gap_minutes (720), min_messages (2), voice_note (true), expression (true), and the client_reference_id charset/length constraint.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: extracts and segments conversations from a WhatsApp export, then resolves them with AI via transcription and visual-expression description. An agent can clearly tell what it does, though it does not explicitly differentiate from the sibling transcribe_audio.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides rich when-to-use guidance: dry_run=true for a free validating preview, and the rules for choosing windows vs start/end. It does not name alternative tools, so it stops short of the explicit 'use X instead' routing that would warrant a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
healthAInspect
Checks the connection to the FalaAI API and returns its health and version (status, version, uptime, database, phase, launch date). Use it FIRST to confirm the MCP is working before any billable call. This tool is FREE: it does not consume credits, does not require the API key (the health endpoint is public), performs no analysis and stores nothing.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and discharges it well: it is free, consumes no credits, requires no API key (public endpoint), performs no analysis, and stores nothing. These are exactly the cost/side-effect facts an agent needs before deciding to call it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with what it does, then when to use it, then cost/side-effect guarantees. Every clause earns its place; nothing is redundant with structured fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter tool with no output schema, the description supplies the missing return shape (status, version, uptime, database, phase, launch date) and the missing safety/cost profile. An agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline credit applies. No misleading parameter claims are made.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Checks the connection to the FalaAI API and returns its health and version") and even enumerates the returned fields. It is clearly distinguishable from siblings like diagnostic or risk_audit because it is framed as the pre-flight connectivity check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit ordering guidance ("Use it FIRST to confirm the MCP is working before any billable call"), which tells the agent exactly when to invoke it. It does not name a specific alternative sibling to use later, so it stops short of full when/when-not routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
risk_auditAInspect
Runs a compliance risk audit on a diarized call transcript, detecting violations and positives, applying the ISO 31000 risk matrix, classifying the conversation into a level and returning the verdict with the applied actions and the NIST/OWASP risk framework enquadramento; use it for compliance and quality audits of company-agent-to-client calls, not for generic conversation summarization. Required fields: dialog (diarized transcript in the format 'Speaker 1: [00:00:00.540 - 00:00:01.139] text', speaker labels accepted in any case as Speaker, Interlocutor, Hablante, Locutor or Orador plus number; plain text is not accepted; max 300,000 characters), duration_seconds (total audio duration in seconds, must be >= the last turn end time) and language plus response_language (only pt-BR, en-US or es-ES). Optional: model (always 'falaai-risk-audit-1'), audio_events (up to 500, each requiring event and start_s), participants (up to 10 with interlocutor and role agent/client/bot, ground truth when provided, else inferred), call_direction (inbound/outbound, inferred when omitted), response_format (only 'v2'), client_reference_id (echoed verbatim, charset [A-Za-z0-9 _/:.-], max 60). Returns response (V2) with meta+usage, participants, verdict with level and applied actions, scores, detections (violations, positives, client alerts), analysis frameworks, timeline, categories_summary, executive summary, scoring explanation and an HTML report (gzip+base64). This call consumes credits and the amount actually charged is returned in response.meta.usage.credits_consumed. Stateless: neither the transcript nor the analysis is persisted (only billing and usage metadata is logged), protecting personal data under LGPD. IMPORTANT: this call charges credits and the result is NOT stored — you MUST read the FULL response and relay ALL of its information to the user (every field, including verdict, scores, detections, timeline and html_report; no omissions, no shortening), and persist it if the user may need it later; calling again charges again.
| Name | Required | Description | Default |
|---|---|---|---|
| dialog | Yes | ||
| language | Yes | ||
| audio_events | No | ||
| participants | No | ||
| call_direction | No | ||
| response_format | No | v2 | |
| duration_seconds | Yes | ||
| response_language | No | ||
| client_reference_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and delivers: it discloses that the call consumes credits, that the exact charge is returned in response.meta.usage.credits_consumed, that the operation is stateless with only billing/usage metadata logged, and explicitly warns that nothing is persisted so the caller must relay and save the full response. This is exactly the kind of cost/side-effect/retention 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Content is dense and front-loaded with purpose before parameter detail, and almost every clause delivers a constraint. It loses a point for redundancy: the credit-charging and non-persistence facts are stated twice (mid-paragraph and again in the closing IMPORTANT sentence), and the single unbroken paragraph makes scanning harder than it needs to be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description fully enumerates the V2 return shape (meta+usage, participants, verdict, scores, detections, frameworks, timeline, categories_summary, executive summary, scoring explanation, gzip+base64 HTML report) and adds the operational caveat that the response is not stored. Nothing essential for correct invocation or result handling is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate and does so extensively: dialog format string with speaker-label variants and 300k char cap, duration_seconds consistency constraint (>= last turn end), the pt-BR/en-US/es-ES enum for language and response_language, audio_events limit of 500, participants limit of 10 with role values, call_direction values, response_format 'v2', and client_reference_id charset and max length.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb+resource ('Runs a compliance risk audit on a diarized call transcript') and enumerates the specific processing steps (violation/positive detection, ISO 31000 matrix, risk-level classification, NIST/OWASP framework mapping). It explicitly separates itself from the sibling space by ruling out generic summarization, so an agent can distinguish it from transcribe_audio or diagnostic without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear when-to-use ('compliance and quality audits of company-agent-to-client calls') and a when-not ('not for generic conversation summarization'). It stops short of naming the sibling tools (e.g., transcribe_audio for raw transcription) that an agent should route to instead, so the alternative mapping is left implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transcribe_audioAInspect
Transcribes one uploaded audio file into text with speaker diarization and timestamped audio events (laughs, sighs, pauses), returning the full transcript, a turn-by-turn dialog with speaker labels and start/end timestamps, the detected events and the word count. Use it when a recording must become text for analysis, review or storage of the transcript. Provide the audio as file_base64 (base64 of the file bytes) plus optional filename; the upload is limited to 1GB and 3 hours, with accepted MIME types audio/mpeg, audio/mp3, audio/mp4, audio/m4a, audio/wav, audio/wave, audio/x-wav, audio/flac, audio/x-flac, audio/ogg, audio/opus, video/ogg, audio/webm, video/webm, audio/aac and audio/x-aac. model is optional and defaults to falaai-transcribe-1, the only supported value; language is an optional two-letter code (pt, en, es, fr, de, it, ja, ko, nl, pl, ru, tr, zh, vi, id, th, ar, hi, cs, da, el, fi, he, hu, ms, no, ro, sk, sv, ta, uk) that forces the audio language and is auto-detected when omitted; client_reference_id is optional, charset A-Za-z0-9 space _/:.- up to 60 chars, echoed verbatim (not idempotency). This call consumes credits; usage reports credits_consumed and processing_ms. Stateless: the audio is processed in memory and never persisted (LGPD). Returns id (tr-), language, language_confidence, duration_seconds, text, dialog, audio_events, event_types, word_count and input metadata (duration, format, codec, sample rate, channels). IMPORTANT: this call charges credits and the result is NOT stored — you MUST read the FULL response and relay ALL of its information to the user (including the complete dialog and text, every audio_event with its timestamps, and input metadata; no omissions, no shortening), and persist it if the user may need it later; calling again charges again.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | ||
| filename | No | audio.bin | |
| language | No | ||
| file_base64 | Yes | ||
| client_reference_id | No |
TDQS
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: credit consumption with credited/re-import warning, 1GB/3-hour limits, stateless in-memory processing (LGPD, never persisted), the fact that the result is NOT stored, and the instruction to relay the entire response. This is exactly the behavioral context an agent needs before spending credits on an irreversible call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and usage before the parameter and behavioral detail, and the IMPORTANT warning is correctly placed last. The MIME-type and language enumerations are long, but they are the only documentation of those constraints anywhere, so they earn their space rather than being padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a cost-incurring, stateless tool with no output schema, the description enumerates every returned field (id, language, language_confidence, duration_seconds, text, dialog, audio_events, event_types, word_count, input metadata), so the agent knows what to expect and relay. Nothing needed to call it correctly or handle its result is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate and does: file_base64 is defined as base64 of the file bytes with filename optional, model is documented as defaulting to the only supported value, language is documented with the full accepted code list and auto-detect behavior, and client_reference_id is given a charset, a 60-char cap and the explicit note that it is echoed verbatim and is not an idempotency key.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Transcribes one uploaded audio file into text') plus the differentiating capabilities (speaker diarization, timestamped audio events) and the exact return shape. An agent can immediately tell this apart from siblings like risk_audit or extract_whatsapp.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context for use ('when a recording must become text for analysis, review or storage of the transcript') and the scoping constraint that it handles a single file. It does not name any alternative tool or state when NOT to use it, but the sibling set offers no competing transcription option, so the omission is minor.
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.
5 tool updates
- First observed
diagnostic - First observed
extract_whatsapp - First observed
health - First observed
risk_audit - First observed
transcribe_audio
Related MCP Connectors
MCP server for Speech-to-Text
AI call analysis and voice agents for sales teams. Signup, usage, agents and call data over MCP.
MCP server that lets AI assistants use all OneSchema features exposed via the public API.
Official MCP server for OmniDimension. Drive voice agents, dispatch calls, and run bulk campaigns.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server for GovTech's Transcribe speech-to-text service, enabling audio upload, batch transcription, summaries, minutes, sections, notes, and transcript Q&A.GPL 3.0

Smallest MCP Serverofficial
AlicenseAqualityAmaintenanceMCP server for the Smallest AI platform that enables managing AI voice agents, debugging calls, and viewing analytics directly from your IDE.8496 npm1MIT
verfi-mcp-serverofficial
AlicenseNot gradedqualityCmaintenanceMCP server for Verfi — TCPA consent verification tools for AI agents.8 npmMIT- AlicenseNot gradedqualityCmaintenanceMCP server that enables audio transcription from files (wav, mp4, mp3, flac) or microphone recording, with dynamic tool selection and enterprise-grade security.3MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.