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>
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"resources": [
{
"uri": "devices",
"name": "Device List",
"description": "连接的 Buttplug 设备列表,JSON 格式",
"mimeType": "application/json"
}
]
}
}
</details>
<details> <summary>工具的 JSON Schema。点击展开</summary>
{
"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 上发布。
您还可以使用 Homebrew 从 conacademy/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 schemasnpx @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
一个模型上下文协议 (MCP) 服务器,它使用 CoinCap API 提供全面的加密货币分析。该服务器通过一个易于使用的界面提供实时价格数据、市场分析和历史趋势。 (Alternative, slightly more formal and technical translation): 一个模型上下文协议 (MCP) 服务器,利用 CoinCap API 提供全面的加密货币分析服务。该服务器通过用户友好的界面,提供实时价格数据、市场分析以及历史趋势数据。
MCP PubMed Search
用于搜索 PubMed 的服务器(PubMed 是一个免费的在线数据库,用户可以在其中搜索生物医学和生命科学文献)。 我是在 MCP 发布当天创建的,但当时正在度假。 我看到有人在您的数据库中发布了类似的服务器,但还是决定发布我的服务器。
mixpanel
连接到您的 Mixpanel 数据。 从 Mixpanel 分析查询事件、留存和漏斗数据。

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

Nefino MCP Server
为大型语言模型提供访问德国可再生能源项目新闻和信息的能力,允许按地点、主题(太阳能、风能、氢能)和日期范围进行筛选。
Vectorize
将 MCP 服务器向量化以实现高级检索、私有深度研究、Anything-to-Markdown 文件提取和文本分块。
Mathematica Documentation MCP server
一个服务器,通过 FastMCP 提供对 Mathematica 文档的访问,使用户能够从 Wolfram Mathematica 检索函数文档和列出软件包符号。
kb-mcp-server
一个 MCP 服务器,旨在实现便携性、本地化、简易性和便利性,以支持对 txtai “all in one” 嵌入数据库进行基于语义/图的检索。任何 tar.gz 格式的 txtai 嵌入数据库都可以被加载。
Research MCP Server
这个服务器用作 MCP 服务器,与 Notion 交互以检索和创建调查数据,并与 Claude Desktop Client 集成以进行和审查调查。

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