English | 中文
基于.NET的Windows桌面自动化MCP(Model Context Protocol)服务器提供了与Windows桌面环境交互的能力。
重要通知此项目需要.NET 1.0才能运行,请确保本地已安装.NET 1.0。如果尚未安装,请访问 .NET 1.0下载页面 下载并安装。
在您的MCP客户端配置中添加以下配置:
{
"mcpServers": {
"WindowsMCP.Net": {
"type": "stdio",
"command": "dnx",
"args": ["WindowsMCP.Net@", "--yes"],
"env": {}
}
}
}
方法1:工作区配置
在项目的根目录下创建.vscode/mcp.json文件:
{
"mcpServers": {
"Windows-MCP.Net-Dev": {
"type": "stdio",
"command": "dotnet",
"args": ["run", "--project", "src/Windows-MCP.Net.csproj"],
"cwd": "${workspaceFolder}",
"env": {}
}
}
}
方法2:用户配置
通过VS Code命令面板运行MCP: 打开用户配置添加:
{
"mcpServers": {
"Windows-MCP.Net-Local": {
"type": "stdio",
"command": "dotnet",
"args": ["run", "--project", "src/Windows-MCP.Net.csproj"],
"env": {}
}
}
}
注意使用项目源码便于开发和调试,修改代码无需重新安装即可生效。VS Code 1.102+版本支持自动发现和管理MCP服务器。
dotnet tool install --global WindowsMCP.Net
# 克隆仓库
git clone https://github.com/AIDotNet/Windows-MCP.Net.git
cd Windows-MCP.Net
# 构建项目
dotnet build
# 运行项目
dotnet run --project src/Windows-MCP.Net.csproj
配置完成后,重启您的MCP客户端以开始使用Windows桌面自动化功能!
| 工具名称 | 功能描述 |
|---|---|
| LaunchTool | 从开始菜单启动应用程序 |
| PowershellTool | 执行PowerShell命令并返回状态码 |
| StateTool | 捕获桌面状态信息,包括应用程序和UI元素 |
| ClipboardTool | 剪贴板上的复制和粘贴操作 |
| ClickTool | 鼠标点击操作(支持左击、右击、中击、单击、双击、三击) |
| TypeTool | 在指定坐标处输入文本,支持清除和输入 |
| ResizeTool | 调整窗口大小和位置 |
| SwitchTool | 切换到指定的应用程序窗口 |
| ScrollTool | 在指定坐标或当前位置处滚动 |
| DragTool | 从源坐标拖动到目标坐标 |
| MoveTool | 将鼠标光标移动到指定坐标 |
| ShortcutTool | 执行键盘快捷键组合 |
| KeyTool | 按下单一键盘键 |
| WaitTool | 暂停执行指定秒数 |
| ScrapeTool | 捕获网页内容并转换为Markdown格式 |
| ScreenshotTool | 捕获屏幕并保存到临时目录,返回图像路径 |
| OpenBrowserTool | 在默认浏览器中打开指定的URL |
| 工具名称 | 功能描述 |
|---|---|
| ReadFileTool | 读取指定文件的内容 |
| WriteFileTool | 向文件写入内容 |
| CreateFileTool | 创建新文件并写入指定内容 |
| CopyFileTool | 将文件复制到指定位置 |
| MoveFileTool | 移动或重命名文件 |
| DeleteFileTool | 删除指定文件 |
| GetFileInfoTool | 检索文件信息(大小、创建时间等) |
| ListDirectoryTool | 列出目录中的文件和子目录 |
| CreateDirectoryTool | 创建新目录 |
| DeleteDirectoryTool | 删除目录及其内容 |
| SearchFilesTool | 在指定目录中搜索文件 |
| 工具名称 | 功能描述 |
|---|---|
| ExtractTextFromScreenTool | 使用OCR从整个屏幕提取文本 |
| ExtractTextFromRegionTool | 使用OCR从屏幕指定区域提取文本 |
| FindTextOnScreenTool | 使用OCR在屏幕上搜索指定文本 |
| GetTextCoordinatesTool | 获取屏幕上文本的位置坐标 |
| ExtractTextFromFileTool | 使用OCR从图像文件中提取文本 |
| 工具名称 | 功能描述 |
|---|---|
| FindElementByTextTool | 通过文本内容搜索UI元素 |
| FindElementByClassNameTool | 通过类名搜索UI元素 |
| FindElementByAutomationIdTool | 通过自动化ID搜索UI元素 |
| GetElementPropertiesTool | 检索指定坐标元素的属性信息 |
| WaitForElementTool | 等待指定元素出现在界面上 |
| 工具名称 | 功能描述 |
|---|---|
| BrightnessTool | 调整屏幕亮度,支持增减和设置特定百分比 |
| VolumeTool | 调整系统音量,支持增减和设置特定百分比 |
| ResolutionTool | 设置屏幕分辨率(高、中、低) |
使用TypeTool自动在记事本中输入文本:

