addrbookFor publishers
← The evidence ledger

Evidence row 1289061

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint b288b652-ad5f-44d3-8448-a2287a063013
Recorded
Previous row
#1241238
Body SHA-256
186dab85576497c2d3a2a8527c8c1a43099e373a9f3925534d014c8746ee5cc7
Leaf
0x9e7a0a092d5a11f0d01426f0694f4be587999d5570476475929827f7a450ca05

What was observed

{
  "count": 14,
  "tools": [
    {
      "description": "A public web page with the results of a completed job, for your user to open or send to others. Anyone with the link can see it until the job expires.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "job_id": {
            "description": "job_id returned by transcribe_url or create_upload.",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
            "type": "string"
          },
          "robot_key": {
            "description": "The robot_key you received with your first job. Required to read or start your jobs.",
            "type": "string"
          }
        },
        "required": [
          "job_id",
          "robot_key"
        ],
        "type": "object"
      },
      "name": "create_share_link"
    },
    {
      "description": "For a file that is neither a public link nor attached in a ChatGPT chat (for example a file attached in another chat app). Returns upload_url (send the file there with an HTTP PUT, then call start_transcription) and upload_page_url (a page where your user uploads the file in a browser instead; the transcription then starts by itself).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "action_items": {
            "description": "Also extract action items when the transcript is ready.",
            "type": "boolean"
          },
          "content_type": {
            "description": "MIME type, e.g. \"audio/mpeg\" or \"video/mp4\".",
            "maxLength": 100,
            "type": "string"
          },
          "filename": {
            "description": "File name including extension, e.g. \"meeting.mp3\".",
            "maxLength": 255,
            "minLength": 1,
            "type": "string"
          },
          "language": {
            "description": "ISO 639-1 code such as \"en\". Omit to auto-detect.",
            "maxLength": 16,
            "type": "string"
          },
          "model": {
            "description": "Default \"mai-transcribe\". See get_service_info.",
            "enum": [
              "whisper",
              "mai-transcribe",
              "gemini-transcribe"
            ],
            "type": "string"
          },
          "robot_key": {
            "description": "Pass the robot_key from your earlier jobs so all your jobs stay together. Omit on your very first call — a new one is returned.",
            "type": "string"
          },
          "size_bytes": {
            "description": "Exact file size in bytes (max 2 GB).",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          },
          "speaker_labels": {
            "description": "Label who speaks when.",
            "type": "boolean"
          },
          "summary": {
            "description": "Also write an AI summary when the transcript is ready.",
            "type": "boolean"
          },
          "translate_to_english": {
            "description": "Translate the speech to English while transcribing. Only with model \"whisper\".",
            "type": "boolean"
          }
        },
        "required": [
          "filename",
          "content_type",
          "size_bytes"
        ],
        "type": "object"
      },
      "name": "create_upload"
    },
    {
      "description": "Delete the uploaded file, the transcript and all other results of a job right away, instead of 24 hours after the last activity. Cannot be undone.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "job_id": {
            "description": "job_id returned by transcribe_url or create_upload.",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
            "type": "string"
          },
          "robot_key": {
            "description": "The robot_key you received with your first job. Required to read or start your jobs.",
            "type": "string"
          }
        },
        "required": [
          "job_id",
          "robot_key"
        ],
        "type": "object"
      },
      "name": "delete_job"
    },
    {
      "description": "Price for transcribing a recording of a given length, and how many free minutes are left today — for your IP, or for your user's account once your robot_key is linked.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "duration_minutes": {
            "description": "Length of the recording in minutes.",
            "exclusiveMinimum": 0,
            "maximum": 1440,
            "type": "number"
          },
          "robot_key": {
            "description": "Pass the robot_key from your earlier jobs so all your jobs stay together. Omit on your very first call — a new one is returned.",
            "type": "string"
          }
        },
        "required": [
          "duration_minutes"
        ],
        "type": "object"
      },
      "name": "estimate_cost"
    },
    {
      "description": "Status and results of one job whose job_id you have (from transcribe_url, transcribe_file or create_upload; list_jobs finds a lost job_id). While status is \"waiting_for_upload\", \"queued\" or \"processing\", call it again every 10-20 seconds; each answer has a next_step. \"completed\": the transcript in the chosen format, download links and zip_url (all results in one ZIP), plus summary, action_items and translations when requested. \"payment_required\": a preview of the first 100 words and a payment_url to show your user; call get_job again after they pay. \"failed\": an error message. \"deleted\": the files are gone (24 hours after the last activity, or delete_job).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "format": {
            "description": "Transcript format. \"txt\" (default): plain text. \"srt\" or \"vtt\": subtitles with timecodes. \"timed\": timestamps per segment, with speaker names if the job was created with speaker_labels: true.",
            "enum": [
              "txt",
              "srt",
              "vtt",
              "timed"
            ],
            "type": "string"
          },
          "job_id": {
            "description": "job_id returned by transcribe_url or create_upload.",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
            "type": "string"
          },
          "robot_key": {
            "description": "The robot_key you received with your first job. Required to read or start your jobs.",
            "type": "string"
          }
        },
        "required": [
          "job_id",
          "robot_key"
        ],
        "type": "object"
      },
      "name": "get_job"
    },
    {
      "description": "Call this first when you are new to convert.express, before quoting a price to your user, or when unsure whether a file, link or language is supported. Returns one JSON object: how_to_use (which tool to call in which order), free_use, price (per minute, minimum charges), models, language, speaker_labels, ai_extras (summary, action items, translation), output_formats, input (max file size, audio and video formats, supported links) and privacy. Takes no parameters and changes nothing.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "get_service_info"
    },
    {
      "description": "Your jobs that still exist (jobs are deleted 24 hours after the last activity), newest first, with their status.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "robot_key": {
            "description": "The robot_key you received with your first job. Required to read or start your jobs.",
            "type": "string"
          }
        },
        "required": [
          "robot_key"
        ],
        "type": "object"
      },
      "name": "list_jobs"
    },
    {
      "description": "Pay for the full transcript of a job whose get_job status is \"payment_required\", with USDC on Tempo or a card your user shared through a Stripe Shared Payment Token (MPP). Call without payment: you get a payment challenge with the exact price — in EUR for a card, in USDC for Tempo. Your MPP client pays it and calls again. Without an MPP wallet, show payment_url from get_job to your user instead.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "job_id": {
            "description": "job_id returned by transcribe_url or create_upload.",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
            "type": "string"
          },
          "robot_key": {
            "description": "The robot_key you received with your first job. Required to read or start your jobs.",
            "type": "string"
          }
        },
        "required": [
          "job_id",
          "robot_key"
        ],
        "type": "object"
      },
      "name": "pay_job"
    },
    {
      "description": "Ask for an AI summary or action items of a completed job. Returns at once; the result appears in get_job (\"summary\" / \"action_items\").",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "job_id": {
            "description": "job_id returned by transcribe_url or create_upload.",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
            "type": "string"
          },
          "robot_key": {
            "description": "The robot_key you received with your first job. Required to read or start your jobs.",
            "type": "string"
          },
          "type": {
            "description": "\"summary\" or \"action_items\".",
            "enum": [
              "summary",
              "action_items"
            ],
            "type": "string"
          }
        },
        "required": [
          "job_id",
          "robot_key",
          "type"
        ],
        "type": "object"
      },
      "name": "request_summary"
    },
    {
      "description": "Tell the convert.express team about a bug, a missing feature, or a question — from you or your user. A human reads every message; there is no automatic reply. Include reply_email only if your user wants an answer.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "message": {
            "description": "The message in plain text. Up to 2000 characters are kept.",
            "maxLength": 4000,
            "minLength": 1,
            "type": "string"
          },
          "reply_email": {
            "description": "Email address for a human reply, only with your user's consent.",
            "maxLength": 254,
            "type": "string"
          },
          "robot_key": {
            "description": "Pass the robot_key from your earlier jobs so all your jobs stay together. Omit on your very first call — a new one is returned.",
            "type": "string"
          },
          "type": {
            "description": "What kind of message this is.",
            "enum": [
              "feature_request",
              "bug",
              "question",
              "other"
            ],
            "type": "string"
          }
        },
        "required": [
          "type",
          "message"
        ],
        "type": "object"
      },
      "name": "send_feedback"
    },
    {
      "description": "Call after the PUT to upload_url has finished. Checks the file arrived and queues it.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "job_id": {
            "description": "job_id returned by transcribe_url or create_upload.",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
            "type": "string"
          },
          "robot_key": {
            "description": "The robot_key you received with your first job. Required to read or start your jobs.",
            "type": "string"
          }
        },
        "required": [
          "job_id",
          "robot_key"
        ],
        "type": "object"
      },
      "name": "start_transcription"
    },
    {
      "description": "Start transcribing an audio or video file your user attached in a ChatGPT chat. ChatGPT fills in a temporary download link and convert.express downloads the file from it. Other chat apps cannot fill in that link: use create_upload for files attached there. Returns job_id; then poll get_job.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "action_items": {
            "description": "Also extract action items when the transcript is ready.",
            "type": "boolean"
          },
          "file": {
            "description": "An audio or video file your user attached in a ChatGPT chat.",
            "properties": {
              "download_url": {
                "description": "Temporary https:// link to the file, filled in by the chat client.",
                "maxLength": 4096,
                "type": "string"
              },
              "file_id": {
                "description": "The chat client's id for the file.",
                "maxLength": 200,
                "type": "string"
              },
              "file_name": {
                "description": "Original file name, shown in the job.",
                "maxLength": 255,
                "type": "string"
              },
              "mime_type": {
                "description": "MIME type, e.g. \"audio/mpeg\".",
                "maxLength": 100,
                "type": "string"
              }
            },
            "required": [
              "download_url",
              "file_id"
            ],
            "type": "object"
          },
          "language": {
            "description": "ISO 639-1 code such as \"en\". Omit to auto-detect.",
            "maxLength": 16,
            "type": "string"
          },
          "model": {
            "description": "Default \"mai-transcribe\". See get_service_info.",
            "enum": [
              "whisper",
              "mai-transcribe",
              "gemini-transcribe"
            ],
            "type": "string"
          },
          "robot_key": {
            "description": "Pass the robot_key from your earlier jobs so all your jobs stay together. Omit on your very first call — a new one is returned.",
            "type": "string"
          },
          "speaker_labels": {
            "description": "Label who speaks when.",
            "type": "boolean"
          },
          "summary": {
            "description": "Also write an AI summary when the transcript is ready.",
            "type": "boolean"
          },
          "translate_to_english": {
            "description": "Translate the speech to English while transcribing. Only with model \"whisper\".",
            "type": "boolean"
          }
        },
        "required": [
          "file"
        ],
        "type": "object"
      },
      "name": "transcribe_file"
    },
    {
      "description": "Start transcribing a media file from a public link (direct file link, YouTube video or Simplecast podcast episode page). Returns job_id and robot_key; then poll get_job.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "action_items": {
            "description": "Also extract action items when the transcript is ready.",
            "type": "boolean"
          },
          "language": {
            "description": "ISO 639-1 code such as \"en\". Omit to auto-detect.",
            "maxLength": 16,
            "type": "string"
          },
          "model": {
            "description": "Default \"mai-transcribe\". See get_service_info.",
            "enum": [
              "whisper",
              "mai-transcribe",
              "gemini-transcribe"
            ],
            "type": "string"
          },
          "robot_key": {
            "description": "Pass the robot_key from your earlier jobs so all your jobs stay together. Omit on your very first call — a new one is returned.",
            "type": "string"
          },
          "speaker_labels": {
            "description": "Label who speaks when.",
            "type": "boolean"
          },
          "summary": {
            "description": "Also write an AI summary when the transcript is ready.",
            "type": "boolean"
          },
          "translate_to_english": {
            "description": "Translate the speech to English while transcribing. Only with model \"whisper\".",
            "type": "boolean"
          },
          "url": {
            "description": "https:// link to the audio/video file, a YouTube video or a Simplecast episode (…simplecast.com/episodes/… or player.simplecast.com/…).",
            "maxLength": 2048,
            "type": "string"
          }
        },
        "required": [
          "url"
        ],
        "type": "object"
      },
      "name": "transcribe_url"
    },
    {
      "description": "Translate the transcript, subtitles (timecodes kept), summary or action items of a completed job into another language. Returns at once; the result appears in get_job under \"translations\".",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "job_id": {
            "description": "job_id returned by transcribe_url or create_upload.",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
            "type": "string"
          },
          "robot_key": {
            "description": "The robot_key you received with your first job. Required to read or start your jobs.",
            "type": "string"
          },
          "source": {
            "description": "What to translate. Default \"txt\". summary / action_items must exist first.",
            "enum": [
              "txt",
              "srt",
              "vtt",
              "timed",
              "summary",
              "action_items"
            ],
            "type": "string"
          },
          "target_language": {
            "description": "Language name in English, e.g. \"German\", \"Brazilian Portuguese\", \"Japanese\".",
            "maxLength": 40,
            "minLength": 2,
            "type": "string"
          }
        },
        "required": [
          "job_id",
          "robot_key",
          "target_language"
        ],
        "type": "object"
      },
      "name": "translate"
    }
  ]
}

