1 puan yazan GN⁺ 2025-06-01 | 2 yorum | WhatsApp'ta paylaş
  • Buttplug MCP, Buttplug.io ekosistemindeki yetişkin cihazlarını büyük dil modeli (LLM) tabanlı programlarla entegre eden bir MCP sunucusudur
  • Kullanıcılar, Claude Desktop gibi LLM araçları üzerinden cihaz bilgilerini sorgulayabilir; titreşim, pil durumu, sinyal gücü gibi çeşitli işlevleri kontrol edebilir
  • Şu anda işlevsel olgunluk ve kararlılık yetersiz olduğundan tüm özellikler sorunsuz çalışmıyor ve gerçek cihaz kontrolünde zorluklar yaşanabiliyor
  • Ollama, mcphost gibi MCP host'larıyla entegre edilerek araç tabanlı testler yapılabiliyor, ancak bazı işlevler (kaynak keşfi gibi) sınırlı
  • Bu proje, diğer MCP servisleriyle kıyaslandığında LLM tabanlı akıllı cihaz kontrolüne odaklanıyor ve açık kaynak olarak ücretsiz sunuluyor

Proje özeti

  • buttplug-mcp, Model Context Protocol (MCP) sunucusudur ve Buttplug.io ekosistemine özeldir
  • Claude Desktop gibi araç destekli LLM programları içinde kendi Buttplug cihazlarınızı sorgulayıp kontrol etmenizi sağlar
    • Örnek komutlar: "Bağlı buttplug cihazlarım hangileri?", "LELO F1S'in ikinci motorunu %50'ye ayarla", "Lovense Max 2'nin kalan pili ne kadar?", "WeWibe sinyali zayıf mı?"
  • Bu örnekler hedeflenen yöne yakın olsa da, mevcut uygulamadaki gerçek deneyim şu anda kararsız ve hayal kırıklığı yaratıcı durumda

Desteklenen kaynaklar ve araç yapısı

  • API kaynakları
    • /devices: bağlı Buttplug cihazlarının listesi (JSON)
    • /device/{id}: tekil cihaz ayrıntı bilgisi
    • /device/{id}/rssi: cihaz sinyal gücü (RSSI)
    • /device/{id}/battery: cihaz bazında kalan pil durumu
  • Araçlar
    • device_vibrate: id, motor, strength parametreleriyle (zorunlu: id, strength), isteğe bağlı motor seçerek titreşimi kontrol eder

JSON şema örneği (kaynaklar)

{
  "resources": [
    {
      "uri": "devices",
      "name": "Device List",
      "description": "List of connected Buttplug devices in JSON",
      "mimeType": "application/json"
    }
  ]
}

JSON şema örneği (araçlar)

{
  "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"
    }
  ]
}

Mevcut durum

  • 1 Nisan 2025'te (1 Nisan şakası günü) başlatılmış deneysel ve kısa vadeli bir projedir
  • go-buttplug kütüphanesinin bağlantı yönetimi kararsız olduğundan cihaz listesi sorgulanabilse de titreşim gibi bazı kontrol işlevleri sorunsuz çalışmıyor
  • Test amacıyla sanal cihaza ihtiyaç var, ancak Buttplug.io yalnızca fiziksel cihazları destekliyor
  • Yeterli uçtan uca test yapılmamış erken aşama bir proje
  • İleride go-buttplug kütüphanesindeki bağlantı sorunları ve MCP protokolünün host tarafındaki durumu (araç odaklı uygulamalar vb.) daha fazla incelenecek

Kurulum rehberi

  • Çoklu platform için derlenmiş ikili dosyalar GitHub Releases üzerinden dağıtılıyor
  • Homebrew ile kurulum da destekleniyor:
    • brew tap conacademy/homebrew-tap
    • brew install conacademy/tap/buttplug-mcp

Kullanım

  • Cihaz yönetimi Intiface Central hub uygulaması üzerinden yapılıyor (varsayılan port 12345)
  • Claude Desktop'ta buttplug-mcp'yi MCP sunucusu olarak kullanabilmek için host programında yapılandırma gerekiyor
    • Örnek yapılandırma (JSON dosyası):
    {
      "mcpServers": {
        "buttplug": {
          "command": "/opt/homebrew/bin/buttplug-mcp",
          "args": ["--ws-port", "12345"]
        }
      }
    }
    
  • Bu ayardan sonra Claude Desktop öğreticisi izlenerek uygulanabilir; Claude ile konuşarak cihazları sorgulayıp kontrol etmek mümkündür
  • HomeAssistant MCP üzerinden ışık kontrolü gibi ek entegrasyonlar da kullanılabilir

