Bambuddy MCP服务器

一个将Bambuddy的REST API作为AI助手工具暴露的MCP服务器,提供430多个API端点的动态访问。

  • by MrMebelMan
  • Python
  • 本地部署
  • 6 星标
  • 更新于
在 GitHub 查看 MrMebelMan/bambuddy-mcp

使用说明

Bambuddy MCP服务器

一 主控程序 公开完整信息的服务器 班巴迪 REST API作为人工智能助手的工具。

此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的相机快照”

需求

  • Python 3.10+
  • 紫外线 --安装方式 curl -LsSf https://astral.sh/uv/install.sh | sh
  • 跑步 班巴迪 例子

安装

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+个工具(使用更多上下文)。