使用说明
纯数据MCP服务器
该项目通过模型上下文协议(MCP)提供Claude AI和纯数据之间的集成。通过这种集成,Claude可以通过自然语言动态创建、修改和控制纯数据补丁。
概述
该系统由三个核心组件组成:
- MCP服务器 (
mcp_server.py):为Claude实现模型上下文协议接口 - OSC守护进程 (
osc_daemon.py):处理OSC与纯数据的通信 - 纯数据补丁 (
example_patch.pd):接收OSC消息的动态修补解决方案
特性
- 动态对象创建:通过Claude按需创建任何纯数据对象
- 连接管理:将对象连接在一起以构建复杂的信号流
- 工作空间管理:清除所有对象并重置状态
clear_workspace - DSP控制:远程启动和停止音频处理
- 参数控制:实时修改对象的参数
- 全局对象跟踪:可靠的基于索引的连接系统
- 错误处理:强大的错误检测和报告
- 调试工具:综合测井系统
最新动态
安装
先决条件
- Python 3.7+
- 纯数据(香草)0.51+
- 所需的Python包:
python-oscfastmcpjsonschema
uv包管理器
安装 uv
在macOS和Linux上:
curl -LsSf https://astral.sh/uv/install.sh | sh
在Windows(PowerShell)上:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
了解更多: 星光散射/紫外线
🛠️ 用法
克隆存储库
git clone https://github.com/nikmaniatis/Pd-MCP-Server.git
与Claude Desktop集成
- 打开:
Claude > Settings > Developer > Edit Config > claude_desktop_config.json
- 添加以下块:
{
"mcpServers": {
"Pure Data MCP Server": {
"command": "uv",
"args": [
"--directory",
"PATH_TO_PD_MCP_SERVER",
"run",
"main.py"
],
"env": {
"PD_OSC_HOST": "127.0.0.1",
"PD_OSC_PORT": "5000",
"PD_FEEDBACK_PORT": "5001"
}
}
}
}
注: 如果
uv找不到命令,运行which uv(Unix)或Get-Command uv(PowerShell)并使用中的完整路径"command"现场。
快速示例
一旦MCP服务器连接并且Pd补丁正在监听,您可以要求Claude使用自然语言构建补丁:
创建一个440 Hz的osc~,将其连接到dac~,然后启动DSP
Claude将调用MCP工具来生成以下内容:
create_object("osc~", ["440"], {"x": 100, "y": 50}) → index 0
create_object("*~", ["0.25"], {"x": 100, "y": 110}) → index 1
create_object("dac~", [], {"x": 100, "y": 170}) → index 2
connect_objects({"id": "osc~_100_50", "port": 0}, {"id": "*~_100_110", "port": 0})
connect_objects({"id": "*~_100_110", "port": 0}, {"id": "dac~_100_170", "port": 0})
connect_objects({"id": "*~_100_110", "port": 0}, {"id": "dac~_100_170", "port": 1})
start_dsp()
这将在工作空间子补丁中创建以下补丁:
osc~ 440
|
*~ 0.25 (volume)
/ \
dac~ L+R
然后,您可以通过对话要求Claude修改补丁、添加效果、更改频率或构建更复杂的信号链。
建筑
消息流
- Claude根据用户请求执行MCP工具
- MCP服务器处理工具调用
- OSC消息被格式化并发送到纯数据
- Pure Data通过动态补丁执行命令
- 反馈(如果有的话)通过OSC回调返回
故障排除
常见问题
- 对象创建失败:确保纯数据正在运行并且补丁已打开
- 连接问题:验证对象ID是否与返回的内容完全匹配
create_object - 端口冲突:检查端口5000是否已在使用中
- 消息格式错误:确保消息格式与纯数据补丁中的预期格式匹配
- 遗失物品:如果对象跟踪混淆,请尝试重新启动MCP服务器和纯数据
已知限制
- 不删除或断开支持:Pd贴片(
example_patch.pd)仅手柄/pd/create,/pd/connect,/pd/dsp,以及/pd/clear。对象和连接不能单独删除--使用clear_workspace以重置整个工作区。 - 参数为零的信号对象:当信号对象像
+~或*~用a创建0通过动态补丁(例如。,obj 100 100 +~ 0),Pd 0.55+将第二个入口视为浮子入口而不是信号入口,从而断开信号连接。MCP服务器会自动从信号对象中删除尾随的零参数,以避免此问题。
许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
致谢
- 纯数据 -开源可视化编程语言
- 模型上下文协议 -支持AI工具的协议
- Python OSC -OSC的Python实现
