FunASR について
FunASR MCP サーバーは、FunASR と既定の SenseVoiceSmall モデルを使い、AI アシスタントにローカルでの音声文字起こし機能を提供します。音声はユーザーのマシン上で処理され、API キーは不要です。録音を外部に送信したくないユーザーに適しています。
主な機能
- 01中国語、広東語、英語、日本語、韓国語の文字起こし
- 02言語の自動検出または明示的な指定
- 03長い音声を分割するVAD処理
- 04モデルが返す場合のセグメント単位のタイムスタンプ
- 05環境変数によるモデルと CPU・CUDA・MPS デバイスの選択
活用シーン
- 01会議録音の文字起こし
- 02インタビューや音声メモのテキスト化
- 03AI アシスタントによるローカル音声ファイルの内容把握
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 サーバー
デフォルトで SenseVoiceSmall を使用し、AI アシスタントにローカル音声の文字起こし機能を提供するModel Context Protocol サーバーです。
セットアップ
1. 依存関係をインストールする
pip install funasr
2. 任意:Docker で実行する
Dockerfile は MCP サーバーを stdio 経由で起動します。サーバーを初期化して 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 イメージを参照し、クライアントにホスト上の音声ディレクトリを 1 つ /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/meeting.wav のように、ツールのパスを /audio 以下に指定してください。
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 の評価が完了したら、ディレクトリの PR に追加する前に、掲載ページまたは API に評価済みの品質スコアが表示されていることを確認してください。掲載ページまたはバッジエンドポイントから 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(Settings → MCP Servers → Add):
- コマンド:
python /path/to/funasr_mcp.py - 環境:
FUNASR_DEVICE=cuda
ツール
transcribe_audio
音声ファイルの音声を書き起こします。
パラメーター:
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
audio_path | string | はい | 音声ファイルへのパス(wav、mp3、flac、m4a、ogg) |
language | string | いいえ | 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 に渡されるモデル名またはローカルモデルのパス |
特長
- 5 言語の書き起こし — 標準中国語、広東語、英語、日本語、韓国語に対応
- 自動検出または明示的な指定 —
auto、zh、yue、en、ja、ko - VAD セグメンテーション — 認識前に長い音声を分割します
- 任意のセグメントタイムスタンプ — 設定されたモデルが返す場合にのみ含まれます
- 設定可能なローカル推論 — 環境変数でモデルと CPU、CUDA、MPS を選択できます
- API キー不要 — すべてローカルで推論します
- MIT ライセンスで、プライバシーに配慮しています(音声が端末の外に送信されることはありません)
動作確認済みの互換性
| ツール | 状態 |
|---|---|
| Claude Code | ✅ テスト済み |
| Claude Desktop | ✅ 互換性あり |
| Cursor | ✅ 互換性あり |
| Windsurf | ✅ 互換性あり |
| あらゆる MCP クライアント | ✅ 標準プロトコル |
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。