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
Tool | Purpose | Key Information |
---|---|---|
get_system_summary | Quick system overview | Hostname, OS, CPU, RAM, uptime |
get_hardware_details | Comprehensive hardware specs | CPU cores, memory, GPU detection |
get_display_info | Display/monitor analysis | Resolution, refresh rate, HDR status |
get_network_status | Network diagnostics | Interfaces, IPs, DNS, VPN detection |
get_storage_analysis | Storage overview | Disk usage, partitions, filesystem types |
get_connected_devices | Peripheral inventory | USB and Bluetooth devices |
get_user_environment | Session context | User info, timezone, locale settings |
get_running_processes | Process analysis | Top processes by CPU/memory usage |
get_open_ports | Network security | Listening ports and services |
get_full_system_report | Complete analysis | All 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
, andrequests
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
- Add function to
collectors.py
- Export in
__init__.py
- Call from
server.py
tool - Test cross-platform compatibility
License
MIT License - see LICENSE file for details.