mcpField
W
Windy Word

Windy Word

本地服务
windyword.ai媒体与设计11 周前更新

关于 Windy Word

Windy Word 是 Windy Word 语音转文字桌面应用的本地 MCP 控制层,面向需要用 Agent 操作该应用的用户。它通过本机 HTTP 控制服务提供录音、转录、设置、归档和窗口管理等工具。

主要功能

  1. 01控制录音与转录
  2. 02管理热键和粘贴策略
  3. 03运行诊断并查看状态
  4. 04管理归档与语音克隆
  5. 05调整应用设置和窗口

适用场景

  1. 01用 Agent 启动录音并粘贴转录文本
  2. 02搜索或整理录音归档
  3. 03排查本地应用问题并调整设置

MCP 相关

该 MCP 服务向客户端公开 Windy Word 的控制工具,并通过 localhost 转发至应用的 HTTP 控制服务;操作在用户机器上进行。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"sneakyfree-windy-word": {
"command": "npx",
"args": [
"-y",
"windy-word-mcp"
],
"env": {
"WINDY_WORD_MCP_HOST": "<WINDY_WORD_MCP_HOST>",
"WINDY_WORD_MCP_PORT": "<WINDY_WORD_MCP_PORT>",
"WINDY_WORD_MCP_TIMEOUT_MS": "<WINDY_WORD_MCP_TIMEOUT_MS>"
}
}
}
}
启动命令npx -y windy-word-mcp
需要配置的环境变量
WINDY_WORD_MCP_HOSTHost the Windy Word control server is bound to.
WINDY_WORD_MCP_PORTControl-server port.
WINDY_WORD_MCP_TIMEOUT_MSPer-request timeout to the control server (ms).

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmwindy-word-mcp1.3.0

工具

67

收录的工具列表 · 更新于 2 周前

此工具无需参数。

详细介绍

windy-word-mcp

一个 MCP(Model Context Protocol)服务,可将 Windy Word——这款语音转文本桌面应用——变为可由 Agent 控制的平台。115 个工具,涵盖粘贴 / 快捷键 / 转录 / 录音操作 / 音频设备 / 安装 / 诊断 / 归档 / 语音克隆 / 翻译 / 文档 / 系统 / 窗口 / 账户 + 账单 / TTS / 设置撤销 / 音乐闪避 / 批量克隆导入 / soul 文件导出。

Windy Word 在 127.0.0.1:18765 上运行本地 HTTP 控制服务。此软件包是其经过架构验证的 MCP 封装。Agent 调用 MCP 工具;服务通过 localhost 将请求转发给 Windy Word;所有操作都在用户的计算机上进行(状态查询不会产生网络往返)。

npm mcp registry


安装

适用于大多数用户:

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

或添加到 ~/.claude.json / ~/.config/claude/claude_desktop_config.json:

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

本地开发(克隆仓库):

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

要求

  • Node.js ≥ 18
  • Windy Word 在本地运行(Electron 应用——HTTP 控制服务会在启动时自动绑定)

环境变量覆盖

变量默认值用途
WINDY_WORD_MCP_HOST127.0.0.1覆盖控制服务主机
WINDY_WORD_MCP_PORT18765覆盖控制服务端口
WINDY_WORD_MCP_TIMEOUT_MS5000每个请求的默认超时时间(安装 + 转录工具会在内部为长时间操作覆盖此设置)

工具目录(115 个工具,22 个类别)

可随时使用 npm run test:list-tools 重新生成本节的工具数量 (node scripts/list-tools.js),该命令会枚举运行中服务已注册的工具。

平台(1)
工具功能
get_platform操作系统、架构、发行版、显示服务器、桌面环境、是否存在 xdotool/ydotool
粘贴策略(9)

12 种特定于平台的粘贴后端(macOS / Windows / Linux X11 / Linux Wayland),支持能力元数据、快捷键冲突自动检测以及经过验证的回退链。

