
Transcribes audio files on your own machine with FunASR and SenseVoice, in Mandarin, Cantonese, English, Japanese and Korean.
by modelscope· MediaUnclaimed · Yours? Claim it
4 images
About
The FunASR MCP server is ModelScope's local speech-to-text server for agents. It runs FunASR, the open-source speech recognition toolkit, with the SenseVoiceSmall model on your own machine, so your agent can turn a recording into text without sending the audio to a cloud service and without an API key. What you can do with it - Transcribe a meeting recording, an interview or a voice memo from a file path - Recognise Mandarin, Cantonese, English, Japanese and Korean, detected automatically or set with a language hint - Get time-stamped segments along with the text when the model returns them - Split longer recordings with voice activity detection before recognition How it connects - A local server over stdio, published as the Docker image ghcr.io/modelscope/funasr-mcp - You mount one folder of audio files read-only at /audio, then ask about files by their /audio path, such as /audio/meeting.wav - A Docker volume keeps the downloaded model between runs - Without Docker, install funasr with pip and point your agent at funasr_mcp.py from the FunASR repository; FUNASR_DEVICE picks CPU, CUDA or Apple's MPS, and FUNASR_MODEL another model Good to know - One tool, transcribe_audio, which reads files and changes nothing - The first transcription downloads the model weights from ModelScope, so it takes longer than later ones - It takes WAV, MP3, FLAC and other common audio files; not URLs or live microphone audio - The Docker image runs on the CPU and is built for x86-64 machines - MIT licensed, maintained in the modelscope/FunASR repository
Plugins people install alongside FunASR.
Once it’s added
“Transcribe the meeting recording at /audio/meeting.wav.”
“What was said in /audio/interview.mp3?”
“Convert this voice memo to text: /audio/voice_note.m4a”
“Transcribe /audio/call.wav. The speakers are using Cantonese.”
Before you add it
Reads only
Reads audio files from the folder you mount · Returns the transcript, with time-stamped segments when the model gives them
From people who use it
Step by step
Nothing new reaches your agent until a person has looked at it.
Scanned on every change, and again when our rules improve.
Runs on your machine.
claude_desktop_config.json{
"mcpServers": {
"funasr": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--mount",
"type=bind,src={audio_directory},dst=/audio,readonly",
"--mount",
"type=volume,src=funasr-mcp-cache,dst=/root/.cache/modelscope",
"ghcr.io/modelscope/funasr-mcp:0.1.2"
]
}
}
}Runs on your machine.
Add to VS Codecode --add-mcp '{"name":"funasr","command":"docker","args":["run","-i","--rm","--mount","type=bind,src={audio_directory},dst=/audio,readonly","--mount","type=volume,src=funasr-mcp-cache,dst=/root/.cache/modelscope","ghcr.io/modelscope/funasr-mcp:0.1.2"]}'copilot mcp add funasr -- docker run -i --rm --mount 'type=bind,src={audio_directory},dst=/audio,readonly' --mount type=volume,src=funasr-mcp-cache,dst=/root/.cache/modelscope ghcr.io/modelscope/funasr-mcp:0.1.2Runs on your machine.
Add to Cursor.cursor/mcp.json{
"mcpServers": {
"funasr": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--mount",
"type=bind,src={audio_directory},dst=/audio,readonly",
"--mount",
"type=volume,src=funasr-mcp-cache,dst=/root/.cache/modelscope",
"ghcr.io/modelscope/funasr-mcp:0.1.2"
]
}
}
}Runs on your machine.
claude mcp add funasr -- docker run -i --rm --mount 'type=bind,src={audio_directory},dst=/audio,readonly' --mount type=volume,src=funasr-mcp-cache,dst=/root/.cache/modelscope ghcr.io/modelscope/funasr-mcp:0.1.2Runs on your machine.
codex mcp add funasr -- docker run -i --rm --mount 'type=bind,src={audio_directory},dst=/audio,readonly' --mount type=volume,src=funasr-mcp-cache,dst=/root/.cache/modelscope ghcr.io/modelscope/funasr-mcp:0.1.2Runs on your machine.
~/.gemini/config/mcp_config.json{
"mcpServers": {
"funasr": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--mount",
"type=bind,src={audio_directory},dst=/audio,readonly",
"--mount",
"type=volume,src=funasr-mcp-cache,dst=/root/.cache/modelscope",
"ghcr.io/modelscope/funasr-mcp:0.1.2"
]
}
}
}Runs on your machine.
gemini mcp add funasr docker run -i --rm --mount 'type=bind,src={audio_directory},dst=/audio,readonly' --mount type=volume,src=funasr-mcp-cache,dst=/root/.cache/modelscope ghcr.io/modelscope/funasr-mcp:0.1.2Runs on your machine.
Runs on your machine.
opencode mcp add funasr -- docker run -i --rm --mount 'type=bind,src={audio_directory},dst=/audio,readonly' --mount type=volume,src=funasr-mcp-cache,dst=/root/.cache/modelscope ghcr.io/modelscope/funasr-mcp:0.1.2Runs on your machine.
~/.hermes/config.yaml{
"mcp_servers": {
"funasr": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--mount",
"type=bind,src={audio_directory},dst=/audio,readonly",
"--mount",
"type=volume,src=funasr-mcp-cache,dst=/root/.cache/modelscope",
"ghcr.io/modelscope/funasr-mcp:0.1.2"
]
}
}
}Scanned and passed · checked 4 h ago
No reviews yet. Used FunASR? Say how it went.
Write a reviewPlugins people install alongside FunASR.
Ask for a video and your agent writes it as HTML, then HyperFrames renders it to MP4: promos, explainers, captions and motion graphics.
Turns screenshots or a description into a narrated product demo video, with a story arc, designed scenes and an FFmpeg build script.
Lets your agent search screenpipe's local recordings of everything on your screen and microphone, from meetings to what you typed.
Nobody has shared how they use FunASR yet.
Security scan
Passed
Safe to install in every agent it supports. Runs on your machine.