Skip to main content
Glama
TechGOELogy

Windows Server MCP

by TechGOELogy
README.md
# Windows Server MCP

Windows Server MCP is a local Model Context Protocol server for read-only Windows observability. It exposes CPU, memory, storage, service, and health tools through FastMCP.

Current version: `1.0.0`.

## Tools

| Tool | Purpose |
| --- | --- |
| `health_check` | Server health, Python runtime, and platform details. |
| `hello_world` | Normalized compatibility connectivity check. |
| `cpu_info` | CPU counts, utilization, frequency, load, stats, and times. |
| `memory_info` | Virtual memory and swap details with byte-based values. |
| `storage_info` | Disk partitions, byte usage totals, and disk I/O counters. |
| `services` | Windows services with optional filters and compact defaults. |
| `service` | Detailed information for one Windows service. |

All tools return a consistent shape:

```json
{
  "data": {},
  "errors": [],
  "meta": {
    "timestamp": "2026-08-17T00:00:00+00:00",
    "source": "psutil",
    "tool": "tool_name"
  }
}
```

## Requirements

- Windows
- Python 3.10+

## Install

```powershell
python -m venv .venv
.\.venv\Scripts\activate
pip install -r requirements.txt
```

## Run

```powershell
.\.venv\Scripts\activate
python main.py
```

The server runs at:

```text
http://127.0.0.1:8080/mcp
```

## Test With MCP Inspector

Start the server, then run:

```powershell
npx @modelcontextprotocol/inspector --server-url http://127.0.0.1:8080/mcp --transport http
```

You can also use CLI mode:

```powershell
npx @modelcontextprotocol/inspector --cli http://127.0.0.1:8080/mcp --transport http --method tools/list
```

## Run Tests

```powershell
.\.venv\Scripts\python.exe -m unittest discover -s tests -v
```

## Example Tool Arguments

Call `cpu_info` with a shorter sample interval:

```json
{
  "interval_seconds": 0.5
}
```

List only running services:

```json
{
  "status": "running"
}
```

List services with detailed fields:

```json
{
  "include_details": true,
  "limit": 25
}
```

Include all disk partitions:

```json
{
  "all_partitions": true
}
```

## License

MIT