返回市场
Windows-MCP.NET

Windows-MCP.NET

作者:AIDotNet216 星标更新:2025-08-16

项目介绍

Windows MCP. Net

English | 中文

基于.NET的Windows桌面自动化MCP(Model Context Protocol)服务器提供了与Windows桌面环境交互的能力。

📋 目录

🚀 快速开始

预备条件

  • Windows操作系统
  • .NET 10.0运行时或更高版本

重要通知此项目需要.NET 1.0才能运行,请确保本地已安装.NET 1.0。如果尚未安装,请访问 .NET 1.0下载页面 下载并安装。

1. MCP客户端配置

在您的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服务器。

2. 安装和运行

方法1:全局安装(推荐)

dotnet tool install --global WindowsMCP.Net

方法2:从源码运行

# 克隆仓库
git clone https://github.com/AIDotNet/Windows-MCP.Net.git
cd Windows-MCP.Net

# 构建项目
dotnet build

# 运行项目
dotnet run --project src/Windows-MCP.Net.csproj

3. 开始使用

配置完成后,重启您的MCP客户端以开始使用Windows桌面自动化功能!

🚀 功能特性

核心功能

  • 应用程序启动通过名称从开始菜单启动应用程序
  • PowerShell集成执行PowerShell命令并返回结果
  • 桌面状态捕获获取当前桌面状态,包括活跃的应用程序、UI元素等
  • 剪贴板操作复制和粘贴文本内容
  • 鼠标操作点击、拖动和移动鼠标光标
  • 键盘操作文本输入、按键操作、快捷键组合
  • 窗口管理调整窗口大小和位置,切换应用程序
  • 滚动操作在指定坐标处执行滚动操作
  • 网页捕获检索网页内容并转换为Markdown格式
  • 浏览器操作在默认浏览器中打开指定的URL
  • 截图功能捕获屏幕并保存到临时目录
  • 文件系统操作创建、读取、写入、复制、移动和删除文件及目录的操作
  • OCR文本识别从屏幕或指定区域提取文本并定位文本位置
  • 系统控制调整屏幕亮度、系统音量、屏幕分辨率等系统设置
  • 等待控制在操作之间添加延迟

支持的工具

桌面操作工具

工具名称功能描述
LaunchTool从开始菜单启动应用程序
PowershellTool执行PowerShell命令并返回状态码
StateTool捕获桌面状态信息,包括应用程序和UI元素
ClipboardTool剪贴板上的复制和粘贴操作
ClickTool鼠标点击操作(支持左击、右击、中击、单击、双击、三击)
TypeTool在指定坐标处输入文本,支持清除和输入
ResizeTool调整窗口大小和位置
SwitchTool切换到指定的应用程序窗口
ScrollTool在指定坐标或当前位置处滚动
DragTool从源坐标拖动到目标坐标
MoveTool将鼠标光标移动到指定坐标
ShortcutTool执行键盘快捷键组合
KeyTool按下单一键盘键
WaitTool暂停执行指定秒数
ScrapeTool捕获网页内容并转换为Markdown格式
ScreenshotTool捕获屏幕并保存到临时目录,返回图像路径
OpenBrowserTool在默认浏览器中打开指定的URL

FileSystem文件系统工具

工具名称功能描述
ReadFileTool读取指定文件的内容
WriteFileTool向文件写入内容
CreateFileTool创建新文件并写入指定内容
CopyFileTool将文件复制到指定位置
MoveFileTool移动或重命名文件
DeleteFileTool删除指定文件
GetFileInfoTool检索文件信息(大小、创建时间等)
ListDirectoryTool列出目录中的文件和子目录
CreateDirectoryTool创建新目录
DeleteDirectoryTool删除目录及其内容
SearchFilesTool在指定目录中搜索文件

OCR图像识别工具

工具名称功能描述
ExtractTextFromScreenTool使用OCR从整个屏幕提取文本
ExtractTextFromRegionTool使用OCR从屏幕指定区域提取文本
FindTextOnScreenTool使用OCR在屏幕上搜索指定文本
GetTextCoordinatesTool获取屏幕上文本的位置坐标
ExtractTextFromFileTool使用OCR从图像文件中提取文本

UI元素识别工具

工具名称功能描述
FindElementByTextTool通过文本内容搜索UI元素
FindElementByClassNameTool通过类名搜索UI元素
FindElementByAutomationIdTool通过自动化ID搜索UI元素
GetElementPropertiesTool检索指定坐标元素的属性信息
WaitForElementTool等待指定元素出现在界面上

SystemControl系统控制工具

