# FunASR

> Transcribes audio files on your own machine with FunASR and SenseVoice, in Mandarin, Cantonese, English, Japanese and Korean.

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

- Type: Plugin
- Made by: modelscope
- Category: Media
- Formats: Local MCP
- Version: 0.1.2
- Website: https://github.com/modelscope/FunASR/tree/main/examples/mcp_server
- Source: https://github.com/modelscope/funasr/tree/HEAD/examples/mcp_server
- Page: https://pluginboard.ai/plugins/funasr

## Works with

- Claude
- GitHub Copilot
- Cursor
- Claude Code
- Codex
- Antigravity
- Gemini CLI
- OpenClaw
- OpenCode
- Hermes Agent

## Install

### Claude

Add to claude_desktop_config.json:

```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"
      ]
    }
  }
}
```

### GitHub Copilot

Add to VS Code: vscode:mcp/install?%7B%22name%22%3A%22funasr%22%2C%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22--mount%22%2C%22type%3Dbind%2Csrc%3D%7Baudio_directory%7D%2Cdst%3D%2Faudio%2Creadonly%22%2C%22--mount%22%2C%22type%3Dvolume%2Csrc%3Dfunasr-mcp-cache%2Cdst%3D%2Froot%2F.cache%2Fmodelscope%22%2C%22ghcr.io%2Fmodelscope%2Ffunasr-mcp%3A0.1.2%22%5D%7D

Run in your terminal:

```shell
code --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 CLI:

```shell
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.2
```

### Cursor

Add to Cursor: cursor://anysphere.cursor-deeplink/mcp/install?name=funasr&config=eyJjb21tYW5kIjoiZG9ja2VyIiwiYXJncyI6WyJydW4iLCItaSIsIi0tcm0iLCItLW1vdW50IiwidHlwZT1iaW5kLHNyYz17YXVkaW9fZGlyZWN0b3J5fSxkc3Q9L2F1ZGlvLHJlYWRvbmx5IiwiLS1tb3VudCIsInR5cGU9dm9sdW1lLHNyYz1mdW5hc3ItbWNwLWNhY2hlLGRzdD0vcm9vdC8uY2FjaGUvbW9kZWxzY29wZSIsImdoY3IuaW8vbW9kZWxzY29wZS9mdW5hc3ItbWNwOjAuMS4yIl19

Add to .cursor/mcp.json:

```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"
      ]
    }
  }
}
```

### Claude Code

Run in your terminal:

```shell
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.2
```

### Codex

Run in your terminal:

```shell
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.2
```

### Antigravity

Add to ~/.gemini/config/mcp_config.json:

```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"
      ]
    }
  }
}
```

### Gemini CLI

Run in your terminal:

```shell
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.2
```

### OpenClaw

In a terminal: Run openclaw mcp add funasr --command docker, with --arg before each argument (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) and --env NAME=value for each variable it needs.

### OpenCode

Run in your terminal:

```shell
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.2
```

### Hermes Agent

Add to ~/.hermes/config.yaml:

```json
{
  "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"
      ]
    }
  }
}
```

---
From Pluginboard (https://pluginboard.ai).
