- Buttplug MCP là một máy chủ MCP dùng để kết nối các thiết bị người lớn trong hệ sinh thái Buttplug.io với các chương trình dựa trên mô hình ngôn ngữ lớn (LLM)
- Người dùng có thể dùng các công cụ LLM như Claude Desktop để truy vấn thông tin thiết bị hoặc điều khiển nhiều tính năng như rung, trạng thái pin, cường độ tín hiệu
- Hiện tại, dự án vẫn thiếu độ hoàn thiện chức năng và độ ổn định, nên toàn bộ tính năng chưa vận hành mượt mà và việc điều khiển thiết bị thực tế còn khó khăn
- Có thể tích hợp với các host MCP như Ollama, mcphost để thử nghiệm theo kiểu công cụ, nhưng một số tính năng (như khám phá tài nguyên) còn bị hạn chế
- So với các dịch vụ MCP khác, dự án này tập trung vào điều khiển thiết bị thông minh dựa trên LLM và được phát hành miễn phí dưới dạng mã nguồn mở
Tổng quan dự án
- buttplug-mcp là máy chủ Model Context Protocol (MCP), dành riêng cho hệ sinh thái Buttplug.io
- Trong các chương trình LLM có hỗ trợ công cụ như Claude Desktop, người dùng có thể truy vấn và điều khiển thiết bị Buttplug của mình
- Ví dụ lệnh: "Các thiết bị buttplug nào của tôi đang được kết nối?", "Đặt động cơ thứ hai của LELO F1S ở mức 50%", "Pin còn lại của Lovense Max 2 là bao nhiêu?", "Tín hiệu của WeWibe có yếu không?"
- Các ví dụ trên gần với định hướng mục tiêu, nhưng trải nghiệm hiện tại được triển khai thực tế vẫn không ổn định và gây thất vọng
Cấu trúc tài nguyên và công cụ được hỗ trợ
- Tài nguyên API
/devices: danh sách thiết bị Buttplug đang kết nối (JSON)
/device/{id}: thông tin chi tiết của từng thiết bị
/device/{id}/rssi: cường độ tín hiệu (RSSI) của thiết bị
/device/{id}/battery: dung lượng pin còn lại của từng thiết bị
- Công cụ
device_vibrate: tham số id, motor, strength (bắt buộc: id, strength), có thể chỉ định thêm motor để điều khiển rung
Ví dụ JSON schema (tài nguyên)
{
"resources": [
{
"uri": "devices",
"name": "Device List",
"description": "List of connected Buttplug devices in JSON",
"mimeType": "application/json"
}
]
}
Ví dụ JSON schema (công cụ)
{
"tools": [
{
"description": "Vibrates device by `id`, selecting `strength` and optional motor",
"inputSchema": {
"type": "object",
"properties": {
"id": {"description": "Device ID to query, sourced from `/devices`", "type": "number"},
"motor": {"description": "Motor number to vibrate, defaults to 0", "type": "number"},
"strength": {"description": "Strength from 0.0 to 1.0, with 0.0 being off and 1.0 being full", "type": "number"}
},
"required": ["id", "strength"]
},
"name": "device_vibrate"
}
]
}
Trạng thái hiện tại
- Đây là một dự án thử nghiệm ngắn hạn được bắt đầu vào ngày 1/4/2025 (Cá tháng Tư)
- Khả năng quản lý kết nối của thư viện go-buttplug không ổn định, nên dù có thể truy vấn danh sách thiết bị, một số điều khiển như rung vẫn chưa hoạt động trơn tru
- Cần thiết bị ảo cho mục đích thử nghiệm, nhưng Buttplug.io chỉ hỗ trợ thiết bị vật lý
- Đây là giai đoạn đầu, chưa có kiểm thử end-to-end đầy đủ
- Trong tương lai, dự án sẽ tiếp tục xem xét vấn đề kết nối của thư viện go-buttplug và trạng thái của các host trong giao thức MCP (chẳng hạn triển khai thiên về công cụ)
Hướng dẫn cài đặt
- Các tệp nhị phân đa nền tảng được phát hành qua GitHub Releases
- Cũng hỗ trợ cài đặt bằng Homebrew:
brew tap conacademy/homebrew-tap
brew install conacademy/tap/buttplug-mcp
Cách sử dụng
Tích hợp với Ollama và mcphost
Build
- Áp dụng hệ thống build dựa trên task
- Công cụ kiểm thử hữu ích:
task stdio-schema | jq (kiểm tra JSON schema)
npx @modelcontextprotocol/inspector node build/index.js (MCP Inspector Web GUI)
Tham số CLI
- Các tùy chọn chính:
-h, --help: trợ giúp
-l, --log-file: chỉ định đích tệp log
-j, --log-json: định dạng log JSON
--sse: sử dụng truyền tải SSE
--sse-host: host/cổng cho kết nối SSE
-v, --verbose: log chi tiết
--ws-port: cổng kết nối tới máy chủ Buttplug Websocket
Đóng góp và quy tắc ứng xử
- Hoan nghênh tự do gửi Pull Request, fork, v.v.
- Cần tuân thủ Code of Conduct
Ghi công và giấy phép
- Sử dụng các dự án mã nguồn mở go-buttplug, go-mcp
- Bao gồm thư viện Golang của Buttplug.io và ví dụ, cùng thư viện Golang cho Model Context Protocol
- Bản quyền 2025 Neomantra BV, Evan Wies (ConAcademy)
- Phát hành theo giấy phép MIT (xem LICENSE.txt để biết chi tiết)
2 bình luận
Ôi... có lẽ thứ này đến với chúng ta quá sớm...
Ý kiến trên Hacker News