- Buttplug MCP は、Buttplug.io エコシステム内のアダルト向けデバイスを 大規模言語モデル(LLM) ベースのプログラムと連携させる MCP サーバー
- ユーザーは Claude Desktop などの LLM ツールを通じて、デバイス情報の参照や、振動、バッテリー状態、信号強度などの各種機能を制御可能
- 現時点では 機能の完成度と安定性 が不足しており、全機能がスムーズに動作せず、実機の制御にも難しさがある
- Ollama、mcphost などの MCP ホストと連携してツールベースのテストは可能だが、一部機能(リソース探索など)には制限がある
- このプロジェクトは、ほかの MCP サービス と比べて LLM ベースのスマートデバイス制御に特化しており、オープンソースとして無料提供されている
プロジェクト概要
- buttplug-mcp は Model Context Protocol(MCP)サーバーで、Buttplug.io エコシステム専用
- Claude Desktop のような ツール対応 LLM プログラム から、自分の Buttplug デバイスを問い合わせ・制御できる
- コマンド例: "接続されている buttplug デバイスは?", "LELO F1S の 2 番目のモーターを 50% に", "Lovense Max 2 のバッテリー残量は?", "WeWibe の信号は弱い?"
- 上記の例は目指している方向性に近いが、現在の実装で得られる実際の体験は 不安定で期待外れな状態
対応リソースとツール構成
- API リソース
/devices: 接続済み Buttplug デバイス一覧(JSON)
/device/{id}: 各デバイスの詳細情報
/device/{id}/rssi: デバイスの信号強度(RSSI)
/device/{id}/battery: デバイスごとのバッテリー残量
- ツール
device_vibrate: id、motor、strength パラメータ(必須: id、strength)。必要に応じて motor を指定して振動を制御
JSON スキーマ例(リソース)
{
"resources": [
{
"uri": "devices",
"name": "Device List",
"description": "List of connected Buttplug devices in JSON",
"mimeType": "application/json"
}
]
}
JSON スキーマ例(ツール)
{
"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"
}
]
}
現在の状態
- 2025 年 4 月 1 日(エイプリルフール)に始まった実験的な短期プロジェクト
- go-buttplug ライブラリの接続管理が不安定で、デバイス一覧の問い合わせはできるものの、振動機能など一部の制御は円滑に行えない
- テスト目的では仮想デバイスが必要だが、Buttplug.io は物理デバイスのみをサポート
- エンドツーエンドテスト が十分に行われていない初期段階
- 今後は go-buttplug ライブラリの接続問題と、MCP プロトコルのホスト側の状況(ツール中心の実装など)をさらに検討する予定
インストール案内
- マルチプラットフォーム向けバイナリが GitHub Releases で配布されている
- Homebrew によるインストールにも対応:
brew tap conacademy/homebrew-tap
brew install conacademy/tap/buttplug-mcp
使い方
Ollama および mcphost との統合
ビルド
- task ベースのビルドシステムを採用
- 便利なテストツール:
task stdio-schema | jq(JSON スキーマ確認)
npx @modelcontextprotocol/inspector node build/index.js(MCP Inspector Web GUI)
CLI 引数
- 主なオプション:
-h, --help: ヘルプ
-l, --log-file: ログファイル出力先を指定
-j, --log-json: JSON ログ形式
--sse: SSE 転送を使用
--sse-host: SSE 接続用ホスト / ポート
-v, --verbose: 詳細ログ
--ws-port: Buttplug Websocket サーバー接続ポート
貢献と行動規範
クレジットとライセンス
- go-buttplug、go-mcp のオープンソースプロジェクトを活用
- Buttplug.io の Golang ライブラリおよびサンプル、Model Context Protocol の Golang ライブラリを含む
- 2025 Neomantra BV、Evan Wies(ConAcademy)著作
- MIT ライセンス で公開(詳細なライセンスは LICENSE.txt を参照)
2件のコメント
うわ……私たちにはまだ早すぎると言うべきか……
Hacker Newsの反応
We were vibe coding before it was coolという文句をそのまま引用