Bambuddy MCP服务器
此MCP服务器在启动时根据Bambuddy的OpenAPI规范动态生成工具,使您的AI助手可以访问 430多个API端点 --而不会在启动时淹没上下文窗口。
运作原理
启动时,服务器从正在运行的Bambuddy实例中获取OpenAPI规范(/openapi.json),解析所有430+个端点,并按类别对其进行索引。
默认情况下,仅 3元工具 已在AI助手中注册:
| 元工具 | 目的 |
|---|---|
list_categories | 浏览可用的API类别 |
search_tools | 按关键字查找工具(模糊匹配) |
execute_tool | 按名称调用任何发现的工具 |
这使上下文窗口保持较小,同时仍然提供完整的API覆盖范围。人工智能搜索它需要的东西,检查输入模式,并执行——所有这些都是按需执行的。
当调用工具时,服务器向Bambuddy发出相应的HTTP请求并返回响应。JSON响应以文本形式返回,而二进制响应(如相机快照)以原生MCP形式返回 ImageContent 使用base64编码的数据,以便AI助手可以直接查看、处理和显示它们。
示例用法
配置后,您可以向AI助手询问以下问题:
- “连接了哪些打印机?”
- “显示我的A1 Mini的状态”
- “列出我最近的打印档案”
- “将benchy添加到打印队列”
- “我有什么灯丝卷轴?”
- “检查打印进度”
- “打开室内灯”
- “显示打印机X的相机快照”
需求
安装
uv pip install bambuddy-mcp或者从源代码安装:
git clone https://github.com/maziggy/bambuddy-mcp.git
cd bambuddy-mcp
uv sync配置
使用uvx
{
"mcpServers": {
"bambuddy": {
"command": "uvx",
"args": ["bambuddy-mcp"],
"env": {
"BAMBUDDY_URL": "http://localhost:8000",
"BAMBUDDY_API_KEY": "your-api-key",
"BAMBUDDY_CENSOR_ACCESS_CODE": "true",
"BAMBUDDY_CENSOR_SERIAL": "true",
"BAMBUDDY_CENSOR_MODEL_FILENAME": "false"
}
}
}
}本地开发
用于开发或从源代码运行:
{
"mcpServers": {
"bambuddy": {
"command": "uv",
"args": ["run", "--directory", "/path/to/bambuddy-mcp", "python", "-m", "bambuddy_mcp"],
"env": {
"BAMBUDDY_URL": "http://localhost:8000",
"BAMBUDDY_API_KEY": "your-api-key",
"BAMBUDDY_CENSOR_ACCESS_CODE": "true",
"BAMBUDDY_CENSOR_SERIAL": "true",
"BAMBUDDY_CENSOR_MODEL_FILENAME": "false"
}
}
}
}NixOS 系统
在NixOS上,使用Python系统来避免动态链接问题:
{
"mcpServers": {
"bambuddy": {
"command": "nix-shell",
"args": [
"-p", "uv",
"--run", "UV_PYTHON=/run/current-system/sw/bin/python3 uv --directory /path/to/bambuddy-mcp run bambuddy-mcp"
],
"env": {
"BAMBUDDY_URL": "http://localhost:8000",
"BAMBUDDY_API_KEY": "your-api-key"
}
}
}
}环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
BAMBUDDY_URL | http://localhost:8000 | Bambuddy实例的基本URL |
BAMBUDDY_API_KEY | _(空)_ | 用于身份验证的API密钥(在Bambuddy设置中创建) |
BAMBUDDY_DIRECT_MODE | false | 设置为 true 直接公开所有430+个工具,而不是元工具 |
BAMBUDDY_CENSOR_ACCESS_CODE | true | 口罩 access_code API响应中的字段 |
BAMBUDDY_CENSOR_SERIAL | true | 口罩 serial_number 字段(保留前2个字符+后2个字符) |
BAMBUDDY_CENSOR_MODEL_FILENAME | false | 掩码模型文件名(.3mf, .gcode)在API响应中,并阻止直接base64图像嵌入 |
注: 默认情况下,服务器公开元工具(list_categories,search_tools,execute_tool,find_printer)让人工智能助手根据需要发现并调用API端点。集BAMBUDDY_DIRECT_MODE=true直接公开所有430+个工具(使用更多上下文)。
