buttplug-mcp

MCP.Pizza Chef: ConAcademy

Buttplug.io is an open standard for connecting intimate hardware from many manufacturers. This exposes devices that already speak it to an assistant, so you can list what is connected, check battery or signal, and adjust settings by asking rather than using each maker's own app. It works with Claude Desktop, needs no account, and connects to the Buttplug service running on your own machine.

Unmaintained · No commits in 16 months.
Other

Use This MCP server To

List which of my devices are connected Check the battery level on a device Adjust a device setting by asking See whether a device has a weak signal Control devices from different makers in one place

README

buttplug-mcp - Buttplug.io MCP Server

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

Current State

buttplug-mcp FAQ

Which devices does this work with?
Anything supported by the Buttplug.io standard, which covers hardware from a range of manufacturers.
Do I need an account or key?
No account is needed; it connects to the Buttplug service running locally on your machine.
Which apps does it work with?
It is documented for Claude.ai and Claude Desktop.
Can I use this to check battery levels?
Yes — you can ask about battery and connection status across connected devices.
How hard is it to set up?
You install it and have the Buttplug service running, so some technical comfort is needed.