Skip to main content
Glama

MCP System Server

A Model Context Protocol (MCP) server that provides system automation and control capabilities for Claude.

Features

  • 🖥️ Command Execution: Run system commands safely

  • 📊 System Information: Get CPU, memory, disk, and OS details

  • 🔄 Process Management: List and kill processes

  • 🌐 Network Tools: Check ports and network interfaces

  • 🔧 Environment Variables: Get and set environment variables

  • 💾 Disk Usage: Monitor disk space

  • 🚀 Service Status: Check system service status (macOS/Linux)

Related MCP server: bash-mcp

Installation

  1. Prerequisites:

    • Node.js 18+ installed

  2. Install the MCP server:

    cd /Users/bard/Code/mcp-system
    npm install
  3. Add to Claude Desktop config: Edit ~/Library/Application Support/Claude/claude_desktop_config.json:

    {
      "mcpServers": {
        "system": {
          "command": "node",
          "args": ["/Users/bard/Code/mcp-system/src/index.js"]
        }
      }
    }
  4. Restart Claude Desktop

Usage

Execute Commands

// Run a simple command
system_exec({ command: "ls -la" })

// Run with specific working directory
system_exec({ 
  command: "npm install",
  cwd: "/path/to/project"
})

// Run with environment variables
system_exec({
  command: "echo $MY_VAR",
  env: { MY_VAR: "Hello World" }
})

System Information

// Get all system info
system_info({ type: "all" })

// Get specific info
system_info({ type: "cpu" })     // CPU details
system_info({ type: "memory" })  // Memory usage
system_info({ type: "os" })      // OS information
system_info({ type: "network" }) // Network interfaces

Process Management

// List all processes
process_list()

// Filter processes
process_list({ filter: "node" })

// Limit results
process_list({ limit: 10 })

// Kill a process
process_kill({ pid: 12345 })
process_kill({ pid: 12345, signal: "SIGKILL" })

Network Tools

// Check if a port is in use
port_check({ port: 3000 })
port_check({ port: 8080, host: "0.0.0.0" })

// Get network interface info
network_info()

Environment Variables

// Get all environment variables
env_get()

// Get specific variable
env_get({ variable: "PATH" })

// Set environment variable (for current process)
env_set({ variable: "MY_VAR", value: "my_value" })

Disk Usage

// Check disk usage
disk_usage()  // Default: root directory
disk_usage({ path: "/Users" })

Service Status (macOS/Linux)

// Check service status
service_status({ service: "nginx" })
service_status({ service: "postgresql" })

Tool Reference

Tool

Description

Required Args

system_exec

Execute system command

command

system_info

Get system information

None

process_list

List running processes

None

process_kill

Kill a process

pid

env_get

Get environment variables

None

env_set

Set environment variable

variable, value

service_status

Check service status

service

port_check

Check if port is in use

port

disk_usage

Get disk usage info

None

network_info

Get network interfaces

None

Security Considerations

This tool executes system commands with the same privileges as the Node.js process. Be careful when:

  • Running commands that modify system files

  • Killing processes

  • Setting environment variables

  • Executing untrusted commands

Platform Support

  • ✅ macOS: Full support

  • ✅ Linux: Full support

  • ⚠️ Windows: Limited support (some features may not work)

Development

Testing the server:

# Run directly
node src/index.js

# Test with sample commands
echo '{"jsonrpc": "2.0", "method": "tools/list", "id": 1}' | node src/index.js

Common Issues

  1. Permission denied: Some commands require elevated privileges

  2. Command not found: Ensure the command is in PATH

  3. Platform differences: Commands may vary between OS

License

MIT

Available Tools

11 tools
disk_usageC

Get disk usage information

Inputs: path.

env_getA

Get environment variables

Inputs: variable.

env_setA

Set an environment variable for the current process

Inputs: value (required), variable (required).

helpA

Get comprehensive documentation for all system functions

Inputs: no named parameters.

network_infoB

Get network interface information

Inputs: no named parameters.

port_checkB

Check if a port is in use

Inputs: port (required), host.

process_killB

Kill a process by PID

Inputs: pid (required), signal.

process_listB

List running processes

Inputs: limit, filter.

service_statusC

Check status of a system service (macOS/Linux)

Inputs: service (required).

system_execC

Execute a system command

Inputs: command (required), cwd, env.

system_infoC

Get system information

Inputs: type.

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    B3.4/5.0

    Scored across 11 tools

    Disambiguation5/5

    Each tool targets a distinct system aspect: commands, system info, processes, env variables, services, ports, disk, network. There is no overlap between tools, and descriptions clearly differentiate the breadth of system_info from the specific disk_usage and network_info tools.

    Naming Consistency4/5

    Tools follow a consistent domain_action pattern (e.g., process_list, env_get, port_check), with the second token being a verb or noun as appropriate. The only deviation is 'help', which is a common utility exception, but it does not disrupt overall readability or predictability.

    Tool Count5/5

    With 11 tools, the server covers a broad system administration scope without being overwhelming. Each tool addresses a specific, identifiable need, and the count fits well within the typical 3-15 tool range for a comprehensive server.

    Completeness4/5

    The toolset has minor gaps: service start/stop and process creation are missing, but system_exec provides a general-purpose fallback for these actions. Read-only operations for env, ports, disk, and network are well covered, making the surface reasonably complete for diagnostic and basic management tasks.

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables remote execution of Linux commands via SSH, supporting system monitoring, file operations, and secure authentication with configurable safety controls.
      4
      MIT
    • F
      license
      Not graded
      quality
      D
      maintenance
      Enables managing Linux servers via SSH with tools for command execution, file operations, service management, and log analysis.
      -