What the leaf hashes

{"body":"186dab85576497c2d3a2a8527c8c1a43099e373a9f3925534d014c8746ee5cc7","id":1289061,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793395509743445,"prev":1241238,"subject":"b288b652-ad5f-44d3-8448-a2287a063013","subject_kind":"endpoint"}

Proof

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

  1. 0x9e7a0601e615cff55cc81db22de8c2769a617e5b922bb7c9f97ebfc114f54417
  2. 0xd3f0e602949a3b5ff8208fbcfa9261aad8b26da69b6b8f5b01ef8c89b9b67ca7
  3. 0x676f633cad1cac09e9b83ca57cae99ba32a369edf023a1a1144ea320f8b3589a
  4. 0x7ea275170721cbf2b0b86df381110290fcdb6712e6002bef2d11de6b76580d1a
  5. 0x1d93788fc9d78767d8d973ed64cfdcb6f58c7f2beb9ce681f492284013761670
  6. 0x1cf6e897bf3aa48cabb760ad8dd25e107b4e740b652e515da9792475f42adaa0
  7. 0x6378535b94fc4eb6b9afc0a191263b5b2d3e9b552fa85c9e1a9fdd91003c84d3
  8. 0xb46e11fc201cb7bbabc3cfb5f072eee2eb5c4f48f0cdac138e80b56bdf34e1d7
  9. 0x4539e7d63a7032f07e2d8da78003298a0455bb7e298fe6bf93a2f7c275795f93
  10. 0x022ef7d91e09addb716ddcdf46ce8940444c55e0cab503dc5f847ab648f67706
  11. 0x4f4586033a98b71667f25cdc001e09813d6c1bb00cb0f0444539684939b3f893
  12. 0xdedf30b66ee512346cf034daebce53fdbd82fa50d1fd252211d1926d97098963
  13. 0xd39f7d64cb3206788e8e31ad1bab3700ff64ebd64c54c91e909d88aa713d003e
  14. 0x1eeab2b7eb6c0e44e79a2d3d5d5f63d9c0f269f286347cee11c002d3e7c1c75b
  15. 0x11b43ed362a2fd4976e11eceb94ee4b7edbaf6823474ee1c36489f8f0a0496c4
  16. 0x835211170e79bdce1a823ec914e3532e128f77751e9074286da35091b0200284
  17. 0x61ef83255d34604cb052882568ca1d1386ac3cfb8284509715bc1734cff77831
  18. 0x0c43c73b62a5d49ee1444b5dc4195fc5b16b141d3f4458e2e9fbd5fd6ecb367d
Day root
0x0826c7ad6039e06a2360ca0a4a3a4fe7f2626c6dc19f71a37599386f78b39875
Chained
0x36b4c8a1063758f0b8765fa1bdf75fa92fb543cc183add3e261880ee2bd1f822
Published
On Arc Testnet, block 69923247: 0x8704744146c6967c8abc9e9a99de4db7283b29e840922ea83a69b6fe776e6861

How to check it · This row as JSON