Skip to main content
Glama
Windows MCP Server

Windows MCP Server

by carlosedp

Windows MCP Server

This project provides a Windows MCP (Model Context Protocol) server exposing useful system information and control tools for Windows environments on your AI applications.

What’s new

  • More robust drive and uptime implementations (no brittle PowerShell parsing).

  • Structured results for top processes (list of objects with pid, name, cpu_percent, memoryMB).

  • Structured results for memory and network information.

  • Safer PowerShell usage with JSON parsing for GPU info.

Related MCP server: System Info MCP Server

Features

  • System info (OS, release, version, architecture, hostname)

  • Uptime and last boot time

  • Drives listing and per-drive space usage

  • Memory, CPU, GPU, and Network information

  • Top processes by memory and CPU (accurate sampling)

Available Tools

Tool Name

Description

Parameters

Returns

Windows-system-info

Get OS, release, version, architecture, and hostname

None

object: name, system, release, version, architecture, hostname

Windows-last-boot-time

Get the last boot time of the system

None

string (timestamp)

Windows-uptime

Get system uptime since last boot

None

string: "Uptime: seconds"

Windows-drives

Get list of all available drives

None

string[] (e.g., ["C", "D"])

Windows-drive-status

Get used and free space for a specific drive

drive: string

DriveInfo { name, used_spaceGB: number, free_spaceGB: number }

Windows-drives-status-simple

Get status using comma-separated drive letters

drives_string: string

DriveInfo[]

Windows-memory-info

Get RAM usage information

None

object: total_memory, available_memory, used_memory (strings with GB)

Windows-network-info

Get network IPv4 addresses per interface

None

object: interface -> IPv4 (or { error })

Windows-cpu-info

Get CPU model, logical count and frequency

None

string

Windows-gpu-info

Get GPU name(s) and driver versions

None

string (one line per GPU)

Windows-top-processes-by-memory

Get the top X processes by memory usage

amount: int = 5

ProcessInfo[] { pid, name, memoryMB, cpu_percent? }

Windows-top-processes-by-cpu

Get the top X processes by CPU usage (sampled for accuracy)

amount: int = 5

ProcessInfo[] { pid, name, cpu_percent, memoryMB }

Note: Previously documented tools Windows-name-version, Windows-drives-status, and Windows-all-drives-status are not currently implemented to avoid duplication. If needed, they can be added easily.

Requirements

  • Python 3.13+

  • uv (for fast startup and dependency management)

# On Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

Installation

  1. Clone this repository:

git clone https://github.com/carlosedp/windows-mcp-server.git
cd windows-mcp-server

Running the development Server

uv run mcp dev main.py

uv handles the installation of dependencies and runs the server with the MCP protocol enabled.

Then in the MCP Inspector browser window:

  • Click "Connect" to connect the MCP client.

  • Go to the "Tools" tab to see available tools.

  • Click "List Tools" to see the available tools.

  • Select a tool and click "Run tool" to execute it.

Examples

Windows-system-info

{
  "name": "MY-PC",
  "system": "Windows",
  "release": "10",
  "version": "10.0.19045",
  "architecture": "64bit",
  "hostname": "MY-PC"
}

Windows-drive-status (input: "C")

{
  "name": "C",
  "used_spaceGB": 120.53,
  "free_spaceGB": 380.12
}

Windows-memory-info

{
  "total_memory": "32.00 GB",
  "available_memory": "18.25 GB",
  "used_memory": "13.75 GB"
}

Windows-network-info

{
  "Ethernet": "192.168.1.50",
  "Wi-Fi": "10.0.0.15"
}

Windows-top-processes-by-cpu (amount: 3)

[
  { "pid": 1234, "name": "chrome.exe", "cpu_percent": 24.7, "memoryMB": 512.3 },
  { "pid": 4321, "name": "code.exe",   "cpu_percent": 12.1, "memoryMB": 650.8 },
  { "pid": 9876, "name": "System",     "cpu_percent": 8.4,  "memoryMB": 45.0 }
]

MCP Client Configuration Example

LM Studio using Llama 3.2 3B getting system information using the MCP server:

alt text

Some more examples of tools you can run:

alt text

To connect your MCP client to this server (like Claude Desktop, VSCode, LM Studio, etc), add the following to your client configuration:

{
  "mcpServers": {
    "windows-mcp": {
      "command": "uv",
      "args": [
        "--directory",
        "C:\\Users\\Carlos Eduardo\\repos\\windows-mcp-server",
        "run",
        "mcp",
        "run",
        "main.py"
      ]
    }
  }
}

Adjust the paths above to where the project file is located.

Packaging and Distribution

To publish as a Python package:

  1. Edit pyproject.toml with your metadata.

  2. Build and upload to PyPI:

python -m build
python -m twine upload dist/*

License

MIT

Available Tools

12 tools
Windows-cpu-infoB

Get CPU information of the Windows system.

Inputs: no named parameters. Returns: result

Windows-drivesA

Get a list of all drives in the Windows system

Inputs: no named parameters. Returns: result

Windows-drives-status-simpleA

Get status for specific drives using a comma-separated drive letters as string (e.g., 'C,D,F')

Inputs: drives_string (required). Returns: result

Windows-drive-statusC

Get status information about the used and free space in a Windows drive

Inputs: drive (required). Returns: Model for drive information.

Windows-gpu-infoA

Get GPU information of the Windows system.

Inputs: no named parameters. Returns: result

Windows-last-boot-timeA

Get the last boot time of the Windows system

Inputs: no named parameters. Returns: result

Windows-memory-infoA

Get memory information of the Windows system.

Inputs: no named parameters. Returns: object

Windows-network-infoA

Get network information of the Windows system.

Inputs: no named parameters. Returns: object

Windows-system-infoA

Get Windows system information including OS version, release, architecture, and hostname

Inputs: no named parameters. Returns: object

Windows-top-processes-by-cpuC

Get the top X processes by CPU usage.

Inputs: amount. Returns: result

Windows-top-processes-by-memoryB

Get the top X processes by memory usage.

Inputs: amount. Returns: result

Windows-uptimeA

Get the uptime of the Windows system

Inputs: no named parameters. Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.5/5.0

    Scored across 12 tools

    Disambiguation4/5

    Most tools are clearly distinct, but 'Windows-drives-status-simple' and 'Windows-drive-status' could cause confusion as both relate to drive status; descriptions help differentiate.

    Naming Consistency4/5

    Consistent 'Windows-' prefix, but mix of 'info' and 'status' suffixes and singular vs plural ('drives' vs 'drive') creates minor inconsistency.

    Tool Count5/5

    12 tools for system information retrieval is well-scoped, covering key areas like CPU, memory, drives, and network without being excessive.

    Completeness4/5

    Covers major system info components, but lacks common queries like process listing, disk I/O, or services; overall good for basic monitoring.

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables comprehensive system monitoring and diagnostics through 18 tools that provide detailed information about CPU, memory, disk usage, network interfaces, running processes, battery status, hardware details, and temperature monitoring. Allows users to query system information and performance metrics through natural language interactions.
      10 npm
      ISC
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables AI assistants to retrieve structured information about the local Windows machine, including system specifications, resource health, developer tools, and AI environment, all through a secure, read-only interface.
      MIT