- Buttplug MCP é um servidor MCP que integra dispositivos adultos do ecossistema Buttplug.io com programas baseados em grandes modelos de linguagem (LLM)
- Usuários podem consultar informações dos dispositivos e controlar várias funções, como vibração, nível de bateria e intensidade do sinal, por meio de ferramentas de LLM como o Claude Desktop
- No momento, ainda faltam maturidade funcional e estabilidade, então o conjunto completo de recursos não funciona de forma fluida e há dificuldades no controle real dos dispositivos
- É possível fazer testes baseados em ferramentas integrando com hosts MCP como Ollama e mcphost, mas alguns recursos, como exploração de recursos, são limitados
- Em comparação com outros serviços MCP, este projeto é especializado em controle de dispositivos inteligentes via LLM e é oferecido gratuitamente como open source
Visão geral do projeto
- buttplug-mcp é um servidor Model Context Protocol (MCP) dedicado ao ecossistema Buttplug.io
- Em programas de LLM com suporte a ferramentas, como o Claude Desktop, é possível consultar e controlar seus dispositivos Buttplug
- Exemplos de comando: "Quais são meus dispositivos buttplug conectados?", "Defina o segundo motor do LELO F1S em 50%", "Qual é a bateria restante do Lovense Max 2?", "O sinal do WeWibe está fraco?"
- Esses exemplos estão próximos da direção pretendida, mas a experiência atual realmente implementada é instável e decepcionante
Estrutura de recursos e ferramentas suportados
- Recursos da API
/devices: lista dos dispositivos Buttplug conectados (JSON)
/device/{id}: informações detalhadas de um dispositivo específico
/device/{id}/rssi: intensidade do sinal do dispositivo (RSSI)
/device/{id}/battery: nível de bateria por dispositivo
- Ferramentas
device_vibrate: parâmetros id, motor e strength (obrigatórios: id e strength), com seleção opcional do motor para controlar a vibração
Exemplo de esquema JSON (recursos)
{
"resources": [
{
"uri": "devices",
"name": "Device List",
"description": "List of connected Buttplug devices in JSON",
"mimeType": "application/json"
}
]
}
Exemplo de esquema JSON (ferramentas)
{
"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"
}
]
}
Estado atual
- É um projeto experimental de curto prazo iniciado em 1º de abril de 2025 (Dia da Mentira)
- Como o gerenciamento de conexão da biblioteca go-buttplug é instável, é possível consultar a lista de dispositivos, mas alguns controles, como a vibração, não funcionam bem
- Para testes seria necessário um dispositivo virtual, mas o Buttplug.io oferece suporte apenas a dispositivos físicos
- Ainda está em fase inicial, sem testes end-to-end suficientes
- No futuro, o projeto deve analisar mais a fundo os problemas de conexão da biblioteca go-buttplug e o estado dos hosts do protocolo MCP (como implementações centradas em ferramentas)
Instalação
- Binários para múltiplas plataformas são distribuídos no GitHub Releases
- Também há suporte à instalação via Homebrew:
brew tap conacademy/homebrew-tap
brew install conacademy/tap/buttplug-mcp
Como usar
Integração com Ollama e mcphost
Build
- Usa um sistema de build baseado em task
- Ferramentas de teste úteis:
task stdio-schema | jq (verificar o esquema JSON)
npx @modelcontextprotocol/inspector node build/index.js (GUI web do MCP Inspector)
Argumentos da CLI
- Principais opções:
-h, --help: ajuda
-l, --log-file: define o destino do arquivo de log
-j, --log-json: formato de log em JSON
--sse: usa transporte SSE
--sse-host: host/porta para conexão SSE
-v, --verbose: log detalhado
--ws-port: porta de conexão com o servidor Websocket do Buttplug
Contribuição e código de conduta
- Pull Requests, forks etc. são bem-vindos livremente
- É necessário seguir o Code of Conduct
Créditos e licença
- Utiliza os projetos open source go-buttplug e go-mcp
- Inclui a biblioteca Golang do Buttplug.io, exemplos e a biblioteca Golang do Model Context Protocol
- Copyright 2025 Neomantra BV, Evan Wies (ConAcademy)
- Publicado sob a licença MIT (para mais detalhes da licença, consulte LICENSE.txt)
2 comentários
Nossa... talvez seja cedo demais pra gente..
Opiniões no Hacker News