windows-power
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@windows-powerShut down Windows in two hours."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Windows Power MCP
Windows Power lets an MCP-compatible coding agent schedule and manage shutdowns of the Windows host while the agent runs inside WSL.
The MCP server creates one named Windows Task Scheduler task. Windows owns the schedule after it is created, so the shutdown does not depend on the MCP server, Codex, or WSL staying open.
The task runs in the current Windows user's interactive session. Locking the computer is fine; signing out before the scheduled time is not supported.
Tools
Tool | Purpose |
| Schedule by relative minutes or an RFC 3339 timestamp; replace the existing managed schedule |
| Return the exact local/UTC shutdown time and remaining seconds |
| Move the active shutdown by a signed number of minutes |
| Remove the managed shutdown task |
| Force shutdown after five seconds; requires |
Scheduled and immediate forced shutdowns can close applications without saving their work.
Example requests in Codex:
“Shut down Windows in two hours.”
“How long is left before shutdown?”
“Postpone shutdown by 30 minutes.”
“Cancel the shutdown.”
Related MCP server: Agent Gateway MCP
Requirements
Windows 10 or 11
WSL with Windows interoperability enabled
Windows PowerShell 5.1 and the ScheduledTasks module
Node.js 20 or newer in WSL
The server uses /mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe by default. Set WINDOWS_POWER_POWERSHELL when Windows is mounted somewhere else.
Install
git clone https://github.com/WarLikeLaux/windows-power.git
cd windows-power
./scripts/install-local.shThe included Codex plugin manifest starts the globally linked windows-power-mcp command. Add the plugin from your marketplace, then start a new Codex thread so its MCP tools and skill are discovered.
For another MCP client, configure the same stdio command:
{
"mcpServers": {
"windows-power": {
"command": "windows-power-mcp"
}
}
}Development
npm ci
npm test
npm run check
npm run buildTests mock PowerShell and never schedule or trigger a real shutdown.
Available Tools
5 toolscancel_shutdownA
Cancel the shutdown managed by Windows Power MCP.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It states the core action ('Cancel the shutdown') but does not disclose consequences, such as whether it cancels only a pending scheduled shutdown, whether it is idempotent, whether it fails if no shutdown is scheduled, or whether administrative privileges are required. This is a state-changing operation with no side-effect transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence with no filler. It states the action and the target resource immediately, making it appropriately concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool, the description is minimally adequate, but it lacks behavioral context and fails to contrast with postpone_shutdown. There are no annotations or output schema to fill those gaps, so an agent has limited information beyond the bare action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and an empty input schema, so there are no parameters to document. The baseline of 4 applies because the description cannot reasonably add parameter-level detail where none exists.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Cancel') applied to a clear resource ('the shutdown managed by Windows Power MCP'), which distinguishes it from sibling tools like schedule_shutdown, postpone_shutdown, and shutdown_now. An agent can tell exactly what this tool does without opening schemas or inspecting other tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance about when to use cancel_shutdown versus its siblings. It does not mention that cancel_shutdown is appropriate for removing a scheduled shutdown entirely, while postpone_shutdown should be used to delay it. The usage context is only implied by the name, not explained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shutdown_statusA
Read the active Windows shutdown schedule and exact remaining time.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description must carry the behavioral disclosure burden. It indicates a read-only action via 'Read', which signals no side effects, but it does not describe what happens when no shutdown is scheduled, whether it can return an error, or any other behavioral edge cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that directly states the tool's function and the key output ('exact remaining time') with no filler. It is compact, front-loaded, and every word contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters)Skip this dimension? No, need provide. Need score and justification. Let's finish:
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and 100% schema description coverage, so no parameter explanation is needed. The description adds no parameter-specific meaning, but with no parameters, this is not a gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Read') with a clear resource ('the active Windows shutdown schedule') and the exact information returned ('exact remaining time'). It distinguishes itself from siblings like schedule_shutdown, postpone_shutdown, cancel_shutdown, and shutdown_now by clearly being the read-only inspection tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for checking the current shutdown state rather than modifying it, but it does not explicitly say when to choose this over the sibling tools. It gives no direct guidance on scenarios such as 'use this before scheduling' or 'do not use this to change the schedule.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
postpone_shutdownB
Move the active Windows shutdown later or earlier by a signed number of minutes.
| Name | Required | Description | Default |
|---|---|---|---|
| minutes | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It explains the sign semantics of the minutes parameter, but it does not disclose what happens when no shutdown is active, whether the previous schedule is replaced, whether the operation requires elevated privileges, or any error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that is front-loaded with the action and resource, then clarifies the parameter semantics. Every word earns its place and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool, the description covers the main action and parameter meaning. However, with no annotations and no output schema, it leaves gaps around prerequisites (an active shutdown), failure behavior, and how this relates to the sibling scheduling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only describes 'minutes' as an integer with bounds, providing 0% semantic coverage. The description adds the key meaning that a positive value moves the shutdown later and a negative value moves it earlier, which is essential for correctly interpreting the sign of the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Move') and a specific resource ('active Windows shutdown'), and explains the core behavior of shifting by a signed number of minutes. It does not explicitly name a sibling, but the phrase 'active Windows shutdown' distinguishes this from schedule_shutdown, cancel_shutdown, and shutdown_now.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for adjusting an already-scheduled shutdown, as opposed to creating or canceling one, but it never states when to choose this tool over schedule_shutdown or shutdown_now. No exclusions or prerequisites are mentioned, leaving the agent to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
schedule_shutdownB
Schedule a one-time Windows shutdown. Replaces an existing Windows Power MCP shutdown. Forced app closing can lose unsaved work.
| Name | Required | Description | Default |
|---|---|---|---|
| at | No | RFC 3339 timestamp with timezone offset. | |
| afterMinutes | No | Minutes from now. | |
| wakeComputer | No | Ask Task Scheduler to wake the computer for this task. | |
| forceCloseApps | No | Force applications to close at shutdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does warn that 'Forced app closing can lose unsaved work,' which is a helpful side-effect disclosure tied to the forceCloseApps parameter. However, it omits other important behaviors such as parameter precedence (what happens if both 'at' and 'afterMinutes' are provided), whether scheduling overwrites an existing scheduled shutdown, or if administrator privileges are required. These gaps leave the agent uncertain about edge cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, consisting of two sentences. The first sentence states the primary purpose, and the second provides a critical warning. The 'Replaces an existing Windows Power MCP shutdown' clause is slightly confusing and may not add value for the agent, but it does not significantly bloat the text. Overall, it is well-structured and front-loaded with the core function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description should clarify what the tool returns upon success or failure, but it does not. It also fails to specify how the parameters relate—particularly whether 'at' and 'afterMinutes' are mutually exclusive or if both can be used simultaneously. Without this information, an agent may make incorrect assumptions about scheduling behavior. The warning about forced closing is useful, but the lack of parameter interplay details and return value expectations makes the description incomplete for reliable usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes all four parameters with 100% coverage, so the baseline is 3. The description adds minimal parameter-related meaning—only the warning about forced closing relates to forceCloseApps but does not enrich the schema's own description. Since the schema handles parameter definitions adequately, the description does not need to compensate significantly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Schedule a one-time Windows shutdown.' It uses a specific verb (schedule) and resource (shutdown), and 'one-time' helps differentiate from recurring tasks. However, it does not explicitly distinguish this from sibling tools like shutdown_now or postpone_shutdown, which could confuse an agent about which to choose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives. It mentions 'Replaces an existing Windows Power MCP shutdown,' which appears to be a legacy note rather than a usage condition. There is no mention of using this for delayed shutdowns versus immediate ones, or how it interacts with postpone_shutdown or cancel_shutdown. The agent must infer the usage context from the name and schema alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shutdown_nowA
Force Windows to shut down after five seconds. This can lose unsaved work and requires an exact confirmation string.
| Name | Required | Description | Default |
|---|---|---|---|
| confirmation | Yes | Must be exactly SHUTDOWN NOW, after explicit user confirmation. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and discloses key behavioral traits: it forces shutdown, loses unsaved work, and requires an exact confirmation string. It does not mention response behavior or permissions, but for a simple destructive action the essential risks and precondition are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action and consequence, with no filler. Every sentence earns its place by conveying action, risk, and a precondition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter destructive tool without an output schema, the description covers what the tool does, the danger, and the required confirmation. It could more explicitly distinguish the immediate forced action from schedule_shutdown, but the core information needed to invoke it correctly is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema fully documents the confirmation parameter. The description adds context that the string must be exact and that the action is destructive, but it does not add significant new parameter-level meaning beyond the schema's const and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific verb, resource, and timeframe: 'Force Windows to shut down after five seconds.' This clearly distinguishes it from schedule_shutdown, which implies planned rather than immediate forced shutdown.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage—force an immediate shutdown when needed—and highlights the requirement for confirmation, but it does not explicitly state when to prefer this over schedule_shutdown or when not to use it. Usage context is present but not fully articulated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v0.1.0- First observed
cancel_shutdown - First observed
get_shutdown_status - First observed
postpone_shutdown - First observed
schedule_shutdown - First observed
shutdown_now
TDQS
Scored across 5 tools
Each tool covers a distinct aspect of shutdown management: status, scheduling, postponing, canceling, and immediate shutdown. There is no overlap or ambiguity between tool purposes.
Most tools follow a clear verb_noun pattern: get_shutdown_status, schedule_shutdown, postpone_shutdown, cancel_shutdown. shutdown_now is the only slight deviation, but it remains immediately understandable and consistent in style.
Five tools is well-scoped for a shutdown management server. Each tool fulfills a necessary role without redundancy or bloat.
The tool set covers the full shutdown lifecycle: read status, schedule, modify, cancel, and execute immediately. There are no obvious missing operations for the stated domain.
Maintenance
Related MCP Connectors
Remote MCP server for supportsheep: run AI interviews and manage support content for your blog.
Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.
Provides capabilities that let LLM agents perform a range of infrastructure management tasks.
Run and manage H Company's Computer-Use Agents from any MCP client.
Related MCP Servers
- FlicenseNot gradedqualityAmaintenanceEnables AI assistants to execute PowerShell commands, manage files, inspect projects, run Git operations, and monitor system information on Windows through a local MCP server.-
- AlicenseAqualityAmaintenanceA Windows-native MCP gateway that lets any MCP-capable host orchestrate local coding-agent CLIs as external workers.11Apache 2.0
- AlicenseAqualityBmaintenanceEnables AI assistants to control Windows PCs by executing shell commands, managing files, capturing screenshots, and monitoring system information through a comprehensive set of MCP tools.18MIT
- AlicenseNot gradedqualityBmaintenanceRemote-first, model-independent Windows execution MCP for ChatGPT, Claude, Gemini, and other MCP-compatible AI clients.MIT