app-launcher-mcp
Launch Windows applications by name, alias, or path via MCP, supporting arguments and working directories. Uses Task Scheduler to detach launched processes so they persist independently of the MCP server.
README
app-launcher-mcp
应用启动器 MCP server:让 AI 助手(如 Reasonix / Claude / 任何支持 MCP 的工具)按名称或路径打开 Windows 上的任意软件——包括 Halcon、CC Switch、Codex、X-AnyLabeling、浏览器、文件管理器等。
工具
| 工具 | 说明 | 参数 |
|---|---|---|
launch_app |
启动软件 | app(必填:注册名/别名/完整路径)、args(可选启动参数)、cwd(可选工作目录) |
list_apps |
查看已注册软件清单 | 无 |
已注册软件(apps.json)
| 名称 | 别名 | 启动内容 |
|---|---|---|
halcon |
hdevelop、halcon软件 | HDevelop(MVTec Halcon 18.11) |
halconxl |
— | HDevelop XL |
ccswitch |
cc-switch | CC Switch(Claude Code 配置切换) |
codex |
codex-cli | OpenAI Codex |
xanylabeling |
anylabeling、标注 | X-AnyLabeling 标注工具(conda 环境 kkk) |
edge |
浏览器 | Microsoft Edge |
notepad |
记事本 | 记事本 |
calc |
计算器 | 计算器 |
mspaint |
画图 | 画图 |
explorer |
文件管理器 | 文件资源管理器(用户主目录) |
cmd |
命令行、终端 | CMD 命令行 |
一、安装
npm install # 安装依赖(首次)
node src/index.js # 手动启动(MCP 客户端会自动拉起,一般无需手动运行)
二、注册为 MCP
以 Reasonix 为例(全局注册,本机所有项目可用):
- 确保
.mcp.json中的路径正确(默认指向本目录src/index.js) - 使用
install_source工具,source 指向app-launcher/.mcp.json,scope=global - 重启 Reasonix 使注册生效
其他支持 MCP 的工具(Claude Desktop、Cursor 等):在其 MCP 配置中添加 stdio server,命令为 node <本目录绝对路径>\src\index.js。
三、使用示例
注册完成后,直接对 AI 说:
打开 halcon
打开标注工具 # 按别名 xanylabeling
打开 D:\项目 这个文件夹 # 直接传路径
用记事本打开 C:\Users\me\1.txt # 传路径 + 参数
AI 会自动调用 launch_app 完成启动。
四、添加新软件
编辑 apps.json,追加一项:
"photoshop": {
"name": "Photoshop",
"path": "C:\\Program Files\\Adobe\\Adobe Photoshop 2024\\Photoshop.exe",
"aliases": ["ps", "修图"]
}
path:可执行文件绝对路径、Windows 自带命令(如notepad)、或 .bat/.lnkaliases:可选,方便按中文/缩写调用type:可选,folder表示用文件资源管理器打开目录;缺省按程序处理
五、特殊应用:conda 环境软件(如 X-AnyLabeling)
conda 环境里安装的 GUI 软件(如 xanylabeling)直接启动会因缺少环境变量失败。解决方式:
写一个启动 bat(如 start-xanylabeling.bat),激活环境后启动:
@echo off
call C:\Users\12579\miniconda3\Scripts\activate.bat kkk
start "" "C:\Users\12579\miniconda3\envs\kkk\Scripts\xanylabeling.exe"
然后在 apps.json 里把 path 指向该 bat。
⚠️ 注意:conda GUI 应用(Python + PyQt)启动很慢,可能需要 30–90 秒才弹出窗口,属正常现象。
六、技术原理(重要)
Windows 下 Node.js 启动的子进程默认位于 Job Object 中,父进程(MCP server)退出时,直接 spawn 的 GUI 软件会被连带终止(软件一闪就没)。
本项目采用 schtasks(任务计划程序) 方案解决:
launch_app → 创建一次性计划任务 → /run 立即执行 → 删除任务定义
由 Task Scheduler 服务派生的进程完全脱离 Node 进程树,即使 Reasonix / MCP server 退出,软件依然独立运行。
七、开发与测试
npm test # 冒烟测试:连接 server,验证 list_apps 与启动 notepad
项目结构
src/index.js # MCP server:launch_app / list_apps
apps.json # 软件注册表(名称/别名/路径/类型)
start-xanylabeling.bat # conda 环境应用启动器示例
.mcp.json # MCP 注册描述
test/smoke.mjs # 冒烟测试
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。