工具功能
list_paste_strategies全部 12 种策略 + 每种策略的可用性 + 已解析的链 + 冲突标记
get_active_paste_strategy当前选项 + 已解析的链
set_paste_strategy切换当前选项(或设为 "auto")
test_paste_strategy在当前聚焦的窗口中执行指定策略(会注入文本!)
auto_paste使用明确指定的候选项运行自动执行链
run_paste_injection_test真实端到端测试——启动 Tk 目标、执行粘贴并对比结果
get_paste_history / clear_paste_history内存中的审计日志
get_paste_target检测 XWayland 与原生 Wayland
快捷键(3)
工具功能
list_hotkeys当前绑定 + 可用操作 + 预留组合键
set_hotkey重新绑定全局快捷键(Electron 加速键格式)
reset_hotkeys将所有全局快捷键恢复为目录默认值 + 重新注册
转录引擎(3)
工具功能
list_modelsWhisper 模型目录 + 当前模型 + WindyTune 阶梯
set_model切换模型(通过 WebSocket 热重载 Python 引擎)
get_windytune_state自动调优状态、阶梯、近期计时历史
录音工具(8)
工具功能
start_recording开始与模式对应的录音(批处理 / 流式 / API 引擎)
stop_recording结束录音 → 触发转录 + 粘贴流程
cancel_recording中止正在进行的录音,不保存
get_recording_state获取 isRecording + pythonEngineRunning + 模式快照
toggle_recording开始 / 停止(与全局快捷键效果相同)
paste_transcript重新粘贴最近的转录文本
set_language设置 Whisper 转录语言(ISO 639-1)
set_panel_visibility配置底部面板行(always / hover / 关闭)
音频设备(1)
工具功能
list_audio_devices列出 Windy Word 可用的麦克风
install_dependency 系列(8)

Agent 安装缺失的系统工具(Linux/macOS/Windows 软件包管理器)。Linux 使用 pkexec;macOS 使用用户级 brew;Windows 使用 winget。仅限白名单:wtype、ydotool、wl-clipboard、xdotool、cliclick、ffmpeg。

工具功能
list_installable_dependencies查看当前机器上可安装的内容
install_dependency同步安装(白名单 + dryRun)
install_dependency_async启动后轮询的变体 — 返回 jobId
get_install_status轮询作业
list_install_jobs列出所有内存中的作业
get_install_history / clear_install_history审计日志
setup_install_polkit_rule安装 / 移除 Linux polkit 自动批准规则

Polkit 设置(Linux): setup_install_polkit_rule 会在每台机器上安装一次 /etc/polkit-1/rules.d/49-windy-install-deps.rules,使安装无需提示。请参阅规则片段。

Windy Doctor — 本地 + 云端(3)

13 项基于规则的本地检查,涵盖粘贴栈工具、/dev/uinput 权限、polkit 规则是否存在(支持容忍 EACCES 的检测)、Python 引擎是否运行、Mutter 快捷键冲突、macOS 辅助功能 + 麦克风权限、Homebrew 是否存在、cliclick 是否存在。

工具功能
run_diagnostics运行本地检查集;返回结构化发现结果 + 可执行的修复措施
list_diagnostic_checks查看有哪些检查,以及哪些适用于此平台
cloud_diagnose通过 windy-fix-me Cloudflare Worker 使用大模型增强诊断(经由 OpenRouter 调用 Claude Haiku 4.5)
设置目录(5)— 类型化 / 已验证的 Agent 接口

49 个带标签的类型化目录条目(archive、voice-clone、transcription、paste、hotkey、ui、geometry、lifecycle、license)。任何写入操作前都会在服务端进行验证。

工具功能
list_settings目录 + 当前实时值 + 可用标签。支持 ?tag=X 筛选
describe_setting单个条目 + 当前值
set_setting验证 + 应用 + 返回副作用
get_configAgent 可按路径读取的设置(个人值已隐藏;不会返回令牌和同意信息)
set_config已停用:返回 retired,请改用 set_setting
设置撤销(2)
工具功能
undo_last_setting_change撤销本会话中最近一次经目录验证的设置更改
list_recent_setting_changes按时间从早到晚列出本会话的设置更改
存档接口(8)— 不透明 ID 会话目录

Agent 使用不透明的 arc:YYYY-MM-DD:HHMMSS.md ID,从不使用文件系统路径。删除操作限制在指定路径内。

