Windy Word

io.github.sneakyfree由 GitHub 帳號 sneakyfree 發布v1.3.0更新於 Nov 3, 2026

Control Windy Word voice-to-text from any MCP agent — 60 tools across 12 categories.

概覽

AI 產生的概覽

這是 Windy Word 語音轉文字桌面應用的 MCP 封裝,讓助手在本機控制錄音、轉寫、貼上、封存與設定。

可以做什麼
  • 開始、停止、取消與切換錄音,選擇 Whisper 模型與語言,並重新貼上轉寫結果
  • 管理貼上策略與快速鍵,列出音訊裝置,並執行貼上注入測試
  • 瀏覽、搜尋、讀取與刪除封存項目,並將整個封存匯出為 soul 檔
  • 管理聲音複製,包括提交雲端訓練,以及掃描資料夾與設定監看器
  • 透過本機記憶快取翻譯文字,擷取文件文字、儲存檔案並轉寫音訊檔
  • 可復原地修改設定,執行本機診斷,並控制視窗、主題、TTS、音效與音樂閃避
適用情境
適合已在本機執行 Windy Word 桌面應用、希望由助手帶動聽寫、轉寫與封存流程,或不想在介面中逐項點選就能調整貼上、快速鍵與音訊設定的使用者。
執行需求
需要 Node.js 18 以上版本,並在本機執行 Windy Word Electron 應用,其 HTTP 控制伺服器監聽 127.0.0.1:18765。可選環境變數 WINDY_WORD_MCP_HOST、WINDY_WORD_MCP_PORT 與 WINDY_WORD_MCP_TIMEOUT_MS 可覆寫主機、連接埠與逾時。僅支援桌面端。
安裝前請注意
許多工具會改變狀態或銷毀資料:封存與聲音複製的刪除無法復原,restart_app 與 quit_app 會關閉應用,貼上工具會將文字注入目前取得焦點的視窗。install_dependency 會呼叫系統套件管理員,setup_install_polkit_rule 會安裝免提示的 polkit 規則。帳務工具會開啟 Stripe 結帳與客戶入口,cloud_diagnose 會把診斷資訊傳送給第三方 Worker,聲音複製提交會把音訊送去雲端訓練。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Windy Word,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

windy-word-mcp

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).

[npm] [mcp registry]


Install

For most users:

bash
claude mcp add windy-word --command "npx" --args "-y" "windy-word-mcp"

Or in ~/.claude.json / ~/.config/claude/claude_desktop_config.json:

json
{  "mcpServers": {    "windy-word": {      "command": "npx",      "args": ["-y", "windy-word-mcp"]    }  }}

Local-dev (cloned repo):

bash
git clone https://github.com/sneakyfree/windy-word-mcp && cd windy-word-mcpnpm installclaude mcp add windy-word --command "node" --args "$(pwd)/bin/windy-word-mcp.js"

Requirements

  • Node.js ≥ 18
  • Windy Word running locally (Electron app — the HTTP control server binds automatically at startup)

Environment overrides

VariableDefaultPurpose
WINDY_WORD_MCP_HOST127.0.0.1Override the control-server host
WINDY_WORD_MCP_PORT18765Override the control-server port
WINDY_WORD_MCP_TIMEOUT_MS5000Default per-request timeout (the install + transcribe tools override this internally for long ops)

Tool catalog (115 tools, 22 categories)

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.

Platform (1)

ToolWhat it does
get_platformOS, arch, distro, display server, desktop env, xdotool/ydotool presence

Paste strategies (9)

12 platform-specific paste backends (macOS / Windows / Linux X11 / Linux Wayland) with capability metadata, hotkey-collision auto-detection, and a verified fallback chain.

