世界を動かす技術を、日本語で。

バットプラグ MCP

概要

buttplug-mcp は、 Buttplug.io エコシステム向けの Model Context Protocol (MCP)サーバー。 Genital Interface DevicesとLLMプログラム(例:Claude Desktop)を連携可能。 デバイスの状態取得や操作が JSON APIツール 経由で実現。 現状は 安定性に課題 があり、実運用は未検証。 インストールと利用方法、開発状況、貢献方法などを解説。

buttplug-mcpとは

  • buttplug-mcp は、 Buttplug.io 用の MCPサーバー として動作
  • LLM(例:Claude Desktop)から性関連デバイスの 状態取得・制御 を実現
  • MCPプロトコル により、ツールやリソースへのアクセスを統一
  • 現時点では 接続安定性が低く、動作も限定的
  • 主に 教育的・実験的プロジェクト として開発

主なAPIリソースとツール

  • /devices :接続中のButtplugデバイス一覧(JSON形式)

  • /device/{id} :デバイスIDごとの詳細情報

  • /device/{id}/rssi :デバイスのRSSI(信号強度)

  • /device/{id}/battery :デバイスのバッテリー残量

  • device_vibrate ツール:デバイスID・モーター番号・強度指定で振動制御

    • id :デバイスID(/devicesから取得)
    • motor :モーター番号(省略時は0)
    • strength :0.0~1.0(0.0=オフ、1.0=最大)

現状と課題

  • 2025年4月1日 に開発開始(他MCPサービスの経験を活用)
  • go-buttplugライブラリ の接続安定性に課題
  • デバイス検出は可能だが、 振動指示が反映されない 現象あり
  • テスト用の 仮想デバイス環境が未整備
  • MCPホストの実装状況や Tools/Resourcesの扱い も調査中

インストール方法

  • GitHub Actions 経由でマルチプラットフォーム向けバイナリ配布
  • Homebrew 対応(conacademy/homebrew-tap)
    • brew tap conacademy/homebrew-tap
      brew install conacademy/tap/buttplug-mcp
      
  • Intiface Central のインストール推奨(デバイス管理用)

設定・利用方法

  • Intiface Centralを起動し、 サーバーポート(デフォルト12345) を確認

  • ホストプログラム(例:Claude Desktop)の設定ファイルでbuttplug-mcpを指定

    {
      "mcpServers": {
        "buttplug": {
          "command": "/opt/homebrew/bin/buttplug-mcp",
          "args": [ "--ws-port", "12345" ]
        }
      }
    }
    
  • Claude Desktopの設定チュートリアルに従い、上記設定を適用

  • 設定後、Claudeに「接続中のbuttplugデバイスは?」など質問可能

Ollama・mcphostとの連携

  • Ollama 対応LLMでも利用可能("Tools"サポート必須)
  • mcphost (mcp-go作者作)経由でローカル推論
    • go install github.com/mark3labs/mcphost@latest
      mcphost -m ollama:llama3.3 --config mcp.json
      
  • 現状、 Resourcesの列挙や詳細取得は未対応
  • "device_vibrate"ツールコールの例
    • buttplug device_vibrate id 0 at strength 1
      

ビルド・開発

  • task コマンドでビルド
    • task
      
  • bin/buttplug-mcp にバイナリ生成
  • task stdio-schema | jq でJSONスキーマ出力確認
  • npx @modelcontextprotocol/inspector でMCP Inspector Web GUI利用可能
  • 主なCLI引数
    • --help:ヘルプ表示
    • --log-file:ログファイル指定
    • --log-json:JSONログ出力
    • --sse:SSEトランスポート利用
    • --ws-port:Buttplug Websocketサーバーポート指定
    • --verbose:詳細ログ

貢献・ライセンス

  • Pull Request歓迎、Forkも自由
  • Code of Conduct 遵守必須(礼儀と節度を重視)
  • 主要ライブラリへの謝辞
    • go-buttplug (Golang向けButtplug.ioライブラリ)
    • go-mcp (Golang向けModel Context Protocolライブラリ)
  • MITライセンス (LICENSE.txt参照)
  • 著作権: 2025 Neomantra BV、作者: Evan Wies(ConAcademy)

Hackerたちの意見

Buttplugは、セックスおもちゃやファッキングマシンなどの親密なハードウェアを制御するためのオープンソースの標準とソフトウェアプロジェクトです。 > 親密なハプティクス制御標準とライブラリは、https://buttplug.io/ から。詳しい説明はここで見られます https://buttplug-spec.docs.buttplug.io/docs/spec

これが噂の「バイブコーディング」ってやつ?

buttplug.ioのトップページから: 「私たちは、流行る前からバイブコーディングをしていました。」><

こういうプロジェクトのUATってどんな感じなんだろうね。

https://github.com/profullstack/mcp-server は雰囲気コードされたやつだね。

OPはこれについて結構考えてると思うよ。ハードウェアの仕様をしっかり掘り下げないとね。

