convert.express

Transcribe audio and video to text, SRT or VTT. Summaries, action items, translation.

我该使用它吗

质量与安全性

A
描述质量
98%
模式完整度
95%
命名质量
92%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

基于对工具定义和协议合规性的自动分析。

上下文开销

~3,229token 数(工具定义)
~1.9 KB典型响应大小
对注意力有显著影响(占 128k 上下文窗口的 2.52%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `claude_desktop_config.json` 文件中:

{
  "mcpServers": {
    "transcribe": {
      "url": "https://convert.express/mcp"
    }
  }
}

远程端点

https://convert.express/mcpstreamable-http

它能做什么

工具清单

工具(13)

🟢 只读🟡 写入🔴 删除⚪ 未知
🟢get_service_info

What convert.express does, how to use these tools, free minutes, prices, models, languages and limits.

输入模式

{
  "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.

输入模式

{
  "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.

输入模式

{
  "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.

输入模式

{
  "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.

输入模式

{
  "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.

输入模式

{
  "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.

输入模式

{
  "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.

输入模式

{
  "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.

输入模式

{
  "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.

输入模式

{
  "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").

输入模式

{
  "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".

输入模式

{
  "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.

输入模式

{
  "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#"
}

社区

评价此服务器

证据

最近观测

已验证未记录版本13 个工具