Skip to main content
Glama
rayss868

PC Controller MCP Server

by rayss868

PC Controller MCP Server

PC Controller Banner

Universal MCP Server for Windows PC Control

TypeScript Node.js MCP License Tests


πŸ“‹ Overview

PC Controller MCP Server is a powerful Model Context Protocol (MCP) server that enables AI assistants to control Windows PCs through a comprehensive set of tools. Built with TypeScript and Node.js, it provides seamless integration with AI clients like Claude Desktop, Cursor, Windsurf, and OpenClaude.

🎯 What It Does

This server bridges the gap between AI assistants and your Windows PC, allowing AI to:

  • Execute shell commands and scripts

  • Read, write, and search files

  • Capture screenshots and view them

  • Monitor system information and processes

  • Manage clipboard content

  • Open files, folders, and URLs

  • And much more...

πŸ”Œ Compatibility

Works with any MCP-compatible AI client:

  • βœ… Claude Desktop

  • βœ… Cursor IDE

  • βœ… Windsurf

  • βœ… OpenClaude CLI

  • βœ… ChatGPT (with appropriate configuration)

  • βœ… Any MCP-compliant client


Related MCP server: pov

✨ Features

πŸ› οΈ 18 Powerful Tools

Tool

Description

run_command

Execute shell commands (PowerShell default; also Git Bash & WSL via shell param)

run_command_long

Run long-running commands with extended timeout (2 minutes)

file_read

Read file contents with encoding support

file_write

Write files with automatic directory creation

dir_list

List directory contents with recursive option

file_search

Search files by glob pattern recursively

screen_capture

Capture screenshots as base64 images

sys_info

Get comprehensive system information

process_list

List running processes with filtering and sorting

process_kill

Force-terminate processes by name or PID

open_path

Open files, folders, or URLs with default applications

clipboard_get

Read the current text content of the system clipboard

clipboard_set

Copy text to the system clipboard

zip_create

Compress files/folders into a .zip archive

zip_extract

Extract a .zip archive to a folder

window_focus

Bring a window to the foreground (by title/process name)

key_type

Type text or send keystrokes to the focused window

notify

Show a Windows notification balloon with a title and message

🎨 Key Capabilities

  • Universal Compatibility: Works with any MCP-compatible AI client

  • Comprehensive Control: From file operations to process management

  • Visual Feedback: Screenshot capture with base64 encoding for AI viewing

  • Safe by Design: Detailed tool descriptions help AI make informed decisions

  • Production Ready: Fully tested (25/25 tests passing) and documented

  • Developer Friendly: TypeScript source code with full type safety


πŸš€ Quick Start

Prerequisites

  • Node.js 18+ (recommended: 20+)

  • Windows 10/11

  • PowerShell 5.1+

  • An MCP-compatible AI client (Claude Desktop, Cursor, etc.)

Installation

# Clone or download this repository
cd D:\All_project\own\AI_Coder\MCP_Tools\pc_controller

# Install dependencies
npm install

# Build the project
npm run build

Running the Server

# Production mode
npm start

# Development mode (with hot reload)
npm run dev

# Watch mode (auto-rebuild on changes)
npm run watch

βš™οΈ Configuration

Claude Desktop

Edit: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "pc-controller": {
      "command": "node",
      "args": ["D:\\All_project\\own\\AI_Coder\\MCP_Tools\\pc_controller\\dist\\index.js"]
    }
  }
}

Cursor IDE

Edit: ~/.cursor/mcp.json

{
  "mcpServers": {
    "pc-controller": {
      "command": "node",
      "args": ["D:\\All_project\\own\\AI_Coder\\MCP_Tools\\pc_controller\\dist\\index.js"]
    }
  }
}

Windsurf

Edit: ~/.codeium/windsurf/mcp_config.json

{
  "mcpServers": {
    "pc-controller": {
      "command": "node",
      "args": ["D:\\All_project\\own\\AI_Coder\\MCP_Tools\\pc_controller\\dist\\index.js"]
    }
  }
}

OpenClaude CLI

Edit: ~/.openclaude/config.json

{
  "mcpServers": {
    "pc-controller": {
      "command": "node",
      "args": ["D:\\All_project\\own\\AI_Coder\\MCP_Tools\\pc_controller\\dist\\index.js"]
    }
  }
}

ChatGPT Web