工具名称功能描述
BrightnessTool调整屏幕亮度,支持增减和设置特定百分比
VolumeTool调整系统音量,支持增减和设置特定百分比
ResolutionTool设置屏幕分辨率(高、中、低)

💡 使用场景

🤖 AI助手桌面自动化

  • 智能客服机器人AI助手可以自动操作Windows应用程序,帮助用户完成复杂的桌面任务
  • 语音助手集成结合语音识别,通过语音命令控制桌面应用程序
  • 智能办公助手AI助手自动处理日常办公任务,如文档整理、邮件发送等

📊 办公自动化

  • 数据录入自动化自动从网页或文档中提取数据,并输入到Excel或其他应用程序中
  • 报告生成自动收集系统信息、截图,并生成格式化的报告文档
  • 批量文件处理自动组织、重命名和分类大量文件和文档
  • 邮件自动化自动发送定期报告和通知邮件

🧪 软件测试和质量保证

  • UI自动化测试模拟用户操作,自动测试桌面应用程序的功能
  • 回归测试自动执行重复的测试用例,确保软件质量
  • 性能监控自动收集应用程序性能数据并生成监控报告
  • Bug复现自动复现用户报告的问题,协助开发者调试

🎯 业务流程自动化

  • 客户服务自动处理客户请求并更新CRM系统
  • 订单处理自动从多个渠道收集订单信息并输入系统
  • 库存管理自动更新库存数据并生成补货提醒
  • 财务对账自动比较不同系统中的财务数据并标记差异

🔍 数据收集和分析

  • 网络数据爬取自动从多个网站收集产品价格、新闻等信息
  • 竞争分析定期从竞争对手收集产品信息和价格数据
  • 市场调研自动收集和整理市场数据,生成分析报告
  • 社交媒体监控监控品牌提及并自动收集用户反馈

🎮 游戏和娱乐

  • 游戏辅助自动执行重复的游戏任务(请遵守游戏规则)
  • 直播助手自动管理直播软件,切换场景并发送消息
  • 媒体管理自动整理音乐和视频文件,更新媒体库

🏥 医疗和健康

  • 医疗记录录入自动将纸质医疗记录转换为电子格式
  • 医学影像分析结合OCR技术自动从医学报告中提取关键信息
  • 预约管理自动处理患者预约请求并更新医院管理系统

🏫 教育和培训

  • 在线考试自动批改多项选择题并生成成绩报告
  • 课程管理自动更新课程信息并向学生发送通知
  • 学习进度跟踪自动记录学生的活动并生成进度报告

🏭 制造和物流

  • 生产数据采集自动从生产设备收集数据并更新ERP系统
  • 质量检验结合图像识别自动检测产品质量
  • 物流追踪自动更新货物状态并向客户发送追踪信息

🔧 系统运维

  • 服务器监控自动检查服务器状态并生成监控报告
  • 日志分析自动分析系统日志并识别异常模式
  • 备份管理自动执行数据备份并验证备份完整性
  • 部署自动化的软件安装和配置过程

📸 演示截图

文本输入演示

使用TypeTool自动在记事本中输入文本:

文本输入演示

网页搜索演示

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

网页搜索演示

📹 演示视频

完整的桌面自动化操作演示:

网页搜索演示

🛠️ 技术栈

  • .NET 10.0基于最新的.NET框架
  • Model Context Protocol使用MCP协议进行通信
  • Microsoft.Extensions.Hosting应用托管框架
  • Serilog结构化日志
  • HtmlAgilityPackHTML解析和网络爬虫
  • ReverseMarkdownHTML转Markdown转换

🏗️ 项目结构

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  # 测试项目文件

🚧 功能扩展建议

计划功能

高级UI识别和交互

  • UI元素识别增强支持更多UI框架(WPF、WinForms、UWP)
  • OCR文本识别优化多语言支持以提高识别准确性
  • 智能等待机制动态等待元素加载完成

文件系统操作增强

  • 高级文件搜索支持内容搜索和正则表达式匹配
  • 批量文件操作支持批量复制、移动和重命名
  • 文件监控实时监控文件系统变化

系统监控和性能分析

  • 系统资源监控CPU、内存、磁盘和网络使用情况
  • 进程管理进程列表检索、性能监控、进程控制
  • 性能分析报告生成详细的系统性能报告

多媒体处理能力

  • 音频控制系统音量控制、音频设备管理
  • 图像处理图像缩放、裁剪、格式转换
  • 屏幕录制支持屏幕录制和播放

网络和通信功能

  • 网络诊断Ping、端口扫描和连通性测试