Content-agnostic control layer for intimate hardware; forwards Buttplug/Intiface commands only.
MCPpedia last refreshed this data
io.github.ProjectAILiberation/tactus is an MCP server that content-agnostic control layer for intimate hardware; forwards Buttplug/Intiface commands only. Its tool list has not been published yet over stdio, requires no API key, and scores 79/100 on MCPpedia's security, maintenance and efficiency rubric.
Config is the same across clients - only the file and path differ.
{
"mcpServers": {
"tactus": {
"env": {
"MAX_INTENSITY": "1.0"
},
"args": [
"-y",
"tactus-mcp"
],
"command": "npx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Content-agnostic control layer for intimate hardware; forwards Buttplug/Intiface commands only.
Run this in your terminal to verify the server starts. Then let us know if it worked - your result helps other developers.
npx -y 'tactus-mcp' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
Five weighted categories - click any category to see the underlying evidence.
No known CVEs.
Checked tactus-mcp against OSV.dev.
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience - it helps other developers decide.
Sign in to write a review.
Others in other
Private-by-default, local-first memory/context/task orchestrator for MCP apps and agents.
Compress tool outputs, logs, files, and RAG chunks before they reach the LLM. 60-95% fewer tokens, same answers. Library, proxy, MCP server.
SQL for Android APK and DEX files: classes, methods, strings, references and smali.
System 1 decision models (Jev, Laya, Cua-S1) as brain for agents: Browser use, computer use, games and robotics
MCP Security Weekly
Get CVE alerts and security updates for io.github.ProjectAILiberation/tactus and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
A content-agnostic MCP server that lets any AI agent control intimate hardware through a clean, safe tool interface.
Tactus is a thin, neutral control layer. It wraps Buttplug / Intiface — so a single integration reaches 750+ devices across ~26 brands — and exposes them to AI agents as Model Context Protocol (MCP) tools. It forwards hardware control commands only. It does not generate, host, or store any content of any kind.
npx -y tactus-mcp, no clone or build.⚠️ Adults only (18+, or the age of majority in your jurisdiction). For use only on devices you own and only with the consent of everyone involved.
AI client / agent Tactus (this server) Intiface Central
(Claude Desktop, MCP - MCP server WebSocket - holds BLE/USB
Claude Code, your ───────▶ - Buttplug client ────────▶ - 750+ device
own AI product) - SAFETY LAYER :12345 protocols
│ BLE/USB
▼
🔵 your device
Everything runs locally on your machine. Tactus is a Buttplug client that
connects to a locally running Intiface Central/Engine at
ws://127.0.0.1:12345.
Tactus runs over stdio via npx. Add it to your MCP client config.
Claude Desktop / Claude Code (claude_desktop_config.json):
{
"mcpServers": {
"tactus": {
"command": "npx",
"args": ["-y", "tactus-mcp"],
"env": { "MAX_INTENSITY": "1.0" }
}
}
}
The same command/args work for any MCP client that launches stdio servers
(Cursor, Cline, Continue, etc.).
| Tool | Purpose |
|---|---|
list_devices | List connected devices and their actuators |
scan_for_devices | Scan for and return newly found devices |
get_battery | Read battery level (0.0–1.0) |
vibrate | Set vibration intensity (0.0–1.0) |
oscillate | Set oscillation intensity (0.0–1.0) |
rotate | Set rotation speed and direction |
linear | Move a stroker to a position over a duration |
vibrate_pattern | Play a timed, interruptible vibration pattern |
stop_device | Stop one device |
stop_all | Emergency stop — halt every device immediately |
server_status | Report connection status to Intiface |
All intensities are normalized to 0.0–1.0. Every tool returns both structured
data and human-readable text.
The safety layer wraps every driving command and is on by default:
MAX_INTENSITY; the effective
value is reported back, and out-of-range input is rejected with a clear error
rather than silently coerced.MAX_CONTINUOUS_MS (default 10 minutes) unless refreshed by a new command.
This is an independent timer, not a check-on-next-call.