使用ScrapeTool打开并搜索网页内容:

完整的桌面自动化操作演示:
src/
├── Windows-MCP.Net/ # 主项目
│ ├── .mcp/ # MCP服务器配置
│ │ └── server.json # 服务器配置文件
│ ├── Exceptions/ # 自定义异常类(待扩展)
│ ├── Interface/ # 服务接口定义
│ │ ├── IDesktopService.cs # 桌面服务接口
│ │ ├── IFileSystemService.cs # 文件系统服务接口
│ │ └── IOcrService.cs # OCR服务接口
│ ├── Models/ # 数据模型(待扩展)
│ ├── Prompts/ # 提示模板(待扩展)
│ ├── Services/ # 核心服务实现
│ │ ├── DesktopService.cs # 桌面操作服务
│ │ ├── FileSystemService.cs # 文件系统服务
│ │ └── OcrService.cs # OCR服务
│ ├── Tools/ # MCP工具实现
│ │ ├── Desktop/ # 桌面操作工具
│ │ │ ├── ClickTool.cs # 点击工具
│ │ │ ├── ClipboardTool.cs # 剪贴板工具
│ │ │ ├── DragTool.cs # 拖拽工具
│ │ │ ├── GetWindowInfoTool.cs # 窗口信息工具
│ │ │ ├── KeyTool.cs # 按键工具
│ │ │ ├── LaunchTool.cs # 启动应用工具
│ │ │ ├── MoveTool.cs # 鼠标移动工具
│ │ │ ├── OpenBrowserTool.cs # 浏览器打开工具
│ │ │ ├── PowershellTool.cs # PowerShell执行工具
│ │ │ ├── ResizeTool.cs # 窗口调整工具
│ │ │ ├── ScrapeTool.cs # 网页抓取工具
│ │ │ ├── ScreenshotTool.cs # 截图工具
│ │ │ ├── ScrollTool.cs # 滚动工具
│ │ │ ├── ShortcutTool.cs # 快捷键工具
│ │ │ ├── StateTool.cs # 桌面状态工具
│ │ │ ├── SwitchTool.cs # 应用切换工具
│ │ │ ├── TypeTool.cs # 文本输入工具
│ │ │ ├── UIElementTool.cs # UI元素操作工具
│ │ │ └── WaitTool.cs # 等待工具
│ │ ├── FileSystem/ # 文件系统工具
│ │ │ ├── CopyFileTool.cs # 文件复制工具
│ │ │ ├── CreateDirectoryTool.cs # 目录创建工具
│ │ │ ├── CreateFileTool.cs # 文件创建工具
│ │ │ ├── DeleteDirectoryTool.cs # 目录删除工具
│ │ │ ├── DeleteFileTool.cs # 文件删除工具
│ │ │ ├── GetFileInfoTool.cs # 文件信息工具
│ │ │ ├── ListDirectoryTool.cs # 目录列表工具
│ │ │ ├── MoveFileTool.cs # 文件移动工具
│ │ │ ├── ReadFileTool.cs # 文件读取工具
│ │ │ ├── SearchFilesTool.cs # 文件搜索工具
│ │ │ └── WriteFileTool.cs # 文件写入工具
│ │ └── OCR/ # OCR识别工具
│ │ ├── ExtractTextFromRegionTool.cs # 区域文本提取工具
│ │ ├── ExtractTextFromScreenTool.cs # 屏幕文本提取工具
│ │ ├── FindTextOnScreenTool.cs # 屏幕文本查找工具
│ │ └── GetTextCoordinatesTool.cs # 文本坐标获取工具
│ ├── Program.cs # 程序入口点
│ └── Windows-MCP.Net.csproj # 项目文件
└── Windows-MCP.Net.Test/ # 测试项目
├── DesktopToolsExtendedTest.cs # 桌面工具扩展测试
├── FileSystemToolsExtendedTest.cs # 文件系统工具扩展测试
├── OCRToolsExtendedTest.cs # OCR工具扩展测试
├── ToolTest.cs # 工具基础测试
├── UIElementToolTest.cs # UI元素工具测试
└── Windows-MCP.Net.Test.csproj # 测试项目文件