convert.express
Transcribe audio and video to text, SRT or VTT. Summaries, action items, translation.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"transcribe": {
"url": "https://convert.express/mcp"
}
}
}Puntos de conexión remotos
https://convert.express/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (13)
🟢get_service_info
What convert.express does, how to use these tools, free minutes, prices, models, languages and limits.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢estimate_cost(duration_minutes, robot_key)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"duration_minutes": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1440,
"description": "Length of the recording in minutes."
},
"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"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢transcribe_url(url, model, language, speaker_labels, translate_to_english, ...)
Start transcribing a media file from a public link (direct file link or YouTube). Returns job_id and robot_key; then poll get_job.
Esquema de entrada
{
"type": "object",
"properties": {
"url": {
"type": "string",
"maxLength": 2048,
"description": "https:// link to the audio/video file or a YouTube video."
},
"model": {
"description": "Default \"mai-transcribe\". See get_service_info.",
"type": "string",
"enum": [
"whisper",
"mai-transcribe",
"gemini-transcribe"
]
},
"language": {
"description": "ISO 639-1 code such as \"en\". Omit to auto-detect.",
"type": "string",
"maxLength": 16
},
"speaker_labels": {
"description": "Label who speaks when.",
"type": "boolean"
},
"translate_to_english": {
"description": "Translate the speech to English while transcribing. Only with model \"whisper\".",
"type": "boolean"
},
"summary": {
"description": "Also write an AI summary when the transcript is ready.",
"type": "boolean"
},
"action_items": {
"description": "Also extract action items when the transcript is ready.",
"type": "boolean"
},
"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": [
"url"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡create_upload(filename, content_type, size_bytes, model, language, ...)
For a file on your machine: returns an upload_url. PUT the file to it, then call start_transcription. If your user attached or named a file, try the PUT first. Only if the PUT fails (no HTTP access, or it is blocked), show the returned upload_page_url to your user instead: they upload the file in a browser and it starts by itself.
Esquema de entrada
{
"type": "object",
"properties": {
"filename": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "File name including extension, e.g. \"meeting.mp3\"."
},
"content_type": {
"type": "string",
"maxLength": 100,
"description": "MIME type, e.g. \"audio/mpeg\" or \"video/mp4\"."
},
"size_bytes": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Exact file size in bytes (max 2 GB)."
},
"model": {
"description": "Default \"mai-transcribe\". See get_service_info.",
"type": "string",
"enum": [
"whisper",
"mai-transcribe",
"gemini-transcribe"
]
},
"language": {
"description": "ISO 639-1 code such as \"en\". Omit to auto-detect.",
"type": "string",
"maxLength": 16
},
"speaker_labels": {
"description": "Label who speaks when.",
"type": "boolean"
},
"translate_to_english": {
"description": "Translate the speech to English while transcribing. Only with model \"whisper\".",
"type": "boolean"
},
"summary": {
"description": "Also write an AI summary when the transcript is ready.",
"type": "boolean"
},
"action_items": {
"description": "Also extract action items when the transcript is ready.",
"type": "boolean"
},
"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": [
"filename",
"content_type",
"size_bytes"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡start_transcription(job_id, robot_key)
Call after the PUT to upload_url has finished. Checks the file arrived and queues it.
Esquema de entrada
{
"type": "object",
"properties": {
"job_id": {
"type": "string",
"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)$",
"description": "job_id returned by transcribe_url or create_upload."
},
"robot_key": {
"type": "string",
"description": "The robot_key you received with your first job. Required to read or start your jobs."
}
},
"required": [
"job_id",
"robot_key"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_job(job_id, robot_key, format)
Status of a job. When status is "completed", returns the transcript text in the chosen format plus download links. When status is "payment_required", returns a preview and a payment_url to show your user. Also returns summary, action_items and translations when requested.
Esquema de entrada
{
"type": "object",
"properties": {
"job_id": {
"type": "string",
"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)$",
"description": "job_id returned by transcribe_url or create_upload."
},
"robot_key": {
"type": "string",
"description": "The robot_key you received with your first job. Required to read or start your jobs."
},
"format": {
"description": "Default \"txt\". \"timed\" = timestamps + speakers (needs speaker_labels).",
"type": "string",
"enum": [
"txt",
"srt",
"vtt",
"timed"
]
}
},
"required": [
"job_id",
"robot_key"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢pay_job(job_id, robot_key)
Pay for the full transcript of a job whose get_job status is "payment_required", with 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. Your MPP client pays it and calls again. Without an MPP wallet, show payment_url from get_job to your user instead.
Esquema de entrada
{
"type": "object",
"properties": {
"job_id": {
"type": "string",
"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)$",
"description": "job_id returned by transcribe_url or create_upload."
},
"robot_key": {
"type": "string",
"description": "The robot_key you received with your first job. Required to read or start your jobs."
}
},
"required": [
"job_id",
"robot_key"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_jobs(robot_key)
Your jobs that still exist (jobs are deleted 24 hours after the last activity), newest first, with their status.
Esquema de entrada
{
"type": "object",
"properties": {
"robot_key": {
"type": "string",
"description": "The robot_key you received with your first job. Required to read or start your jobs."
}
},
"required": [
"robot_key"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡create_share_link(job_id, robot_key)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"job_id": {
"type": "string",
"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)$",
"description": "job_id returned by transcribe_url or create_upload."
},
"robot_key": {
"type": "string",
"description": "The robot_key you received with your first job. Required to read or start your jobs."
}
},
"required": [
"job_id",
"robot_key"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴delete_job(job_id, robot_key)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"job_id": {
"type": "string",
"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)$",
"description": "job_id returned by transcribe_url or create_upload."
},
"robot_key": {
"type": "string",
"description": "The robot_key you received with your first job. Required to read or start your jobs."
}
},
"required": [
"job_id",
"robot_key"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢request_summary(job_id, robot_key, type)
Ask for an AI summary or action items of a completed job. Returns at once; the result appears in get_job ("summary" / "action_items").
Esquema de entrada
{
"type": "object",
"properties": {
"job_id": {
"type": "string",
"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)$",
"description": "job_id returned by transcribe_url or create_upload."
},
"robot_key": {
"type": "string",
"description": "The robot_key you received with your first job. Required to read or start your jobs."
},
"type": {
"type": "string",
"enum": [
"summary",
"action_items"
],
"description": "\"summary\" or \"action_items\"."
}
},
"required": [
"job_id",
"robot_key",
"type"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢translate(job_id, robot_key, target_language, source)
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".
Esquema de entrada
{
"type": "object",
"properties": {
"job_id": {
"type": "string",
"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)$",
"description": "job_id returned by transcribe_url or create_upload."
},
"robot_key": {
"type": "string",
"description": "The robot_key you received with your first job. Required to read or start your jobs."
},
"target_language": {
"type": "string",
"minLength": 2,
"maxLength": 40,
"description": "Language name in English, e.g. \"German\", \"Brazilian Portuguese\", \"Japanese\"."
},
"source": {
"description": "What to translate. Default \"txt\". summary / action_items must exist first.",
"type": "string",
"enum": [
"txt",
"srt",
"vtt",
"timed",
"summary",
"action_items"
]
}
},
"required": [
"job_id",
"robot_key",
"target_language"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡send_feedback(type, message, reply_email, robot_key)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"feature_request",
"bug",
"question",
"other"
],
"description": "What kind of message this is."
},
"message": {
"type": "string",
"minLength": 1,
"maxLength": 4000,
"description": "The message in plain text. Up to 2000 characters are kept."
},
"reply_email": {
"description": "Email address for a human reply, only with your user's consent.",
"type": "string",
"maxLength": 254
},
"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": [
"type",
"message"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Comunidad
Evidencia