1 पॉइंट द्वारा GN⁺ 2025-06-01 | 2 टिप्पणियां | WhatsApp पर शेयर करें
  • buttplug-mcp Buttplug.io ecosystem के लिए एक Model Context Protocol server है, जो Claude Desktop जैसे tool-supporting LLM programs को connected Genital Interface Devices को query और control करने देता है
  • उपलब्ध सुविधाओं में /devices, /device/{id}, /device/{id}/rssi, /device/{id}/battery resources और device_vibrate tool शामिल हैं, और vibration strength 0.0~1.0 रेंज में सेट की जाती है
  • मौजूदा स्थिति experimental और unstable है; इसे 2025-04-01 को एक तेज़ educational project के रूप में शुरू किया गया था, और go-buttplug की connection handling instability के कारण end-to-end testing ठीक से पूरी नहीं हो पाई
  • उपयोग के लिए Intiface Central चलाकर WebSocket server port जांचना होता है, और Claude Desktop जैसे MCP host की settings में buttplug-mcp executable तथा --ws-port 12345 जैसे arguments दर्ज करने होते हैं
  • Ollama-आधारित local inference में mcphost के साथ tool calling का प्रयोग किया गया, लेकिन उस environment में सिर्फ Tools supported हैं, Resources नहीं, इसलिए device enumeration और detailed lookup संभव नहीं था

प्रोजेक्ट का उद्देश्य और support scope

  • buttplug-mcp एक Model Context Protocol server है, जो Buttplug.io ecosystem से जुड़े devices को LLM programs से query और control करने देता है
  • इसका लक्ष्य Claude Desktop जैसे tool-supporting LLM programs में नीचे जैसे prompts को संभव बनाना है
    • connected Buttplug devices देखना
    • किसी specific device के specific motor को 50% strength पर सेट करना
    • Lovense Max 2 की battery level जांचना
    • WeWibe का signal weak है या नहीं, यह देखना
  • README स्पष्ट रूप से कहता है कि ऊपर का अनुभव target state है, और वर्तमान अनुभव unstable तथा frustrating है

MCP resources और tools

  • supported resources का फोकस connected devices और device status को JSON रूप में query करना है
    • /devices: connected Buttplug devices की सूची
    • /device/{id}: /devices से मिले numeric ID पर आधारित device जानकारी
    • /device/{id}/rssi: device ID पर आधारित RSSI signal level
    • /device/{id}/battery: device ID पर आधारित battery level
  • supported tool केवल device_vibrate है
    • parameters हैं id, optional motor, strength
    • motor का default मान 0 है
    • strength एक numeric range है जिसमें 0.0 off और 1.0 maximum strength है
  • README में resources और tools के JSON Schema उदाहरण के रूप में schema_resources.json, schema_tools.json शामिल हैं

वर्तमान स्थिति और सीमाएँ

  • प्रोजेक्ट 2025-04-01 April Fool’s Day पर शुरू हुआ, और यह पिछले दिन बनाए गए financial market data के experimental MCP service dbn-go के बाद बनाया गया एक तेज़ educational project है
  • यह काम तो करता है, लेकिन underlying library go-buttplug की connection handling unstable बताई गई है
  • Claude से device list query की जा सकी, लेकिन कुछ specific devices Intiface Central से भी vibrate नहीं हुए और वे “read-only mode” जैसे लगे
  • एक सीमा यह भी बताई गई है कि physical device पर निर्भर हुए बिना test करने के लिए virtual Buttplug.io devices होना उपयोगी होगा
  • README साफ़ तौर पर कहता है कि अभी वास्तविक अर्थ में end-to-end testing पूरी नहीं हुई है
  • आगे go-buttplug की connection instability के कारणों को और देखना होगा, और यह समझना होगा कि MCP hosts अभी Tools, Resources और Resource Templates को कैसे support करते हैं

इंस्टॉलेशन और Claude Desktop उपयोग

  • कई platforms के लिए binaries GitHub Releases के जरिए वितरित किए जाते हैं, और releases GitHub Actions से किए जाते हैं
  • Homebrew के जरिए conacademy/homebrew-tap जोड़कर install किया जा सकता है
brew tap conacademy/homebrew-tap
brew install conacademy/tap/buttplug-mcp
  • उपयोग के लिए Intiface Central hub application डाउनलोड कर devices को manage करना और server port जांचना होता है
    • default port 12345 बताया गया है
  • Claude Desktop में MCP server settings में executable और WebSocket port दर्ज किया जाता है
    • MacOS Homebrew install path का उदाहरण /opt/homebrew/bin/buttplug-mcp है
    • setting example में --ws-port 12345 का उपयोग किया गया है
{
  "mcpServers": {
    "buttplug": {
      "command": "/opt/homebrew/bin/buttplug-mcp",
      "args": [
        "--ws-port", "12345"
      ]
    }
  }
}
  • Claude Desktop configuration के लिए MCP user quickstart का पालन किया जाता है, लेकिन ऊपर वाली settings से उसे replace किया जाता है

