addrbookFor publishers
← The evidence ledger

Evidence row 981165

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 7ee9f90a-5db9-462d-bd1a-6cf0176a786a
Recorded
Previous row
#569756
Body SHA-256
c29020cb9ebd230105bcdad20bfc40704c60ac58a7eafc3254de7d5109efa422
Leaf
0x742deb2fe524c78cf53a06b21087d26687985ebd9bef1965598b710c52712368

What was observed

{
  "count": 5,
  "tools": [
    {
      "description": "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.",
      "inputSchema": {
        "properties": {
          "audio_events": {
            "anyOf": [
              {
                "items": {},
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Audio Events"
          },
          "call_direction": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Call Direction"
          },
          "client_reference_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Client Reference Id"
          },
          "dialog": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Dialog"
          },
          "duration_seconds": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Duration Seconds"
          },
          "language": {
            "title": "Language",
            "type": "string"
          },
          "participants": {
            "anyOf": [
              {
                "items": {},
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Participants"
          },
          "response_language": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Response Language"
          },
          "text": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Text"
          }
        },
        "required": [
          "language"
        ],
        "title": "diagnosticArguments",
        "type": "object"
      },
      "name": "diagnostic"
    },
    {
      "description": "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; via MCP the export must stay under about 45 MB (larger exports must go to POST /v1/whatsapp/extractConversations as multipart, limit 1 GB) 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.",
      "inputSchema": {
        "properties": {
          "client_reference_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Client Reference Id"
          },
          "date_format": {
            "title": "Date Format",
            "type": "string"
          },
          "dry_run": {
            "default": false,
            "title": "Dry Run",
            "type": "boolean"
          },
          "end": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "End"
          },
          "expression": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Expression"
          },
          "file_base64": {
            "title": "File Base64",
            "type": "string"
          },
          "filename": {
            "default": "export.zip",
            "title": "Filename",
            "type": "string"
          },
          "gap_minutes": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Gap Minutes"
          },
          "min_messages": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Min Messages"
          },
          "start": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Start"
          },
          "timezone": {
            "title": "Timezone",
            "type": "string"
          },
          "voice_note": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Voice Note"
          },
          "windows": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Windows"
          }
        },
        "required": [
          "file_base64",
          "timezone",
          "date_format"
        ],
        "title": "extract_whatsappArguments",
        "type": "object"
      },
      "name": "extract_whatsapp"
    },
    {
      "description": "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.",
      "inputSchema": {
        "properties": {},
        "title": "healthArguments",
        "type": "object"
      },
      "name": "health"
    },
    {
      "description": "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.",
      "inputSchema": {
        "properties": {
          "audio_events": {
            "anyOf": [
              {
                "items": {},
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Audio Events"
          },
          "call_direction": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Call Direction"
          },
          "client_reference_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Client Reference Id"
          },
          "dialog": {
            "title": "Dialog",
            "type": "string"
          },
          "duration_seconds": {
            "title": "Duration Seconds",
            "type": "number"
          },
          "language": {
            "title": "Language",
            "type": "string"
          },
          "participants": {
            "anyOf": [
              {
                "items": {},
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Participants"
          },
          "response_format": {
            "default": "v2",
            "title": "Response Format",
            "type": "string"
          },
          "response_language": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Response Language"
          }
        },
        "required": [
          "dialog",
          "duration_seconds",
          "language"
        ],
        "title": "risk_auditArguments",
        "type": "object"
      },
      "name": "risk_audit"
    },
    {
      "description": "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; via MCP the request body is capped at 64 MB, so the file must stay under about 45 MB (larger recordings must go to POST /v1/audio/transcriptions as multipart, limit 1 GB), and the audio duration is limited to 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.",
      "inputSchema": {
        "properties": {
          "client_reference_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Client Reference Id"
          },
          "file_base64": {
            "title": "File Base64",
            "type": "string"
          },
          "filename": {
            "default": "audio.bin",
            "title": "Filename",
            "type": "string"
          },
          "language": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Language"
          },
          "model": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Model"
          }
        },
        "required": [
          "file_base64"
        ],
        "title": "transcribe_audioArguments",
        "type": "object"
      },
      "name": "transcribe_audio"
    }
  ]
}

What the leaf hashes

{"body":"c29020cb9ebd230105bcdad20bfc40704c60ac58a7eafc3254de7d5109efa422","id":981165,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793234666875145,"prev":569756,"subject":"7ee9f90a-5db9-462d-bd1a-6cf0176a786a","subject_kind":"endpoint"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (242798 rows).

  1. 0x742db000f1ec51a61cecaaf7bb5a94db3f9cadd710603c3e237c343d51317277
  2. 0x1377ad0715a0ad1efdbd1d70ba6f5da445274ff5a063716ff11917979650fee0
  3. 0x6a19143c2cc98a0a72dd751c64b73ceb22b7f95182f3d63b62e83fa37fa63972
  4. 0xa2cad7c82a0d71326a8df335e4241f4c369fe9a26741c7cc7e394e90f649f72d
  5. 0xae7f5127155d18b345e860d4a534ea68084917b2211e2c839f4f2f248e9645e1
  6. 0xa957877632621015a929159a9876ca86876489e69f34008712073d4171e8dd12
  7. 0x04ce37c64ff73deb6a41fce521681caf9430a0102cfebd86694797a107da51a6
  8. 0xf136fcdb4a63ef369d9868c02f6a2021ac6bb6a9219dacd4dbdb88daad1f0d32
  9. 0xb14432e047d5ca87351e26e5d5f3f6c529c5fccc9934a327b9f9bcb1c428a2f3
  10. 0x80967295125770f0f7064782f8eeb642429044c959c7c94ae42c2ad7b3c6d48f
  11. 0xbf3b74a101a582eb28e24f68db5368e48fc4656056f5aabbe0fcaa2a9586ce8b
  12. 0x198599590f19a8367bf24eba3e1fae27d0c053b385c7b1d55332950af453b540
  13. 0xbc3fd8e509855b2d6ee4c13ed5f7f098e0a2473c66efc60e409ad0e77322a80f
  14. 0xa07c03f1ff4a33c8a0105ab761d762ba211920a4e09af3e5ae84b51a3c4cf51b
  15. 0x60b5befbd81f025904c8a3936b7ba86e3245ad5b37c615d01d42aa3227e3ed2e
  16. 0xe2d603cd6f987214550319ad4fa39952b6098bc5c1b20893b6b80e8d82a79934
  17. 0x91f12a2db1e2c1be07cbe4de3981a37a33051a36d3c3eee5a260804add6d1d75
  18. 0xd56e61af23709ed9f460471e3c08400c0142ee83e1fd9057e46350d12edf9c07
Day root
0xc050555c6b023f2aefb6536efb9f0760b92c30a0d06c572b7daf63db259ea17c
Chained
0x4cde8bae2042512e1bec11650628f0293556311cc4ea74d99ffddf02b671a7d6
Published
On Arc Testnet, block 69753317: 0x9e85c340732f416e431b111fae72f7624870125f7f379af2732eb6c2ba8cf6a1

How to check it · This row as JSON