Skip to content

LemonCANDY42/mcp-funasr-stdio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mcp-funasr-stdio

A local FastMCP stdio server for general-purpose FunASR speech processing.

Why this project

  • Stdio-native for local MCP clients ([mcp_servers.*]).
  • Audio + video support (ffmpeg extraction for video input).
  • ASR + VAD + async task tools in one server.
  • Automatic backend selection (env override > cuda > mps > vulkan(if torch-supported) > cpu).
  • Runtime model management and cache control.

Tools

  • asr_detect_backend()
  • asr_list_models(kind='all')
  • asr_load_model(model='', backend='auto', force_reload=False, model_load_kwargs=None)
  • asr_load_vad_model(model='', backend='auto', force_reload=False, model_load_kwargs=None)
  • asr_clear_model_cache(kind='all')
  • asr_validate_media(path)
  • asr_transcribe_audio(path, language='auto', timestamps=True, model='', backend='auto', generate_kwargs=None, model_load_kwargs=None, include_raw=False)
  • asr_transcribe_video(path, language='auto', timestamps=True, model='', backend='auto', generate_kwargs=None, model_load_kwargs=None, include_raw=False)
  • asr_start_transcription_task(path, media_type='auto', language='auto', timestamps=True, model='', backend='auto', generate_kwargs=None, model_load_kwargs=None)
  • asr_get_task_status(task_id)
  • asr_get_task_result(task_id)
  • asr_list_tasks(status='all', limit=20)
  • asr_cancel_task(task_id)
  • asr_delete_task(task_id)
  • asr_detect_speech_segments(path, media_type='auto', model='', backend='auto', generate_kwargs=None, model_load_kwargs=None, include_raw=False)

Requirements

  • Python 3.10+
  • uv
  • ffmpeg in PATH

Install

uv sync

Environment Variables

  • FUNASR_BACKEND: force backend (cuda|mps|vulkan|cpu)
  • FUNASR_MODEL: default ASR model alias/name
  • FUNASR_VAD_MODEL: default VAD model alias/name
  • FUNASR_TASK_WORKERS: async task worker count (default 2)

Run

uv run funasr-mcp

Codex MCP config

[mcp_servers.funasr]
command = "uv"
args = ["run", "--project", "D:/path/to/mcp-funasr-stdio", "funasr-mcp"]
enabled = true
startup_timeout_sec = 30
tool_timeout_sec = 120

Async Flow Example

  1. asr_start_transcription_task(...)
  2. Poll asr_get_task_status(task_id)
  3. Fetch asr_get_task_result(task_id) when status=completed
  4. Optionally asr_delete_task(task_id) to release memory

Development

uv run python -m py_compile src/funasr_mcp/*.py

About

FastMCP stdio FunASR server for audio/video transcription

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages