-
Notifications
You must be signed in to change notification settings - Fork 7.5k
Initial implementation of MCP Server and Awake tools #42762
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR introduces a new Model Context Protocol (MCP) server component to PowerToys, enabling AI agents to control PowerToys modules through the MCP specification. The implementation focuses on exposing Awake module functionality via MCP tools.
Key changes:
- Adds a new
PowerToys.McpServerconsole application using .NET 9 and the official ModelContextProtocol SDK - Implements MCP tools for the Awake module (status retrieval, passive/indefinite/timed modes)
- Integrates the MCP server into the build system, installer, and packaging infrastructure
- Adds supporting files for sparse MSIX package registration
Reviewed Changes
Copilot reviewed 20 out of 20 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| src/McpServer/PowerToys.McpServer.csproj | New .NET 9 console project with MCP SDK dependencies |
| src/McpServer/Program.cs | MCP server entry point with stdio transport configuration |
| src/McpServer/Tools/AwakeTools.cs | MCP tool implementations for Awake module operations |
| src/McpServer/README.md | Documentation for the MCP server architecture and usage |
| src/modules/mcp/McpServer/Tools/AwakeTools.cs | Duplicate AwakeTools implementation in different location |
| src/PackageIdentity/AppxManifest.xml | Registers MCP server as Windows app extension |
| src/PackageIdentity/Assets/mcpServerConfig.json | MCP server configuration for discovery |
| src/PackageIdentity/BuildSparsePackage.ps1 | Updated packaging script to include Assets folder |
| src/PackageIdentity/PackageIdentity.vcxproj | Build configuration changes for sparse package |
| src/common/GPOWrapperProjection/GPOWrapper.cs | Stub GPO method for MCP (returns NotConfigured) |
| PowerToys.sln | Adds McpServer project to solution |
| Directory.Packages.props | Adds ModelContextProtocol package reference |
| tools/Verification scripts/verify-installation-script.ps1 | Adds MCP server to core files verification |
| tools/BugReportTool/BugReportTool/ProcessesList.cpp | Adds MCP server to bug report process list |
| installer/PowerToysSetupCustomActionsVNext/CustomAction.cpp | Adds MCP server to installer termination list |
Summary of the Pull Request
This PR adds a Model Context Protocol (MCP) server to PowerToys, enabling AI agents to control PowerToys functionality. The initial implementation exposes Awake module controls through MCP tools.
Awake Tools
PR Checklist
Detailed Description of the Pull Request / Additional comments
Validation Steps Performed