For ChatGPT web access, you'll need to set up an HTTP bridge server (future enhancement). Currently, ChatGPT Desktop app may support MCP with similar configuration to Claude Desktop.


πŸ“– Usage Examples

Once configured, you can ask your AI assistant to perform tasks like:

Shell Commands

"Run npm install in D:\Projects\myapp"
"Execute git status"
"Check disk space with PowerShell"

File Operations

"Read the contents of C:\config.json"
"Create a new file at D:\output.txt with 'Hello World'"
"List all files on my Desktop"
"Search for all .log files in D:\logs"

System Information

"Show me my system information"
"What processes are using the most memory?"
"List all running Chrome processes"

Screenshots

"Take a screenshot of my screen"
"Capture the screen and save it to D:\screenshots\screen.png"

Process Management

"Kill the notepad process"
"Terminate process with PID 1234"

Utilities

"Open https://github.com in my browser"
"Copy 'Hello World' to clipboard"
"What's currently in my clipboard?"

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    AI Client (Claude, Cursor, etc.)          β”‚
β”‚                                                              β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚              MCP Protocol (JSON-RPC 2.0)              β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β”‚
                            β–Ό stdio transport
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚              PC Controller MCP Server (Node.js)              β”‚
β”‚                                                              β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”‚
β”‚  β”‚ run_command  β”‚  β”‚ file_read    β”‚  β”‚ screen_      β”‚      β”‚
β”‚  β”‚ run_command_ β”‚  β”‚ file_write   β”‚  β”‚ capture      β”‚      β”‚
β”‚  β”‚ long         β”‚  β”‚ dir_list     β”‚  β”‚ sys_info     β”‚      β”‚
β”‚  β”‚ (shell:      β”‚  β”‚ file_search  β”‚  β”‚ process_list β”‚      β”‚
β”‚  β”‚  ps/bash/wsl)β”‚  β”‚ zip_create   β”‚  β”‚ process_kill β”‚      β”‚
β”‚  β”‚              β”‚  β”‚ zip_extract  β”‚  β”‚ open_path    β”‚      β”‚
β”‚  β”‚              β”‚  β”‚              β”‚  β”‚ clipboard_   β”‚      β”‚
β”‚  β”‚              β”‚  β”‚              β”‚  β”‚ get+set      β”‚      β”‚
β”‚  β”‚              β”‚  β”‚              β”‚  β”‚ window_focus β”‚      β”‚
β”‚  β”‚              β”‚  β”‚              β”‚  β”‚ key_type     β”‚      β”‚
β”‚  β”‚              β”‚  β”‚              β”‚  β”‚ notify       β”‚      β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β”‚
                            β–Ό PowerShell / Windows API
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    Windows Operating System                   β”‚
β”‚                                                              β”‚
β”‚  File System β”‚ Processes β”‚ Registry β”‚ Network β”‚ Clipboard    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ§ͺ Testing

The project includes a comprehensive test suite with 25 tests covering all tools and error handling.

# Run all tests
npm test

# Run specific test file
node test/test.js

Test Coverage

  • βœ… Protocol handshake (initialize, tools/list)

  • βœ… All 18 tools functionality

  • βœ… Error handling (invalid commands, non-existent files, unknown tools)

  • βœ… Edge cases and boundary conditions

Test Results: 25/25 passing βœ…


πŸ“š Documentation

Skill Documentation

For AI assistants, detailed skill documentation is available in:

  • skill/SKILL.md - Main skill file with tool overview

  • skill/reference/tools.md - Detailed parameter reference

API Reference

Each tool is fully documented with:

  • Purpose and use cases

  • Parameter descriptions

  • Return value specifications

  • Usage examples

  • Error handling

See the source code in src/index.ts for complete tool definitions.


πŸ› οΈ Development

Project Structure

pc_controller/
β”œβ”€β”€ src/
β”‚   └── index.ts              # Main MCP server implementation
β”œβ”€β”€ dist/                      # Compiled JavaScript
β”‚   └── index.js
β”œβ”€β”€ test/
β”‚   └── test.js               # Test suite (25 tests)
β”œβ”€β”€ skill/
β”‚   β”œβ”€β”€ SKILL.md              # AI skill documentation
β”‚   └── reference/
β”‚       └── tools.md          # Detailed tool reference
β”œβ”€β”€ config/                    # Configuration examples
β”‚   β”œβ”€β”€ claude-desktop.json
β”‚   β”œβ”€β”€ cursor.json
β”‚   β”œβ”€β”€ windsurf.json
β”‚   β”œβ”€β”€ openclaude.json
β”‚   └── chatgpt-setup.md
β”œβ”€β”€ images/
β”‚   └── banner.png             # Project banner image
β”œβ”€β”€ README.md                  # This file
β”œβ”€β”€ package.json
β”œβ”€β”€ tsconfig.json
└── .gitignore

