Content-agnostic control layer for intimate hardware; forwards Buttplug/Intiface commands only.
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.
A content-agnostic MCP server that lets any AI agent control intimate hardware through a clean, safe tool interface.
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
Pi Coding Agent extension (CLI-first) — routes bash/read/grep/find/ls through lean-ctx CLI for strong token savings. Optional MCP bridge can register advanced tools.
Autonomous spec-to-product coding-agent CLI with an MCP server exposing 34 tools over stdio.
97% token reduction for AI coding sessions — zero deps, 21 languages, MCP server
App framework, testing framework, and inspector for MCP Apps.
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.