- Buttplug MCP ist ein MCP-Server, der Geräte für Erwachsene im Buttplug.io-Ökosystem mit Programmen auf Basis von Large Language Models (LLMs) verbindet
- Nutzer können über LLM-Tools wie Claude Desktop Geräteinformationen abfragen oder verschiedene Funktionen wie Vibration, Akkustand und Signalstärke steuern
- Derzeit fehlen noch funktionale Reife und Stabilität, sodass nicht alle Funktionen reibungslos arbeiten und die tatsächliche Gerätesteuerung schwierig sein kann
- Eine toolbasierte Erprobung ist in Verbindung mit MCP-Hosts wie Ollama und mcphost möglich, einige Funktionen wie die Ressourcenerkundung sind jedoch eingeschränkt
- Im Vergleich zu anderen MCP-Diensten ist dieses Projekt auf die LLM-basierte Steuerung smarter Geräte spezialisiert und wird als Open Source kostenlos bereitgestellt
Projektüberblick
- buttplug-mcp ist ein Model Context Protocol(MCP)-Server, der ausschließlich für das Buttplug.io-Ökosystem gedacht ist
- In toolfähigen LLM-Programmen wie Claude Desktop können eigene Buttplug-Geräte abgefragt und gesteuert werden
- Beispielbefehle: "Welche buttplug-Geräte sind bei mir verbunden?", "Setze den zweiten Motor des LELO F1S auf 50 %", "Wie viel Akku hat der Lovense Max 2 noch?", "Ist das Signal des WeWibe schwach?"
- Diese Beispiele zeigen die angestrebte Richtung, die aktuell tatsächlich umgesetzte Erfahrung ist jedoch instabil und enttäuschend
Unterstützte Ressourcen und Tool-Struktur
- API-Ressourcen
/devices: Liste der verbundenen Buttplug-Geräte (JSON)
/device/{id}: Detaillierte Einzelinformationen zu einem Gerät
/device/{id}/rssi: Signalstärke (RSSI) des Geräts
/device/{id}/battery: Akkustand des jeweiligen Geräts
- Tools
device_vibrate: Parameter id, motor, strength (erforderlich: id, strength), optional kann ein Motor angegeben werden, um die Vibration zu steuern
Beispiel für ein JSON-Schema (Ressourcen)
{
"resources": [
{
"uri": "devices",
"name": "Device List",
"description": "List of connected Buttplug devices in JSON",
"mimeType": "application/json"
}
]
}
Beispiel für ein JSON-Schema (Tools)
{
"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"
}
]
}
Aktueller Stand
- Es handelt sich um ein experimentelles Kurzzeitprojekt, das am 1. April 2025 begonnen wurde
- Das Verbindungsmanagement der Bibliothek go-buttplug ist instabil, sodass die Abfrage der Geräteliste zwar funktioniert, einzelne Steuerungen wie die Vibrationsfunktion jedoch nicht zuverlässig arbeiten
- Für Testzwecke wären virtuelle Geräte nötig, Buttplug.io unterstützt jedoch nur physische Geräte
- Das Projekt befindet sich in einer frühen Phase, in der End-to-End-Tests noch nicht ausreichend durchgeführt wurden
- Künftig sollen sowohl die Verbindungsprobleme der Bibliothek go-buttplug als auch der Zustand der MCP-Protokoll-Hosts genauer untersucht werden, etwa die toolzentrierte Implementierung
Installationshinweise
- Binärdateien für mehrere Plattformen werden über GitHub Releases verteilt
- Die Installation über Homebrew wird ebenfalls unterstützt:
brew tap conacademy/homebrew-tap
brew install conacademy/tap/buttplug-mcp
Nutzung
Integration mit Ollama und mcphost
Build
- Es wird ein Build-System auf Basis von task verwendet
- Nützliche Testwerkzeuge:
task stdio-schema | jq (JSON-Schema prüfen)
npx @modelcontextprotocol/inspector node build/index.js (MCP Inspector Web GUI)
CLI-Argumente
- Wichtige Optionen:
-h, --help: Hilfe
-l, --log-file: Ziel für die Logdatei angeben
-j, --log-json: JSON-Logformat
--sse: SSE-Übertragung verwenden
--sse-host: Host/Port für die SSE-Verbindung
-v, --verbose: Ausführliche Logs
--ws-port: Port für die Verbindung zum Buttplug-WebSocket-Server
Beiträge und Verhaltenskodex
- Pull Requests, Forks usw. sind ausdrücklich willkommen
- Die Einhaltung des Code of Conduct ist erforderlich
Credits und Lizenz
- Es werden die Open-Source-Projekte go-buttplug und go-mcp genutzt
- Einschließlich der Buttplug.io-Golang-Bibliothek und Beispiele sowie der Golang-Bibliothek für das Model Context Protocol
- Copyright 2025 Neomantra BV, Evan Wies (ConAcademy)
- Veröffentlicht unter der MIT-Lizenz (Details zur Lizenz siehe LICENSE.txt)
2 Kommentare
Uff … Vielleicht ist das für uns einfach noch zu früh …
Hacker-News-Kommentare