FunASR

io.github.modelscope由 GitHub 账号 modelscope 发布v0.1.2更新于 Oct 24, 2026

Transcribe local audio with FunASR and SenseVoice using private, on-device inference.

已验证STDIO仅桌面媒体与设计AI 与机器学习

概览

AI 生成的概览

本地 MCP 服务器,让 AI 助手借助 FunASR 与 SenseVoice 模型在本机将语音音频文件转写为文字。

可以做什么
将本地音频文件(wav、mp3、flac、m4a、ogg)转写为文字,可指定语言提示(自动、普通话、粤语、英语、日语、韩语),并在模型返回时附带分段时戳。
适用场景
适合希望助手把会议录音、访谈或语音备忘转成文字、又不愿把音频上传到云端服务的场景,前提是能在本机以 CPU、CUDA 或 MPS 运行模型。
运行要求
以 stdio 本地进程运行:可安装 funasr Python 包并运行服务器脚本,或运行已发布的 Docker 镜像,并把宿主机音频目录以只读方式挂载到 /audio。可选环境变量 FUNASR_DEVICE(cpu、cuda、mps)与 FUNASR_MODEL 用于选择设备和模型;模型会下载并缓存在本地。无需 API 密钥。
安装前请注意
首次使用会下载并缓存模型,需占用磁盘并访问网络。服务器会读取挂载或指定的音频路径,只应开放你愿意让助手访问的目录。转写准确度随模型和语言而异,时戳仅在模型返回时出现。

安装

在 SourceWeft 中

  1. 打开 控制台中的 FunASR,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

FunASR MCP Server

Model Context Protocol server that gives AI assistants local audio transcription with SenseVoiceSmall by default.

Setup

1. Install dependencies

bash
pip install funasr

2. Optional: run with Docker

The Dockerfile starts the MCP server over stdio and is suitable for MCP directory checks that initialize the server and call tools/list.

bash
docker build -t funasr-mcp examples/mcp_serverdocker 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

Verify the image entrypoint and MCP handshake without downloading a model:

bash
python examples/mcp_server/smoke_test.py funasr-mcp

When submitting this server to MCP directories such as Glama, use this folder as the Docker build context so the container entrypoint runs funasr_mcp.py. The repository root glama.json declares GitHub maintainer ownership for Glama, while the glama.json file in this directory declares the container command and metadata for directory scanners.

Official MCP Registry

The versioned Registry metadata is in server.json. It points to the public GHCR image and asks clients to mount one host audio directory at /audio read-only. The Dockerfile carries the matching OCI ownership label:

Current published release:

dockerfile
LABEL io.modelcontextprotocol.server.name="io.github.modelscope/funasr-mcp"

The release workflow validates the metadata against the official schema, builds the image, performs an MCP initialize and tools/list handshake, pushes the versioned image to GHCR, and publishes server.json through the official mcp-publisher CLI.

To release a new MCP server version:

  1. Update version and the OCI image tag in server.json together.
  2. Merge the change after the MCP validation workflow passes.
  3. Have a modelscope organization Owner push the matching mcp-v<version> tag, for example mcp-v0.1.2.
  4. Approve the protected mcp-registry-publish environment deployment.

The official Registry only grants the io.github.modelscope/* namespace to a GitHub organization Owner. Keep the publish environment restricted to release tags and require a maintainer approval because its OIDC token can publish the organization namespace.

After publication, clients can run the pinned image directly:

bash
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

When using the container, pass tool paths under /audio, such as /audio/meeting.wav.

Glama submission checklist

Use these values when adding the server at https://glama.ai/mcp/servers:

FieldValue
Repository URLhttps://github.com/modelscope/FunASR
Docker build contextexamples/mcp_server
Dockerfile pathexamples/mcp_server/Dockerfile
Server commandpython /app/funasr_mcp.py
Expected MCP tooltranscribe_audio

After Glama finishes evaluation, verify that the listing or API shows an evaluated quality score before adding it to directory PRs. An HTTP 200 from the listing or badge endpoint alone does not prove that a score has been assigned:

markdown
[![modelscope/FunASR MCP server](https://glama.ai/mcp/servers/modelscope/FunASR/badges/score.svg)](https://glama.ai/mcp/servers/modelscope/FunASR)

If the badge endpoint still returns 404, keep the badge out of external directory submissions until the Glama listing is live.

Directory listings

The FunASR MCP server is published in the official Registry and listed on mcp.so:

3. Configure your AI tool

Claude Code (~/.claude.json):

json
{    "mcpServers": {        "funasr": {            "command": "python",            "args": ["/path/to/examples/mcp_server/funasr_mcp.py"],            "env": {"FUNASR_DEVICE": "cuda"}        }    }}

Claude Desktop (claude_desktop_config.json):

json
{    "mcpServers": {        "funasr": {            "command": "python",            "args": ["/path/to/funasr_mcp.py"],            "env": {"FUNASR_DEVICE": "cpu"}        }    }}

Cursor (Settings → MCP Servers → Add):

  • Command: python /path/to/funasr_mcp.py
  • Environment: FUNASR_DEVICE=cuda

Tools

transcribe_audio

Transcribe a speech audio file to text.

Parameters:

NameTypeRequiredDescription
audio_pathstringYesPath to audio file (wav, mp3, flac, m4a, ogg)
languagestringNoauto, zh, yue, en, ja, or ko (default: auto)

Returns: Transcribed text with per-segment timestamps when the model returns them.

Example Usage

Once configured, ask your AI assistant:

  • "Transcribe the meeting recording at ~/Downloads/meeting.wav"
  • "What was said in this audio file? /path/to/interview.mp3"
  • "Convert this voice memo to text: ~/voice_note.m4a"

Environment Variables

VariableDefaultDescription
FUNASR_DEVICEcpuDevice: cuda, cpu, or mps
FUNASR_MODELiic/SenseVoiceSmallModel name or local model path passed to AutoModel

Features

  • Five-language transcription — Mandarin, Cantonese, English, Japanese, and Korean
  • Automatic detection or explicit hints — auto, zh, yue, en, ja, and ko
  • VAD segmentation — splits longer audio before recognition
  • Optional segment timestamps — included only when the configured model returns them
  • Configurable local inference — choose the model and CPU, CUDA, or MPS with environment variables
  • No API key needed — fully local inference
  • MIT licensed, privacy-friendly (audio never leaves your machine)

Verified Compatibility

ToolStatus
Claude Code✅ Tested
Claude Desktop✅ Compatible
Cursor✅ Compatible
Windsurf✅ Compatible
Any MCP client✅ Standard protocol

来源:examples/mcp_server/README.md,提交 55203a9

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.1.2最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分