Build Commands

# Install dependencies
npm install

# Build TypeScript to JavaScript
npm run build

# Development mode with hot reload
npm run dev

# Watch mode (auto-rebuild on changes)
npm run watch

# Run tests
npm test

# Start production server
npm start

Tech Stack

  • Runtime: Node.js 18+

  • Language: TypeScript 5.0

  • MCP SDK: @modelcontextprotocol/sdk ^1.30.0

  • Validation: Zod ^4.4.3

  • Transport: stdio (universal MCP)


πŸ”’ Security Considerations

Current Implementation

  • Commands execute with user privileges

  • No built-in sandbox or command whitelisting

  • File operations can overwrite existing files

  • Process kill is forceful without confirmation

Best Practices

  1. Review commands before executing destructive operations

  2. Use absolute paths to avoid ambiguity

  3. Backup important files before modifications

  4. Verify process names/PIDs before killing

  5. Test in development before production use

Future Enhancements

  • Command whitelisting/blacklisting

  • Sandbox mode for restricted operations

  • Confirmation prompts for dangerous actions

  • Audit logging for all operations


πŸ› Troubleshooting

Server Not Starting

# Check Node.js version
node --version  # Should be 18+

# Rebuild the project
npm run build

# Check for errors
npm run dev  # Shows detailed error messages

AI Client Not Detecting Server

  • Verify the path to dist/index.js is correct in your config

  • Restart the AI client after config changes

  • Check JSON syntax in config file

  • Ensure Node.js is in your system PATH

Commands Failing

  • Verify PowerShell is available: powershell.exe -Command "echo test"

  • Check file permissions

  • Use absolute paths for all operations

  • Increase timeout for long-running commands

Screenshots Not Working

  • Ensure display/monitor is active

  • Check display permissions

  • Verify .NET Framework is available

  • Try running as Administrator if needed


🀝 Contributing

Contributions are welcome! Areas for improvement:

  • Mouse and keyboard control

  • Window management

  • Security/sandbox features

  • HTTP/SSE transport for web clients

  • Additional system monitoring tools

  • Cross-platform support (Linux, macOS)

Development Workflow

  1. Fork the repository

  2. Create a feature branch

  3. Make your changes

  4. Run tests: npm test

  5. Submit a pull request


πŸ“„ License

MIT License - see LICENSE file for details


πŸ™ Acknowledgments


πŸ“ž Support

  • Issues: Open an issue on GitHub

  • Questions: Check the documentation in skill/ directory

  • Discussions: Join the MCP community


πŸ—ΊοΈ Roadmap

Version 1.1 (Planned)

  • Mouse and keyboard control tools

  • Window management (minimize, maximize, resize)

  • System notifications

  • Volume control

Version 1.2 (Planned)

  • Security sandbox mode

  • Command whitelisting

  • Audit logging

  • HTTP/SSE transport

Version 2.0 (Future)

  • Cross-platform support (Linux, macOS)

  • Plugin system for custom tools

  • Remote PC control via SSH

  • Advanced automation workflows


Made with ❀️ for the AI community

Empowering AI assistants to control Windows PCs safely and effectively

Install Server
A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

–Maintainers
–Response time
–Release cycle
–Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    -
    quality
    C
    maintenance
    Enables AI agents to perform extensive Windows system administration, file operations, process management, network configuration, registry editing, GUI automation, and more through a comprehensive set of MCP tools.
    1
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables LLM agents to capture screenshots, control mouse/keyboard, and manage windows on desktop platforms, primarily Windows, via an MCP server.
    16
    1
    MIT
  • F
    license
    -
    quality
    A
    maintenance
    Enables AI assistants to execute PowerShell commands, manage files, inspect projects, run Git operations, and monitor system information on Windows through a local MCP server.

View all related MCP servers

Related MCP Connectors

  • OCR, transcription, file extraction, and image generation for AI agents via MCP.

  • Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.

  • A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/rayss868/pc-controller-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server