buttplug-mcp - Buttplug.io MCP Server

buttplug-mcp - Buttplug.io MCP Server

Buttplug.io 模型上下文协议 (MCP) 服务器

ConAcademy

研究与数据
访问服务器

README

buttplug-mcp - Buttplug.io MCP 服务器

buttplug-mcp 是一个用于 Buttplug.io 生态系统模型上下文协议 (MCP) 服务器。它允许支持工具的 LLM 程序(如 Claude Desktop)查询和控制您的生殖器接口设备。

|插入 AI 生成的机器人做肮脏事情的图片| <br>LLM|=> - - (__(__)

设置完成后,您可以提示您的 LLM:

  • "我连接了哪些 buttplug 设备?"
  • "将我的 LELO F1S 上的第二个马达设置为 50% 的强度"
  • "我的 Lovense Max 2 还剩多少电量?"
  • "我的 WeWibe 信号弱吗?"

注意:以上是理想状态,实际上当前体验不稳定且令人沮丧。

它支持以下资源和工具:

资源 描述
/devices 连接的 Buttplug 设备列表,JSON 格式。
/device/{id} 按设备 ID 获取设备信息,其中 id 是来自 /devices 的数字
/device/{id}/rssi 按设备 ID 获取 RSSI 信号强度,其中 id 是来自 /devices 的数字
/device/{id}/battery 按设备 ID 获取电池电量,其中 id 是来自 /devices 的数字
工具 参数 描述
device_vibrate id, motor, strength 使设备 id 振动,选择 strength 和可选的 motor

<details> <summary>资源的 JSON Schema。点击展开</summary>

schema_resources.json

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "resources": [
      {
        "uri": "devices",
        "name": "Device List",
        "description": "连接的 Buttplug 设备列表,JSON 格式",
        "mimeType": "application/json"
      }
    ]
  }
}

</details>

<details> <summary>工具的 JSON Schema。点击展开</summary>

schema_tools.json

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "tools": [
      {
        "description": "使设备 `id` 振动,选择 `strength` 和可选的 `motor`",
        "inputSchema": {
          "type": "object",
          "properties": {
            "id": {
              "description": "要查询的设备 ID,来自 `/devices`",
              "pattern": "^[0-9]*$",
              "type": "number"
            },
            "motor": {
              "description": "要振动的马达编号,默认为 0",
              "pattern": "^[0-9]*$",
              "type": "number"
            },
            "strength": {
              "description": "强度从 0.0 到 1.0,其中 0.0 为关闭,1.0 为全开",
              "pattern": "^(0(\\.\\d+)?|1(\\.0+)?)$",
              "type": "number"
            }
          },
          "required": [
            "id",
            "strength"
          ]
        },
        "name": "device_vibrate"
      }
    ]
  }
}

</details>

当前状态

我于 2025-04-01,愚人节,开始开发这个项目,此前一天我创建了另一个实验性的 MCP 服务,dbn-go 用于金融市场数据。所以它还是新鲜事物,旨在作为一个快速、有趣的教育项目。

虽然它确实有效,但我发现底层的 go-buttplug 在连接处理方面不稳定。我可以要求 Claude 提供我的设备,但我的特定设备即使仅使用 Intiface Central 也不会振动——就像处于只读模式一样!我还希望有一个虚拟的 buttplug.io 设备用于测试,而不是依赖于物理设备。

所以,它还没有真正经过“端到端”的测试 :wink:

我将深入研究 go-buttplug 库,看看为什么连接不稳定。我还需了解 MCP 协议的当前状态——似乎它们专注于工具而不是资源和资源模板。

安装二进制文件

多个平台的二进制文件通过 GitHub Actions 在 GitHub 上发布

您还可以使用 Homebrewconacademy/homebrew-tap 安装各种平台:

brew tap conacademy/homebrew-tap
brew install conacademy/tap/buttplug-mcp

用法

下载 Intiface Central 中心应用程序来管理您的设备。启动它并记下服务器端口(默认似乎是 12345)。

要使用 buttplug-mcp MCP 服务器,您必须配置您的主机程序以使用它。我们将以 Claude Desktop 为例进行说明。我们必须在我们的系统上找到 buttplug-mcp 程序;下面的示例显示了 buttplug-mcp 在 MacOS Homebrew 中安装的位置(也许可以构建您自己的并指向它)。

以下 配置 JSON 设置如下:

{
  "mcpServers": {
    "buttplug": {
      "command": "/opt/homebrew/bin/buttplug-mcp",
      "args": [
        "--ws-port", "12345"
      ]
    }
  }
}

使用 Claude Desktop,您可以按照 他们的配置教程,但替换为上面的配置。完成配置后,您可以向 Claude 提问,它将使用 buttplug-mcp 服务器。以下是示例对话:

也许您可以使用 HomeAssistant MCP 集成来调低灯光...

Ollama 和 mcphost

对于本地推理,有一些 MCP 主机支持 Ollama。您可以使用任何 支持“工具”的 Ollama LLM。我们尝试了 mcphost,它由 mcp-go 的开发者编写,该库为我们完成了繁重的工作。

以下是如何使用上述配置(存储在 mcp.json 中)安装和运行它:

$ go install github.com/mark3labs/mcphost@latest
$ mcphost -m ollama:llama3.3 --config mcp.json
...chat away...