Ollama ve mcphost ile entegrasyon

  • MCP host'ları arasında Ollama desteği mümkündür ve araç destekli LLM ile entegre çalışabilir
  • mcphost (mcp-go geliştiricisi tarafından sürdürülüyor) ile birlikte buttplug-mcp için MCP JSON yapılandırması kullanılarak çalıştırılabilir
    • Örnek:
    $ go install github.com/mark3labs/mcphost@latest
    $ mcphost -m ollama:llama3.3 --config mcp.json
    
  • Yalnızca "Tools" desteklenir, "Resources" ise sınırlıdır; bu nedenle cihaz listeleme veya özellik keşfi yapılamaz
  • Gerçek örneklerde cihazı titreştirme komutuna başarı mesajı dönebilir, ancak cihaz tepki vermeyebilir

Derleme

  • task tabanlı bir derleme sistemi kullanılıyor
    • Çalıştırma: $ task
  • Faydalı test araçları:
    • task stdio-schema | jq (JSON şemasını kontrol etme)
    • npx @modelcontextprotocol/inspector node build/index.js (MCP Inspector Web GUI)

CLI argümanları

  • Başlıca seçenekler:
    • -h, --help: yardım
    • -l, --log-file: log dosyası hedefini belirtir
    • -j, --log-json: JSON log biçimi
    • --sse: SSE aktarımını kullanır
    • --sse-host: SSE bağlantısı için host/port
    • -v, --verbose: ayrıntılı log
    • --ws-port: Buttplug Websocket sunucusuna bağlanma portu

Katkı ve davranış kuralları

  • Pull Request, fork vb. katkılar serbestçe memnuniyetle karşılanır
  • Code of Conduct belgesine uyulması gerekir

Katkılar ve lisans

  • go-buttplug, go-mcp açık kaynak projelerinden yararlanılıyor
    • Buttplug.io Golang kütüphanesi ve örnekleri ile Model Context Protocol Golang kütüphanesi dahil
  • 2025 Neomantra BV, Evan Wies (ConAcademy) eseri
  • MIT lisansı ile yayımlanıyor (ayrıntılı lisans için LICENSE.txt dosyasına bakın)

2 yorum

 
bbulbum 2025-06-03