Ollama और mcphost प्रयोग

  • local inference में Ollama को support करने वाला MCP host इस्तेमाल किया जा सकता है
  • ऐसा Ollama LLM उपयोग करना होगा जो tools support करता हो
  • प्रयोग में mcphost इस्तेमाल हुआ, और यह प्रोजेक्ट mcp-go library के developer द्वारा बनाया गया MCP host है
  • execution example में पहले की settings को mcp.json में सहेजकर llama3.3 model के साथ चलाया जाता है
go install github.com/mark3labs/mcphost@latest
mcphost -m ollama:llama3.3 --config mcp.json
  • README के अनुसार mcphost में सिर्फ Tools supported थे और Resources supported नहीं थे, इसलिए devices enumerate करना या details query करना संभव नहीं था
  • phi4-mini के साथ device_vibrate tool call से successful response मिला, लेकिन ऊपर बताई गई current-state समस्याओं के कारण वास्तविक device vibrate नहीं हुआ

build, test tools, CLI

  • build task से किया जाता है, और output binary bin/buttplug-mcp में बनती है
task
  • build process go mod tidy के बाद go build -o bin/buttplug-mcp cmd/buttplug-mcp/main.go चलाती है
  • उपयोगी test tools इस प्रकार हैं
    • task stdio-schema | jq: JSON Schema output
    • npx @modelcontextprotocol/inspector node build/index.js: MCP Inspector Web GUI
  • CLI options help, log file, JSON logs, SSE transport, SSE host, verbose logs, और Buttplug WebSocket server port configuration support करते हैं
    • --ws-port int: Buttplug WebSocket server से connect करने वाला port
    • --sse: default STDIO के बजाय SSE Transport का उपयोग
    • --log-file string: log file destination या MCP_LOG_FILE environment variable का उपयोग
    • --log-json: JSON logs का उपयोग
    • --verbose: detailed logs का उपयोग

2 टिप्पणियां

 
bbulbum 2025-06-03

