by ConAcademy
Buttplug.io Model Context Protocol (MCP) Server
# Add to your Claude Code skills
git clone https://github.com/ConAcademy/buttplug-mcpbuttplug-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|
<br>LLM|=> - - (__(__)
Once set up, you can prompt your LLM:
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{
"jsonrpc": "2.0",
"id": 1,
"result": {
"resources": [
{
"uri": "devices",
"name": "Device List",
"description": "List of connected Buttplug devices in JSON",
"mimeType": "application/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"
}
]
}
}
I started working on this on 2025-04-01, April Fool's ...