そのおもちゃを制御するためのAPIを何度か見たことがあるけど、いつもオープンだってことに驚く。普通は、各デバイスに専用のロックされたアプリが付いてきて、誰もそれについて文句を言わないと思ってたから、そういうのは良くない印象を与えるよね。なんでそれが違うのか教えてくれる人いる?大企業が市場から離れているから、壊されることがなかったのかな?

僕の予想では、カメラストリーマーや、ストリーミングプラットフォーム用にデバイスの拡張機能を開発する能力に関係してると思う。例えば、Lovesenseは、ストリーミングサイトで「チャットで制御されるおもちゃ」の略語になったよね。

確か、これらのAPIはベンダーによって公開されてないんだ。コミュニティがリバースエンジニアリングしたものだよ。それに、玩具自体はBluetoothベースだから、ペアリングと近接だけでセキュリティは十分なんだ。

@Kwpolskaが言ってる通り、主にBluetoothプロトコルをリバースエンジニアリングしてるみたい。今、仕事のPC使ってるから、あんまりリンクは貼れないけど、Buttplugのサイトにはメッセージやプロトコルについての情報があるよ。中には結構ごちゃごちゃしてるのもあるし。Lovenseみたいな企業はAPIを公開する意向があるって言ってたけど、Githubには空のリポジトリしかないんだよね。(Lovenseはちょっと変わった会社で、台湾の一人か二人の人にしか見えない。すごく不透明だよ。)他にも怪しいところもあるし、HyttoやLush、We-Vibeみたいなブランドに対して集団訴訟があったりするよ。0: https://www.courthousenews.com/judge-forwards-class-action-s... 1: https://topclassactions.com/lawsuit-settlements/lawsuit-news...

私は英語圏の人間じゃないから、家の中の電子機器を何て呼ぶのか分からないけど、典型的なデンマークの家庭で特にしっかりロックされてるものはほとんどないよ。コンピュータが入ってるものは、電子レンジでも電動歯ブラシでもルーターでも、結構簡単に「ハック」できちゃうんだ。セックスおもちゃが特別なのは、ハッキングにどれだけの労力をかけるかってことだと思う。推測だけど、セックスおもちゃをハックしたいって思う人は、電子レンジをハックしたい人よりもずっと多いんじゃないかな。この投稿を見るまでは、e-bikeコミュニティが電子機器をいじる「ハッカー」コミュニティの中で一番大きいと思ってたけど、セックスおもちゃのハッカーにはかなわないだろうね。とにかく、ヨーロッパではe-bikeのコンピュータに関するハックがたくさんあるよ。多くの人が速度制限のソフトウェア制約を増やしたいと思ってるからなんだ。これは違法だし、特にデンマークの大きな都市では捕まる可能性も高いよ。でも、多くの人が統計のためにやってるんだ。私のe-bikeのコンピュータは、500kmごとに「現在の」走行距離をリセットして、別の場所に合計を保存するんだ(これは修理に出すたびにリセットされる)。標準の画面には時計のオプションもなかったし。ハッキングした主な理由は表示に時計を出したかったからだけど、今は走行距離のバックアップも取ってるし、楽しみのためにいくつかの追加統計もあるよ。店に持っていくときは、工場出荷時の設定に戻すか、何て呼ぶか分からないけど、再フラッシュするんだ。私は決してデバイスハッカーではないけど、自分のブランドを検索して必要なツールを見つけるのはそんなに難しくなかったよ。とにかく、私たちの日常のデバイスにはあまり「セキュリティ」がないと思う。多分、私はヨーロッパ人だから、NSAにGoogleカメラを通して見られたくない人が多いと思うし、だから大手テック企業のブランドのものは買わないんだろうけど、Boschみたいな大手ブランドのものでもかなりハックできるよ。繰り返しになるけど、私はデバイスハッカーではないけど、ハードウェアさえあれば、何でも結構ハックできるんじゃないかな。

そのおもちゃを操作するためのAPIを何度か見たことがあるけど、いつも驚くのは結構オープンだってこと。実際はそうでもないけどね。業界の人たちはお客さんを喜ばせるために、すごく頑張ってるから。

もちろん、これらのツールはオープンじゃないと、どうやってインターフェースするの?

