关于 FunASR
FunASR MCP 服务基于 FunASR 与 SenseVoiceSmall 模型,为 AI 助手提供本地语音转写能力。音频在本机处理,无需 API 密钥,适合希望保护录音隐私的用户。
主要功能
- 01支持中文、粤语、英语、日语、韩语识别
- 02可自动检测语言或手动指定语言
- 03VAD 分段处理较长音频
- 04模型返回时附带分段时间戳
- 05可通过环境变量选择模型与 CPU、CUDA、MPS 设备
适用场景
- 01将会议录音转写为文字
- 02把访谈或语音备忘录转换为文本
- 03让 AI 助手直接读取本地音频文件内容
MCP 相关
该服务通过 stdio 运行,向 MCP 客户端暴露 transcribe_audio 工具,接收音频路径并返回转写文本。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
docker run -i --rm ghcr.io/modelscope/funasr-mcp:0.1.2本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
ghcr.io/modelscope/funasr-mcp:0.1.2stdio工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
FunASR MCP 服务
Model Context Protocol 服务,为 AI 助手提供本地音频转写功能,默认使用 SenseVoiceSmall。
设置
1. 安装依赖
pip install funasr
2. 可选:使用 Docker 运行
Dockerfile 会通过 stdio 启动 MCP 服务,适用于会初始化服务并调用 tools/list 的 MCP 目录检查。
docker build -t funasr-mcp examples/mcp_server
docker run --rm -i \
-e FUNASR_DEVICE=cpu \
--mount type=bind,src=/path/to/audio,dst=/audio,readonly \
--mount type=volume,src=funasr-mcp-cache,dst=/root/.cache/modelscope \
funasr-mcp
无需下载模型,即可验证镜像入口和 MCP 握手:
python examples/mcp_server/smoke_test.py funasr-mcp
向 Glama 等 MCP 目录提交此服务时,请将此文件夹用作 Docker 构建上下文,以便容器入口运行 funasr_mcp.py。
仓库根目录中的 glama.json 声明了 Glama 的 GitHub 维护者所有权,而此目录中的 glama.json 文件则为目录扫描器声明容器命令和元数据。
官方 MCP Registry
带版本的 Registry 元数据位于 server.json 中。该文件指向公开的 GHCR 镜像,并要求客户端将一个主机音频目录以只读方式挂载到 /audio。Dockerfile 包含相应的 OCI 所有权标签:
当前已发布版本:
LABEL io.modelcontextprotocol.server.name="io.github.modelscope/funasr-mcp"
发布工作流会根据官方架构验证元数据、构建镜像、执行 MCP initialize 和 tools/list 握手、将带版本号的镜像推送到 GHCR,并通过官方 mcp-publisher CLI 发布 server.json。
要发布新的 MCP 服务版本:
- 同时更新
server.json中的version和 OCI 镜像标签。 - MCP 验证工作流通过后,合并此更改。
- 由
modelscope组织的 Owner 推送匹配的mcp-v<version>标签,例如mcp-v0.1.2。 - 批准受保护的
mcp-registry-publish环境部署。
官方 Registry 只向 GitHub 组织 Owner 授予 io.github.modelscope/* 命名空间。请将发布环境限制为发布标签,并要求维护者审批,因为其 OIDC 令牌可以发布组织命名空间。
发布后,客户端可以直接运行固定版本的镜像:
docker run --rm -i \
--mount type=bind,src=/path/to/audio,dst=/audio,readonly \
--mount type=volume,src=funasr-mcp-cache,dst=/root/.cache/modelscope \
ghcr.io/modelscope/funasr-mcp:0.1.2
使用容器时,请传入 /audio 下的工具路径,例如 /audio/meeting.wav。
Glama 提交检查清单
在 https://glama.ai/mcp/servers 添加服务时,请使用以下值:
| 字段 | 值 |
|---|---|
| 仓库 URL | https://github.com/modelscope/FunASR |
| Docker 构建上下文 | examples/mcp_server |
| Dockerfile 路径 | examples/mcp_server/Dockerfile |
| 服务命令 | python /app/funasr_mcp.py |
| 预期的 MCP 工具 | transcribe_audio |
Glama 完成评估后,请确认列表或 API 显示了已评估的质量评分,再将其添加到目录 PR 中。列表或徽章端点返回 HTTP 200 本身并不能证明已分配评分:
[](https://glama.ai/mcp/servers/modelscope/FunASR)
如果徽章端点仍返回 404,请勿在 Glama 列表上线前将徽章用于外部目录提交。
目录列表
FunASR MCP 服务已在官方 Registry 发布,并列于 mcp.so:
- https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.modelscope/funasr-mcp
- https://mcp.so/server/mcp-server-funasr/radial-hks
3. 配置 AI 工具
Claude Code(~/.claude.json):
{
"mcpServers": {
"funasr": {
"command": "python",
"args": ["/path/to/examples/mcp_server/funasr_mcp.py"],
"env": {"FUNASR_DEVICE": "cuda"}
}
}
}
Claude Desktop(claude_desktop_config.json):
{
"mcpServers": {
"funasr": {
"command": "python",
"args": ["/path/to/funasr_mcp.py"],
"env": {"FUNASR_DEVICE": "cpu"}
}
}
}
Cursor(设置 → MCP Servers → 添加):
- 命令:
python /path/to/funasr_mcp.py - 环境:
FUNASR_DEVICE=cuda
工具
transcribe_audio
将语音音频文件转录为文本。
参数:
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
audio_path | 字符串 | 是 | 音频文件路径(wav、mp3、flac、m4a、ogg) |
language | 字符串 | 否 | auto、zh、yue、en、ja 或 ko(默认值:auto) |
返回: 转录后的文本;模型返回时间戳时,还会包含各片段的时间戳。
使用示例
配置完成后,向 AI 助手提出请求:
- “转录 ~/Downloads/meeting.wav 中的会议录音”
- “这个音频文件里说了什么?/path/to/interview.mp3”
- “将这段语音备忘录转换为文本:~/voice_note.m4a”
环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
FUNASR_DEVICE | cpu | 设备:cuda、cpu 或 mps |
FUNASR_MODEL | iic/SenseVoiceSmall | 传递给 AutoModel 的模型名称或本地模型路径 |
功能
- 支持五种语言转录 — 普通话、粤语、英语、日语和韩语
- 自动检测或指定语言 —
auto、zh、yue、en、ja和ko - VAD 分段 — 在识别前拆分较长的音频
- 可选的片段时间戳 — 仅在配置的模型返回时间戳时包含
- 可配置的本地推理 — 通过环境变量选择模型以及 CPU、CUDA 或 MPS
- 无需 API 密钥 — 完全在本地推理
- MIT 许可,注重隐私(音频不会离开你的设备)
已验证的兼容性
| 工具 | 状态 |
|---|---|
| Claude Code | ✅ 已测试 |
| Claude Desktop | ✅ 兼容 |
| Cursor | ✅ 兼容 |
| Windsurf | ✅ 兼容 |
| 任何 MCP 客户端 | ✅ 标准协议 |
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。