Off... Bizim için biraz fazla erken galiba..

 
GN⁺ 2025-06-01
Hacker News görüşleri
  • Geçmişte Hacker News'te Buttplug standardı hakkında birkaç kez tartışma döndüğünü hatırladığım için paylaşıyorum
  • Sadece "Teledildonics" kelimesinin kendisinin bile müthiş olduğunu düşünüyorum
    • BO.io'ya commit atıp bunu özgeçmişime yazmak istiyorum ama pentest maddelerimin daha da tuhaf sorular doğuracak olması biraz rahatsız edici geliyor
  • Emacs'te çalışan sextoy kontrolü ve teledildonics modu Deldo ile ilgili bakmaya değer bilgi (https://news.ycombinator.com/item?id=29207607) paylaşılıyor
  • Bunun o meşhur vibe coding olup olmadığı diye şakayla karışık soruluyor
    • buttplug.io ana sayfasındaki "We were vibe coding before it was cool" ifadesi doğrudan alıntılanıyor
    • böyle bir projenin UAT'sinin (User Acceptance Testing) nasıl göründüğünü merak ediyorlar
    • OP'nin bu donanım tarafına epey emek verdiği anlaşılıyor
    • https://github.com/profullstack/mcp-server da vibe coding ile yapılmış bir örnek
  • Bu tür oyuncakları kontrol eden API'lerin eskiden beri açık olması şaşırtıcı bulunuyor
    • normalde her cihazın sadece kapalı, kendine özel bir uygulama sunması daha doğal gelirdi ama pratikte durum öyle değil
    • büyük şirketler bu pazara girmediği için işlerin bu şekilde gelişmiş olabileceği düşünülüyor
    • üreticinin resmî olarak API tanımlaması yerine, çoğu durumda topluluğun tersine mühendislikle bunları çıkardığı açıklanıyor
      • ürünler genelde Bluetooth ile bağlandığı için, güvenlik açısından eşleştirme ve fiziksel yakınlık çoğu zaman yeterli görülüyor
    • Danimarka'da evdeki elektronik cihazların çoğu kapalı sistem değil ve hack'lenmeleri de zor değil
      • mikrodalga, elektrikli diş fırçası, router, e-bike gibi cihazlar da basit hack hedefleri
      • sextoy hacker'larının çok daha fazla olmasının nedeni, bu alana daha fazla tutkunun yönelmesi olabilir
      • eskiden en büyük topluluğun e-bike hack topluluğu olduğunu sanıyordum ama sextoy tarafı daha büyük olabilir
      • e-bike hack'lerinin çoğu hız sınırı kaldırma veya istatistik özellikleri için yapılıyor
      • ben bir cihaz hacker'ı değilim ama sadece aramayla gereken araçları kolayca bulabildim
      • günlük cihazlarda güvenliğin gerçekten sağlam olmadığı pek çok durum var
      • Avrupa'da büyük teknoloji şirketlerinin ürünleri yerine markasız ürünleri almayı isteme gibi bir kültür de var
      • büyük markaların ürünleri de hack'lenmesi kolay olabiliyor; donanım elindeyse çoğunu hack'lemek mümkün gibi geliyor
    • cam streamer'ların kendi cihaz eklentilerini kolayca yapabilmesi gereği, topluluk erişilebilirliğini artırmış olabilir
      • Lovesense'in yayın sitelerinde "sohbetle kontrol edilen oyuncak"ın simgesi hâline geldiğinden bahsediliyor
    • bu sektörde kullanıcı memnuniyeti en öncelikli şey olduğu için böyle daha açık bir yapı ortaya çıkmış olabilir
    • Çin yapımı açık cihazların çok olduğu ve çoğunun ucuz genel amaçlı çiplerle standart protokolleri kullandığı tahmin ediliyor
      • güvenilirlik ve güvenlik de zayıf ele alındığı için tersine mühendislik zor olmuyor
      • Bluetooth bağlantısı ucuz ve özensiz tasarlanmış gibi; hatta insan bedeni yüzünden bağlantının kopması bile kolay olabiliyor
      • denetleyici sadece basit sinyaller akıtıyor, ek hesaplama ya da hata işleme neredeyse yok gibi
  • Buttplug, yetişkin oyuncaklar gibi mahrem donanımları kontrol etmek için açık kaynaklı bir standart ve yazılım projesi
  • .io TLD'sinin bu proje için gerçekten kusursuz bir seçim olduğu düşünülüyor
    • buna komik bir tepki veriliyor
  • Ben qDot'um; https://buttplug.io'nun kurucusu ve proje lideriyim
    • artık ana sayfadan düşmüş olsa da sorusu olan herkes için AMA her zaman açık
  • Bu sisteme ChatGPT zamanlanmış görevleri eklenirse gerçekten sıra dışı bir çalar saat olabilir diye düşünülüyor
    • Home Assistant entegrasyonunu da desteklediği için garaj kapısının açılması gibi bildirimler için de kullanılabilir gibi duruyor
  • Eğer biri bir gün büyük teknoloji şirketlerinin istemediği yapay zeka özelliklerini zorla sisteme koyduğunu söylerse, bu siteyi yer imlerine ekleyip göstermek isterim
  • Yazar benim; bu proje 1 Nisan'da yapılmış "gereksiz" bir kişisel proje
    • her yıl 1 Nisan'da eğlencesine yaptığım şeylerden biri GitHub'a konmuş oldu
    • bu MCP sunucusunun pratik kullanımda pek anlamı yok ama bir başlangıç noktası önemli olduğu için yayımladım
    • 2 yıl önce Buttplug'ı bir SSH sohbet odasıyla entegre etmiştim; dijital rıza ile SSH anahtarlarını birleştirip anonimleştirilmiş bir erişim grafiği oluşturmuştum
    • şu anda da Buttplug.io'nun maintainer'ı değilim ama Discord'da çeşitli tartışmalar yapmıştık
    • Rustacean'lar arasından yeni bir maintainer da arandığı belirtiliyor
    • MCP sunucusu Golang ile yazıldı ama Buttplug ekosistemine Rust daha uygun gibi görünüyor
    • geçmişte haptics araştırması yaptım; ilgili patentlerim ve VRML entegrasyonu deneyimim var
    • NIH fonuyla geliştirilmiş cinsel işlev tanı cihazı ve kendi yaptığım oyuncaklarla ilgili deneyimim de var
    • şu anda Neurable EEG headset ile Biaerolar Beats üzerine çalışıyorum (https://github.com/ConAcademy/biareolar-beats)
    • vibe coding ile LELO F1'i titrettim ama bu proje gerçekten bizzat elle kodladığım bir işti
    • son dönemde Claude ve Gemini ile birlikte A2A protokolü üzerinden vibe code da denedim ama uygulaması zordu
    • o hafta 3 MCP sunucusu yaptım (para, seks, uyuşturucu); açık veri ve yapay zekanın gerçek kullanım çıktıları açısından en ilginç olanı AgentDank'ti (https://github.com/AgentDank/dank-mcp)
    • özel veriyi ve SQL endpoint'lerini tool-calling LLM'lere bağlamanın muazzam bir potansiyeli olduğunu düşünüyorum
  • "Bu yaklaşım verimsiz bir cinsel etkileşim" sözüne karşılık "o sana kalmış" diye yanıt veriliyor
  • Çeşitli hizmetlerdeki gizlilik sorunları hakkında ne düşündükleri soruluyor
    • eskiden ürünü sadece satın alır ve üreticiyle hiçbir ilişki kurmadan kullanırdınız; bugünse VR gözlüklerde ve diğer hizmetlerde olduğu gibi durum çok değişti deniyor