Token导航 LogoToken导航

MCP Server · 搜索检索

MCP Server Funasr

MCPServer is a Python-based server that leverages Alibaba's FunASR library to provide speech processing services through the FastMCP framework.

stdio官方级别未说明来源级核验工具 7
语音识别多模型支持Python音频处理

快速开始

作者 / 组织
radial-hks
提供方
radial-hks
运行时
Python

工具数量

7

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

3

仓库热度

收录来源

2 个

MCP.so

选型结论

MCP Server Funasr 属于搜索检索类 MCP Server,公开资料标注 7 个工具,通过stdio 本地进程接入,客户端适配情况以官方文档为准,有可以直接复制的安装命令;接入前先确认权限范围。

分类

搜索检索

传输方式

stdio

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

安装命令

python -m venv .venv

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Python,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 7 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

FunASR供电的MCP服务器(MCPServer)

概述

MCPServer是一个基于Python的服务器,它利用阿里巴巴的FunASR库通过FastMCP框架提供语音处理服务。它提供了以下工具:

  • 音频验证: 检查音频文件是否有效且可读,并提供其属性。
  • 语音转录: 使用Paraformer等高级ASR模型从音频文件中异步转录语音。支持管理转录任务和检索结果,包括详细的时间戳信息。
  • 语音活动检测(VAD): 识别音频文件中的语音片段。

该服务器设计为可扩展的,允许动态加载和切换ASR和VAD模型。

特性

  • 音频文件验证: 验证音频文件的完整性、可读性和格式。
  • 异步语音到文本转录: 适用于长音频文件的非阻塞转录。
  • 转录任务管理: 启动任务、查询状态并检索结果。
  • 详细转录结果: 访问完整转录文本、段级开始/结束时间和字级时间戳(如果由ASR模型提供)。
  • 语音活动检测(VAD): 返回音频文件中语音片段的精确开始和结束时间戳。
  • 多模型支持: 利用FunASR的多样化模型动物园进行ASR和VAD。
  • 动态模型配置:

- 根据转录或VAD请求指定模型。 - 显式加载/切换服务器实例使用的默认ASR和VAD模型。

  • 可配置模型参数: 将特定的加载和生成参数传递给FunASR模型。

先决条件

  • python 3.8+
  • 匹普: 用于安装Python包。
  • 型号COPE_API_TOKEN(可选):

- FunASR从ModelScope下载模型。如果遇到速率限制或需要访问私有模型,可能需要设置 MODELSCOPE_API_TOKEN 环境变量。 - 您可以从 ModelScope网站. - 在您的环境中设置它: export MODELSCOPE_API_TOKEN="YOUR_TOKEN_HERE"

设置和安装

  1. 克隆存储库(如果适用):

如果此服务器是更大存储库的一部分,请克隆它。否则,请确保您拥有 MCPServer 目录及其内容。

  1. 创建和激活虚拟环境(推荐):
   python -m venv .venv
   source .venv/bin/activate  # On Windows: .venv\Scripts\activate
  1. 安装依赖关系:

导航到 MCPServer 目录(包含此README和 server.py). 安装所需的软件包:

   pip install -r requirements.txt

这将安装 fastmcp, funasr,以及它们的依赖关系,包括PyTorch(如果FunASR的直接依赖关系没有另行指定,则默认为CPU版本)。如果您有特定的PyTorch需求(例如GPU版本),建议在运行上述命令之前按照以下说明手动安装PyTorch PyTorch官方网站.

运行服务器

  1. 导航到 MCPServer 目录。
  2. 运行服务器应用程序:
   uvicorn main:app --host 0.0.0.0 --port 9000
  1. 服务器将启动,您应该看到日志输出表明它正在运行,通常在 http://0.0.0.0:9000。在第一次运行时,FunASR将下载默认的ASR和VAD模型,这可能需要一些时间。

可用的MCP工具

MCP服务器:http://0.0.0.0:9000/sse

您可以使用任何MCP客户端(例如。, mcp_client 或通过HTTP请求)。服务器提供以下工具:

______________________________________________________________________

1. validate_audio_file

  • 说明: 验证音频文件以检查其是否适合处理,并提供其属性。
  • 参数:

- file_path (str,必填):音频文件的路径。

  • 返回示例(成功):
  {
    "status": "valid",
    "message": "Audio file is valid.",
    "details": {
      "samplerate": 16000,
      "channels": 1,
      "duration": 10.5,
      "formatted_duration": "00:10.500",
      "format": "WAV",
      "subtype": "PCM_16"
    }
  }
  • 返回示例(错误-找不到文件):
  {
     "status": "invalid",
     "message": "Error: File not found at 'path/to/non_existent_audio.wav'.",
     "details": null
  }

______________________________________________________________________

2. start_speech_transcription

  • 说明: 为给定的音频文件启动异步语音转录任务。允许指定ASR模型和生成参数。
  • 参数:

- audio_path (str,必填):音频文件的路径。 - model_name (str,可选):用于此任务的特定ASR模型(例如,ModelScope ID)。覆盖服务器当前的默认ASR模型。如果指定的模型尚未加载兼容设置,服务器将尝试使用该模型的默认加载参数或实例的常规默认加载参数加载它。 - model_generate_kwargs (dict,可选):ASR模型的特定参数 generate 方法(例如。, {"batch_size_s": 60, "hotword": "特定热词"}).这些参数会覆盖服务器中为当前ASR模型设置的任何默认生成参数。

  • 返回示例(成功):
  {
    "task_id": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
    "status": "processing_started",
    "message": "Transcription task started and is now processing."
  }
  • 返回示例(错误-无效音频):
  {
     "task_id": null,
     "status": "error",
     "message": "Error: File at '/path/to/your/bad_audio.wav' is not a valid audio file or is corrupted. Details: ",
     "details": null
  }
  • 返回示例(错误-任务期间模型加载失败):
  {
     "task_id": null,
     "status": "error",
     "message": "Failed to switch to model 'non_existent_model_id'. Error: Error loading model 'non_existent_model_id': "
  }

______________________________________________________________________

3. get_transcription_task_status

  • 说明: 查询以前启动的语音转录任务的状态。
  • 参数:

- task_id (str,必填):转录任务的唯一ID。

  • 返回(处理)示例:
  {
     "status": "processing",
     "audio_path": "/path/to/your/audio.wav",
     "model_used": "iic/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch",
     "submitted_at": "YYYY-MM-DDTHH:MM:SS.ffffff+00:00",
     "details_from_validation": { /* ... audio details from validate_audio ... */ },
     "model_generate_kwargs": {"batch_size_s": 300, "hotword": "魔搭"},
     "processing_started_at": "YYYY-MM-DDTHH:MM:SS.ffffff+00:00"
  }
- **Example Return (Completed):**

{ "status": "completed", "audio_path": "/path/to/your/audio.wav", "model_used": "iic/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch", "submitted_at": "YYYY-MM-DDTHH:MM:SS.ffffff+00:00", "details_from_validation": { /* ... */ }, "model_generate_kwargs": { /* ... */ }, "processing_started_at": "YYYY-MM-DDTHH:MM:SS.ffffff+00:00", "result": [ /* ... actual transcription result ... */ ], "completed_at": "YYYY-MM-DDTHH:MM:SS.ffffff+00:00" }

- **Example Return (Error - Task Not Found):**

{ "status": "error", "message": "Task ID not found." }

______________________________________________________________________

4. get_transcription_result

  • 说明: 检索已完成的语音转录任务的结果。
  • 参数:

- task_id (str,必填):转录任务的唯一ID。

  • 返回示例(成功/完成):
  {
    "task_id": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
    "status": "completed",
    "result": [
      {
        "text": "这是 一段 测试 文本",
        "start": 120,
        "end": 2850,
        "timestamp": [[120, 300], [330, 500], [550, 900], [920, 1200]]
      }
    ],
    "completed_at": "YYYY-MM-DDTHH:MM:SS.ffffff+00:00"
  }
  • 返回示例(任务仍在处理中):
  {
     "task_id": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
     "status": "processing",
     "message": "Transcription not yet completed or has failed."
  }
  • 返回示例(任务失败):
  {
     "task_id": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
     "status": "failed",
     "message": "Transcription failed.",
     "error_details": "Description of the error during transcription.",
     "failed_at": "YYYY-MM-DDTHH:MM:SS.ffffff+00:00"
  }

______________________________________________________________________

5. load_asr_model

  • 说明: 加载或重新加载特定的ASR模型,使其成为后续任务的默认模型,除非被覆盖。返回操作状态。
  • 参数:

- model_name (str,必填):要加载的FunASR模型标识符(例如,ModelScope ID)。 - device (str,可选):用于加载模型的设备(例如,“cpu”、“cuda:0”)。如果为“无”,则使用实例默认值。 - model_load_kwargs (dict,可选):加载ASR模型的具体参数(例如。, {"ncpu": 2, "vad_model": "other-vad-id", "punc_model": "other-punc-id"}).这些将传递给 funasr.AutoModel.

  • 返回示例(成功):
  {
    "status": "success",
    "message": "Model 'iic/speech_paraformer-large-en-16k-common-vocab10020' loaded successfully on cpu with load_kwargs: {'ncpu': 2, 'vad_model': 'fsmn-vad'}."
  }
  • 返回示例(错误):
  {
     "status": "error",
     "message": "Error loading model 'invalid-model-id': "
  }

______________________________________________________________________

6. get_voice_activity_segments

  • 说明: 使用语音活动检测(VAD)模型检测音频文件中的语音片段。
  • 参数:

- audio_path (str,必填):音频文件的路径。 - vad_model_name (str,可选):要使用的特定VAD模型。覆盖服务器当前的默认VAD模型。 - model_load_kwargs (dict,可选):如果满足以下条件,则加载VAD模型的具体参数 vad_model_name 已指定,与当前加载的不同。 - model_generate_kwargs (dict,可选):VAD模型的具体参数 generate 方法。

  • 返回示例(成功):
  {
    "status": "success",
    "segments": [ [100, 2500], [3000, 5500] ],
    "audio_path": "path/to/your/audio.wav",
    "vad_model_used": "damo/speech_fsmn_vad_zh-cn-16k-common-pytorch",
    "generate_kwargs_used": {},
    "audio_details": { /* ... audio properties ... */ }
  }
- **Example Return (Error - VAD Processing Failed):**

{ "status": "error", "message": "VAD processing failed for 'path/to/audio.wav': ", "audio_path": "path/to/audio.wav", "vad_model_used": "damo/speech_fsmn_vad_zh-cn-16k-common-pytorch" }

______________________________________________________________________

7. load_vad_model

  • 说明: 加载或重新加载特定的VAD模型,使其成为后续VAD任务的默认模型,除非被覆盖。返回操作状态。
  • 参数:

- model_name (str,必填):要加载的FunASR VAD模型标识符。 - device (str,可选):加载模型的设备。如果为None,则使用实例默认值。 - ncpu (int,可选):如果设备是CPU,则CPU线程数。如果为“无”,则使用实例默认值。 - model_load_kwargs (dict,可选):加载VAD模型的具体参数。

  • 返回示例(成功):
  {
    "status": "success",
    "message": "VAD Model 'damo/speech_fsmn_vad_zh-cn-16k-common-pytorch' loaded successfully on cpu with load_kwargs: {'ncpu': 2}."
  }

______________________________________________________________________

示例用法 curl

以下是您如何称呼 start_speech_transcription 工具使用 curl:

# Ensure the audio_path is accessible by the server.
# For paths with spaces or special characters, ensure proper JSON escaping if needed.
curl -X POST http://localhost:8000/mcp/start_speech_transcription \
     -H "Content-Type: application/json" \
     -d '{"params": {"audio_path": "/path/to/your/audio_sample.wav"}}'

答复:

{
  "jsonrpc": "2.0",
  "id": "some_client_generated_id",
  "result": {
    "task_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "status": "processing_started",
    "message": "Transcription task started and is now processing."
  }
}

要稍后获得结果,请使用 task_id 从回复中:

curl -X POST http://localhost:8000/mcp/get_transcription_result \
     -H "Content-Type: application/json" \
     -d '{"params": {"task_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"}}'

模型配置

  • 默认型号: 服务器使用中指定的默认ASR和VAD模型进行初始化 MCPServer/server.py.

- 默认ASR: iic/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch (已预先配置VAD damo/speech_fsmn_vad_zh-cn-16k-common-pytorch 和标点符号 damo/punc_ct-transformer_zh-cn-common-vocab272727-pytorch). - 默认VAD: damo/speech_fsmn_vad_zh-cn-16k-common-pytorch.

  • 根据请求型号规格:

