1.8 KiB
PowerToys Model Context Protocol Server
This module hosts a standalone Model Context Protocol (MCP) server that exposes PowerToys functionality to MCP-compliant AI agents. The first release focuses on Awake, enabling agents to query status and toggle keep-awake modes without going through the PowerToys Runner process. The server is designed to grow over time with additional modules.
Capabilities
| Tool name | Description | Module |
|---|---|---|
awake_status |
Returns the current Awake configuration (mode, timers, display policy). | Awake |
awake_set_mode |
Switches Awake between passive, indefinite, timed, or expirable modes using the PowerToys settings pipeline. | Awake |
Running the server
The executable lives next to other module binaries (for example, PowerToys.McpServer.exe under the architecture-specific output folder). The server communicates over standard input/output using MCP framing (Content-Length header followed by JSON). A minimal session looks like:
- Client sends
initializerequest. - Client calls
tools/listto discover available tools. - Client invokes
tools/callwith the desired tool name and arguments.
The server will remain active until the process is terminated or a shutdown request is received.
Adding new module tools
- Implement an
IMcpModulethat exposes one or moreIMcpToolinstances. - Register the module in
Program.csviaModuleCatalog.RegisterModule. - Use
Awakeimplementations as reference for schema design, telemetry, and settings integration. - Update documentation and packaging (signing lists, installer termination lists, verification scripts) if new executables are introduced.
Refer to the PowerToys developer documentation for build and packaging instructions.