Control Windy Word voice-to-text from any MCP agent β paste, hotkeys, models, config.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
An MCP (Model Context Protocol) server that turns Windy Word β the voice-to-text desktop app β into an agent-controllable platform. 115 tools spanning paste / hotkeys / transcription / recording verbs / audio devices / install / diagnostics / archive / voice clones / translation / documents / system / window / account + billing / TTS / settings-undo / music-ducking / bulk-clone-ingest / soul-file export.
Windy Word ships a local HTTP control server on 127.0.0.1:18765. This package is a schema-validated MCP wrapper around it. Agents call MCP tools; the server forwards to Windy Word over localhost; everything happens on the user's machine (no network round-trips for state queries).
For most users:
Or in ~/.claude.json / ~/.config/claude/claude_desktop_config.json:
Local-dev (cloned repo):
| Variable | Default | Purpose |
|---|---|---|
WINDY_WORD_MCP_HOST | 127.0.0.1 | Override the control-server host |
WINDY_WORD_MCP_PORT | 18765 | Override the control-server port |
WINDY_WORD_MCP_TIMEOUT_MS | 5000 | Default per-request timeout (the install + transcribe tools override this internally for long ops) |
Regenerate this section's tool count any time with
npm run test:list-tools(node scripts/list-tools.js), which enumerates the live server's registered tools.
| Tool | What it does |
|---|---|
get_platform | OS, arch, distro, display server, desktop env, xdotool/ydotool presence |
12 platform-specific paste backends (macOS / Windows / Linux X11 / Linux Wayland) with capability metadata, hotkey-collision auto-detection, and a verified fallback chain.
| Tool | What it does |
|---|---|
list_paste_strategies | All 12 strategies + per-strategy availability + resolved chain + collision flag |
get_active_paste_strategy | Current selection + resolved chain |
set_paste_strategy | Switch active (or "auto") |
test_paste_strategy | Fire a specific strategy at the focused window (injects text!) |
auto_paste | Run the auto-execute chain with explicit candidates |
run_paste_injection_test | Real end-to-end test β spawns Tk target, fires paste, diffs result |
get_paste_history / clear_paste_history | In-memory audit log |
get_paste_target | XWayland vs Wayland-native detection |
| Tool | What it does |
|---|---|
list_hotkeys | Current bindings + available actions + reserved combos |
set_hotkey | Rebind a global shortcut (Electron accelerator format) |
reset_hotkeys | Restore all global shortcuts to catalog defaults + re-register |
| Tool | What it does |
|---|---|
list_models | Whisper model catalog + current + WindyTune ladder |
set_model | Switch (hot-reloads Python engine over WebSocket) |
get_windytune_state | Auto-tune state, ladder, recent-timing history |
| Tool | What it does |
|---|---|
start_recording | Begin a mode-aware recording (batch / streaming / API engine) |
stop_recording | End the recording β trigger transcription + paste pipeline |
cancel_recording | Abort an in-flight recording without saving |
get_recording_state | isRecording + pythonEngineRunning + mode snapshot |
toggle_recording | Start/stop (same effect as the global hotkey) |
paste_transcript | Re-paste the most recent transcript |
set_language | Set the Whisper transcription language (ISO 639-1) |
set_panel_visibility | Configure a bottom panel row (always / hover / off) |
| Tool | What it does |
|---|---|
list_audio_devices | Enumerate microphones available to Windy Word |
install_dependency family (8)Agent installs missing system tools (Linux/macOS/Windows package managers). Linux uses pkexec; macOS uses user-scope brew; Windows uses winget. Whitelist-only: wtype, ydotool, wl-clipboard, xdotool, cliclick, ffmpeg.
| Tool | What it does |
|---|---|
list_installable_dependencies | What's installable on this machine right now |
install_dependency | Synchronous install (whitelist + dryRun) |
install_dependency_async | Fire-and-poll variant β returns jobId |
get_install_status | Poll a job |
list_install_jobs | All in-memory jobs |
get_install_history / clear_install_history | Audit log |
setup_install_polkit_rule | Install/remove the Linux polkit auto-approve rule |
Polkit setup (Linux): setup_install_polkit_rule installs /etc/polkit-1/rules.d/49-windy-install-deps.rules once per machine to make installs prompt-free. See the rule snippet.
13 local rule-based checks covering paste-stack tooling, /dev/uinput permissions, polkit rule presence (with EACCES-tolerant detection), Python engine liveness, Mutter hotkey collision, macOS Accessibility + Microphone permissions, Homebrew presence, cliclick presence.
| Tool | What it does |
|---|---|
run_diagnostics | Run the local battery; return structured findings + actionable remediations |
list_diagnostic_checks | What checks exist + which apply to this platform |
cloud_diagnose | LLM-augment via the windy-fix-me Cloudflare Worker (Claude Haiku 4.5 via OpenRouter) |
49 typed catalog entries with tags (archive, voice-clone, transcription, paste, hotkey, ui, geometry, lifecycle, license). Validation runs server-side before any write.
| Tool | What it does |
|---|---|
list_settings | Catalog + current live values + available tags. Supports ?tag=X filter |
describe_setting | Single entry + current value |
set_setting | Validate + apply + return side effects |
get_config | Full electron-store dump (low-level escape hatch) |
set_config | Patch by dotted path, no validation (low-level escape hatch) |
| Tool | What it does |
|---|---|
undo_last_setting_change | Revert the most recent catalog-validated setting change this session |
list_recent_setting_changes | List session setting changes, oldest first |
Agents work with opaque arc:YYYY-MM-DD:HHMMSS.md ids, never filesystem paths. Path-confined deletes.
| Tool | What it does |
|---|---|
list_archive_entries | List recordings with transcripts + metadata |
get_archive_stats | totalFiles/sizeMB/days/words/sessions (30s server-side cache) |
read_archive_entry | Base64 audio or video for an entry |
delete_archive_entry | Tear down md + audio + video |
open_archive_folder | Pop OS file manager at the archive root |
search_archives | Full-text substring search across every transcript |
archives_by_date_range | Sessions whose start timestamp falls within [from, to] |
bulk_delete_archives | Tear down multiple entries in one call |
| Tool | What it does |
|---|---|
list_voice_clones | All clones + activeId (no audio bytes) |
get_active_voice_clone | Currently-active clone (or null) |
set_active_voice_clone | Switch active (or deactivate with null) |
create_voice_clone_from_path | Create from an audio file on disk (path-confined copy) |
delete_voice_clone | Irreversible teardown |
preview_voice_clone | Metadata + optional base64 audio |
list_clone_bundles | Training-bundle catalog |
submit_voice_clone_to_cloud | Submit a local clone to Windy Clone for ElevenLabs training |
get_cloud_clone_order_status | Poll Windy Clone for ElevenLabs training progress |
bulk_ingest_to_clone | Copy a batch of audio files into the voice-samples store as clones |
| Tool | What it does |
|---|---|
scan_folder_for_media | Scan a folder (recursive) for audio + video files |
watch_folder_for_recordings | Start/stop a folder watcher that auto-ingests new audio |
list_clone_watchers | List active folder watchers |
| Tool | What it does |
|---|---|
translate_text | TM-cache-first β Groq/OpenAI fallback (auto-populates cache) |
lookup_translation_memory | Local cache query, no API |
save_translation_memory | Manual upsert |
get_translation_memory_stats | Total / topPairs / recentEntries |
clear_translation_memory | Wipe (destructive) |
| Tool | What it does |
|---|---|
extract_document_text | Path-based, supports txt/md/csv/html/pdf/docx (5MB default, 20MB cap) |
save_text_file | Path-based write; refuses overwrite unless flagged |
transcribe_audio_file | Any audio file β Whisper transcript via warm WebSocket engine (~5Γ real-time on CPU) |
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/windy-word)<a href="https://allmcps.com/mcp/windy-word"><img src="https://allmcps.com/api/badge/windy-word?style=directory" alt="Windy Word on AllMCPs" /></a>