npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@bitti09/mcp-svakom-samneo

v1.2.3

Published

MCP server for Svakom Sam Neo device control via Buttplug.io

Downloads

215

Readme

Svakom Sam Neo MCP Server (AI Chat Optimized)

AI Assisted

A fork of Kyure-A/mcp-svakom-samneo optimized for AI roleplay and interactive chat environments using the latest Buttplug.io Spec v4.

Features for AI Chat/Roleplay

  • Asynchronous (Fire-and-Forget) Execution: Tools return to the AI immediately after triggering hardware. This prevents chat interface freezes during long stimulation patterns and allows the AI to continue the narrative in parallel with physical actions.
  • Automatic State Reporting (Implicit Context): Every tool response appends a [STATUS] summary of current vibration and vacuum intensities. This ensures the AI agent has up-to-date hardware state in its context window without requiring separate DeviceInfo calls.
  • Session Management & Orchestration: A central AbortController handles overlapping stimulation commands. If the AI sends a new command while a pattern is running, the previous session is silently terminated and replaced by the new intent to prevent mechanical jitter.
  • Intensity Transition Validation: A safety enforcer blocks intensity jumps greater than 70% in a single command (e.g. 0% to 100%). This prevents accidental hardware spikes during autonomous AI control.

Technical Implementation

  • Buttplug.io Spec v4 Migration: Uses the Spec v4 feature-map model for dynamic actuator discovery (Vibrate/Constrict) instead of hardcoded indices.
  • Hardware Actuator Caching: Features are cached during bootstrap to reduce Map lookups and BLE/CPU overhead during high-frequency loops.
  • Safety Clamping: Ensures all non-zero intensities meet the hardware's minimum thresholds (e.g. 0.1 for vibration, 0.2 for vacuum) to prevent rounding errors.
  • Process Lifecycle Handling: Integrated stdin listeners trigger stopAll on parent process termination.


Device Support

Strict signature verification is performed at runtime.

Original Sam Neo

  • Svakom-Sam-Neo-Piston: Synchronized dual-vibrator motion.
  • Svakom-Sam-Neo-ExtendedO: Dual-vibrate intensity reduction.
  • Svakom-Sam-Neo-DeviceInfo: Battery and hardware diagnostics.

Sam Neo 2 / Sam Neo 2 Pro (v4)

  • Svakom-Sam-Neo-Piston: Single-vibrator patterns.
  • Svakom-Sam-Neo-Combo: Vibration and suction control (sync/independent).
  • Svakom-Sam-Neo-Vacuum: Physical suction engine patterns.
  • Svakom-Sam-Neo-ExtendedO: Actuator-specific intensity reduction.
  • Svakom-Sam-Neo-DeviceInfo: v4 Feature-map and battery reporting.

Available Tools

Svakom-Sam-Neo-Piston

Vibration-based motion simulation.

  • Parameters:
    • duration: Total time in milliseconds (1000-100000).
    • steps: Resolution of the motion pattern (20-1000).
    • vibrationPower: Peak intensity (0.0-1.0).

Svakom-Sam-Neo-Vacuum

Direct suction control (Sam Neo 2 / Pro only).

  • Parameters:
    • intensity: Suction power (0.0-1.0).
    • duration: Total time in milliseconds (100-30000).
    • pattern: constant, pulse, or wave.
    • pulseInterval: Interval for pulse pattern in ms (optional).

Svakom-Sam-Neo-Combo

Synchronized vibration and suction control.

  • Parameters:
    • duration: Total time in milliseconds.
    • steps: Resolution of the motion pattern.
    • vibrationPower: Vibration intensity (0.0-1.0).
    • vacuumIntensity: Suction intensity (0.0-1.0).
    • syncMode: synchronized, alternating, or independent.
    • vacuumPattern: Pattern for suction (constant, pulse, or wave).

Svakom-Sam-Neo-ExtendedO

Technical climax control (prolongs climax by dropping intensity).

  • Parameters:
    • currentVibration: Intensity to reduce from.
    • currentVacuum: Suction power to reduce from.
    • holdDuration: Time to hold at minimum intensity (ms).
    • restoreDuration: Time to return to original power (ms).
    • minimumLevel: Intensity during the hold phase (default 0.1).

Svakom-Sam-Neo-DeviceInfo

Reports connection status, current intensity states, and the discovered Spec v4 hardware feature-map.


Safety & Configuration

Hard Mode (Unrestricted Stimulation)

The server includes an optional Hard Mode for advanced users who want unrestricted stimulation. When enabled:

  • Anti-Jolt Disabled: The 70% intensity jump limit is lifted, allowing immediate spikes from 0% to 100%.
  • Hidden Warnings: AI-facing tool descriptions omit the safety instructions to use ramps, presenting the device as fully unrestricted.

To enable, set the environment variable in your MCP configuration:

"env": {
  "SAM_NEO_HARD_MODE": "true"
}

Installation & Setup

Requires pnpm and Node.js v25+.

  1. Dependencies:
    pnpm install
  2. Build:
    pnpm run build
  3. Verify:
    pnpm test
  4. MCP Configuration:
    "mcp-svakom-samneo": {
      "command": "node",
      "args": ["/absolute/path/to/build/index.js"],
      "env": {
        "BUTTPLUG_WS_URL": "ws://localhost:12346"
      }
    }

Technical Verification

Automated test suite (Vitest):

  • Identity Protection: Validates hardware signatures for Sam Neo Original and Pro.
  • Collision Testing: Verifies secure rejection of non-Sam Svakom devices (e.g., Alex Neo, Vick Neo 2).

Disclaimer

This project is an independent, third-party fork and is not affiliated with, authorized, maintained, sponsored, or endorsed by Svakom or any of its affiliates or subsidiaries. The name "Svakom" as well as related names, marks, emblems, and images are registered trademarks of their respective owners. This MCP server is intended for personal use and developer experimentation via the Buttplug.io protocol.

Credits