ScriptCompiler
Server Details
Create motion and play it on The Handy, Autoblow, VacuGlide, Kiiroo, OSSM and Lovense toys.
- Status
- Healthy
- Uptime
- 100.0% over the last 24 hours
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 16 tools
Tools mostly target distinct resources and actions, but there are overlapping motion-writing concepts such as create_motion, play_motion, write_points, and write_coordinated_axes, plus point deletion in clear_points vs edit_points. The descriptions draw clear boundaries (preview vs device playback vs editor modification; bulk clear vs single-point edit), so confusion is limited rather than pervasive.
All tool names use snake_case and follow a predictable verb_noun pattern: read_points, write_points, edit_chapters, clear_points, play_motion, stop_motion, and so on. Minor forms like look_at_video and undo_last_change are still readable and consistent with the overall convention.
Sixteen tools is slightly above the typical well-scoped range, and the surface is broad. However, the domain genuinely includes script reading, point editing, axis derivation, coordinated writing, chapters, editor tools, video inspection, playback, export, and undo, so most tools earn their place.
The set covers the core lifecycle well: reading and writing points, clearing, deriving axes, coordinated multi-axis writing, chapter editing, editor tools, preview/device playback, video inspection, export, and undo. Any missing operations like redo or explicit axis lifecycle are minor and not central dead ends for the stated script-editing and playback purpose.
Available Tools
16 toolsclear_pointsClear pointsADestructiveInspect
Delete points. Give axis to clear one axis, or leave it out for every axis. Give from_ms and to_ms to clear only that range. Only when the user asks to clear, delete or start over.
Inputs: axis, to_ms, from_ms, editor_code.
control_playbackControl playbackAInspect
Play, pause or jump to at_ms in the user's editor, for example to have the user watch and feel one part. play and pause need a loaded video.
Inputs: action (required), at_ms, editor_code.
create_motionCreate motionARead-onlyIdempotentInspect
Render a described motion (or exact funscript points) and show it without playing it on a device. Needs no connection key. To play it afterwards, call play_motion with the same motion.
Inputs: title, device, repeat, actions, +1 more.
derive_axisDerive axisAInspect
Build target_axis from source_axis over the whole script. method follow makes a scaled, optionally inverted copy shifted by delay_ms and position_offset, for example a gentler, delayed surge from the stroke. method per_stroke puts one point on each stroke of the source, moving between target_min (at the bottom) and target_max (at the top), best for vibrate.
Inputs: source_axis (required), target_axis (required), scale, invert, +6 more.
edit_chaptersEdit chaptersAInspect
Change the chapters: add (name, from_ms, to_ms), rename (name, new_name), retime (name, from_ms, to_ms), remove (name) or clear_all. Chapters are found by exact name and overlapping neighbours are trimmed. Only when the user asks for a chapter change.
Inputs: action (required), name, to_ms, from_ms, +2 more.
edit_pointsEdit pointsAInspect
Add, move or delete single points on one axis at exact times. Every other point stays as it is. add puts each point exactly where given and replaces an existing point within replace_within_ms of it. remove_at_ms deletes the point nearest each time, within replace_within_ms. To move a point, remove its old time and add the new one. Points are not speed fitted; the result lists any part now too fast for devices. Lands in the editor at once as one Undo step.
Inputs: add, axis, editor_code, remove_at_ms, +1 more.
export_funscriptFunscript fileBRead-onlyIdempotentInspect
The motion as a .funscript file with ScriptCompiler metadata, for the motion card's Download button.
Inputs: title, device, repeat, actions, +1 more.
look_at_videoLook at videoARead-onlyIdempotentInspect
See frames of the user's video as small pictures: one at at_ms, or up to 6 spread evenly from from_ms to to_ms. Use it to see what happens in a part, not to time single strokes. Only works after the user turns on Let my AI see video frames.
Inputs: at_ms, count, to_ms, from_ms, +1 more.
play_motionPlay motionAInspect
Render a described motion (or exact funscript points) and play it on the user's device, replacing anything already playing. Returns what will actually play.
Inputs: connection_key (required), title, device, repeat, +2 more.
read_pointsRead pointsARead-onlyIdempotentInspect
The points of one axis between from_ms and to_ms, thinned out evenly past 400 points, plus a summary of that range: main stroke frequency, position range and whether it builds or winds down.
Inputs: axis (required), to_ms (required), from_ms (required), editor_code.
read_scriptRead scriptARead-onlyIdempotentInspect
Overview of the script open in the user's ScriptCompiler editor: each axis with its points, range, strokes and speed, parts too fast for devices (over 400 units per second), chapters, the video length, the play position, the user's selection, whether video frames are allowed, and the editor tools run_editor_tool can run. Call it first, and again after the user edits.
Inputs: editor_code.
run_editor_toolRun editor toolAInspect
Run one of the editor's own Tools panel tools (Smoothing, Speed Limiter, Simplify and the rest) on an axis, as if the user ran it. read_script lists the ids and settings. Give from_ms and to_ms for one range, or leave both out for the whole axis. A tool marked needs ScriptCompiler Pro cannot run: tell the user it is part of Pro and do not copy its effect another way. Lands as one Undo step.
Inputs: tool (required), axis, to_ms, params, +2 more.
stop_motionStop motionAIdempotentInspect
Stop whatever is playing on the user's device.
Inputs: connection_key (required), device. Returns: device, stopped
undo_last_changeUndo last changeAInspect
Undo the last change you made in the editor. It refuses when the user edited those axes since, so it never undoes the user's own work.
Inputs: editor_code.
write_coordinated_axesWrite coordinated axesAInspect
Write several axes at once from one shared stroke rhythm, so all axes keep the same beat. schedule is an ordered, gap-free list of cycles (start_ms, duration_ms, kind stroke or hold, and for strokes bottom 0, top 100, peak_frac 0.5 and intensity 50 unless given). One stroke cycle is one full down and up. A hold pauses where the last cycle ended or at its position. Each axis spec is tracking (curve snap, ease, settle, hold-peak or rise, phase_lag 0-1, amplitude, baseline, per_cycle_track) or static (position, ease_in_ms). amplitude scales the schedule depth: the stroke axis always uses amplitude 50 and baseline 50, companions use a smaller amplitude. Set speed with duration_ms and depth with bottom and top. Pass target_duration_ms when the user asks for a length; the call fails if the schedule does not match it. Lands as one Undo step and returns measured stats.
Inputs: schedule (required), axis_specs (required), editor_code, target_duration_ms.
write_pointsWrite pointsAInspect
Replace a time range on one axis with a described motion (sections, the same as play_motion) or with exact points. With sections the motion starts at from_ms and replaces what was there until it ends. With actions the points keep their own times, or are moved so the first one lands on from_ms. The motion is fitted to 400 units per second like the Speed Limiter unless fit_to_device_speed is false. Lands in the editor at once as one Undo step. To add, move or delete single points without replacing a range, use edit_points.
Inputs: axis, repeat, actions, from_ms, +3 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
Related MCP Connectors
Uncensored image, image-to-video and chat generation for adult apps. OpenAI-compatible, pay per use.
AI adult image, character and movie generator (18+). Characters, images, videos, movies, credits.
Create short-form scripts and paced audio, then hand clips to ScriptSeen's on-device video maker.
Chat with adult (18+) AI companions that remember you, send photos and voice notes and run your toy.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceTurn words, images, and audio into an animated video with MP4 export.MIT

aicut MCP Serverofficial
AlicenseNot gradedqualityBmaintenanceEnables generating AI videos, images, audio, and staged story episodes directly from Claude, ChatGPT, Cursor, Grok, or any MCP client, with 61 tools covering model catalogs, generation jobs, and media transforms such as upscaling, lipsync, motion control, and video editing. Hosted over Streamable HTTP with OAuth sign-in, so no API key or local installation is required.MIT
postward-creative-mcpofficial
AlicenseBqualityBmaintenanceEnables AI assistants to generate images, videos, music, and voiceovers with your own provider keys, and edit video locally with ffmpeg — all on your machine with no account, watermark, or telemetry.3540 npmMIT- AlicenseNot gradedqualityBmaintenanceEnables AI agents to film and edit polished screen recordings of any website or desktop app from a simple JSON scenario, complete with smooth cursor motion, automatic zooms, callouts, captions, title cards, and optional voice-over.1,596 npm106MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.