该项目实现了一个MCP(模型上下文协议)服务器,该服务器通过Audacity的mod-script-pipe接口连接到Audacity。使用命名管道,服务器向Audacity发送命令并接收响应,允许您通过MCP端点控制Audacity(例如,开始/停止录音或播放)。该服务器可以使用uv工具启动,并与Claude Desktop客户端集成。
uv工具运行MCP服务器。httpxmcp[cli]克隆或下载项目:
git clone <repository-url>
cd mcp-audacity
设置虚拟环境:
使用uv工具创建并激活虚拟环境:
uv venv --python=python3.13
source .venv/bin/activate
使用以下命令安装所需依赖项:
uv add "mcp[cli]" httpx
audacity_mcp_pipe.py(主要的MCP服务器脚本)pyproject.toml(项目配置)claude_desktop_config.json(用于与Claude Desktop客户端集成)为了使MCP服务器能够连接到Audacity,必须启用其mod-script-pipe接口。
步骤1:在Audacity中启用mod-script-pipe
步骤2:验证命名管道
Audacity应创建两个命名管道(默认情况下在macOS/Linux上):
命令管道:/tmp/audacity_script_pipe.to.%number%
响应管道:/tmp/audacity_script_pipe.from.%number%
在终端中运行以下命令进行验证:
ls -l /tmp | grep audacity_script_pipe
如果看到额外的数字或字符(例如
/tmp/audacity_script_pipe.to.1234),请相应地更新audacity_mcp_pipe.py中的管道路径。
从命令行运行MCP服务器 1. 导航到您的项目目录:
cd /%path_to_project%/mcp-audacity
2. 激活虚拟环境(如果尚未激活):
source .venv/bin/activate
3. 使用uv工具启动服务器:
uv run audacity_mcp_pipe.py
您应该会看到如下日志消息:
2025-04-13 19:36:32,759 - AudacityMCPServer - INFO - Audacity MCP服务器正在启动
2025-04-13 19:36:32,760 - AudacityMCPServer - INFO - 打开了Audacity mod-script-pipe
2025-04-13 19:36:32,762 - AudacityMCPServer - INFO - 已连接到Audacity mod-script-pipe
您的MCP服务器暴露了几个可以通过MCP客户端调用的端点。例如:
get_status:获取Audacity状态。
start_recording:开始录音。
stop_recording:停止录音。
play:开始播放。
pause:暂停播放。
这些端点定义在audacity_mcp_pipe.py中,可以使用MCP客户端触发。
如果您想通过Claude Desktop客户端运行服务器,请更新您的claude_desktop_config.json指向此项目。例如:
{
"mcpServers": {
"audacity": {
"command": "/%absolute_path_to_ev%/.local/bin/uv",
"args": [
"--directory",
"/Users/andriiboboshko/mcp-audacity",
"run",
"audacity_mcp_pipe.py"
]
}
}
}
确保路径匹配您的项目位置,并且您的虚拟环境正确设置。
本项目根据MIT许可证提供。您可以自由修改和分发。
错误:spawn uv ENOENT
claude_desktop_config.json中时,问题得到了解决。错误 - 无法连接到Audacity:[Errno 61] 连接被拒绝
我遇到这个错误是因为Audacity在/tmp文件夹中创建了带有某些数字的命令和响应管道文件:
/tmp/audacity_script_pipe.to.501
/tmp/audacity_script_pipe.from.501
更新代码中的特定数字后,问题得以解决。