ToolWhat it does
list_paste_strategiesAll 12 strategies + per-strategy availability + resolved chain + collision flag
get_active_paste_strategyCurrent selection + resolved chain
set_paste_strategySwitch active (or "auto")
test_paste_strategyFire a specific strategy at the focused window (injects text!)
auto_pasteRun the auto-execute chain with explicit candidates
run_paste_injection_testReal end-to-end test — spawns Tk target, fires paste, diffs result
get_paste_history / clear_paste_historyIn-memory audit log
get_paste_targetXWayland vs Wayland-native detection

Hotkeys (3)

ToolWhat it does
list_hotkeysCurrent bindings + available actions + reserved combos
set_hotkeyRebind a global shortcut (Electron accelerator format)
reset_hotkeysRestore all global shortcuts to catalog defaults + re-register

Transcription engine (3)

ToolWhat it does
list_modelsWhisper model catalog + current + WindyTune ladder
set_modelSwitch (hot-reloads Python engine over WebSocket)
get_windytune_stateAuto-tune state, ladder, recent-timing history

Recording verbs (8)

ToolWhat it does
start_recordingBegin a mode-aware recording (batch / streaming / API engine)
stop_recordingEnd the recording → trigger transcription + paste pipeline
cancel_recordingAbort an in-flight recording without saving
get_recording_stateisRecording + pythonEngineRunning + mode snapshot
toggle_recordingStart/stop (same effect as the global hotkey)
paste_transcriptRe-paste the most recent transcript
set_languageSet the Whisper transcription language (ISO 639-1)
set_panel_visibilityConfigure a bottom panel row (always / hover / off)

Audio devices (1)

ToolWhat it does
list_audio_devicesEnumerate 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.

ToolWhat it does
list_installable_dependenciesWhat's installable on this machine right now
install_dependencySynchronous install (whitelist + dryRun)
install_dependency_asyncFire-and-poll variant — returns jobId
get_install_statusPoll a job
list_install_jobsAll in-memory jobs
get_install_history / clear_install_historyAudit log
setup_install_polkit_ruleInstall/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.

Windy Doctor — local + cloud (3)

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.

ToolWhat it does
run_diagnosticsRun the local battery; return structured findings + actionable remediations
list_diagnostic_checksWhat checks exist + which apply to this platform
cloud_diagnoseLLM-augment via the windy-fix-me Cloudflare Worker (Claude Haiku 4.5 via OpenRouter)

Settings catalog (5) — typed/validated agent surface

49 typed catalog entries with tags (archive, voice-clone, transcription, paste, hotkey, ui, geometry, lifecycle, license). Validation runs server-side before any write.

ToolWhat it does
list_settingsCatalog + current live values + available tags. Supports ?tag=X filter
describe_settingSingle entry + current value
set_settingValidate + apply + return side effects
get_configThe settings an agent may read, by path (personal values redacted; tokens and consent never returned)
set_configRetired: answers retired, use set_setting

Settings undo (2)

ToolWhat it does
undo_last_setting_changeRevert the most recent catalog-validated setting change this session
list_recent_setting_changesList session setting changes, oldest first

Archive surface (8) — opaque-id session catalog

Agents work with opaque arc:YYYY-MM-DD:HHMMSS.md ids, never filesystem paths. Path-confined deletes.

ToolWhat it does
list_archive_entriesList recordings with transcripts + metadata
get_archive_statstotalFiles/sizeMB/days/words/sessions (30s server-side cache)
read_archive_entryBase64 audio or video for an entry
delete_archive_entryTear down md + audio + video
open_archive_folderPop OS file manager at the archive root
search_archivesFull-text substring search across every transcript
archives_by_date_rangeSessions whose start timestamp falls within [from, to]
bulk_delete_archivesTear down multiple entries in one call

Voice clones (10 — Phase 1 + Phase 2)

ToolWhat it does
list_voice_clonesAll clones + activeId (no audio bytes)
get_active_voice_cloneCurrently-active clone (or null)
set_active_voice_cloneSwitch active (or deactivate with null)
create_voice_clone_from_pathCreate from an audio file on disk (path-confined copy)
delete_voice_cloneIrreversible teardown
preview_voice_cloneMetadata + optional base64 audio
list_clone_bundlesTraining-bundle catalog
submit_voice_clone_to_cloudSubmit a local clone to Windy Clone for ElevenLabs training
get_cloud_clone_order_statusPoll Windy Clone for ElevenLabs training progress
bulk_ingest_to_cloneCopy a batch of audio files into the voice-samples store as clones