उफ़.. शायद यह हमारे लिए अभी बहुत जल्दी है..

 
GN⁺ 2025-06-01
Hacker News की राय
  • Buttplug standard पर पहले भी HN में कुछ चर्चाएँ हुई थीं, और स्वाभाविक रूप से इसका “Rust में implementation” भी था
    Buttplug: An open-source software suite for teledildonics (https://buttplug.io/) 5 years ago | 249 comments
    Empathy for the user having sex with your software (https://docs.buttplug.io/docs/dev-guide/intro/buttplug-ethic...) 10 months ago | 127 comments
    T-code – A protocol for implementing UART serial communications to an adult toy (https://stpihkal.docs.buttplug.io/protocols/tcode.html) 2 years ago | 74 comments
    An open-source standards and software project for intimate hardware (maybe NSFW) (https://buttplug.io/) 7 years ago | 39 comments
    Buttplug Sex Toy Control Project Implemented in Rust (https://buttplug.io/) 2 years ago | 3 comments
    • Teledildonics शब्द अपने आप में वाकई कमाल का है। BO.io में contribute करके resume भरने का मन हो जाए, लेकिन वहाँ लिखे penetration testing experience से जुड़ जाए तो असहज सवाल भी आ सकते हैं। कुछ backdoor वाली बातें भी साथ आ जाएँगी
    • इससे जुड़ा Deldo भी था, जो Emacs के लिए adult toy control और teledildonics mode है
      Deldo is a sex toy control and teledildonics mode for Emacs (github.com/qdot) (2021) https://news.ycombinator.com/item?id=29207607 | 126 comments
  • क्या यही वह “vibe coding” है जिसके बारे में आजकल लगातार सुन रहा हूँ?
    • buttplug.io के front page पर पहले से ही यह लिखा है: “We were vibe coding before it was cool.”
    • कहा जाता है कि https://github.com/profullstack/mcp-server सचमुच vibe coding से बनाया गया था
    • ऐसे project की user acceptance testing कैसी दिखती होगी, यह जानने की उत्सुकता है
    • लगता है original post लिखने वाले ने इस पर काफी सोचा होगा। ऐसी चीज़ों में hardware specifications में सचमुच बहुत गहराई तक जाना पड़ता है
  • ऐसे toys को control करने वाली APIs मैंने कुछ बार देखी हैं, और हर बार यह देखकर हैरानी होती है कि वे काफी open होती हैं। मुझे उम्मीद थी कि हर device के साथ कोई locked-down proprietary app आता होगा, और सार्वजनिक रूप से शिकायत करना शर्मिंदगी भरा होने के कारण कोई कुछ बोलता नहीं होगा
    यह market अलग क्यों है? क्या इसलिए कि बड़ी कंपनियाँ इस market से दूर रही हैं और अभी तक इसे खराब नहीं कर पाई हैं?
    • जहाँ तक मुझे पता है, ऐसी APIs manufacturers ने publicly document नहीं की हैं, बल्कि community ने उन्हें reverse engineer किया है। Toy खुद Bluetooth-based होता है, इसलिए pairing और proximity ही लगभग पूरी security हैं
    • Denmark के घरों में आम तौर पर मिलने वाले electronic devices में से बहुत कम सच में locked-down होते हैं। Microwave, electric toothbrush, router, e-bike जैसी जिन चीज़ों में computer लगा होता है, वे आम तौर पर “hack” करने में आसान होती हैं; adult toys का फर्क शायद बस इतना है कि लोग उन पर कितनी मेहनत लगाते हैं
      यह लेख देखने से पहले तक मुझे लगता था कि everyday electronics से छेड़छाड़ करने वाली सबसे बड़ी hacker community e-bike community है। Europe में e-bike computers को hack करना काफी होता है, और कुछ लोग speed limit हटाने की कोशिश भी करते हैं, लेकिन यह illegal है और Denmark के बड़े शहरों में पकड़े जाने की संभावना भी ज्यादा है
      मैंने यह मुख्यतः statistics के लिए किया था। मेरा e-bike computer “current” distance को हर 500km पर reset कर देता था और total distance कहीं और store करता था, लेकिन workshop में जाने पर वह भी reset हो जाता था। Default screen पर clock भी नहीं थी, इसलिए display पर clock दिखाना मुख्य कारण था; अब मैंने distance backup और fun statistics भी जोड़ दिए हैं
      Workshop भेजते समय मैं इसे factory settings पर फिर से flash कर देता हूँ। मैं बिल्कुल भी device hacker नहीं हूँ, लेकिन सिर्फ search करके अपने brand के लिए सही tools ढूँढ सका और जो चाहता था वह कर सका। मुझे लगता है कि ज्यादातर everyday devices में security ज्यादा नहीं होती। हो सकता है कि Google Camera से NSA की झाँक-ताक नहीं चाहने वाले Europeans big tech company के products के बजाय कुछ और खरीदते हों, लेकिन Bosch जैसे बड़े brand के products भी काफी hackable हैं। Hardware हाथ में हो तो आखिरकार ज्यादातर चीजें hackable नहीं होतीं क्या?
    • शायद cam streamers और streaming platforms के लिए extensions बनाने की demand इसकी वजह हो सकती है। उदाहरण के लिए Lovense streaming sites पर “chat-controlled toy” का पर्याय जैसा बन गया है
    • इस space की प्रकृति के कारण, customers को satisfy करने के लिए लोग तरह-तरह की मशक्कत करने के आदी हैं; शायद इसकी भी वजह हो
    • ज्यादातर मामलों में यह manufacturer द्वारा published API नहीं, बल्कि Bluetooth protocol का reverse engineering है। Buttplug site पर messages और protocol की जानकारी है, और उनमें से कुछ काफी गड़बड़ हैं
      Lovense जैसी कंपनियों ने कहा कि वे API खोलने को तैयार हैं, लेकिन GitHub पर बस खाली repositories जैसी स्थिति है। Lovense एक अजीब company है; सारे संकेत Taiwan में एक-दो लोगों की ओर इशारा करते हैं और यह काफी opaque है
      संदिग्ध मामले भी रहे हैं। Hytto/Lush [0] या We-Vibe [1] जैसे brands के खिलाफ class-action lawsuits हुए थे
      [0] https://www.courthousenews.com/judge-forwards-class-action-s...

[1] https://topclassactions.com/lawsuit-settlements/lawsuit-news...

  • https://buttplug.io/ के अनुसार, Buttplug वयस्क खिलौनों, सेक्स मशीनों आदि जैसे intimate hardware को नियंत्रित करने के लिए एक open source standard और software project है
    इसे “Intimate Haptics Control Standard and Library” बताया गया है, और अधिक विस्तृत विवरण https://buttplug-spec.docs.buttplug.io/docs/spec पर है
  • .io top-level domain बिल्कुल सही चुनाव है
  • पहले मैंने “consumer device security” की एक class के लिए sign up किया था, और मैं हैरान रह गया कि presenter के दिए सारे उदाहरण internet-connected वयस्क खिलौनों के गड़बड़ करने के केस थे
    या तो personal information leak हुई थी, या device ने user को “lock” कर दिया था और फिर ransom मांगा था। मैं desk पर बैठा हंस रहा था, लेकिन content इतना NSFW था कि समझा नहीं सकता था कि मैं क्यों हंस रहा हूं
  • इसे ChatGPT scheduled tasks से जोड़ दें तो यह एक दिलचस्प alarm clock बन सकता है
    • लगता है Home Assistant integration है, तो अगर आप garage door खुला छोड़ना भूल जाएं तो notification भी मिल सकता है
  • जब कोई कहे कि बड़ी tech companies unwanted AI features जबरन घुसा सकती हैं, उस वक्त के लिए इसे bookmark कर लिया
  • वाह, नमस्ते! मैं qDot हूं, https://buttplug.io का creator और project lead
    यह first page पर अब काफी नीचे चला गया है, लेकिन कुछ भी पूछ सकते हैं
  • मैं author हूं। April Fools’ पर बनाई चीज अब दिख रही है—मजेदार Friday है। हर साल उस दिन मैं कोई बेवकूफाना personal project करता हूं, और उस हफ्ते मैं MCP server के साथ काम कर रहा था, तो लगा इसे बनाना funny रहेगा। ConAcademy वह जगह है जहां मैं अजीब ideas और implementations डालता हूं
    इस खास MCP server का इस्तेमाल लगभग नहीं के बराबर है, और README में लिखना चाहता था कि यह sexual interaction का वह तरीका बिल्कुल नहीं है जैसा मैं चाहता हूं। फिर भी शुरुआत कहीं से तो करनी होती है, और good-giving-game approach हमारा style है, इसलिए इसे GitHub पर डाल दिया
    विडंबना यह है कि 2 साल पहले का project Charm-based SSH chat room और BubbleTea TUI में Buttplug integrate करने का था। SSH keys से digital consent के एक हिस्से को संभाला, और एक anonymous graph बनाया कि कौन-सी entity दूसरी entity के device पर क्या कर सकती है। Agent-controlled MCP के भविष्य में ऐसे elements की जरूरत होगी, ऐसा मुझे लगता है
    मैं Buttplug.io का maintainer नहीं हूं, लेकिन Discord पर उनसे कुछ समय तक बात की है। जब आप देख ही रहे हैं, तो अगर कोई Rustacean interested हो, वह project extra maintainers ढूंढ रहा है। यह MCP server Golang में लिखा गया है, लेकिन Buttplug ecosystem में Rust में होना शायद बेहतर रहेगा
    मेरे early career का काम haptics research था और Immersion के जरिए इससे जुड़े कई patents भी हैं। मेरी master’s thesis 3D haptic renderer लिखने और VRML में haptics integrate करने पर थी। अगर आपको याद हो! मैंने sexual dysfunction diagnostic devices पर NIH grant project भी किया था, और घर पर बने toys भी बनाए थे। अभी-अभी मुझे Neurable EEG headset मिला है और मैं Biaerolar Beats research [1] कर रहा हूं
    vibe coding की बात पर लौटें तो, हां, मैंने इससे LELO F1 को vibrate कराया, लेकिन यह project सच में हाथ से बनाया गया है। कुछ हफ्ते पहले Claude और Gemini के साथ a2a4a2a को vibe coding करने की कोशिश की थी, लेकिन A2A protocol इतना नया था कि model को A2A सिखाना मुश्किल था। आम तौर पर लोग ऐसी चीजों को कैसे handle करते हैं, यह जानने की उत्सुकता है
    कुल मिलाकर मजा आया और tool-calling LLMs के बारे में काफी कुछ सीखा। उस हफ्ते मैंने तीन MCP servers बनाए: पैसे के लिए [2], सेक्स के लिए [3], और drugs के लिए [4]। इसका credit mark3labs/mcp-go को जाता है
    आखिरी वाला AgentDank [4] अभी follow-up नहीं कर पाया हूं, लेकिन public data और real AI results के लिहाज से शायद सबसे cool है। वहां का video देखिए। custom data और SQL endpoints को tool-calling LLM से जोड़ना अविश्वसनीय रूप से powerful है
    [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
    • “यह sexual interaction का वह तरीका बिल्कुल नहीं है जैसा मैं चाहता हूं” — यह सिर्फ उनका अपना नजरिया है