Buttplug標準に関する過去のHNディスカッションいくつか、もちろん「Rustで」ってのも含めて: * Buttplug: テレディルドニクスのためのオープンソースソフトウェアスイート (https://buttplug.io/) 5年前 | 249件のコメント * あなたのソフトウェアでセックスしているユーザーへの共感 (https://docs.buttplug.io/docs/dev-guide/intro/buttplug-ethic...) 10ヶ月前 | 127件のコメント * T-code – 大人のおもちゃにUARTシリアル通信を実装するためのプロトコル (https://stpihkal.docs.buttplug.io/protocols/tcode.html) 2年前 | 74件のコメント * 親密なハードウェアのためのオープンソースの標準とソフトウェアプロジェクト (多分NSFW) (https://buttplug.io/) 7年前 | 39件のコメント * Rustで実装されたButtplugセックスおもちゃ制御プロジェクト (https://buttplug.io/) 2年前 | 3件のコメント

テレディルドニクスって、ほんと素晴らしい言葉だよね。BO.ioに貢献したくなっちゃう。履歴書を膨らませるために。でも、そこにあるペンテストについて不快な質問が出てきそう。なんか、バックドア的な。

関連情報: * Deldoは、Emacs用のセックスおもちゃ制御とテレディルドニクスモードだよ (github.com/qdot) (2021) https://news.ycombinator.com/item?id=29207607 | コメント126件

これとChatGPTのスケジュールタスクが組み合わさったら、面白い目覚まし時計になりそう。

ホームアシスタントと連携してるみたいだから、ガレージのドアを開けっぱなしにしたときにアラートが出るんだね。

誰かが「大手テック企業は不要なAI機能を押し付けるな」って言う瞬間のために、これをブックマークしておくよ。

.ioのトップレベルドメインは完璧な選択だね。

みんながここでいろんなサービスのプライバシーについてどう思ってるのか気になるな。昔は、ただ商品を買って、販売者とは全く関係なくて、誰にも見られずに済んだのが簡単だったよね(今のVRゴーグルや他のサービスみたいに)。

ここでの作者です。これを見られて幸せな金曜日だな、だってエイプリルフールの日に作ったから。毎年その日はちょっとおかしな個人プロジェクトをやってるんだ。その週はMCPサーバーで遊んでて、面白いと思ったんだ。ConAcademyは変なアイデアや実装を載せる場所だよ。このMCPサーバーは正直あんまり役に立たないし、性的なインタラクションには向いてないってREADMEに書いてるんだけどね。でも、始まりはどこかから始まるし、いい感じのゲームを作るのが私たちのスタイルだからGitHubに上げたんだ。 [皮肉なことに、2年前のプロジェクトは、Charmで動くSSHチャットルームにButtplug統合をしたものだった。SSHキーを使ってデジタルコンセントの側面をナビゲートして、匿名のグラフを作って、どのエンティティが他のエンティティのデバイスに何ができるかを示してた。エージェント制御のMCPの未来には、そういうのが必要だと思う。] 私はButtplug.ioのメンテナーじゃないけど、Discordでちょっと話したことがあるよ。もしRustが得意な人がいたら、彼らはプロジェクトの追加メンテナーを探してるから、目を向けてみてね。このMCPサーバーはGolangで書かれてるけど、ButtplugエコシステムではRustの方がいいと思う。私の初期キャリアはハプティクスの研究で、Immersionを通じていくつかの特許も持ってる。修士論文では3Dハプティックレンダラーを書いて、VRMLにハプティクスを統合したんだ、覚えてる? NIHの性的機能障害診断デバイスのための助成金にも関わったし、自作のおもちゃも作ったよ。最近NeurableのEEGヘッドセットを手に入れたから、Biaerolar Beatsの研究に取り組んでるんだ。[1] バイブコーディングの話だけど、これでLELO F1を振動させたけど、このプロジェクトは本当に手作業だった。数週間前にa2a4a2a(A2AプロトコルでA2Aを楽しむため)をClaudeとGeminiで振動コーディングしようとしたけど、A2Aプロトコルは新しすぎて教えるのが難しかった。一般的にみんながどう扱ってるのか興味あるな。全体的に楽しかったし、ツールコールするLLMについてたくさん学んだ。その週に3つのMCPサーバーを作ったんだ(mark3labs/mcp-goに感謝)、お金用のやつ[2]、これがセックス用[3]、そしてドラッグ用[4]。最後のAgentDank[4]についてはまだ追ってないけど、オープンデータと実際のAI結果に関しては多分一番クールだよ。動画を見てみて。カスタムデータとSQLエンドポイントをツールコールするLLMに持ち込むのはめちゃくちゃパワフルだよ。[1] https://github.com/ConAcademy/biareolar-beats [2] https://github.com/NimbleMarkets/dbn-go/blob/main/cmd/dbn-go... [3] https://github.com/ConAcademy/buttplug-mcp [4] https://github.com/AgentDank/dank-mcp

こういうのをLLMと統合する価値は見出せないし、提示されたユースケースも魅力的だとは思わないけど、Buttplug.ioに関連する作業は常に支持するよ。誰かが役立てるだろうしね。こういうソフトウェア(と関連するデバイス)がまだまだスティグマを持ってるのは残念だな、すごく面白い分野なのに。私自身は、小さなハプティックフィードバックのサイドプロジェクトになると思って始めたのに、想像もできなかったような深い世界にハマっちゃった。セックスおもちゃやハプティックフィードバックの世界は、正直言って、開発への愛を再燃させてくれたよ。