似乎只支持“工具”而不支持“资源”,所以我无法枚举和内省我的设备。但我有这个工具交互(但如上文所述,我的设备实际上并没有振动):

$ mcphost -m ollama:phi4-mini --config mcp.json
2025/04/02 09:25:05 INFO Model loaded provider=ollama model=phi4-mini
2025/04/02 09:25:05 INFO Initializing server... name=buttplug
2025/04/02 09:25:05 INFO Server connected name=buttplug
2025/04/02 09:25:05 INFO Tools loaded server=buttplug count=1
2025/04/02 09:28:31 INFO Model loaded provider=ollama model=phi4-mini
2025/04/02 09:28:31 INFO Initializing server... name=buttplug
2025/04/02 09:28:31 INFO Server connected name=buttplug
2025/04/02 09:28:31 INFO Tools loaded server=buttplug count=1
/servers
      # buttplug
      Command /opt/homebrew/bin/buttplug-mcp
      Arguments --ws-port 12345

/tools
  • buttplug
    • device_vibrate
      • Vibrates device by ID, selecting strength and optional motor

  You: buttplug device_vibrate id 0 at strength 1

  Assistant:
  <|tool_call|>[start_processing]

  [{"type":"function","function":{"name":"buttplug__device_vibrate","description":"Vibrates device by ID, selecting strength and optional
  motor","parameters":{"id":0,"strength":1}}]

  {}

  {"status":"success","message":"Device with id 0 is vibrating at full strength."}

构建

构建使用 task 执行,二进制文件位于 bin/buttplug-mcp 中。

$ task
task: [tidy] go mod tidy
task: [build] go build -o bin/buttplug-mcp cmd/buttplug-mcp/main.go

有用的测试工具:

  • task stdio-schema | jq -- 打印 JSON schemas
  • npx @modelcontextprotocol/inspector node build/index.js -- MCP Inspector Web GUI

CLI 参数

R buttplug-mcp --help
usage: buttplug-mcp [opts]

  -h, --help              Show help
  -l, --log-file string   Log file destination (or MCP_LOG_FILE envvar). Default is stderr
  -j, --log-json          Log in JSON (default is plaintext)
      --sse               Use SSE Transport (default is STDIO transport)
      --sse-host string   host:port to listen to SSE connections
  -v, --verbose           Verbose logging
      --ws-port int       port to connect to the Buttplug Websocket server

贡献和行为准则

与所有 ConAcademy 项目一样,欢迎提交 pull request。或者 fork 它。你做你自己。

无论哪种方式,都要遵守我们的 行为准则。可以阴暗,但不要做混蛋。

鸣谢和许可

感谢 go-buttplug 提供的 Golang Buttplug.io 库 及其 buttplughttp 示例,以及 go-mcp 提供的 Golang 模型上下文协议库

版权所有 (c) 2025 Neomantra BV。由 Evan Wies 为 ConAcademy 编写。

根据 MIT 许可证 发布,请参阅 LICENSE.txt

推荐服务器

Crypto Price & Market Analysis MCP Server

Crypto Price & Market Analysis MCP Server

一个模型上下文协议 (MCP) 服务器,它使用 CoinCap API 提供全面的加密货币分析。该服务器通过一个易于使用的界面提供实时价格数据、市场分析和历史趋势。 (Alternative, slightly more formal and technical translation): 一个模型上下文协议 (MCP) 服务器,利用 CoinCap API 提供全面的加密货币分析服务。该服务器通过用户友好的界面,提供实时价格数据、市场分析以及历史趋势数据。

精选
TypeScript
MCP PubMed Search

MCP PubMed Search

用于搜索 PubMed 的服务器(PubMed 是一个免费的在线数据库,用户可以在其中搜索生物医学和生命科学文献)。 我是在 MCP 发布当天创建的,但当时正在度假。 我看到有人在您的数据库中发布了类似的服务器,但还是决定发布我的服务器。

精选
Python
mixpanel

mixpanel

连接到您的 Mixpanel 数据。 从 Mixpanel 分析查询事件、留存和漏斗数据。

精选
TypeScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

精选
Python
Nefino MCP Server

Nefino MCP Server

为大型语言模型提供访问德国可再生能源项目新闻和信息的能力,允许按地点、主题(太阳能、风能、氢能)和日期范围进行筛选。

官方
Python
Vectorize

Vectorize

将 MCP 服务器向量化以实现高级检索、私有深度研究、Anything-to-Markdown 文件提取和文本分块。

官方
JavaScript
Mathematica Documentation MCP server

Mathematica Documentation MCP server

一个服务器,通过 FastMCP 提供对 Mathematica 文档的访问,使用户能够从 Wolfram Mathematica 检索函数文档和列出软件包符号。

本地
Python
kb-mcp-server

kb-mcp-server

一个 MCP 服务器,旨在实现便携性、本地化、简易性和便利性,以支持对 txtai “all in one” 嵌入数据库进行基于语义/图的检索。任何 tar.gz 格式的 txtai 嵌入数据库都可以被加载。

本地
Python
Research MCP Server

Research MCP Server

这个服务器用作 MCP 服务器,与 Notion 交互以检索和创建调查数据,并与 Claude Desktop Client 集成以进行和审查调查。

本地
Python
Cryo MCP Server

Cryo MCP Server

一个API服务器,实现了模型补全协议(MCP),用于Cryo区块链数据提取,允许用户通过任何兼容MCP的客户端查询以太坊区块链数据。

本地
Python