- 对于 start_speech_transcription,使用 model_name 参数,为该特定任务指定不同的ASR模型。 - 对于 get_voice_activity_segments,使用 vad_model_name 任务特定VAD模型的参数。 - 如果每个请求指定的模型与当前加载的模型不同,服务器将尝试加载它。对于后续请求,此新模型(如果成功加载)将成为该处理器类型(ASR或VAD)的当前默认模型 *不要* 指定模型。

  • 全局模型加载:

- 使用 load_asr_model 更改默认ASR模型的工具 SpeechTranscriber 例子 - 使用 load_vad_model 更改默认VAD模型的工具 VADProcessor 例子 - 这些工具还允许指定 device, ncpu (适用于VAD),以及 model_load_kwargs 为了对模型加载进行更精细的控制(例如, model_load_kwargs 可以包括VAD和标点模型ID)。

  • 模型参数:

- model_load_kwargs:可以传递给 load_asr_model 和 load_vad_model 控制模型的加载方式(例如,为ASR管道指定VAD/标点符号等子模型,或指定其他特定于模型的加载参数,如 max_single_segment_time 如果负载时VAD模型支持)。 - model_generate_kwargs:可以传递给 start_speech_transcription 和 get_voice_activity_segments 以控制模型的推理/生成步骤的行为(例如。, batch_size_s, hotword ASR;VAD模型通常具有较少的生成时间参数)。

故障排除

  • 模型下载问题:

- 确保服务器具有互联网访问权限,可以从ModelScope(hub.ModelScope.cn)下载模型。 - 如果您遇到持续的下载错误或身份验证问题(例如HTTP 401/403),请设置 MODELSCOPE_API_TOKEN 环境变量。 - 检查ModelScope缓存目录中的可用磁盘空间(通常 ~/.cache/modelscope/hub/).

  • 依赖冲突:

- 强烈建议使用Python虚拟环境,以避免与系统范围的包或其他项目发生冲突。

  • PyTorch版本:

- FunASR需要特定范围的PyTorch版本。如果 requirements.txt 无法获取兼容版本,或者如果您有现有的冲突PyTorch安装,可能需要手动安装兼容的PyTorch版本。有关兼容的PyTorch版本,请参阅FunASR的文档。

  • 资源限制:

- ASR模型,特别是像Paraformer这样的大型模型,可能会占用大量内存和CPU。确保服务器有足够的资源。对于CPU推理,性能与 ncpu (CPU线程数,可在中配置 SpeechTranscriber 和 VADProcessor)以及CPU的性能。

  • 文件路径:

- 确保 audio_path 提供给工具的是绝对路径或相对于 server.py 脚本已运行,并且服务器进程可以访问它。

  • CUDA/GPU问题(如果使用GPU):

- 如果使用GPU(device="cuda:X"),确保正确安装并兼容NVIDIA驱动程序、CUDA工具包和支持GPU的PyTorch版本。使用以下工具 nvidia-smi 和 torch.cuda.is_available() 用于诊断。

工具与能力

工具数量

7

资源数量

0

提示词数量

0

能力标签

research-and-datamcp-serverspeech-processingfunasr语音识别Python本地部署音频处理

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

查资料带出处

把网页、论文和文档的检索结果连同链接一起带回对话。

站内知识检索

在自己的文档库里做语义搜索,比关键词更贴题。

事实核对

交叉多个来源确认一条信息,减少模型凭记忆作答。

选择建议

值得选的地方

  • 只提供 7 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 Python,换机器要重新装一遍。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在搜索检索场景里让模型直接调用外部能力的人。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
MCP Server Funasr

MCP.so · 本页

7stdio有2 个2026-05-17
Baidu Netdisk

MCP World

未标注未说明未标注1 个2026-05-17
Sequentialthinking

MCP.so

1SSE有2 个2026-05-17
Brave Search 433812ff

MCP World

2未说明未标注1 个2026-05-17
mindsdb (430e18)

MCP World

0未说明有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

MCP Server Funasr 怎么安装?

公开资料给出的安装命令是 python -m venv .venv,运行环境为 Python。装完后按客户端要求写进 MCP 配置,重启客户端生效。

MCP Server Funasr 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Python;保存后完全退出客户端再打开,配置才会生效。

MCP Server Funasr 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

MCP Server Funasr 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

MCP Server Funasr 支持哪些客户端?

公开资料没有标注具体客户端;能配置本地 MCP 命令的客户端都能接,配置方式参照官方文档。

来源信息

继续浏览同类 MCP