Provides full support for monitoring Linux systems, including CPU, memory, disk, network metrics, and hardware-dependent sensor availability.
Offers full system monitoring capabilities for macOS, including temperature sensors on supported hardware, CPU usage, memory statistics, and process information.
Supports publishing the MCP server to PyPI for easy installation and distribution to users.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@System Information MCP Servershow me current CPU and memory usage"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
System Information MCP Server
A Model Context Protocol (MCP) server that provides real-time system information and metrics. This server exposes CPU usage, memory statistics, disk information, network status, and running processes through a standardized MCP interface.
Features
π οΈ Tools Available
get_cpu_info- Retrieve CPU usage, core counts, frequency, and load averageget_memory_info- Get virtual and swap memory statisticsget_disk_info- Disk usage information for all mounts or specific pathsget_network_info- Network interface information and I/O statisticsget_process_list- Running processes with sorting and filtering optionsget_system_uptime- System boot time and uptime informationget_temperature_info- Temperature sensors and fan speeds (when available)
π Resources Available
system://overview- Comprehensive system overview with all metricssystem://processes- Current process list resource
β Key Features
Real-time metrics with configurable caching
Cross-platform support (Windows, macOS, Linux)
Security-focused with sensitive data filtering
Performance optimized with intelligent caching
Comprehensive error handling
Environment variable configuration
Related MCP server: MCP System Info Server
Installation
Using uvx (Recommended)
The easiest way to install and use this MCP server is with uvx:
uvx install mcp-system-infoThen configure it in your MCP client (like Claude Desktop):
{
"mcpServers": {
"system-info": {
"command": "uvx",
"args": ["mcp-system-info"]
}
}
}Development Installation
For local development:
Clone the repository:
git clone <repository-url> cd mcp-system-infoInstall dependencies:
uv syncRun the server:
uv run mcp-system-info
Development
Project Structure
mcp-system-info/
βββ src/
β βββ system_info_mcp/
β βββ __init__.py
β βββ server.py # Main FastMCP server
β βββ tools.py # Tool implementations
β βββ resources.py # Resource handlers
β βββ config.py # Configuration management
β βββ utils.py # Utility functions
βββ tests/ # Comprehensive test suite
βββ pyproject.toml # Project configuration
βββ README.mdDevelopment Setup
Install development dependencies:
uv sync --devRun tests:
uv run pytestRun tests with coverage:
uv run pytest --cov=system_info_mcp --cov-report=term-missingFormat code:
uv run black src/ tests/Lint code:
uv run ruff check src/ tests/Type checking:
uv run mypy src/
Building and Publishing
Build the Package
# Build distribution files
uv buildThis creates distribution files in the dist/ directory:
mcp_system_info-*.whl(wheel file)mcp_system_info-*.tar.gz(source distribution)
Local Testing with uvx
Test the package locally before publishing:
# Test running the command directly from wheel file
uvx --from ./dist/mcp_system_info-*.whl mcp-system-info
# Test with environment variables
SYSINFO_LOG_LEVEL=DEBUG uvx --from ./dist/mcp_system_info-*.whl mcp-system-infoPublishing to PyPI
# Publish to PyPI (requires PyPI account and token)
uv publish
# Or publish to TestPyPI first
uv publish --repository testpypiNote: You'll need to:
Create a PyPI account at https://pypi.org
Generate an API token in your account settings
Configure uv with your credentials or use environment variables
Environment Configuration
The server supports configuration through environment variables:
Core Settings
SYSINFO_CACHE_TTL- Cache time-to-live in seconds (default: 5)SYSINFO_MAX_PROCESSES- Maximum processes to return (default: 100)SYSINFO_ENABLE_TEMP- Enable temperature sensors (default: true)SYSINFO_LOG_LEVEL- Logging level (default: INFO)
Transport Configuration
SYSINFO_TRANSPORT- Transport protocol:stdio,sse, orstreamable-http(default: stdio)SYSINFO_HOST- Host to bind to for HTTP transports (default: localhost)SYSINFO_PORT- Port to bind to for HTTP transports (default: 8001)SYSINFO_MOUNT_PATH- Mount path for SSE transport (default: /mcp)
Transport Modes
1. STDIO (Default)
# Uses standard input/output - no network port
uv run mcp-system-info2. SSE (Server-Sent Events)
# HTTP server with real-time streaming
SYSINFO_TRANSPORT=sse SYSINFO_PORT=8001 uv run mcp-system-info
# Server will be available at http://localhost:8001/mcp3. Streamable HTTP
# HTTP server with request/response
SYSINFO_TRANSPORT=streamable-http SYSINFO_PORT=9000 uv run mcp-system-infoComplete Example:
SYSINFO_TRANSPORT=sse \
SYSINFO_HOST=0.0.0.0 \
SYSINFO_PORT=8001 \
SYSINFO_CACHE_TTL=10 \
SYSINFO_LOG_LEVEL=DEBUG \
uv run mcp-system-infoUsage Examples
Tool Usage
Get CPU Information
# Basic CPU info
{
"name": "get_cpu_info_tool",
"arguments": {
"interval": 1.0,
"per_cpu": false
}
}Get Process List
# Top 10 processes by memory usage
{
"name": "get_process_list_tool",
"arguments": {
"limit": 10,
"sort_by": "memory",
"filter_name": "python"
}
}Get Disk Information
# All disk usage
{
"name": "get_disk_info_tool",
"arguments": {}
}
# Specific path
{
"name": "get_disk_info_tool",
"arguments": {
"path": "/home"
}
}Resource Usage
System Overview
# Request comprehensive system overview
{
"uri": "system://overview"
}Process List Resource
# Get top processes resource
{
"uri": "system://processes"
}Integration with Claude Desktop
Adding to Claude Desktop
Locate your Claude Desktop config file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
Add the MCP server configuration:
Using uvx (Recommended)
{
"mcpServers": {
"system-info": {
"command": "uvx",
"args": ["mcp-system-info"],
"env": {
"SYSINFO_CACHE_TTL": "10",
"SYSINFO_LOG_LEVEL": "INFO"
}
}
}
}For Local Development
{
"mcpServers": {
"system-info": {
"command": "uv",
"args": [
"--directory",
"/path/to/mcp-system-info",
"run",
"mcp-system-info"
],
"env": {
"SYSINFO_TRANSPORT": "stdio",
"SYSINFO_CACHE_TTL": "10",
"SYSINFO_LOG_LEVEL": "INFO"
}
}
}
}For HTTP Transport (SSE)
{
"mcpServers": {
"system-info-http": {
"command": "uvx",
"args": ["mcp-system-info"],
"env": {
"SYSINFO_TRANSPORT": "sse",
"SYSINFO_HOST": "localhost",
"SYSINFO_PORT": "8001",
"SYSINFO_MOUNT_PATH": "/mcp"
}
}
}
}Restart Claude Desktop to load the new server.
Using with Claude
Once configured, you can ask Claude to:
"What's my current CPU usage?"
"Show me the top 10 processes using the most memory"
"How much disk space is available?"
"What's my system uptime?"
"Give me a complete system overview"
Testing
Running Tests
# Run all tests
uv run pytest
# Run with verbose output
uv run pytest -v
# Run specific test file
uv run pytest tests/test_tools.py
# Run with coverage report
uv run pytest --cov=system_info_mcp --cov-report=htmlTest Structure
tests/test_config.py- Configuration validation teststests/test_tools.py- Tool implementation teststests/test_resources.py- Resource handler teststests/test_utils.py- Utility function tests
All tests use mocked dependencies for consistent, fast execution across different environments.
Performance Considerations
Caching: Intelligent caching reduces system calls and improves response times
Configurable intervals: Adjust cache TTL based on your needs
Lazy loading: Temperature sensors and other optional features load only when needed
Async support: Built on FastMCP for efficient async operations
Security Features
Read-only operations: No system modification capabilities
Sensitive data filtering: Command-line arguments are filtered for passwords, tokens, etc.
Input validation: All parameters are validated before processing
Error isolation: Failures in one tool don't affect others
Platform Support
macOS - Full support including temperature sensors on supported hardware
Linux - Full support with hardware-dependent sensor availability
Windows - Full support with platform-specific optimizations
Troubleshooting
Common Issues
Permission errors: Some system information may require elevated privileges
Missing sensors: Temperature/fan data availability varies by hardware
Performance impact: Reduce cache TTL or limit process counts for better performance
Debug Mode
Enable debug logging for troubleshooting:
SYSINFO_LOG_LEVEL=DEBUG uv run mcp-system-infoVerifying Installation
Test that tools work correctly:
uv run python -c "from system_info_mcp.tools import get_cpu_info; print(get_cpu_info())"Contributing
Fork the repository
Create a feature branch
Make your changes with tests
Run the full test suite
Submit a pull request
Code Standards
Follow PEP 8 style guidelines
Add type hints to all functions
Write tests for new functionality
Update documentation as needed
License
[Add your license information here]
Support
[Add support information here]
Appeared in Searches
- A Linux system administration tool for viewing system details and files
- Information about Arch Linux operating system
- MCP tools for monitoring application memory and CPU usage
- MCP servers for retrieving system information
- MCP servers for monitoring power and memory usage of applications on Windows and macOS