音频处理服务器

CDP MCP Server 是一个提供直接访问 Composers' Desktop Project (CDP) 声音转换程序的模型上下文协议 (MCP) 服务器,通过简单可靠的工具暴露 CDP 的原始功能,适用于音乐制作和音频处理场景。

  • by DavidPiazza
  • Python
  • 本地部署
  • 11 星标
  • 更新于
在 GitHub 查看 DavidPiazza/CDP_MCP

使用说明

CDP MCP服务器

一种模型上下文协议(MCP)服务器,提供对作曲家桌面项目(CDP)声音转换程序的直接访问。该服务器提供了一个超严格的工作流程,没有解释,通过简单可靠的工具暴露了CDP的原始功能。

概述

CDP MCP Server v7实现了CDP集成的最小化方法:

  • 直接执行 -无命令解析或解释
  • 原始使用文本 -查看CDP显示的内容
  • 简单的工具 -只有6个核心功能
  • 数据文件支持 -为复杂操作创建参数文件

特性

  • 🎵 完全CDP访问权限 -完全控制执行任何CDP程序
  • 📚 程序发现 -按类别列出所有可用的CDP计划
  • 📖 用法信息 -直接从CDP获取原始使用文本
  • 📄 数据文件创建 -创建CDP程序所需的参数文件
  • 🎛️ 光谱准备 -PVOC分析助手
  • 📊 声音分析 -获取音频文件的基本属性

需求

系统要求

  • macOS、Linux或Windows
  • Python 3.8或更高版本
  • 已安装CDP(作曲家桌面项目)

Python依赖关系

mcp
soundfile
numpy

CDP安装

  1. 从下载CDP 官方网站
  2. 按照特定于平台的说明安装CDP
  3. 设置 CDP_PATH 环境变量到CDP程序目录:
    export CDP_PATH="/path/to/cdp/programs"
    

安装

1.克隆存储库

git clone https://github.com/DavidPiazza/CDP_MCP.git
cd CDP_MCP

2.安装依赖项

pip install -r requirements.txt

或单独安装:

pip install mcp soundfile numpy

3.配置CDP路径

设置CDP安装路径:

export CDP_PATH="/Users/yourname/cdpr8/_cdp/_cdprogs"  # macOS example

4.运行服务器

python CDP_MCP_v7.py

MCP客户端配置

要将此服务器与MCP客户端(如Claude Desktop)一起使用,请添加到您的配置中:

{
  "mcpServers": {
    "cdp": {
      "command": "python",
      "args": ["/path/to/CDP_MCP_v7.py"],
      "env": {
        "CDP_PATH": "/path/to/cdp/programs"
      }
    }
  }
}

用法

基本工作流程

  1. 列出可用程序

    list_cdp_programs()
    # Returns categorized list of all CDP programs
    
  2. 获取程序使用情况

    get_cdp_usage('blur')
    # Returns exact CDP usage text
    
  3. 执行命令

    execute_cdp(['blur', 'blur', 'input.ana', 'output.ana', '50'])
    # Direct execution with no interpretation
    

示例操作

时间拉伸

# Check usage
get_cdp_usage('stretch')

# Execute
execute_cdp(['stretch', 'time', '1', 'input.ana', 'output.ana', '2.0'])

光谱模糊

# Note the double syntax for blur
execute_cdp(['blur', 'blur', 'input.ana', 'output.ana', '50'])

颗粒合成

execute_cdp(['modify', 'brassage', '4', 'input.wav', 'output.wav', '0.02', '-0.5', '-r200'])

使用数据文件

# Create data file for tesselate
create_data_file('tess_data.txt', '5 5 5 5\n0.0 0.1 0.2 0.3')

# Execute with data file
execute_cdp(['tesselate', 'tesselate', '1', 'in1.wav', 'in2.wav', 'in3.wav', 'in4.wav', 'output.wav', '0.5', 'tess_data.txt'])

工具参考

list_cdp_programs()

按类别(频谱处理、时域、合成等)列出所有可用的CDP程序

get_cdp_usage(program, subprogram=None)

通过不带参数运行CDP程序,返回其原始使用信息。

execute_cdp(command)

执行以字符串数组形式给出的CDP命令。没有解析或解释。

create_data_file(filepath, content)

创建某些CDP程序所需的文本数据文件。

prepare_spectral(input_file, output_file, window_size=2048)

辅助功能,用于执行光谱处理的PVOC分析。

analyze_sound(filepath)

返回声音文件的基本属性(持续时间、采样率、通道等)

建筑

服务器遵循超刚性的设计理念:

  • 无命令解析 -命令是数组,不是字符串
  • 无参数验证 -CDP处理所有验证
  • 无输出解释 -返回原始CDP输出
  • 最小抽象 -仅限直接CDP访问

提示

  • 始终检查使用情况 get_cdp_usage() 执行前
  • 即使成功,CDP也可能返回非零退出代码
  • 检查输出文件是否存在,以验证执行是否成功
  • 使用精确的命令数组-服务器不进行解释
  • 当CDP使用提到DATAFILE要求时创建数据文件

故障排除

未找到CDP

确保 CDP_PATH 环境变量指向您的CDP程序目录。

苹果硅问题

服务器使用以下命令自动处理Apple Silicon Mac上的x86_64仿真 arch -x86_64.

命令失败

  1. 检查确切的用法 get_cdp_usage()
  2. 验证所有文件路径是否存在
  3. 确保命令数组格式正确
  4. 检查CDP的stderr输出是否存在特定错误

许可证

MIT许可证-有关详细信息,请参阅许可证文件

致谢