Bulk clone ingest + watchers (3)

ToolWhat it does
scan_folder_for_mediaScan a folder (recursive) for audio + video files
watch_folder_for_recordingsStart/stop a folder watcher that auto-ingests new audio
list_clone_watchersList active folder watchers

Translation (5)

ToolWhat it does
translate_textTM-cache-first → Groq/OpenAI fallback (auto-populates cache)
lookup_translation_memoryLocal cache query, no API
save_translation_memoryManual upsert
get_translation_memory_statsTotal / topPairs / recentEntries
clear_translation_memoryWipe (destructive)

Documents (3)

ToolWhat it does
extract_document_textPath-based, supports txt/md/csv/html/pdf/docx (5MB default, 20MB cap)
save_text_filePath-based write; refuses overwrite unless flagged
transcribe_audio_fileAny audio file → Whisper transcript via warm WebSocket engine (~5× real-time on CPU)

Sound effects (7)

ToolWhat it does
get_sound_effect_statePer-hook-stage enabled/volume settings (6 lifecycle stages)
set_sound_hookConfigure a single sound-effect hook stage
set_active_sound_packSwitch the active sound pack
set_master_sfx_volumeSet master SFX volume (0-100)
set_sound_effect_modeSwitch EffectsEngine mode (silent / classic / surprise / custom / pack)
list_sound_effect_packsList known sound-effect packs
get_widget_stateMini-widget (tornado) runtime state via the renderer bridge

System utilities (3) + Forma Animae (1)

ToolWhat it does
detect_hardwareRAM, CPU, GPU (nvidia-smi + Apple Silicon detect), disk free
get_autostart_statusIs Windy Word configured to launch on login
set_autostartToggle login-item / .desktop entry
export_soul_file_to_pathForma Animae: zip the whole archive (audio + video + transcripts + manifest) for the digital-twin pipeline

Window + app lifecycle (16)

ToolWhat it does
get_window_stateSnapshot of maximized/minimized/focused/visible/fullScreen
minimize_window / maximize_window / unmaximize_windowTitle-bar window controls
bring_window_to_frontRestore + show + raise (does not steal keyboard focus)
set_window_geometrySet position + size in screen pixels (live + persisted)
set_video_fullscreenToggle native OS-level fullscreen
set_always_on_topKeep the window above others
set_opacitySet window opacity (0.1-1.0)
set_themedark / light / auto
set_font_sizeUI zoom factor (70-150%)
show_hide_windowCycle main → tornado → hidden → main
quick_translateOpen the Quick Translate mini-window
restart_app / quit_appRelaunch / quit Windy Word (destructive)

App info + notifications (5)

ToolWhat it does
get_versionWindy Word + Electron + Node versions
check_for_updatesTrigger electron-updater's update check
set_analytics_enabledOpt in/out of anonymous usage analytics
open_urlOpen an http/https URL or a Windy ecosystem scheme
send_notificationShow an OS-native notification

Account + billing (6)

ToolWhat it does
get_my_planSigned-in identity + license tier
get_billing_historyPurchase / transaction history
get_billing_summaryTier + lifetime spend + next renewal
open_upgrade_checkoutOpen Stripe Checkout for an upgrade
open_billing_portalOpen the Stripe Customer Portal
logout_accountSign the user out

TTS (3)

ToolWhat it does
speak_textSpeak text aloud through the OS system TTS
stop_speakingSilence in-flight TTS playback
list_tts_voicesList installed system TTS voices

Music ducking (2)

ToolWhat it does
pause_other_audioPause music/media in other apps (Spotify, Apple Music, browsers, VLC)
resume_other_audioResume what pause_other_audio paused

