一个提供直接访问作曲家桌面项目(CDP)声音转换程序的模型上下文协议(MCP)服务器。该服务器提供了超严格的流程,零解释,通过简单可靠的工具暴露了CDP的原始功能。
CDP MCP 服务器 v7 实现了一种极简的CDP集成方法:
mcp
soundfile
numpy
CDP_PATH 到你的CDP程序目录:
export CDP_PATH="/path/to/cdp/programs"
git clone https://github.com/DavidPiazza/CDP_MCP.git
cd CDP_MCP
pip install -r requirements.txt
或者单独安装:
pip install mcp soundfile numpy
设置你的CDP安装路径:
export CDP_PATH="/Users/yourname/cdpr8/_cdp/_cdprogs" # macOS 示例
python CDP_MCP_v7.py
要使用此服务器与MCP客户端(如Claude Desktop),在配置中添加以下内容:
{
"mcpServers": {
"cdp": {
"command": "python",
"args": ["/path/to/CDP_MCP_v7.py"],
"env": {
"CDP_PATH": "/path/to/cdp/programs"
}
}
}
}
列出可用程序
list_cdp_programs()
# 返回按类别组织的所有CDP程序列表
获取程序使用信息
get_cdp_usage('blur')
# 返回精确的CDP使用文本
执行命令
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)返回音频文件的基本属性(持续时间、采样率、声道数等)
服务器遵循超严格的设计理念:
get_cdp_usage()确保环境变量 CDP_PATH 指向你的CDP程序目录。
服务器自动处理Apple Silicon Mac上的x86_64模拟,使用 arch -x86_64。
get_cdp_usage() 检查确切的使用情况MIT许可 - 详情见LICENSE文件