工具功能
list_archive_entries列出包含转录文本和元数据的录音
get_archive_stats总文件数/大小(MB)/天数/字数/会话数(服务端缓存 30s)
read_archive_entry获取条目的 Base64 音频或视频
delete_archive_entry删除 md、音频和视频
open_archive_folder在存档根目录打开 Pop OS 文件管理器
search_archives对所有转录文本进行全文子串搜索
archives_by_date_range开始时间戳位于 [from, to] 范围内的会话
bulk_delete_archives一次调用删除多个条目
语音克隆(10 — Phase 1 + Phase 2)
工具功能
list_voice_clones列出所有克隆和 activeId(不包含音频字节)
get_active_voice_clone获取当前激活的克隆(或 null)
set_active_voice_clone切换当前激活的克隆(或使用 null 停用)
create_voice_clone_from_path从磁盘上的音频文件创建(受路径限制的副本)
delete_voice_clone不可逆删除
preview_voice_clone元数据 + 可选的 Base64 音频
list_clone_bundles训练包目录
submit_voice_clone_to_cloud将本地克隆提交给 Windy Clone,用于 ElevenLabs 训练
get_cloud_clone_order_status查询 Windy Clone 上的 ElevenLabs 训练进度
bulk_ingest_to_clone将一批音频文件复制到语音样本存储区,作为克隆
批量导入克隆 + 监视器(3)
工具功能
scan_folder_for_media递归扫描文件夹中的音频和视频文件
watch_folder_for_recordings启动/停止文件夹监视器,自动导入新音频
list_clone_watchers列出活动的文件夹监视器
翻译(5)
工具功能
translate_text优先使用翻译记忆缓存 → 失败时回退到 Groq/OpenAI(自动填充缓存)
lookup_translation_memory查询本地缓存,无需 API
save_translation_memory手动插入或更新
get_translation_memory_stats总数/热门语言对/最近条目
clear_translation_memory清空(破坏性操作)
文档(3)
工具功能
extract_document_text基于路径,支持 txt/md/csv/html/pdf/docx(默认 5MB,上限 20MB)
save_text_file基于路径写入;除非指定标记,否则拒绝覆盖
transcribe_audio_file将任意音频文件转换为 Whisper 转录文本,通过预热的 WebSocket 引擎处理(CPU 上约为实时速度的 5 倍)
音效(7)
工具功能
get_sound_effect_state获取各钩子阶段的启用/音量设置(6 个生命周期阶段)
set_sound_hook配置单个音效钩子阶段
set_active_sound_pack切换当前音效包
set_master_sfx_volume设置主音效音量(0-100)
set_sound_effect_mode切换 EffectsEngine 模式(silent / classic / surprise / custom / pack)
list_sound_effect_packs列出已知音效包
get_widget_state通过渲染器桥接获取迷你小组件(tornado)的运行时状态
系统实用工具(3)+ Forma Animae(1)
工具功能
detect_hardwareRAM、CPU、GPU(nvidia-smi + Apple Silicon 检测)、磁盘可用空间
get_autostart_statusWindy Word 是否已配置为登录时启动
set_autostart切换登录项 / .desktop 条目
export_soul_file_to_pathForma Animae:将整个存档(音频 + 视频 + 转录文本 + manifest)打包为 zip,供数字分身工作流使用
窗口与应用生命周期(16)
工具功能
get_window_state获取窗口最大化、最小化、聚焦、可见和全屏状态的快照
minimize_window / maximize_window / unmaximize_window标题栏窗口控制
bring_window_to_front还原 + 显示 + 提升窗口层级(不会抢占键盘焦点)
set_window_geometry设置屏幕像素中的位置 + 尺寸(实时生效并持久化)
set_video_fullscreen切换原生操作系统级全屏
set_always_on_top让窗口始终置于其他窗口上方
set_opacity设置窗口不透明度(0.1-1.0)
set_theme深色 / 浅色 / 自动
set_font_sizeUI 缩放比例(70-150%)
show_hide_window在主窗口 → tornado → 隐藏 → 主窗口之间循环切换
quick_translate打开“快速翻译”迷你窗口
restart_app / quit_app重新启动 / 退出 Windy Word(有破坏性)
应用信息与通知(5)
工具功能
get_versionWindy Word、Electron 和 Node 版本
check_for_updates触发 electron-updater 的更新检查
set_analytics_enabled选择启用或停用匿名使用情况分析
open_url打开 http/https URL 或 Windy 生态系统方案
send_notification显示操作系统原生通知
账户与账单(6)
工具功能
get_my_plan已登录身份 + 许可证等级
get_billing_history购买 / 交易历史记录
get_billing_summary等级 + 累计支出 + 下次续订时间
open_upgrade_checkout打开用于升级的 Stripe Checkout
open_billing_portal打开 Stripe Customer Portal
logout_account将用户登出
TTS(3)
工具功能
speak_text通过操作系统系统级 TTS 朗读文本
stop_speaking停止正在进行的 TTS 播放
list_tts_voices列出已安装的系统 TTS 语音
音乐音量闪避(2)
工具功能
pause_other_audio暂停其他应用中的音乐 / 媒体播放(Spotify、Apple Music、浏览器、VLC)
resume_other_audio恢复由 pause_other_audio 暂停的播放

