buttplug-mcp is a Model Context Protocol (MCP) server for the Buttplug.io ecosystem. It allows Tool-supporting LLM programs like Claude Desktop query and control your Genital Interface Devices.
|insert AI-generated slop image of robots doing nasty things|
LLM|=> - - (__(__)
Once set up, you can prompt your LLM:
- "What are my connected buttplug devices?"
- "Set the second motor on my LELO F1S to 50% strength"
- "How much battery is left on my Lovense Max 2?"
- "Does my WeWibe have weak signal?"
NOTE: The above is aspirational and really the current experience is unstable and frustating.
It supports the following Resources and Tools:
| Resource | Description |
|---|---|
/devices |
List of connected Buttplug devices in JSON. |
/device/{id} |
Device information by device ID whereid is a number from /devices |
/device/{id}/rssi |
RSSI signal level by device ID where id is a number from /devices |
/device/{id}/battery |
Battery level by device ID where id is a number from /devices |
| Tool | Params | Description |
|---|---|---|
device_vibrate |
id, motor, strength |
Vibrates device by id, selecting strength and optional motor |
JSON Schema for Resources. Click to expand
schema_resources.json
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"resources": [
{
"uri": "devices",
"name": "Device List",
"description": "List of connected Buttplug devices in JSON",
"mimeType": "application/json"
}
]
}
}
JSON Schema for Tools. Click to expand
schema_tools.json
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"tools": [
{
"description": "Vibrates device by `id`, selecting `strength` and optional `motor`",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"description": "Device ID to query, sourced from `/devices`",
"pattern": "^[0-9]*$",
"type": "number"
},
"motor": {
"description": "Motor number to vibrate, defaults to 0",
"pattern": "^[0-9]*$",
"type": "number"
},
"strength": {
"description": "Strength from 0.0 to 1.0, with 0.0 being off and 1.0 being full",
"pattern": "^(0(\\.\\d+)?|1(\\.0+)?)$",
"type": "number"
}
},
"required": [
"id",
"strength"
]
},
"name": "device_vibrate"
}
]
}
}