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 分