返回市场
CDP_MCP服务器

CDP_MCP服务器

作者:DavidPiazza7 星标更新:2025-06-18

项目介绍

CDP MCP 服务器

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

概述

CDP MCP 服务器 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 示例

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()
    # 返回按类别组织的所有CDP程序列表
    
  2. 获取程序使用信息

    get_cdp_usage('blur')
    # 返回精确的CDP使用文本
    
  3. 执行命令

    execute_cdp(['blur', 'blur', 'input.ana', 'output.ana', '50'])
    # 直接执行,不进行解释
    

示例操作

时间拉伸

# 查看使用信息
get_cdp_usage('stretch')

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

频谱模糊

# 注意模糊的双重语法
execute_cdp(['blur', 'blur', 'input.ana', 'output.ana', '50'])

粒子合成

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

使用数据文件

# 创建用于tesselate的数据文件
create_data_file('tess_data.txt', '5 5 5 5\n0.0 0.1 0.2 0.3')

# 使用数据文件执行
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问题

服务器自动处理Apple Silicon Mac上的x86_64模拟,使用 arch -x86_64

命令失败

  1. 使用 get_cdp_usage() 检查确切的使用情况
  2. 验证所有文件路径存在
  3. 确保正确的命令数组格式
  4. 检查CDP的stderr输出以查找具体错误

许可

MIT许可 - 详情见LICENSE文件

致谢