Architecture

┌──────────────────────────┐│  Agent (Claude Code etc) │└──────────┬───────────────┘           │ MCP over stdio           ▼┌─────────────────────────────────────────┐│  windy-word-mcp (this package)          ││  - 115 zod-validated tool schemas       ││  - Per-tool timeout overrides           ││  - Structured 4xx body pass-through     ││  - "Windy Word not running" detection   │└──────────┬──────────────────────────────┘           │ HTTP localhost:18765           ▼┌─────────────────────────────────────────┐│  Windy Word (Electron) — windy-pro repo ││  - 49-entry settings catalog            ││  - 13 Doctor checks                     ││  - Paste-strategy registry (12 backends)││  - Whisper Python engine (WebSocket)    ││  - Voice clone + archive on-disk state  │└──────────┬──────────────────────────────┘           │ HTTPS (only for cloud-diagnose)           ▼┌─────────────────────────────────────────┐│  windy-fix-me CF Worker                 ││  - SHARED_SECRET auth                   ││  - 20 req/IP/min rate limit             ││  - Claude Haiku 4.5 via OpenRouter      │└─────────────────────────────────────────┘

Coverage

115 MCP tools now surface the Windy Word desktop app's agent-control surface — paste, hotkeys, transcription, recording verbs, audio devices, install/Doctor, archive, voice clones (Phase 1 + Phase 2 cloud training), translation, documents, sound effects, window + app lifecycle, account + billing, TTS, settings-undo, music-ducking, bulk-clone-ingest, and soul-file export. Internal renderer events that are not agent-callable RPCs by design are intentionally excluded.

Quality bar

scripts/stress-test.js exercises every safe tool, including:

  • Whitelist rejection at the MCP zod layer
  • Structured 4xx error pass-through for validation failures
  • Cross-OS rejection (cliclick on Linux, wtype on macOS)
  • Real paste injection round-trip (Tk capture + diff)
  • Concurrency burst (20 parallel get_platform calls)
  • Idempotent installs (alreadyInstalled detection)

67/67 passing at v1.0.0 release.

Known intermittent: run_paste_injection_test ~1-in-5 hits a Mutter focus-handoff race on Wayland+GNOME. Re-run is clean. Not a regression.

Sibling components

These are private repositories — the names are here so the architecture reads clearly, not as links.

  • windy-pro — the Electron app (Windy Word). Contains the control server, settings catalog, install registry, Doctor checks, paste strategies, archive scanner, voice-clone CRUD.
  • windy-fix-me — the cloud-relay Cloudflare Worker. Receives Doctor findings + platform context, returns LLM-augmented remediation.

This server is the public, supported interface to Windy Word. You do not need either of the above to use it — install from npm as shown at the top.

Version history

See CHANGELOG.md for the per-version details. Tool count progression:

v0.1.0  20    foundationv0.2.0  24    install_dependency + polkit auto-approvev0.3.0  27    settings catalogv0.4.0  33    async install + Windy Doctor + cross-platformv0.5.0  34    cloud_diagnosev0.6.0  35    paste injection + tag filterv0.7.0  41    voice clones Phase 1v0.8.0  46    archive surfacev0.9.0  53    translation + documentsv0.10.0 56    utilities + OC5 macOS Doctor mergev0.11.0 57    transcribe_audio_filev0.12.0 60    soul-file export + voice-clone Phase 2 startersv1.0.0  60    stable API surface declaredv1.5.0  95    Waves W1–W6: window/state, archive search, lifecycle, recording verbs, cloud submitv1.6.0  104   account / billing / plan surfacev1.7.0  107   TTS round-tripv1.8.0  109   settings undo + audit logv1.9.0  111   music duckingv1.10.0 115   bulk clone-ingest

License

MIT. See LICENSE.

Contributing

Bug reports + tool additions welcome. See PUBLISHING.md for the release recipe.

來源:README.md,提交 5a33037

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v1.3.0最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分