架构

┌──────────────────────────┐
│  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      │
└─────────────────────────────────────────┘

覆盖范围

115 个 MCP 工具现已覆盖 Windy Word 桌面应用的 Agent 控制功能,包括粘贴、快捷键、转录、录音操作、音频设备、安装 / Doctor、归档、语音克隆(Phase 1 + Phase 2 云端训练)、翻译、文档、音效、窗口与应用生命周期、账户与账单、TTS、设置撤销、音乐音量闪避、批量克隆导入和 soul-file 导出。按照设计,内部不可由 Agent 调用的渲染进程事件不在此列。

质量标准

scripts/stress-test.js 会测试每个安全工具,包括:

  • 在 MCP zod 层拒绝不在白名单中的内容
  • 验证失败时透传结构化 4xx 错误
  • 跨操作系统拒绝(Linux 上的 cliclick,macOS 上的 wtype)
  • 真实粘贴注入往返测试(Tk 捕获 + 差异对比)
  • 并发突发测试(20 个并行 get_platform 调用)
  • 安装幂等性(检测 alreadyInstalled)

v1.0.0 发布时 67/67 项测试通过。

已知的间歇性问题:run_paste_injection_test 约每 5 次会有 1 次在 Wayland+GNOME 上遇到 Mutter 焦点交接竞态。重新运行即可通过。并非回归问题。

相关组件

这些是私有仓库——此处列出名称是为了让架构说明更清晰,并非链接。

  • windy-pro — Electron 应用(Windy Word)。包含控制服务、设置目录、安装注册表、Doctor 检查、粘贴策略、归档扫描器和语音克隆 CRUD。
  • windy-fix-me — 云中继 Cloudflare Worker。接收 Doctor 检查结果 + 平台上下文,并返回经大模型增强的修复建议。

此服务是 Windy Word 面向公众、受支持的接口。使用它无需依赖上述任何组件——按顶部所示从 npm 安装即可。

版本历史

各版本的详情请参见 CHANGELOG.md。工具数量变化:

v0.1.0  20    foundation
v0.2.0  24    install_dependency + polkit auto-approve
v0.3.0  27    settings catalog
v0.4.0  33    async install + Windy Doctor + cross-platform
v0.5.0  34    cloud_diagnose
v0.6.0  35    paste injection + tag filter
v0.7.0  41    voice clones Phase 1
v0.8.0  46    archive surface
v0.9.0  53    translation + documents
v0.10.0 56    utilities + OC5 macOS Doctor merge
v0.11.0 57    transcribe_audio_file
v0.12.0 60    soul-file export + voice-clone Phase 2 starters
v1.0.0  60    stable API surface declared
v1.5.0  95    Waves W1–W6: window/state, archive search, lifecycle, recording verbs, cloud submit
v1.6.0  104   account / billing / plan surface
v1.7.0  107   TTS round-trip
v1.8.0  109   settings undo + audit log
v1.9.0  111   music ducking
v1.10.0 115   bulk clone-ingest

许可证

MIT。请参见 LICENSE。

贡献

欢迎提交 Bug 报告和新增工具。发布流程请参阅 PUBLISHING.md。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。