mcp-sysinfo

batteryshark/mcp-sysinfo

3.2

If you are the rightful owner of mcp-sysinfo and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

A modular FastMCP server providing focused system diagnostic tools for efficient troubleshooting and environment analysis.

Tools
10
Resources
0
Prompts
0

System Information MCP Server

A modular FastMCP server providing focused system diagnostic tools for efficient troubleshooting and environment analysis. Each tool targets specific system aspects for optimal performance and clarity.

šŸš€ Features

šŸ“Š Modular Tool Design

  • 10 specialized tools for targeted diagnostics
  • Efficient data collection with minimal overhead
  • Raw text output for optimal performance
  • Cross-platform compatibility (macOS, Linux, Windows)

šŸ”§ Available Tools

ToolPurposeKey Information
get_system_summaryQuick system overviewHostname, OS, CPU, RAM, uptime
get_hardware_detailsComprehensive hardware specsCPU cores, memory, GPU detection
get_display_infoDisplay/monitor analysisResolution, refresh rate, HDR status
get_network_statusNetwork diagnosticsInterfaces, IPs, DNS, VPN detection
get_storage_analysisStorage overviewDisk usage, partitions, filesystem types
get_connected_devicesPeripheral inventoryUSB and Bluetooth devices
get_user_environmentSession contextUser info, timezone, locale settings
get_running_processesProcess analysisTop processes by CPU/memory usage
get_open_portsNetwork securityListening ports and services
get_full_system_reportComplete analysisAll diagnostics in one comprehensive report

Installation

# Clone and setup
git clone <repository>
cd mcp-sysinfo

# Install dependencies
uv add fastmcp psutil requests

# Test the server
uv run python main.py

Usage

MCP Configuration

Add to your MCP client configuration:

Local/stdio Configuration
{
  "mcpServers": {
    "sysinfo": {
      "type": "stdio",
      "command": "uv",
      "args": ["run", "--directory", "/path/to/mcp-sysinfo", "python", "main.py"]
    }
  }
}
Remote/HTTP Configuration
{
  "mcpServers": {
    "sysinfo": {
      "type": "http",
      "url": "http://localhost:8000/mcp/"
    }
  }
}

For HTTP mode, set the PORT environment variable:

PORT=8000 uv run python main.py

Tool Usage Examples

Quick System Check
# Get essential system overview
result = await client.call_tool("get_system_summary", {})
Targeted Diagnostics
# Network troubleshooting
network_info = await client.call_tool("get_network_status", {})

# Storage analysis
storage_info = await client.call_tool("get_storage_analysis", {})

# Security audit
ports_info = await client.call_tool("get_open_ports", {})
Complete System Analysis
# Full diagnostic report
full_report = await client.call_tool("get_full_system_report", {})

Platform Support

  • macOS 10.15+ (tested on Apple Silicon)
  • Linux Ubuntu/Debian-based distributions
  • Windows 10/11 (basic support)

Architecture

src/sysinfo/
ā”œā”€ā”€ __init__.py          # Package exports
ā”œā”€ā”€ collectors.py        # Modular info collection functions
└── server.py           # FastMCP server implementation
main.py                 # Entry point

Key Design Principles

  • Modular Tools: Each diagnostic function is a separate MCP tool for targeted usage
  • Performance Optimized: Raw text output without JSON wrapping overhead
  • Error-resilient: Graceful handling of missing/inaccessible data
  • Cross-platform: Platform-specific detection with intelligent fallbacks
  • Agent-friendly: Clean markdown output optimized for LLM consumption
  • Minimal Dependencies: Uses only fastmcp, psutil, and requests

Development

Testing

# Test with in-memory client
uv run python test_refactored.py

# Test individual collectors
uv run python -c "from src.sysinfo.collectors import get_hardware_info; print(get_hardware_info())"

Adding New Collectors

  1. Add function to collectors.py
  2. Export in __init__.py
  3. Call from server.py tool
  4. Test cross-platform compatibility

License

MIT License - see LICENSE file for details.